{(detailed || fullscreen) &&
@@ -368,6 +429,7 @@ class Video extends React.PureComponent {
+ {!onCloseVideo && }
{(!fullscreen && onOpenVideo) && }
{onCloseVideo && }
diff --git a/app/javascript/mastodon/initial_state.js b/app/javascript/mastodon/initial_state.js
index 6e9e3ddd8..8c2e9d2de 100644
--- a/app/javascript/mastodon/initial_state.js
+++ b/app/javascript/mastodon/initial_state.js
@@ -15,5 +15,7 @@ export const searchEnabled = getMeta('search_enabled');
export const invitesEnabled = getMeta('invites_enabled');
export const version = getMeta('version');
export const mascot = getMeta('mascot');
+export const profile_directory = getMeta('profile_directory');
+export const isStaff = getMeta('is_staff');
export default initialState;
diff --git a/app/javascript/mastodon/link_header.js b/app/javascript/mastodon/link_header.js
deleted file mode 100644
index a3e7ccf1c..000000000
--- a/app/javascript/mastodon/link_header.js
+++ /dev/null
@@ -1,33 +0,0 @@
-import Link from 'http-link-header';
-import querystring from 'querystring';
-
-Link.parseAttrs = (link, parts) => {
- let match = null;
- let attr = '';
- let value = '';
- let attrs = '';
-
- let uriAttrs = /<(.*)>;\s*(.*)/gi.exec(parts);
-
- if(uriAttrs) {
- attrs = uriAttrs[2];
- link = Link.parseParams(link, uriAttrs[1]);
- }
-
- while(match = Link.attrPattern.exec(attrs)) { // eslint-disable-line no-cond-assign
- attr = match[1].toLowerCase();
- value = match[4] || match[3] || match[2];
-
- if( /\*$/.test(attr)) {
- Link.setAttr(link, attr, Link.parseExtendedValue(value));
- } else if(/%/.test(value)) {
- Link.setAttr(link, attr, querystring.decode(value));
- } else {
- Link.setAttr(link, attr, value);
- }
- }
-
- return link;
-};
-
-export default Link;
diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json
index ba28c6583..85117c524 100644
--- a/app/javascript/mastodon/locales/ar.json
+++ b/app/javascript/mastodon/locales/ar.json
@@ -1,4 +1,5 @@
{
+ "account.add_or_remove_from_list": "اضافو أو حذف مِن القوائم",
"account.badges.bot": "روبوت",
"account.block": "حظر @{name}",
"account.block_domain": "إخفاء كل شيئ قادم من إسم النطاق {domain}",
@@ -16,6 +17,7 @@
"account.follows_you": "يتابعك",
"account.hide_reblogs": "إخفاء ترقيات @{name}",
"account.link_verified_on": "تم التحقق مِن مالك هذا الرابط بتاريخ {date}",
+ "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
"account.media": "وسائط",
"account.mention": "أُذكُر @{name}",
"account.moved_to": "{name} إنتقل إلى :",
@@ -92,7 +94,7 @@
"confirmations.redraft.confirm": "إزالة و إعادة الصياغة",
"confirmations.redraft.message": "هل أنت متأكد من أنك تريد حذف هذا المنشور و إعادة صياغته ؟ سوف تفقد جميع الإعجابات و الترقيات أما الردود المتصلة به فستُصبِح يتيمة.",
"confirmations.reply.confirm": "رد",
- "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
+ "confirmations.reply.message": "الرد في الحين سوف يُعيد كتابة الرسالة التي أنت بصدد كتابتها. متأكد من أنك تريد المواصلة؟",
"confirmations.unfollow.confirm": "إلغاء المتابعة",
"confirmations.unfollow.message": "متأكد من أنك تريد إلغاء متابعة {name} ؟",
"embed.instructions": "يمكنكم إدماج هذا المنشور على موقعكم الإلكتروني عن طريق نسخ الشفرة أدناه.",
@@ -111,6 +113,7 @@
"emoji_button.search_results": "نتائج البحث",
"emoji_button.symbols": "رموز",
"emoji_button.travel": "أماكن و أسفار",
+ "empty_column.account_timeline": "ليس هناك تبويقات!",
"empty_column.blocks": "لم تقم بحظر أي مستخدِم بعد.",
"empty_column.community": "الخط الزمني المحلي فارغ. أكتب شيئا ما للعامة كبداية !",
"empty_column.direct": "لم تتلق أية رسالة خاصة مباشِرة بعد. سوف يتم عرض الرسائل المباشرة هنا إن قمت بإرسال واحدة أو تلقيت البعض منها.",
@@ -134,16 +137,40 @@
"follow_request.authorize": "ترخيص",
"follow_request.reject": "رفض",
"getting_started.developers": "المُطوِّرون",
+ "getting_started.directory": "Profile directory",
"getting_started.documentation": "Documentation",
- "getting_started.find_friends": "البحث عن أصدقاء على تويتر",
"getting_started.heading": "إستعدّ للبدء",
"getting_started.invite": "دعوة أشخاص",
"getting_started.open_source_notice": "ماستدون برنامج مفتوح المصدر. يمكنك المساهمة، أو الإبلاغ عن تقارير الأخطاء، على جيت هب {github}.",
"getting_started.security": "الأمان",
"getting_started.terms": "شروط الخدمة",
+ "hashtag.column_header.tag_mode.all": "و {additional}",
+ "hashtag.column_header.tag_mode.any": "أو {additional}",
+ "hashtag.column_header.tag_mode.none": "بدون {additional}",
+ "hashtag.column_settings.tag_mode.all": "كلها",
+ "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": "عرض الردود",
+ "introduction.federation.action": "التالي",
+ "introduction.federation.federated.headline": "Federated",
+ "introduction.federation.federated.text": "كافة المنشورات التي نُشِرت إلى العامة على الخوادم الأخرى للفديفرس سوف يتم عرضها على الخيط المُوحَّد.",
+ "introduction.federation.home.headline": "Home",
+ "introduction.federation.home.text": "سوف تُعرَض منشورات الأشخاص الذين تُتابِعهم على الخيط الرئيسي. بإمكانك متابعة أي حساب أيا كان الخادم الذي هو عليه!",
+ "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.",
+ "introduction.interactions.action": "Finish tutorial!",
+ "introduction.interactions.favourite.headline": "الإضافة إلى المفضلة",
+ "introduction.interactions.favourite.text": "يمكِنك إضافة أي تبويق إلى المفضلة و إعلام صاحبه أنك أعجِبت بذاك التبويق.",
+ "introduction.interactions.reblog.headline": "الترقية",
+ "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.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.",
"keyboard_shortcuts.back": "للعودة",
"keyboard_shortcuts.blocked": "لفتح قائمة المستخدمين المحظورين",
"keyboard_shortcuts.boost": "للترقية",
@@ -220,34 +247,21 @@
"notifications.clear_confirmation": "أمتأكد من أنك تود مسح جل الإخطارات الخاصة بك و المتلقاة إلى حد الآن ؟",
"notifications.column_settings.alert": "إشعارات سطح المكتب",
"notifications.column_settings.favourite": "المُفَضَّلة :",
+ "notifications.column_settings.filter_bar.advanced": "عرض كافة الفئات",
+ "notifications.column_settings.filter_bar.category": "شريط الفلترة السريعة",
+ "notifications.column_settings.filter_bar.show": "عرض",
"notifications.column_settings.follow": "متابعُون جُدُد :",
"notifications.column_settings.mention": "الإشارات :",
"notifications.column_settings.push": "الإخطارات المدفوعة",
"notifications.column_settings.reblog": "الترقيّات:",
"notifications.column_settings.show": "إعرِضها في عمود",
"notifications.column_settings.sound": "أصدر صوتا",
+ "notifications.filter.all": "الكل",
+ "notifications.filter.boosts": "الترقيات",
+ "notifications.filter.favourites": "المفضلة",
+ "notifications.filter.follows": "يتابِع",
+ "notifications.filter.mentions": "الإشارات",
"notifications.group": "{count} إشعارات",
- "onboarding.done": "تم",
- "onboarding.next": "التالي",
- "onboarding.page_five.public_timelines": "تُعرَض في الخيط الزمني المحلي المشاركات العامة المحررة من طرف جميع المسجلين في {domain}. أما في الخيط الزمني الموحد ، فإنه يتم عرض جميع المشاركات العامة المنشورة من طرف جميع الأشخاص المتابَعين من طرف أعضاء {domain}. هذه هي الخيوط الزمنية العامة، وهي طريقة رائعة للتعرف أشخاص جدد.",
- "onboarding.page_four.home": "تعرض الصفحة الرئيسية منشورات جميع الأشخاص الذين تتابعهم.",
- "onboarding.page_four.notifications": "فعندما يتفاعل شخص ما معك، عمود الإخطارات يخبرك.",
- "onboarding.page_one.federation": "ماستدون شبكة من خوادم مستقلة متلاحمة تهدف إلى إنشاء أكبر شبكة اجتماعية موحدة. تسمى هذه السرفيرات بمثيلات خوادم.",
- "onboarding.page_one.full_handle": "عنوانك الكامل",
- "onboarding.page_one.handle_hint": "هذا هو ما يجب عليك توصيله لأصدقائك للبحث عنه.",
- "onboarding.page_one.welcome": "مرحبا بك في ماستدون !",
- "onboarding.page_six.admin": "مدير(ة) مثيل الخادم هذا {admin}.",
- "onboarding.page_six.almost_done": "أنهيت تقريبا ...",
- "onboarding.page_six.appetoot": "تمتع بالتبويق !",
- "onboarding.page_six.apps_available": "هناك {apps} متوفرة لأنظمة آي أو إس و أندرويد و غيرها من المنصات و الأنظمة.",
- "onboarding.page_six.github": "ماستدون برنامج مفتوح المصدر. يمكنك المساهمة، أو الإبلاغ عن تقارير الأخطاء، على GitHub {github}.",
- "onboarding.page_six.guidelines": "المبادئ التوجيهية للمجتمع",
- "onboarding.page_six.read_guidelines": "رجاءا، قم بالإطلاع على {guidelines} لـ {domain} !",
- "onboarding.page_six.various_app": "تطبيقات الجوال",
- "onboarding.page_three.profile": "يمكنك إدخال تعديلات على ملفك الشخصي عن طريق تغيير الصورة الرمزية و السيرة و إسمك المستعار. هناك، سوف تجد أيضا تفضيلات أخرى متاحة.",
- "onboarding.page_three.search": "باستخدام شريط البحث يمكنك العثور على أشخاص و أصدقاء أو الإطلاع على أوسمة، كـ {illustration} و {introductions}. للبحث عن شخص غير مسجل في مثيل الخادم هذا، استخدم مُعرّفه الكامل.",
- "onboarding.page_two.compose": "حرر مشاركاتك عبر عمود التحرير. يمكنك من خلاله تحميل الصور وتغيير إعدادات الخصوصية وإضافة تحذيرات عن المحتوى باستخدام الرموز أدناه.",
- "onboarding.skip": "تخطي",
"privacy.change": "إضبط خصوصية المنشور",
"privacy.direct.long": "أنشر إلى المستخدمين المشار إليهم فقط",
"privacy.direct.short": "مباشر",
@@ -283,6 +297,8 @@
"search_results.statuses": "التبويقات",
"search_results.total": "{count, number} {count, plural, one {result} و {results}}",
"standalone.public_title": "نظرة على ...",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "Block @{name}",
"status.cancel_reblog_private": "إلغاء الترقية",
"status.cannot_reblog": "تعذرت ترقية هذا المنشور",
@@ -318,10 +334,11 @@
"status.show_less_all": "طي الكل",
"status.show_more": "أظهر المزيد",
"status.show_more_all": "توسيع الكل",
+ "status.show_thread": "الكشف عن المحادثة",
"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": "المحلي",
diff --git a/app/javascript/mastodon/locales/ast.json b/app/javascript/mastodon/locales/ast.json
index aefd155f0..4b3cdf76d 100644
--- a/app/javascript/mastodon/locales/ast.json
+++ b/app/javascript/mastodon/locales/ast.json
@@ -1,21 +1,23 @@
{
+ "account.add_or_remove_from_list": "Add or Remove from lists",
"account.badges.bot": "Robó",
"account.block": "Bloquiar a @{name}",
- "account.block_domain": "Hide everything from {domain}",
+ "account.block_domain": "Anubrir tolo de {domain}",
"account.blocked": "Blocked",
"account.direct": "Unviar un mensaxe direutu a @{name}",
- "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
- "account.domain_blocked": "Domain hidden",
- "account.edit_profile": "Editar perfil",
- "account.endorse": "Feature on profile",
+ "account.disclaimer_full": "La información d'embaxo podría reflexar de mou incompletu'l perfil del usuariu.",
+ "account.domain_blocked": "Dominiu anubríu",
+ "account.edit_profile": "Editar el perfil",
+ "account.endorse": "Destacar nel perfil",
"account.follow": "Follow",
"account.followers": "Siguidores",
- "account.followers.empty": "No one follows this user yet.",
- "account.follows": "Follows",
+ "account.followers.empty": "Naide sigue a esti usuariu entá.",
+ "account.follows": "Sigue a",
"account.follows.empty": "Esti usuariu entá nun sigue a naide.",
- "account.follows_you": "Follows you",
+ "account.follows_you": "Síguete",
"account.hide_reblogs": "Hide boosts from @{name}",
"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.media": "Media",
"account.mention": "Mentar a @{name}",
"account.moved_to": "{name} has moved to:",
@@ -29,12 +31,12 @@
"account.share": "Share @{name}'s profile",
"account.show_reblogs": "Show boosts from @{name}",
"account.unblock": "Desbloquiar a @{name}",
- "account.unblock_domain": "Unhide {domain}",
+ "account.unblock_domain": "Amosar {domain}",
"account.unendorse": "Don't feature on profile",
"account.unfollow": "Unfollow",
"account.unmute": "Unmute @{name}",
"account.unmute_notifications": "Unmute notifications from @{name}",
- "account.view_full_profile": "View full profile",
+ "account.view_full_profile": "Ver el perfil completu",
"alert.unexpected.message": "Asocedió un fallu inesperáu.",
"alert.unexpected.title": "¡Ups!",
"boost_modal.combo": "Pues primir {combo} pa saltar esto la próxima vegada",
@@ -45,7 +47,7 @@
"bundle_modal_error.message": "Something went wrong while loading this component.",
"bundle_modal_error.retry": "Try again",
"column.blocks": "Usuarios bloquiaos",
- "column.community": "Local timeline",
+ "column.community": "Llinia temporal llocal",
"column.direct": "Mensaxes direutos",
"column.domain_blocks": "Dominios anubríos",
"column.favourites": "Favoritos",
@@ -60,7 +62,7 @@
"column_header.hide_settings": "Hide settings",
"column_header.moveLeft_settings": "Mover la columna a la esquierda",
"column_header.moveRight_settings": "Mover la columna a la drecha",
- "column_header.pin": "Pin",
+ "column_header.pin": "Fixar",
"column_header.show_settings": "Show settings",
"column_header.unpin": "Desfixar",
"column_subheading.settings": "Axustes",
@@ -83,47 +85,48 @@
"confirmations.block.message": "¿De xuru que quies bloquiar a {name}?",
"confirmations.delete.confirm": "Delete",
"confirmations.delete.message": "¿De xuru que quies desaniciar esti estáu?",
- "confirmations.delete_list.confirm": "Delete",
+ "confirmations.delete_list.confirm": "Desaniciar",
"confirmations.delete_list.message": "¿De xuru que quies desaniciar dafechu esta llista?",
- "confirmations.domain_block.confirm": "Hide entire domain",
+ "confirmations.domain_block.confirm": "Anubrir tol dominiu",
"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.mute.confirm": "Mute",
"confirmations.mute.message": "¿De xuru que quies silenciar a {name}?",
- "confirmations.redraft.confirm": "Delete & redraft",
+ "confirmations.redraft.confirm": "Desaniciar y reeditar",
"confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? You will lose all replies, boosts and favourites to it.",
"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.unfollow.confirm": "Unfollow",
- "confirmations.unfollow.message": "Are you sure you want to unfollow {name}?",
- "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": "Actividá",
+ "confirmations.unfollow.message": "¿De xuru que quies dexar de siguir a {name}?",
+ "embed.instructions": "Empotra esti estáu nun sitiu web copiando'l códigu d'embaxo.",
+ "embed.preview": "Asina ye como va vese:",
+ "emoji_button.activity": "Actividaes",
"emoji_button.custom": "Custom",
"emoji_button.flags": "Banderes",
- "emoji_button.food": "Comída y bébora",
+ "emoji_button.food": "Comida y bébora",
"emoji_button.label": "Insert emoji",
"emoji_button.nature": "Natura",
"emoji_button.not_found": "¡Nun hai fustaxes! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "Oxetos",
"emoji_button.people": "Xente",
- "emoji_button.recent": "Frequently used",
- "emoji_button.search": "Search...",
+ "emoji_button.recent": "Úsase davezu",
+ "emoji_button.search": "Guetar...",
"emoji_button.search_results": "Search results",
"emoji_button.symbols": "Símbolos",
"emoji_button.travel": "Viaxes y llugares",
+ "empty_column.account_timeline": "No toots here!",
"empty_column.blocks": "Entá nun bloquiesti a dengún usuariu.",
"empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
- "empty_column.direct": "Entá nun tienes dengún mensaxe direutu. Cuando unvies o recibas dalgún, va apaecer equí",
+ "empty_column.direct": "Entá nun tienes dengún mensaxe direutu. Cuando unvies o recibas dalgún, va apaecer equí.",
"empty_column.domain_blocks": "Entá nun hai dominios anubríos.",
"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": "Entá nun tienes denguna solicitú de siguimientu. Cuando recibas una, va amosase equí.",
"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": "¡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": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.",
+ "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 denguna llista. Cuando crees una, va amosase equí.",
- "empty_column.mutes": "Enta nun silenciesti a dengún usuariu.",
+ "empty_column.mutes": "Entá nun silenciesti a dengún usuariu.",
"empty_column.notifications": "Entá nun tienes dengún avisu. Interactua con otros p'aniciar la conversación.",
"empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other instances to fill it up",
"federation.change": "Adjust status federation",
@@ -134,19 +137,43 @@
"follow_request.authorize": "Autorizar",
"follow_request.reject": "Refugar",
"getting_started.developers": "Desendolcadores",
+ "getting_started.directory": "Profile directory",
"getting_started.documentation": "Documentación",
- "getting_started.find_friends": "Alcontrar collacios de Twitter",
- "getting_started.heading": "Getting started",
+ "getting_started.heading": "Entamu",
"getting_started.invite": "Convidar xente",
"getting_started.open_source_notice": "Mastodon ye software de códigu abiertu. Pues collaborar o informar de fallos en {github} (GitHub).",
"getting_started.security": "Seguranza",
"getting_started.terms": "Términos del serviciu",
+ "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.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",
+ "home.column_settings.show_reblogs": "Amosar toots compartíos",
+ "home.column_settings.show_replies": "Amosar rempuestes",
+ "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",
+ "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.",
+ "introduction.interactions.action": "Finish tutorial!",
+ "introduction.interactions.favourite.headline": "Favourite",
+ "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.text": "You can share other people's toots with your followers by boosting them.",
+ "introduction.interactions.reply.headline": "Reply",
+ "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.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": "pa dir p'atrás",
"keyboard_shortcuts.blocked": "p'abrir la llista d'usuarios bloquiaos",
- "keyboard_shortcuts.boost": "to boost",
+ "keyboard_shortcuts.boost": "pa compartir un toot",
"keyboard_shortcuts.column": "to focus a status in one of the columns",
"keyboard_shortcuts.compose": "to focus the compose textarea",
"keyboard_shortcuts.description": "Descripción",
@@ -178,33 +205,33 @@
"lightbox.close": "Close",
"lightbox.next": "Siguiente",
"lightbox.previous": "Previous",
- "lists.account.add": "Add to list",
- "lists.account.remove": "Remove from list",
- "lists.delete": "Delete list",
- "lists.edit": "Edit list",
+ "lists.account.add": "Amestar a la llista",
+ "lists.account.remove": "Desaniciar de la llista",
+ "lists.delete": "Desaniciar la llista",
+ "lists.edit": "Editar la llista",
"lists.new.create": "Add list",
- "lists.new.title_placeholder": "New list title",
- "lists.search": "Search among people you follow",
- "lists.subheading": "Your lists",
- "loading_indicator.label": "Loading...",
+ "lists.new.title_placeholder": "Títulu nuevu de la llista",
+ "lists.search": "Guetar ente la xente que sigues",
+ "lists.subheading": "Les tos llistes",
+ "loading_indicator.label": "Cargando...",
"media_gallery.toggle_visible": "Toggle visibility",
"missing_indicator.label": "Nun s'alcontró",
"missing_indicator.sublabel": "Esti recursu nun pudo alcontrase",
"mute_modal.hide_notifications": "Hide notifications from this user?",
- "navigation_bar.apps": "Aplicaciones móviles",
+ "navigation_bar.apps": "Aplicaciones pa móviles",
"navigation_bar.blocks": "Usuarios bloquiaos",
- "navigation_bar.community_timeline": "Local timeline",
+ "navigation_bar.community_timeline": "Llinia temporal llocal",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Mensaxes direutos",
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Dominios anubríos",
- "navigation_bar.edit_profile": "Editar perfil",
+ "navigation_bar.edit_profile": "Editar el perfil",
"navigation_bar.favourites": "Favoritos",
- "navigation_bar.filters": "Muted words",
+ "navigation_bar.filters": "Pallabres silenciaes",
"navigation_bar.follow_requests": "Solicitúes de siguimientu",
"navigation_bar.info": "Tocante a esta instancia",
"navigation_bar.keyboard_shortcuts": "Atayos",
- "navigation_bar.lists": "Lists",
+ "navigation_bar.lists": "Llistes",
"navigation_bar.logout": "Zarrar sesión",
"navigation_bar.mutes": "Usuarios silenciaos",
"navigation_bar.personal": "Personal",
@@ -215,39 +242,26 @@
"notification.favourite": "{name} favourited your status",
"notification.follow": "{name} siguióte",
"notification.mention": "{name} mentóte",
- "notification.reblog": "{name} boosted your status",
+ "notification.reblog": "{name} compartió'l to estáu",
"notifications.clear": "Llimpiar avisos",
"notifications.clear_confirmation": "¿De xuru que quies llimpiar dafechu tolos avisos?",
"notifications.column_settings.alert": "Avisos d'escritoriu",
- "notifications.column_settings.favourite": "Favourites:",
+ "notifications.column_settings.favourite": "Favoritos:",
+ "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.follow": "Siguidores nuevos:",
"notifications.column_settings.mention": "Menciones:",
"notifications.column_settings.push": "Push notifications",
- "notifications.column_settings.reblog": "Boosts:",
+ "notifications.column_settings.reblog": "Toots compartíos:",
"notifications.column_settings.show": "Amosar en columna",
"notifications.column_settings.sound": "Reproducir soníu",
+ "notifications.filter.all": "All",
+ "notifications.filter.boosts": "Boosts",
+ "notifications.filter.favourites": "Favourites",
+ "notifications.filter.follows": "Follows",
+ "notifications.filter.mentions": "Mentions",
"notifications.group": "{count} avisos",
- "onboarding.done": "Fecho",
- "onboarding.next": "Siguiente",
- "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
- "onboarding.page_four.home": "La llinia temporal d'aniciu amuesa artículos de xente a la que sigues.",
- "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
- "onboarding.page_one.federation": "Mastodon ye una rede de sividores independientes xuníos pa facer una rede social grande. Nós llamamos instancies a esos sirvidores.",
- "onboarding.page_one.full_handle": "Your full handle",
- "onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.",
- "onboarding.page_one.welcome": "¡Afáyate en Mastodon!",
- "onboarding.page_six.admin": "Your instance's admin is {admin}.",
- "onboarding.page_six.almost_done": "Almost done...",
- "onboarding.page_six.appetoot": "Bon Appetoot!",
- "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
- "onboarding.page_six.github": "Mastodon is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
- "onboarding.page_six.guidelines": "community guidelines",
- "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
- "onboarding.page_six.various_app": "aplicaciones móviles",
- "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
- "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
- "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
- "onboarding.skip": "Skip",
"privacy.change": "Adjust status privacy",
"privacy.direct.long": "Post to mentioned users only",
"privacy.direct.short": "Direct",
@@ -257,7 +271,7 @@
"privacy.public.short": "Public",
"privacy.unlisted.long": "Do not show in public timelines",
"privacy.unlisted.short": "Unlisted",
- "regeneration_indicator.label": "Loading…",
+ "regeneration_indicator.label": "Cargando…",
"regeneration_indicator.sublabel": "Your home feed is being prepared!",
"relative_time.days": "{number}d",
"relative_time.hours": "{number}h",
@@ -272,20 +286,22 @@
"report.submit": "Submit",
"report.target": "Report {target}",
"search.placeholder": "Search",
- "search_popout.search_format": "Advanced search format",
+ "search_popout.search_format": "Formatu de gueta avanzada",
"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": "etiqueta",
"search_popout.tips.status": "estáu",
"search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
"search_popout.tips.user": "usuariu",
"search_results.accounts": "Xente",
- "search_results.hashtags": "Hashtags",
+ "search_results.hashtags": "Etiquetes",
"search_results.statuses": "Toots",
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
"standalone.public_title": "A look inside...",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "Bloquiar a @{name}",
- "status.cancel_reblog_private": "Unboost",
- "status.cannot_reblog": "This post cannot be boosted",
+ "status.cancel_reblog_private": "Dexar de compartir",
+ "status.cannot_reblog": "Esti artículu nun pue compartise",
"status.delete": "Delete",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Unviar un mensaxe direutu a @{name}",
@@ -294,54 +310,55 @@
"status.filtered": "Filtered",
"status.load_more": "Cargar más",
"status.local_only": "This post is only visible by other users of your instance",
- "status.media_hidden": "Media hidden",
+ "status.media_hidden": "Mediu anubríu",
"status.mention": "Mentar a @{name}",
"status.more": "Más",
"status.mute": "Silenciar a @{name}",
- "status.mute_conversation": "Mute conversation",
+ "status.mute_conversation": "Silenciar la conversación",
"status.open": "Espander esti estáu",
- "status.pin": "Pin on profile",
- "status.pinned": "Pinned toot",
+ "status.pin": "Fixar nel perfil",
+ "status.pinned": "Toot fixáu",
"status.read_more": "Read more",
- "status.reblog": "Boost",
- "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.reblog": "Compartir",
+ "status.reblog_private": "Compartir cola audiencia orixinal",
+ "status.reblogged_by": "{name} compartió",
+ "status.reblogs.empty": "Naide nun compartió esti toot entá. Cuando daquién lo faiga, va amosase equí.",
+ "status.redraft": "Desaniciar y reeditar",
"status.reply": "Responder",
"status.replyAll": "Reply to thread",
"status.report": "Report @{name}",
- "status.sensitive_toggle": "Click to view",
- "status.sensitive_warning": "Sensitive content",
+ "status.sensitive_toggle": "Fai clic pa velu",
+ "status.sensitive_warning": "Conteníu sensible",
"status.share": "Share",
"status.show_less": "Amosar menos",
"status.show_less_all": "Show less for all",
"status.show_more": "Amosar más",
"status.show_more_all": "Show more for all",
+ "status.show_thread": "Show thread",
"status.unmute_conversation": "Unmute conversation",
- "status.unpin": "Unpin from profile",
+ "status.unpin": "Desfixar del perfil",
"suggestions.dismiss": "Dismiss suggestion",
"suggestions.header": "You might be interested in…",
"tabs_bar.federated_timeline": "Federated",
"tabs_bar.home": "Aniciu",
- "tabs_bar.local_timeline": "Local",
+ "tabs_bar.local_timeline": "Llocal",
"tabs_bar.notifications": "Avisos",
"tabs_bar.search": "Search",
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
"ui.beforeunload": "El borrador va perdese si coles de Mastodon.",
"upload_area.title": "Drag & drop to upload",
"upload_button.label": "Add media",
- "upload_form.description": "Describe for the visually impaired",
+ "upload_form.description": "Descripción pa discapacitaos visuales",
"upload_form.focus": "Crop",
- "upload_form.undo": "Delete",
- "upload_progress.label": "Uploading...",
- "video.close": "Close video",
- "video.exit_fullscreen": "Exit full screen",
- "video.expand": "Expand video",
- "video.fullscreen": "Full screen",
- "video.hide": "Hide video",
- "video.mute": "Mute sound",
- "video.pause": "Pause",
- "video.play": "Play",
+ "upload_form.undo": "Desaniciar",
+ "upload_progress.label": "Xubiendo...",
+ "video.close": "Zarrar el videu",
+ "video.exit_fullscreen": "Colar de la pantalla completa",
+ "video.expand": "Espander el videu",
+ "video.fullscreen": "Pantalla completa",
+ "video.hide": "Anubrir el videu",
+ "video.mute": "Silenciar el soníu",
+ "video.pause": "Posar",
+ "video.play": "Reproducir",
"video.unmute": "Unmute sound"
}
diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json
index 3ae2ba7d3..c7eee08fa 100644
--- a/app/javascript/mastodon/locales/bg.json
+++ b/app/javascript/mastodon/locales/bg.json
@@ -1,4 +1,5 @@
{
+ "account.add_or_remove_from_list": "Add or Remove from lists",
"account.badges.bot": "Bot",
"account.block": "Блокирай",
"account.block_domain": "Hide everything from {domain}",
@@ -16,6 +17,7 @@
"account.follows_you": "Твой последовател",
"account.hide_reblogs": "Hide boosts from @{name}",
"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.media": "Media",
"account.mention": "Споменаване",
"account.moved_to": "{name} has moved to:",
@@ -111,6 +113,7 @@
"emoji_button.search_results": "Search results",
"emoji_button.symbols": "Symbols",
"emoji_button.travel": "Travel & Places",
+ "empty_column.account_timeline": "No toots here!",
"empty_column.blocks": "You haven't blocked any users yet.",
"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.",
@@ -134,16 +137,40 @@
"follow_request.authorize": "Authorize",
"follow_request.reject": "Reject",
"getting_started.developers": "Developers",
+ "getting_started.directory": "Profile directory",
"getting_started.documentation": "Documentation",
- "getting_started.find_friends": "Find friends from Twitter",
"getting_started.heading": "Първи стъпки",
"getting_started.invite": "Invite people",
"getting_started.open_source_notice": "Mastodon е софтуер с отворен код. Можеш да помогнеш или да докладваш за проблеми в Github: {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.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",
+ "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",
+ "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.",
+ "introduction.interactions.action": "Finish tutorial!",
+ "introduction.interactions.favourite.headline": "Favourite",
+ "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.text": "You can share other people's toots with your followers by boosting them.",
+ "introduction.interactions.reply.headline": "Reply",
+ "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.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",
@@ -220,34 +247,21 @@
"notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?",
"notifications.column_settings.alert": "Десктоп известия",
"notifications.column_settings.favourite": "Предпочитани:",
+ "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.follow": "Нови последователи:",
"notifications.column_settings.mention": "Споменавания:",
"notifications.column_settings.push": "Push notifications",
"notifications.column_settings.reblog": "Споделяния:",
"notifications.column_settings.show": "Покажи в колона",
"notifications.column_settings.sound": "Play sound",
+ "notifications.filter.all": "All",
+ "notifications.filter.boosts": "Boosts",
+ "notifications.filter.favourites": "Favourites",
+ "notifications.filter.follows": "Follows",
+ "notifications.filter.mentions": "Mentions",
"notifications.group": "{count} notifications",
- "onboarding.done": "Done",
- "onboarding.next": "Next",
- "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
- "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
- "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
- "onboarding.page_one.federation": "Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
- "onboarding.page_one.full_handle": "Your full handle",
- "onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.",
- "onboarding.page_one.welcome": "Welcome to Mastodon!",
- "onboarding.page_six.admin": "Your instance's admin is {admin}.",
- "onboarding.page_six.almost_done": "Almost done...",
- "onboarding.page_six.appetoot": "Bon Appetoot!",
- "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
- "onboarding.page_six.github": "Mastodon is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
- "onboarding.page_six.guidelines": "community guidelines",
- "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
- "onboarding.page_six.various_app": "mobile apps",
- "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
- "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
- "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
- "onboarding.skip": "Skip",
"privacy.change": "Adjust status privacy",
"privacy.direct.long": "Post to mentioned users only",
"privacy.direct.short": "Direct",
@@ -283,6 +297,8 @@
"search_results.statuses": "Toots",
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
"standalone.public_title": "A look inside...",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "Block @{name}",
"status.cancel_reblog_private": "Unboost",
"status.cannot_reblog": "This post cannot be boosted",
@@ -318,6 +334,7 @@
"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.unmute_conversation": "Unmute conversation",
"status.unpin": "Unpin from profile",
"suggestions.dismiss": "Dismiss suggestion",
diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json
index b4e7f9802..5d7830772 100644
--- a/app/javascript/mastodon/locales/ca.json
+++ b/app/javascript/mastodon/locales/ca.json
@@ -1,4 +1,5 @@
{
+ "account.add_or_remove_from_list": "Afegir o Treure de les llistes",
"account.badges.bot": "Bot",
"account.block": "Bloca @{name}",
"account.block_domain": "Amaga-ho tot de {domain}",
@@ -16,6 +17,7 @@
"account.follows_you": "Et segueix",
"account.hide_reblogs": "Amaga els impulsos de @{name}",
"account.link_verified_on": "La propietat d'aquest enllaç es va verificar el dia {date}",
+ "account.locked_info": "Aquest estat de privadesa del compte està definit com a bloquejat. El propietari revisa manualment qui pot seguir-lo.",
"account.media": "Media",
"account.mention": "Esmentar @{name}",
"account.moved_to": "{name} s'ha mogut a:",
@@ -111,6 +113,7 @@
"emoji_button.search_results": "Resultats de la cerca",
"emoji_button.symbols": "Símbols",
"emoji_button.travel": "Viatges i Llocs",
+ "empty_column.account_timeline": "No hi ha toots aquí!",
"empty_column.blocks": "Encara no has bloquejat cap usuari.",
"empty_column.community": "La línia de temps local és buida. Escriu alguna cosa públicament per fer rodar la pilota!",
"empty_column.direct": "Encara no tens missatges directes. Quan enviïs o rebis un, es mostrarà aquí.",
@@ -134,16 +137,40 @@
"follow_request.authorize": "Autoritzar",
"follow_request.reject": "Rebutjar",
"getting_started.developers": "Desenvolupadors",
+ "getting_started.directory": "Directori de perfils",
"getting_started.documentation": "Documentació",
- "getting_started.find_friends": "Troba amics de Twitter",
"getting_started.heading": "Començant",
"getting_started.invite": "Convida gent",
"getting_started.open_source_notice": "Mastodon és un programari de codi obert. Pots contribuir o informar de problemes a GitHub a {github}.",
"getting_started.security": "Seguretat",
"getting_started.terms": "Termes del servei",
+ "hashtag.column_header.tag_mode.all": "i {additional}",
+ "hashtag.column_header.tag_mode.any": "o {additional}",
+ "hashtag.column_header.tag_mode.none": "sense {additional}",
+ "hashtag.column_settings.tag_mode.all": "Tots aquests",
+ "hashtag.column_settings.tag_mode.any": "Qualsevol d’aquests",
+ "hashtag.column_settings.tag_mode.none": "Cap d’aquests",
+ "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
"home.column_settings.basic": "Bàsic",
"home.column_settings.show_reblogs": "Mostrar impulsos",
"home.column_settings.show_replies": "Mostrar respostes",
+ "introduction.federation.action": "Següent",
+ "introduction.federation.federated.headline": "Federated",
+ "introduction.federation.federated.text": "Les publicacions públiques d'altres servidors del fedivers apareixeran a la línia de temps federada.",
+ "introduction.federation.home.headline": "Home",
+ "introduction.federation.home.text": "Les publicacions de les persones que segueixes apareixeran a la línia de temps Inici. Pots seguir qualsevol persona de qualsevol servidor!",
+ "introduction.federation.local.headline": "Local",
+ "introduction.federation.local.text": "Les publicacions públiques de les persones del teu mateix servidor apareixeran a la línia de temps local.",
+ "introduction.interactions.action": "Finalitza el tutorial!",
+ "introduction.interactions.favourite.headline": "Favorit",
+ "introduction.interactions.favourite.text": "Pots desar un toot per a més tard i deixar que l'autor sàpiga que t'ha agradat, marcant-lo com a favorit.",
+ "introduction.interactions.reblog.headline": "Impuls",
+ "introduction.interactions.reblog.text": "Pots compartir amb els teus seguidors els toots d'altres usuaris, impulsant-los.",
+ "introduction.interactions.reply.headline": "Respondre",
+ "introduction.interactions.reply.text": "Pots respondre als toots d'altres persones i als teus propis, que els unirà en una conversa.",
+ "introduction.welcome.action": "Som-hi!",
+ "introduction.welcome.headline": "Primers passos",
+ "introduction.welcome.text": "Benvingut al fedivers! En uns moments podràs emetre missatges i conversar amb els teus amics en una gran varietat de servidors. Però aquest servidor, {domain}, és especial: allotja el teu perfil així que recorda el seu nom.",
"keyboard_shortcuts.back": "navegar enrera",
"keyboard_shortcuts.blocked": "per obrir la llista d'usuaris bloquejats",
"keyboard_shortcuts.boost": "impulsar",
@@ -220,34 +247,21 @@
"notifications.clear_confirmation": "Estàs segur que vols esborrar permanenment totes les teves notificacions?",
"notifications.column_settings.alert": "Notificacions d'escriptori",
"notifications.column_settings.favourite": "Favorits:",
+ "notifications.column_settings.filter_bar.advanced": "Mostra totes les categories",
+ "notifications.column_settings.filter_bar.category": "Barra ràpida de filtres",
+ "notifications.column_settings.filter_bar.show": "Mostra",
"notifications.column_settings.follow": "Nous seguidors:",
"notifications.column_settings.mention": "Mencions:",
"notifications.column_settings.push": "Push notificacions",
"notifications.column_settings.reblog": "Impulsos:",
"notifications.column_settings.show": "Mostrar en la columna",
"notifications.column_settings.sound": "Reproduïr so",
+ "notifications.filter.all": "Tots",
+ "notifications.filter.boosts": "Impulsos",
+ "notifications.filter.favourites": "Favorits",
+ "notifications.filter.follows": "Seguiments",
+ "notifications.filter.mentions": "Mencions",
"notifications.group": "{count} notificacions",
- "onboarding.done": "Fet",
- "onboarding.next": "Següent",
- "onboarding.page_five.public_timelines": "La línia de temps local mostra missatges públics de tothom de {domain}. La línia de temps federada mostra els missatges públics de tothom que la gent de {domain} segueix. Aquests són les línies de temps Públiques, una bona manera de descobrir noves persones.",
- "onboarding.page_four.home": "La línia de temps d'Inici mostra missatges de les persones que segueixes.",
- "onboarding.page_four.notifications": "La columna Notificacions mostra quan algú interactua amb tu.",
- "onboarding.page_one.federation": "Mastodon és una xarxa de servidors independents que s'uneixen per fer una xarxa social encara més gran. A aquests servidors els hi diem instàncies.",
- "onboarding.page_one.full_handle": "El teu usuari complet",
- "onboarding.page_one.handle_hint": "Això és el que els hi diries als teus amics que cerquin.",
- "onboarding.page_one.welcome": "Benvingut a Mastodon!",
- "onboarding.page_six.admin": "L'administrador de la teva instància és {admin}.",
- "onboarding.page_six.almost_done": "Quasi fet...",
- "onboarding.page_six.appetoot": "Bon Appetoot!",
- "onboarding.page_six.apps_available": "Hi ha {apps} disponibles per iOS, Android i altres plataformes.",
- "onboarding.page_six.github": "Mastodon és un programari de codi obert. Pots informar d'errors, sol·licitar característiques o contribuir en el codi a {github}.",
- "onboarding.page_six.guidelines": "Normes de la comunitat",
- "onboarding.page_six.read_guidelines": "Si us plau llegeix les {guidelines} de {domain}!",
- "onboarding.page_six.various_app": "aplicacions per mòbils",
- "onboarding.page_three.profile": "Edita el teu perfil per canviar el teu avatar, bio o el nom de visualització. També hi trobaràs altres preferències.",
- "onboarding.page_three.search": "Utilitza la barra de cerca per trobar gent i mirar etiquetes, com a {illustration} i {introductions}. Per buscar una persona que no està en aquesta instància, utilitza tot el seu nom d'usuari complert.",
- "onboarding.page_two.compose": "Escriu missatges en la columna de redacció. Pots pujar imatges, canviar la configuració de privacitat i afegir les advertències de contingut amb les icones de sota.",
- "onboarding.skip": "Omet",
"privacy.change": "Ajusta l'estat de privacitat",
"privacy.direct.long": "Publicar només per als usuaris esmentats",
"privacy.direct.short": "Directe",
@@ -283,6 +297,8 @@
"search_results.statuses": "Toots",
"search_results.total": "{count, number} {count, plural, un {result} altres {results}}",
"standalone.public_title": "Una mirada a l'interior ...",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "Block @{name}",
"status.cancel_reblog_private": "Desfer l'impuls",
"status.cannot_reblog": "Aquesta publicació no pot ser retootejada",
@@ -318,10 +334,11 @@
"status.show_less_all": "Mostra menys per a tot",
"status.show_more": "Mostra més",
"status.show_more_all": "Mostra més per a tot",
+ "status.show_thread": "Mostra el fil",
"status.unmute_conversation": "Activar conversació",
"status.unpin": "Deslliga del perfil",
- "suggestions.dismiss": "Dismiss suggestion",
- "suggestions.header": "You might be interested in…",
+ "suggestions.dismiss": "Descartar suggeriment",
+ "suggestions.header": "És possible que estiguis interessat en…",
"tabs_bar.federated_timeline": "Federada",
"tabs_bar.home": "Inici",
"tabs_bar.local_timeline": "Local",
@@ -332,7 +349,7 @@
"upload_area.title": "Arrossega i deixa anar per carregar",
"upload_button.label": "Afegir multimèdia (JPEG, PNG, GIF, WebM, MP4, MOV)",
"upload_form.description": "Descriure els problemes visuals",
- "upload_form.focus": "Retallar",
+ "upload_form.focus": "Modificar la previsualització",
"upload_form.undo": "Esborra",
"upload_progress.label": "Pujant...",
"video.close": "Tancar el vídeo",
diff --git a/app/javascript/mastodon/locales/co.json b/app/javascript/mastodon/locales/co.json
index c392eece6..8a27f5018 100644
--- a/app/javascript/mastodon/locales/co.json
+++ b/app/javascript/mastodon/locales/co.json
@@ -1,4 +1,5 @@
{
+ "account.add_or_remove_from_list": "Aghjustà o toglie da e liste",
"account.badges.bot": "Bot",
"account.block": "Bluccà @{name}",
"account.block_domain": "Piattà tuttu da {domain}",
@@ -16,6 +17,7 @@
"account.follows_you": "Vi seguita",
"account.hide_reblogs": "Piattà spartere da @{name}",
"account.link_verified_on": "A prupietà di stu ligame hè stata verificata u {date}",
+ "account.locked_info": "U statutu di vita privata di u contu hè chjosu. U pruprietariu esamina manualmente e dumande d'abbunamentu.",
"account.media": "Media",
"account.mention": "Mintuvà @{name}",
"account.moved_to": "{name} hè partutu nant'à:",
@@ -111,6 +113,7 @@
"emoji_button.search_results": "Risultati di a cerca",
"emoji_button.symbols": "Simbuli",
"emoji_button.travel": "Lochi è Viaghju",
+ "empty_column.account_timeline": "Nisun statutu quì!",
"empty_column.blocks": "Per avà ùn avete bluccatu manc'un utilizatore.",
"empty_column.community": "Ùn c'hè nunda indè a linea lucale. Scrivete puru qualcosa!",
"empty_column.direct": "Ùn avete ancu nisun missaghju direttu. S'è voi mandate o ricevete unu, u vidarete quì.",
@@ -134,16 +137,40 @@
"follow_request.authorize": "Auturizà",
"follow_request.reject": "Righjittà",
"getting_started.developers": "Sviluppatori",
+ "getting_started.directory": "Annuariu di i prufili",
"getting_started.documentation": "Documentation",
- "getting_started.find_friends": "Truvà amichi da Twitter",
"getting_started.heading": "Per principià",
"getting_started.invite": "Invità ghjente",
"getting_started.open_source_notice": "Mastodon ghjè un lugiziale liberu. Pudete cuntribuisce à u codice o a traduzione, o palisà un bug, nant'à GitHub: {github}.",
"getting_started.security": "Sicurità",
"getting_started.terms": "Cundizione di u serviziu",
+ "hashtag.column_header.tag_mode.all": "è {additional}",
+ "hashtag.column_header.tag_mode.any": "o {additional}",
+ "hashtag.column_header.tag_mode.none": "senza {additional}",
+ "hashtag.column_settings.tag_mode.all": "Tutti quessi",
+ "hashtag.column_settings.tag_mode.any": "Unu di quessi",
+ "hashtag.column_settings.tag_mode.none": "Nisunu di quessi",
+ "hashtag.column_settings.tag_toggle": "Inchjude tag addiziunali per sta colonna",
"home.column_settings.basic": "Bàsichi",
"home.column_settings.show_reblogs": "Vede e spartere",
"home.column_settings.show_replies": "Vede e risposte",
+ "introduction.federation.action": "Cuntinuà",
+ "introduction.federation.federated.headline": "Federata",
+ "introduction.federation.federated.text": "I statuti pubblichi da l'altri servori di u fediverse saranu mustrati nant'à a linea pubblica federata.",
+ "introduction.federation.home.headline": "Accolta",
+ "introduction.federation.home.text": "I statuti da a ghjente che vo siguitate saranu affissati nant'à a linea d'accolta. Pudete seguità qualvogliasia nant'à tutti i servori!",
+ "introduction.federation.local.headline": "Lucale",
+ "introduction.federation.local.text": "I statuti pubblichi da quelli chì sò nant'a listessu servore chì voi ponu esse visti indè a linea pubblica lucale.",
+ "introduction.interactions.action": "Finisce u tutoriale!",
+ "introduction.interactions.favourite.headline": "Favuritu",
+ "introduction.interactions.favourite.text": "Pudete salvà un statutu per ritruvallu più tardi, è fà sapè à l'autore chì v'hè piaciutu, l'aghustendu à i vostri favuriti.",
+ "introduction.interactions.reblog.headline": "Sparte",
+ "introduction.interactions.reblog.text": "Pudete sparte i statuti d'altre persone à i vostri abbunati cù u buttone di spartera.",
+ "introduction.interactions.reply.headline": "Risponde",
+ "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.",
"keyboard_shortcuts.back": "rivultà",
"keyboard_shortcuts.blocked": "per apre una lista d'utilizatori bluccati",
"keyboard_shortcuts.boost": "sparte",
@@ -220,34 +247,21 @@
"notifications.clear_confirmation": "Site sicuru·a che vulete toglie tutte ste nutificazione?",
"notifications.column_settings.alert": "Nutificazione nant'à l'urdinatore",
"notifications.column_settings.favourite": "Favuriti:",
+ "notifications.column_settings.filter_bar.advanced": "Affissà tutte e categurie",
+ "notifications.column_settings.filter_bar.category": "Barra di ricerca pronta",
+ "notifications.column_settings.filter_bar.show": "Mustrà",
"notifications.column_settings.follow": "Abbunati novi:",
"notifications.column_settings.mention": "Minzione:",
"notifications.column_settings.push": "Nutificazione Push",
"notifications.column_settings.reblog": "Spartere:",
"notifications.column_settings.show": "Mustrà indè a colonna",
"notifications.column_settings.sound": "Sunà",
+ "notifications.filter.all": "Tuttu",
+ "notifications.filter.boosts": "Spartere",
+ "notifications.filter.favourites": "Favuriti",
+ "notifications.filter.follows": "Abbunamenti",
+ "notifications.filter.mentions": "Minzione",
"notifications.group": "{count} nutificazione",
- "onboarding.done": "Fatta",
- "onboarding.next": "Siguente",
- "onboarding.page_five.public_timelines": "A linea pubblica lucale mostra statuti pubblichi da tuttu u mondu nant'à {domain}. A linea pubblica glubale mostra ancu quelli di a ghjente seguitata da l'utilizatori di {domain}. Quesse sò una bona manera d'incuntrà nove parsone.",
- "onboarding.page_four.home": "A linea d'accolta mostra i statuti di i vostr'abbunamenti.",
- "onboarding.page_four.notifications": "A colonna di nutificazione mostra l'interazzione ch'altre parsone anu cù u vostru contu.",
- "onboarding.page_one.federation": "Mastodon ghjè una rete di servori independenti, chjamati istanze, uniti indè una sola rete suciale.",
- "onboarding.page_one.full_handle": "U vostru identificatore cumplettu",
- "onboarding.page_one.handle_hint": "Quessu ghjè cio chì direte à i vostri amichi per circavi.",
- "onboarding.page_one.welcome": "Benvenuti/a nant'à Mastodon!",
- "onboarding.page_six.admin": "L'amministratore di a vostr'istanza hè {admin}.",
- "onboarding.page_six.almost_done": "Quasgi finitu...",
- "onboarding.page_six.appetoot": "Bon Appitootu!",
- "onboarding.page_six.apps_available": "Ci sò {apps} dispunibule per iOS, Android è altre piattaforme.",
- "onboarding.page_six.github": "Mastodon ghjè un lugiziale liberu. Pudete cuntribuisce à u codice o a traduzione, o palisà un prublemu, nant'à {github}.",
- "onboarding.page_six.guidelines": "regule di a cumunità",
- "onboarding.page_six.read_guidelines": "Ùn vi scurdate di leghje e {guidelines} di {domain}!",
- "onboarding.page_six.various_app": "applicazione pè u telefuninu",
- "onboarding.page_three.profile": "Pudete mudificà u prufile per cambia u ritrattu, a descrizzione è u nome affissatu. Ci sò ancu alcun'altre preferenze.",
- "onboarding.page_three.search": "Fate usu di l'area di ricerca per truvà altre persone è vede hashtag cum'è {illustration} o {introductions}. Per vede qualcunu ch'ùn hè micca nant'à st'istanza, cercate u so identificatore complettu (pare un'email).",
- "onboarding.page_two.compose": "I statuti è missaghji si scrivenu indè l'area di ridazzione. Pudete caricà imagine, cambià i parametri di pubblicazione, è mette avertimenti di cuntenuti cù i buttoni quì sottu.",
- "onboarding.skip": "Passà",
"privacy.change": "Mudificà a cunfidenzialità di u statutu",
"privacy.direct.long": "Mandà solu à quelli chì so mintuvati",
"privacy.direct.short": "Direttu",
@@ -282,7 +296,9 @@
"search_results.hashtags": "Hashtag",
"search_results.statuses": "Statuti",
"search_results.total": "{count, number} {count, plural, one {risultatu} other {risultati}}",
- "standalone.public_title": "Una vista di...",
+ "standalone.public_title": "Una vista à l'internu...",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "Bluccà @{name}",
"status.cancel_reblog_private": "Ùn sparte più",
"status.cannot_reblog": "Stu statutu ùn pò micca esse spartutu",
@@ -318,10 +334,11 @@
"status.show_less_all": "Ripiegà tuttu",
"status.show_more": "Slibrà",
"status.show_more_all": "Slibrà tuttu",
+ "status.show_thread": "Vede u filu",
"status.unmute_conversation": "Ùn piattà più a cunversazione",
"status.unpin": "Spuntarulà da u prufile",
- "suggestions.dismiss": "Dismiss suggestion",
- "suggestions.header": "You might be interested in…",
+ "suggestions.dismiss": "Righjittà a pruposta",
+ "suggestions.header": "Site forse interessatu·a da…",
"tabs_bar.federated_timeline": "Glubale",
"tabs_bar.home": "Accolta",
"tabs_bar.local_timeline": "Lucale",
@@ -332,7 +349,7 @@
"upload_area.title": "Drag & drop per caricà un fugliale",
"upload_button.label": "Aghjunghje un media (JPEG, PNG, GIF, WebM, MP4, MOV)",
"upload_form.description": "Discrive per i malvistosi",
- "upload_form.focus": "Riquatrà",
+ "upload_form.focus": "Cambià a vista",
"upload_form.undo": "Sguassà",
"upload_progress.label": "Caricamentu...",
"video.close": "Chjudà a video",
diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json
index a5815837c..3718b8e94 100644
--- a/app/javascript/mastodon/locales/cs.json
+++ b/app/javascript/mastodon/locales/cs.json
@@ -1,4 +1,5 @@
{
+ "account.add_or_remove_from_list": "Přidat nebo odstranit ze seznamů",
"account.badges.bot": "Robot",
"account.block": "Zablokovat uživatele @{name}",
"account.block_domain": "Skrýt vše z {domain}",
@@ -11,11 +12,12 @@
"account.follow": "Sledovat",
"account.followers": "Sledovatelé",
"account.followers.empty": "Tohoto uživatele ještě nikdo nesleduje.",
- "account.follows": "Sleduje",
+ "account.follows": "Sledovaní",
"account.follows.empty": "Tento uživatel ještě nikoho nesleduje.",
"account.follows_you": "Sleduje vás",
"account.hide_reblogs": "Skrýt boosty od uživatele @{name}",
"account.link_verified_on": "Vlastnictví tohoto odkazu bylo zkontrolováno {date}",
+ "account.locked_info": "Stav soukromí tohoto účtu je nastaven na zamčeno. Jeho vlastník ručně posuzuje, kdo ho může sledovat.",
"account.media": "Média",
"account.mention": "Zmínit uživatele @{name}",
"account.moved_to": "{name} se přesunul/a na:",
@@ -38,7 +40,7 @@
"alert.unexpected.message": "Objevila se neočekávaná chyba.",
"alert.unexpected.title": "Jejda!",
"boost_modal.combo": "Příště můžete pro přeskočení kliknout na {combo}",
- "bundle_column_error.body": "Při načtení tohoto prvku se něco pokazilo.",
+ "bundle_column_error.body": "Při načítání tohoto komponentu se něco pokazilo.",
"bundle_column_error.retry": "Zkuste to znovu",
"bundle_column_error.title": "Chyba sítě",
"bundle_modal_error.close": "Zavřít",
@@ -49,7 +51,7 @@
"column.direct": "Přímé zprávy",
"column.domain_blocks": "Skryté domény",
"column.favourites": "Oblíbené",
- "column.follow_requests": "Žádosti o sledování",
+ "column.follow_requests": "Požadavky o sledování",
"column.home": "Domů",
"column.lists": "Seznamy",
"column.mutes": "Ignorovaní uživatelé",
@@ -65,7 +67,7 @@
"column_header.unpin": "Odepnout",
"column_subheading.settings": "Nastavení",
"community.column_settings.media_only": "Pouze média",
- "compose_form.direct_message_warning": "Tento toot bude vidielný pouze zmíněným uživatelům.",
+ "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.",
"compose_form.lock_disclaimer": "Váš účet není {locked}. Kdokoliv vás může sledovat a vidět vaše příspěvky pouze pro sledovatele.",
@@ -111,6 +113,7 @@
"emoji_button.search_results": "Výsledky hledání",
"emoji_button.symbols": "Symboly",
"emoji_button.travel": "Cestování a místa",
+ "empty_column.account_timeline": "Tady nejsou žádné tooty!",
"empty_column.blocks": "Ještě jste nezablokoval/a žádného uživatele.",
"empty_column.community": "Místní časová osa je prázdná. Napište něco veřejně a rozhýbejte to tu!",
"empty_column.direct": "Ještě nemáte žádné přímé zprávy. Pokud nějakou pošlete nebo dostanete, zobrazí se zde.",
@@ -134,16 +137,40 @@
"follow_request.authorize": "Autorizovat",
"follow_request.reject": "Odmítnout",
"getting_started.developers": "Vývojáři",
+ "getting_started.directory": "Adresář profilů",
"getting_started.documentation": "Dokumentace",
- "getting_started.find_friends": "Najděte si přátele z Twitteru",
"getting_started.heading": "Začínáme",
"getting_started.invite": "Pozvat lidi",
"getting_started.open_source_notice": "Mastodon je otevřený software. Na GitHubu k němu můžete přispět nebo nahlásit chyby: {github}.",
"getting_started.security": "Zabezpečení",
"getting_started.terms": "Podmínky používání",
+ "hashtag.column_header.tag_mode.all": "a {additional}",
+ "hashtag.column_header.tag_mode.any": "nebo {additional}",
+ "hashtag.column_header.tag_mode.none": "bez {additional}",
+ "hashtag.column_settings.tag_mode.all": "Všechny z těchto",
+ "hashtag.column_settings.tag_mode.any": "Jakékoliv z těchto",
+ "hashtag.column_settings.tag_mode.none": "Žádné z těchto",
+ "hashtag.column_settings.tag_toggle": "Zahrnout v tomto sloupci dodatečné hashtagy",
"home.column_settings.basic": "Základní",
"home.column_settings.show_reblogs": "Zobrazit boosty",
"home.column_settings.show_replies": "Zobrazit odpovědi",
+ "introduction.federation.action": "Další",
+ "introduction.federation.federated.headline": "Federovaná",
+ "introduction.federation.federated.text": "Veřejné příspěvky z jiných serverů na fediverse se zobrazí na federované časové ose.",
+ "introduction.federation.home.headline": "Domů",
+ "introduction.federation.home.text": "Příspěvky od lidí, které sledujete, se objeví ve vašem domovském proudu. Můžete sledovat kohokoliv na jakémkoliv serveru!",
+ "introduction.federation.local.headline": "Místní",
+ "introduction.federation.local.text": "Veřejné příspěvky od lidí ze stejného serveru, jako vy, se zobrazí na místní časové ose.",
+ "introduction.interactions.action": "Dokončit tutoriál!",
+ "introduction.interactions.favourite.headline": "Oblíbení",
+ "introduction.interactions.favourite.text": "Oblíbením si můžete uložit toot na později a dát jeho autorovi vědět, že se vám líbí.",
+ "introduction.interactions.reblog.headline": "Boost",
+ "introduction.interactions.reblog.text": "Boostnutím můžete sdílet tooty jiných lidí s vašimi sledovately.",
+ "introduction.interactions.reply.headline": "Odpověď",
+ "introduction.interactions.reply.text": "Můžete odpovídat na tooty jiných lidí i vaše vlastní, což je propojí do konverzace.",
+ "introduction.welcome.action": "Jdeme na to!",
+ "introduction.welcome.headline": "První kroky",
+ "introduction.welcome.text": "Vítejte na fediverse! Za malou chvíli budete moci posílat zprávy a povídat si se svými přátely přes širokou škálu serverů. Tento server, {domain}, je však speciální—je na něm váš profil, proto si zapamatujte jeho jméno.",
"keyboard_shortcuts.back": "k návratu zpět",
"keyboard_shortcuts.blocked": "k otevření seznamu blokovaných uživatelů",
"keyboard_shortcuts.boost": "k boostnutí",
@@ -151,7 +178,7 @@
"keyboard_shortcuts.compose": "k zaměření na psací prostor",
"keyboard_shortcuts.description": "Popis",
"keyboard_shortcuts.direct": "k otevření sloupce s přímými zprávami",
- "keyboard_shortcuts.down": "k přesunutí dolů v seznamu",
+ "keyboard_shortcuts.down": "k posunutí dolů v seznamu",
"keyboard_shortcuts.enter": "k otevření příspěvku",
"keyboard_shortcuts.favourite": "k oblíbení",
"keyboard_shortcuts.favourites": "k otevření seznamu oblíbených",
@@ -169,7 +196,7 @@
"keyboard_shortcuts.profile": "k otevření autorova profilu",
"keyboard_shortcuts.reply": "k odpovězení",
"keyboard_shortcuts.requests": "k otevření seznamu požadavků o sledování",
- "keyboard_shortcuts.search": "k zaměření na vyhledávání",
+ "keyboard_shortcuts.search": "k zaměření na hledání",
"keyboard_shortcuts.start": "k otevření sloupce „začínáme“",
"keyboard_shortcuts.toggle_hidden": "k zobrazení/skrytí textu za varováním o obsahu",
"keyboard_shortcuts.toot": "k napsání úplně nového tootu",
@@ -184,13 +211,13 @@
"lists.edit": "Upravit seznam",
"lists.new.create": "Přidat seznam",
"lists.new.title_placeholder": "Název nového seznamu",
- "lists.search": "Hledejte mezi uživateli, které sledujete",
+ "lists.search": "Hledejte mezi lidmi, které sledujete",
"lists.subheading": "Vaše seznamy",
"loading_indicator.label": "Načítám...",
"media_gallery.toggle_visible": "Přepínat viditelnost",
"missing_indicator.label": "Nenalezeno",
"missing_indicator.sublabel": "Tento zdroj se nepodařilo najít",
- "mute_modal.hide_notifications": "Skrýt oznámení před tímto uživatelem?",
+ "mute_modal.hide_notifications": "Skrýt oznámení od tohoto uživatele?",
"navigation_bar.apps": "Mobilní aplikace",
"navigation_bar.blocks": "Blokovaní uživatelé",
"navigation_bar.community_timeline": "Místní časová osa",
@@ -201,7 +228,7 @@
"navigation_bar.edit_profile": "Upravit profil",
"navigation_bar.favourites": "Oblíbené",
"navigation_bar.filters": "Skrytá slova",
- "navigation_bar.follow_requests": "Žádosti o sledování",
+ "navigation_bar.follow_requests": "Požadavky o sledování",
"navigation_bar.info": "O této instanci",
"navigation_bar.keyboard_shortcuts": "Klávesové zkratky",
"navigation_bar.lists": "Seznamy",
@@ -220,34 +247,21 @@
"notifications.clear_confirmation": "Jste si jistý/á, že chcete trvale vymazat všechna vaše oznámení?",
"notifications.column_settings.alert": "Desktopová oznámení",
"notifications.column_settings.favourite": "Oblíbené:",
+ "notifications.column_settings.filter_bar.advanced": "Zobrazit všechny kategorie",
+ "notifications.column_settings.filter_bar.category": "Panel rychlého filtrování",
+ "notifications.column_settings.filter_bar.show": "Zobrazit",
"notifications.column_settings.follow": "Noví sledovatelé:",
"notifications.column_settings.mention": "Zmínky:",
"notifications.column_settings.push": "Push oznámení",
"notifications.column_settings.reblog": "Boosty:",
"notifications.column_settings.show": "Zobrazit ve sloupci",
"notifications.column_settings.sound": "Přehrát zvuk",
+ "notifications.filter.all": "Vše",
+ "notifications.filter.boosts": "Boosty",
+ "notifications.filter.favourites": "Oblíbení",
+ "notifications.filter.follows": "Sledování",
+ "notifications.filter.mentions": "Zmínky",
"notifications.group": "{count} oznámení",
- "onboarding.done": "Hotovo",
- "onboarding.next": "Další",
- "onboarding.page_five.public_timelines": "Místní časová osa zobrazuje veřejné příspěvky od všech lidí na {domain}. Federovaná časová osa zobrazuje veřejné příspěvky ode všech, které lidé na {domain} sledují. Toto jsou veřejné časové osy, výborný způsob, jak objevovat nové lidi.",
- "onboarding.page_four.home": "Domovská časová osa zobrazuje příspěvky od lidí, které sledujete.",
- "onboarding.page_four.notifications": "Sloupec oznámení se zobrazí, když s vámi někdo bude komunikovat.",
- "onboarding.page_one.federation": "Mastodon je síť nezávislých serverů, jejichž propojením vzniká jedna velká sociální síť. Těmto serverům říkáme instance.",
- "onboarding.page_one.full_handle": "Vaše celá adresa profilu",
- "onboarding.page_one.handle_hint": "Tohle je, co byste řekl/a svým přátelům, aby hledali.",
- "onboarding.page_one.welcome": "Vítejte na Mastodonu!",
- "onboarding.page_six.admin": "Administrátorem vaší instance je {admin}.",
- "onboarding.page_six.almost_done": "Skoro hotovo...",
- "onboarding.page_six.appetoot": "Bon appetoot!",
- "onboarding.page_six.apps_available": "Jsou dostupné {apps} pro iOS, Android a jiné platformy.",
- "onboarding.page_six.github": "Mastodon je svobodný a otevřený software. Na {github} můžete nahlásit chyby, požádat o nové funkce, nebo přispívat ke kódu.",
- "onboarding.page_six.guidelines": "komunitní pravidla",
- "onboarding.page_six.read_guidelines": "Prosím přečtěte si {guidelines} {domain}!",
- "onboarding.page_six.various_app": "mobilní aplikace",
- "onboarding.page_three.profile": "Upravte si svůj profil a změňte si svůj avatar, popis profilu a zobrazované jméno. V nastaveních najdete i další možnosti.",
- "onboarding.page_three.search": "Pomocí vyhledávacího řádku najděte lidi a podívejte se na hashtagy jako {illustration} a {introductions}. Chcete-li najít někoho, kdo není na této instanci, použijte jeho celou adresu profilu.",
- "onboarding.page_two.compose": "Příspěvky pište z pole na komponování. Ikonami níže můžete nahrávat obrázky, změnit nastavení soukromí a přidat varování o obsahu.",
- "onboarding.skip": "Přeskočit",
"privacy.change": "Změnit soukromí příspěvku",
"privacy.direct.long": "Odeslat pouze zmíněným uživatelům",
"privacy.direct.short": "Přímý",
@@ -265,28 +279,30 @@
"relative_time.minutes": "{number} m",
"relative_time.seconds": "{number} s",
"reply_indicator.cancel": "Zrušit",
- "report.forward": "Přeposlat k {target}",
+ "report.forward": "Přeposlat na {target}",
"report.forward_hint": "Tento účet je z jiného serveru. Chcete na něj také poslat anonymizovanou kopii?",
"report.hint": "Toto nahlášení bude zasláno moderátorům vaší instance. Níže můžete uvést, proč tento účet nahlašujete:",
- "report.placeholder": "Další komentáře",
+ "report.placeholder": "Dodatečné komentáře",
"report.submit": "Odeslat",
- "report.target": "Nahlásit {target}",
+ "report.target": "Nahlášení uživatele {target}",
"search.placeholder": "Hledat",
- "search_popout.search_format": "Pokročilé vyhledávání",
- "search_popout.tips.full_text": "Jednoduchý textový výpis příspěvků, které jste napsal/a, oblíbil/a si, boostnul/a, nebo v nich byl/a zmíněn/a, včetně odpovídajících přezdívek, jmen a hashtagů.",
+ "search_popout.search_format": "Pokročilé hledání",
+ "search_popout.tips.full_text": "Jednoduchý textový výpis příspěvků, které jste napsal/a, oblíbil/a si, boostnul/a, nebo v nich byl/a zmíněn/a, včetně odpovídajících přezdívek, zobrazovaných jmen a hashtagů.",
"search_popout.tips.hashtag": "hashtag",
"search_popout.tips.status": "příspěvek",
- "search_popout.tips.text": "Jednoduchý textový výpis odpovídajících jmen, přezdívek a hashtagů",
+ "search_popout.tips.text": "Jednoduchý textový výpis odpovídajících zobrazovaných jmen, přezdívek a hashtagů",
"search_popout.tips.user": "uživatel",
"search_results.accounts": "Lidé",
"search_results.hashtags": "Hashtagy",
"search_results.statuses": "Tooty",
- "search_results.total": "{count, number} {count, plural, one {výsledek} other {výsledků}}",
+ "search_results.total": "{count, number} {count, plural, one {výsledek} few {výsledky} many {výsledku} other {výsledků}}",
"standalone.public_title": "Nahlédněte dovnitř...",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "Zablokovat uživatele @{name}",
"status.cancel_reblog_private": "Zrušit boost",
"status.cannot_reblog": "Tento příspěvek nemůže být boostnutý",
- "status.delete": "Delete",
+ "status.delete": "Smazat",
"status.detailed_status": "Detailní zobrazení konverzace",
"status.direct": "Poslat přímou zprávu uživateli @{name}",
"status.embed": "Vložit",
@@ -318,21 +334,22 @@
"status.show_less_all": "Zobrazit méně pro všechny",
"status.show_more": "Zobrazit více",
"status.show_more_all": "Zobrazit více pro všechny",
+ "status.show_thread": "Zobrazit vlákno",
"status.unmute_conversation": "Přestat ignorovat konverzaci",
"status.unpin": "Odepnout z profilu",
- "suggestions.dismiss": "Dismiss suggestion",
- "suggestions.header": "You might be interested in…",
+ "suggestions.dismiss": "Odmítnout návrh",
+ "suggestions.header": "Mohlo by vás zajímat…",
"tabs_bar.federated_timeline": "Federovaná",
"tabs_bar.home": "Domů",
"tabs_bar.local_timeline": "Místní",
"tabs_bar.notifications": "Oznámení",
"tabs_bar.search": "Hledat",
- "trends.count_by_accounts": "{count} {rawCount, plural, one {člověk} other {lidí}} diskutuje",
+ "trends.count_by_accounts": "{count} {rawCount, plural, one {člověk} few {lidé} many {lidí} other {lidí}} hovoří",
"ui.beforeunload": "Váš koncept se ztratí, pokud Mastodon opustíte.",
"upload_area.title": "Přetažením nahrajete",
"upload_button.label": "Přidat média (JPEG, PNG, GIF, WebM, MP4, MOV)",
"upload_form.description": "Popis pro zrakově postižené",
- "upload_form.focus": "Vystřihnout",
+ "upload_form.focus": "Změnit náhled",
"upload_form.undo": "Smazat",
"upload_progress.label": "Nahrávám...",
"video.close": "Zavřít video",
diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json
index 1a3cc5f6e..f96b2e22f 100644
--- a/app/javascript/mastodon/locales/cy.json
+++ b/app/javascript/mastodon/locales/cy.json
@@ -1,4 +1,5 @@
{
+ "account.add_or_remove_from_list": "Add or Remove from lists",
"account.badges.bot": "Bot",
"account.block": "Blocio @{name}",
"account.block_domain": "Cuddio popeth rhag {domain}",
@@ -16,6 +17,7 @@
"account.follows_you": "Yn eich dilyn chi",
"account.hide_reblogs": "Cuddio bwstiau o @{name}",
"account.link_verified_on": "Gwiriwyd perchnogaeth y ddolen yma ar {date}",
+ "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
"account.media": "Cyfryngau",
"account.mention": "Crybwyll @{name}",
"account.moved_to": "Mae @{name} wedi symud i:",
@@ -111,6 +113,7 @@
"emoji_button.search_results": "Canlyniadau chwilio",
"emoji_button.symbols": "Symbolau",
"emoji_button.travel": "Teithio & Llefydd",
+ "empty_column.account_timeline": "No toots here!",
"empty_column.blocks": "Nid ydych wedi blocio unrhyw ddefnyddwyr eto.",
"empty_column.community": "Mae'r ffrwd lleol yn wag. Ysgrifenwch rhywbeth yn gyhoeddus i gael dechrau arni!",
"empty_column.direct": "Nid oes gennych unrhyw negeseuon preifat eto. Pan y byddwch yn anfon neu derbyn un, mi fydd yn ymddangos yma.",
@@ -134,16 +137,40 @@
"follow_request.authorize": "Caniatau",
"follow_request.reject": "Gwrthod",
"getting_started.developers": "Datblygwyr",
+ "getting_started.directory": "Profile directory",
"getting_started.documentation": "Dogfennaeth",
- "getting_started.find_friends": "Canfod ffrindiau o Twitter",
"getting_started.heading": "Dechrau",
"getting_started.invite": "Gwahodd pobl",
"getting_started.open_source_notice": "Mae Mastodon yn feddalwedd côd agored. Mae modd cyfrannu neu adrodd materion ar GitHUb ar {github}.",
"getting_started.security": "Diogelwch",
"getting_started.terms": "Telerau Gwasanaeth",
+ "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.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": "Syml",
"home.column_settings.show_reblogs": "Dangos bŵstiau",
"home.column_settings.show_replies": "Dangos ymatebion",
+ "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",
+ "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.",
+ "introduction.interactions.action": "Finish tutorial!",
+ "introduction.interactions.favourite.headline": "Favourite",
+ "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.text": "You can share other people's toots with your followers by boosting them.",
+ "introduction.interactions.reply.headline": "Reply",
+ "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.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": "i lywio nôl",
"keyboard_shortcuts.blocked": "i agor rhestr defnyddwyr a flociwyd",
"keyboard_shortcuts.boost": "i fŵstio",
@@ -220,34 +247,21 @@
"notifications.clear_confirmation": "Ydych chi'n sicr eich bod am glirio'ch holl hysbysiadau am byth?",
"notifications.column_settings.alert": "Hysbysiadau bwrdd gwaith",
"notifications.column_settings.favourite": "Ffefrynnau:",
+ "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.follow": "Dilynwyr newydd:",
"notifications.column_settings.mention": "Crybwylliadau:",
"notifications.column_settings.push": "Hysbysiadau push",
"notifications.column_settings.reblog": "Boosts:",
"notifications.column_settings.show": "Dangos yn y golofn",
"notifications.column_settings.sound": "Chwarae sain",
+ "notifications.filter.all": "All",
+ "notifications.filter.boosts": "Boosts",
+ "notifications.filter.favourites": "Favourites",
+ "notifications.filter.follows": "Follows",
+ "notifications.filter.mentions": "Mentions",
"notifications.group": "{count} o hysbysiadau",
- "onboarding.done": "Wedi'i wneud",
- "onboarding.next": "Nesaf",
- "onboarding.page_five.public_timelines": "Mae'r ffrwd leol yn dangos tŵtiau cyhoeddus o bawb ar y {domain}. Mae ffrwd y ffederasiwn yn dangos tŵtiau cyhoeddus o bawb y mae pobl ar y {domain} yn dilyn. Mae rhain yn Ffrydiau Cyhoeddus, ffordd wych o ddarganfod pobl newydd.",
- "onboarding.page_four.home": "Mae'r ffrwd gartref yn dangos twtiau o bobl yr ydych yn dilyn.",
- "onboarding.page_four.notifications": "Mae'r golofn hysbysiadau yn dangos pan mae rhywun yn ymwneud a chi.",
- "onboarding.page_one.federation": "Mae mastodon yn rwydwaith o weinyddwyr anibynnol sy'n uno i greu un rhwydwaith gymdeithasol mwy. Yr ydym yn galw'r gweinyddwyr yma yn achosion.",
- "onboarding.page_one.full_handle": "Eich enw Mastodon llawn",
- "onboarding.page_one.handle_hint": "Dyma beth y bysech chi'n dweud wrth eich ffrindiau i chwilota amdano.",
- "onboarding.page_one.welcome": "Croeso i Mastodon!",
- "onboarding.page_six.admin": "Gweinyddwr eich achos yw {admin}.",
- "onboarding.page_six.almost_done": "Bron a gorffen...",
- "onboarding.page_six.appetoot": "Bon Apetŵt!",
- "onboarding.page_six.apps_available": "Mae yna {apps} ar gael i iOS, Android a platfformau eraill.",
- "onboarding.page_six.github": "Mae Mastodon yn feddalwedd côd agored rhad ac am ddim. Mae modd adrodd bygiau, gwneud ceisiadau am nodweddion penodol, neu gyfrannu i'r côd ar {github}.",
- "onboarding.page_six.guidelines": "canllawiau cymunedol",
- "onboarding.page_six.read_guidelines": "Darllenwch {guidelines} y {domain} os gwelwch yn dda!",
- "onboarding.page_six.various_app": "apiau symudol",
- "onboarding.page_three.profile": "Golygwch eich proffil i newid eich afatar, bywgraffiad, ac enw arddangos. Yno fe fyddwch hefyd yn canfod gosodiadau eraill.",
- "onboarding.page_three.search": "Defnyddiwch y bar chwilio i ganfod pobl ac i edrych ar eu hashnodau, megis {illustration} ac {introductions}. I chwilio am rhywun nad ydynt ar yr achos hwn, defnyddiwch eu enw Mastodon llawn.",
- "onboarding.page_two.compose": "Ysrgifenwch dŵtiau o'r golofn cyfansoddi. Mae modd uwchlwytho lluniau, newid gosodiadau preifatrwydd, ac ychwanegu rhybudd cynnwys gyda'r eiconau isod.",
- "onboarding.skip": "Sgipio",
"privacy.change": "Addasu preifatrwdd y statws",
"privacy.direct.long": "Cyhoeddi i'r defnyddwyr sy'n cael eu crybwyll yn unig",
"privacy.direct.short": "Uniongyrchol",
@@ -283,6 +297,8 @@
"search_results.statuses": "Tŵtiau",
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
"standalone.public_title": "Golwg tu fewn...",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "Blocio @{name}",
"status.cancel_reblog_private": "Dadfŵstio",
"status.cannot_reblog": "Ni ellir sbarduno'r tŵt hwn",
@@ -318,6 +334,7 @@
"status.show_less_all": "Dangos llai i bawb",
"status.show_more": "Dangos mwy",
"status.show_more_all": "Dangos mwy i bawb",
+ "status.show_thread": "Show thread",
"status.unmute_conversation": "Dad-dawelu sgwrs",
"status.unpin": "Dadbinio o'r proffil",
"suggestions.dismiss": "Dismiss suggestion",
diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json
index d464f06b8..cb3b4c37f 100644
--- a/app/javascript/mastodon/locales/da.json
+++ b/app/javascript/mastodon/locales/da.json
@@ -1,4 +1,5 @@
{
+ "account.add_or_remove_from_list": "Tilføj eller fjern fra lister",
"account.badges.bot": "Robot",
"account.block": "Bloker @{name}",
"account.block_domain": "Skjul alt fra {domain}",
@@ -16,6 +17,7 @@
"account.follows_you": "Følger dig",
"account.hide_reblogs": "Skjul fremhævelserne fra @{name}",
"account.link_verified_on": "Ejerskabet af dette link blev tjekket den %{date}",
+ "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
"account.media": "Medie",
"account.mention": "Nævn @{name}",
"account.moved_to": "{name} er flyttet til:",
@@ -91,8 +93,8 @@
"confirmations.mute.message": "Er du sikker på, du vil dæmpe {name}?",
"confirmations.redraft.confirm": "Slet & omskriv",
"confirmations.redraft.message": "Er du sikker på, du vil slette denne status og omskrive den? Favoritter og fremhævelser vil gå tabt og svar til det oprindelige opslag vil blive forældreløse.",
- "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": "Svar",
+ "confirmations.reply.message": "Hvis du svarer nu vil du overskrive den besked du er ved at skrive. Er du sikker på, du vil fortsætte?",
"confirmations.unfollow.confirm": "Følg ikke længere",
"confirmations.unfollow.message": "Er du sikker på, du ikke længere vil følge {name}?",
"embed.instructions": "Indlejre denne status på din side ved at kopiere nedenstående kode.",
@@ -111,6 +113,7 @@
"emoji_button.search_results": "Søgeresultater",
"emoji_button.symbols": "Symboler",
"emoji_button.travel": "Rejser & steder",
+ "empty_column.account_timeline": "No toots here!",
"empty_column.blocks": "Du har ikke blokeret nogen endnu.",
"empty_column.community": "Den lokale tidslinje er tom. Skriv noget offentligt for at starte lavinen!",
"empty_column.direct": "Du har endnu ingen direkte beskeder. Når du sender eller modtager en, vil den vises her.",
@@ -134,16 +137,40 @@
"follow_request.authorize": "Godkend",
"follow_request.reject": "Afvis",
"getting_started.developers": "Udviklere",
+ "getting_started.directory": "Profile directory",
"getting_started.documentation": "Dokumentation",
- "getting_started.find_friends": "Find venner fra Twitter",
"getting_started.heading": "Kom igang",
"getting_started.invite": "Inviter folk",
"getting_started.open_source_notice": "Mastodon er et open source software. Du kan bidrage eller rapporterer fejl på GitHub {github}.",
"getting_started.security": "Sikkerhed",
"getting_started.terms": "Vilkår",
+ "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.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": "Grundlæggende",
"home.column_settings.show_reblogs": "Vis fremhævelser",
"home.column_settings.show_replies": "Vis svar",
+ "introduction.federation.action": "Næste",
+ "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",
+ "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.",
+ "introduction.interactions.action": "Finish tutorial!",
+ "introduction.interactions.favourite.headline": "Favourite",
+ "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.text": "You can share other people's toots with your followers by boosting them.",
+ "introduction.interactions.reply.headline": "Reply",
+ "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.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": "for at navigere dig tilbage",
"keyboard_shortcuts.blocked": "for at åbne listen over blokerede brugere",
"keyboard_shortcuts.boost": "for at fremhæve",
@@ -220,34 +247,21 @@
"notifications.clear_confirmation": "Er du sikker på, du vil rydde alle dine notifikationer permanent?",
"notifications.column_settings.alert": "Skrivebords notifikationer",
"notifications.column_settings.favourite": "Favoritter:",
+ "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.follow": "Nye følgere:",
"notifications.column_settings.mention": "Omtale:",
"notifications.column_settings.push": "Push notifikationer",
"notifications.column_settings.reblog": "Fremhævelser:",
"notifications.column_settings.show": "Vis i kolonne",
"notifications.column_settings.sound": "Afspil lyd",
+ "notifications.filter.all": "Alle",
+ "notifications.filter.boosts": "Boosts",
+ "notifications.filter.favourites": "Favoritter",
+ "notifications.filter.follows": "Følger",
+ "notifications.filter.mentions": "Mentions",
"notifications.group": "{count} notifikationer",
- "onboarding.done": "Færdig",
- "onboarding.next": "Næste",
- "onboarding.page_five.public_timelines": "Den lokale tidslinje viser offentlige opslag fra alle i {domain}. Den fælles tidslinje viser opslag fra alle der følges af folk i {domain}. Disse er de offentlige tidslinjer, hvilket er en god måde at møde nye mennesker på.",
- "onboarding.page_four.home": "Hjem tidslinjen viser opslag fra folk som du følger.",
- "onboarding.page_four.notifications": "Notifikations kolonnen viser når nogen interagerer med dig.",
- "onboarding.page_one.federation": "Mastodon er et netværk af uafhængige serverer der forbindes til at udgøre et større socialt netværk. Vi kalder disse servere for instanser.",
- "onboarding.page_one.full_handle": "Dit fulde brugernavn",
- "onboarding.page_one.handle_hint": "Dette er hvad du vil fortælle dine venner hvad de skal søge efter.",
- "onboarding.page_one.welcome": "Velkommen til Mastodon!",
- "onboarding.page_six.admin": "Administratoren for denne instans er {admin}.",
- "onboarding.page_six.almost_done": "Næsten færdig...",
- "onboarding.page_six.appetoot": "God Appetoot!",
- "onboarding.page_six.apps_available": "Der er {apps} tilgængelige for iOS, Android og andre platforme.",
- "onboarding.page_six.github": "Mastodon er frit open-source software. Du kan rapportere fejl, anmode om features, eller bidrage til koden ved at gå til {github}.",
- "onboarding.page_six.guidelines": "retningslinjer for fællesskabet",
- "onboarding.page_six.read_guidelines": "Læs venligst {domain}s {guidelines}!",
- "onboarding.page_six.various_app": "apps til mobilen",
- "onboarding.page_three.profile": "Rediger din profil for at ændre profilbillede, beskrivelse og visningsnavn. Der vil du også finde andre præferencer.",
- "onboarding.page_three.search": "Brug søgefeltdet for at finde folk og at kigge på hashtags, så som {illustration} and {introductions}. For at finde en person der ikke er på denne instans, brug deres fulde brugernavn.",
- "onboarding.page_two.compose": "Skriv opslag fra skrive kolonnen. Du kan uploade billeder, ændre privatlivsindstillinger, og tilføje indholds advarsler med ikoner forneden.",
- "onboarding.skip": "Spring over",
"privacy.change": "Ændre status privatliv",
"privacy.direct.long": "Post til kun de nævnte brugere",
"privacy.direct.short": "Direkte",
@@ -283,6 +297,8 @@
"search_results.statuses": "Trut",
"search_results.total": "{count, number} {count, plural, et {result} andre {results}}",
"standalone.public_title": "Et kig indenfor...",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "Bloker @{name}",
"status.cancel_reblog_private": "Fremhæv ikke længere",
"status.cannot_reblog": "Denne post kan ikke fremhæves",
@@ -302,7 +318,7 @@
"status.open": "Udvid denne status",
"status.pin": "Fastgør til profil",
"status.pinned": "Fastgjort trut",
- "status.read_more": "Read more",
+ "status.read_more": "Læs mere",
"status.reblog": "Fremhæv",
"status.reblog_private": "Fremhæv til oprindeligt publikum",
"status.reblogged_by": "{name} fremhævede",
@@ -318,6 +334,7 @@
"status.show_less_all": "Vis mindre for alle",
"status.show_more": "Vis mere",
"status.show_more_all": "Vis mere for alle",
+ "status.show_thread": "Show thread",
"status.unmute_conversation": "Fjern dæmpningen fra samtale",
"status.unpin": "Fjern som fastgjort fra profil",
"suggestions.dismiss": "Dismiss suggestion",
diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json
index 695d34fdf..8e268d5aa 100644
--- a/app/javascript/mastodon/locales/de.json
+++ b/app/javascript/mastodon/locales/de.json
@@ -1,9 +1,10 @@
{
+ "account.add_or_remove_from_list": "Hinzufügen oder Entfernen von Listen",
"account.badges.bot": "Bot",
"account.block": "@{name} blockieren",
"account.block_domain": "Alles von {domain} verstecken",
"account.blocked": "Blockiert",
- "account.direct": "Direct Message @{name}",
+ "account.direct": "Direktnachricht an @{name}",
"account.disclaimer_full": "Das Profil wird möglicherweise unvollständig wiedergegeben.",
"account.domain_blocked": "Domain versteckt",
"account.edit_profile": "Profil bearbeiten",
@@ -16,6 +17,7 @@
"account.follows_you": "Folgt dir",
"account.hide_reblogs": "Geteilte Beiträge von @{name} verbergen",
"account.link_verified_on": "Besitz dieses Links wurde geprüft am {date}",
+ "account.locked_info": "Der Privatsphärenstatus dieses Accounts wurde auf gesperrt gesetzt. Die Person bestimmt manuell wer ihm/ihr folgen darf.",
"account.media": "Medien",
"account.mention": "@{name} erwähnen",
"account.moved_to": "{name} ist umgezogen auf:",
@@ -111,6 +113,7 @@
"emoji_button.search_results": "Suchergebnisse",
"emoji_button.symbols": "Symbole",
"emoji_button.travel": "Reisen und Orte",
+ "empty_column.account_timeline": "Keine Beiträge!",
"empty_column.blocks": "Du hast keine Profile blockiert.",
"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.",
@@ -134,16 +137,40 @@
"follow_request.authorize": "Erlauben",
"follow_request.reject": "Ablehnen",
"getting_started.developers": "Entwickler",
+ "getting_started.directory": "Profilverzeichnis",
"getting_started.documentation": "Dokumentation",
- "getting_started.find_friends": "Finde Freunde von Twitter",
"getting_started.heading": "Erste Schritte",
"getting_started.invite": "Leute einladen",
"getting_started.open_source_notice": "Mastodon ist quelloffene Software. Du kannst auf GitHub unter {github} dazu beitragen oder Probleme melden.",
"getting_started.security": "Sicherheit",
"getting_started.terms": "Nutzungsbedingungen",
+ "hashtag.column_header.tag_mode.all": "und {additional}",
+ "hashtag.column_header.tag_mode.any": "oder {additional}",
+ "hashtag.column_header.tag_mode.none": "ohne {additional}",
+ "hashtag.column_settings.tag_mode.all": "All diese",
+ "hashtag.column_settings.tag_mode.any": "Eine von diesen",
+ "hashtag.column_settings.tag_mode.none": "Keine von diesen",
+ "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
"home.column_settings.basic": "Einfach",
"home.column_settings.show_reblogs": "Geteilte Beiträge anzeigen",
"home.column_settings.show_replies": "Antworten anzeigen",
+ "introduction.federation.action": "Weiter",
+ "introduction.federation.federated.headline": "Federated",
+ "introduction.federation.federated.text": "Öffentliche Beiträge von anderen Servern im Fediverse werden in der föderierten Zeitleiste erscheinen.",
+ "introduction.federation.home.headline": "Home",
+ "introduction.federation.home.text": "Beiträge von Leuten, denen du folgst werden in deiner Startseite erscheinen. Du kannst jedem auf irgendeinen Server folgen!",
+ "introduction.federation.local.headline": "Local",
+ "introduction.federation.local.text": "Öffentliche Beiträge von Leuten auf demselben Server wie du werden in der lokalen Zeitleiste erscheinen.",
+ "introduction.interactions.action": "Tutorial beenden!",
+ "introduction.interactions.favourite.headline": "Favorisieren",
+ "introduction.interactions.favourite.text": "Du kannst einen Beitrag für später speichern und dem Autor wissen lassen, dass du ihn magst, indem du ihn favorisierst.",
+ "introduction.interactions.reblog.headline": "Teilen",
+ "introduction.interactions.reblog.text": "Du kannst Beiträge von anderen Leuten an deine Follower teilen (oder auch \"boosten\").",
+ "introduction.interactions.reply.headline": "Antworten",
+ "introduction.interactions.reply.text": "Du kannst auf die Beiträge von anderen Leuten antworten und die Beiträge werden dann in eine Konversation zusammengebunden.",
+ "introduction.welcome.action": "Lasst uns loslegen!",
+ "introduction.welcome.headline": "Erste Schritte",
+ "introduction.welcome.text": "Willkommen im Fediverse! In wenigen Momenten wirst du in der Lage sein Nachrichten zu versenden und mit deinen Freunden über Server hinweg in Kontakt zu treten. Aber dieser Server, {domain}, ist sehr speziell — er hostet dein Profil, also merke dir den Namen.",
"keyboard_shortcuts.back": "zurück navigieren",
"keyboard_shortcuts.blocked": "Liste blockierter Profile öffnen",
"keyboard_shortcuts.boost": "boosten",
@@ -220,34 +247,21 @@
"notifications.clear_confirmation": "Bist du dir sicher, dass du alle Mitteilungen löschen möchtest?",
"notifications.column_settings.alert": "Desktop-Benachrichtigungen",
"notifications.column_settings.favourite": "Favorisierungen:",
+ "notifications.column_settings.filter_bar.advanced": "Zeige alle Kategorien an",
+ "notifications.column_settings.filter_bar.category": "Schnellfilterleiste",
+ "notifications.column_settings.filter_bar.show": "Anzeigen",
"notifications.column_settings.follow": "Neue Folgende:",
"notifications.column_settings.mention": "Erwähnungen:",
"notifications.column_settings.push": "Push-Benachrichtigungen",
"notifications.column_settings.reblog": "Geteilte Beiträge:",
"notifications.column_settings.show": "In der Spalte anzeigen",
"notifications.column_settings.sound": "Ton abspielen",
+ "notifications.filter.all": "Alle",
+ "notifications.filter.boosts": "Boosts",
+ "notifications.filter.favourites": "Favoriten",
+ "notifications.filter.follows": "Follows",
+ "notifications.filter.mentions": "Erwähnungen",
"notifications.group": "{count} Benachrichtigungen",
- "onboarding.done": "Fertig",
- "onboarding.next": "Weiter",
- "onboarding.page_five.public_timelines": "Die lokale Zeitleiste zeigt alle Beiträge von Leuten, die auch auf {domain} sind. Das gesamte bekannte Netz zeigt Beiträge von allen, denen von Leuten auf {domain} gefolgt wird. Zusammen sind sie die öffentlichen Zeitleisten, ein guter Weg, um neue Leute zu finden.",
- "onboarding.page_four.home": "Die Startseite zeigt dir Beiträge von Leuten, denen du folgst.",
- "onboarding.page_four.notifications": "Wenn jemand mit dir interagiert, bekommst du eine Mitteilung.",
- "onboarding.page_one.federation": "Mastodon ist ein soziales Netzwerk, das aus unabhängigen Servern besteht. Diese Server nennen wir auch Instanzen.",
- "onboarding.page_one.full_handle": "Dein vollständiger Benutzername",
- "onboarding.page_one.handle_hint": "Das ist das, was du deinen Freunden sagst, um nach dir zu suchen.",
- "onboarding.page_one.welcome": "Willkommen bei Mastodon!",
- "onboarding.page_six.admin": "Für deine Instanz ist {admin} zuständig.",
- "onboarding.page_six.almost_done": "Fast fertig …",
- "onboarding.page_six.appetoot": "Guten Appetröt!",
- "onboarding.page_six.apps_available": "Es gibt verschiedene {apps} für iOS, Android und weitere Plattformen.",
- "onboarding.page_six.github": "Mastodon ist freie, quelloffene Software. Du kannst auf {github} dazu beitragen, Probleme melden und Wünsche äußern.",
- "onboarding.page_six.guidelines": "Richtlinien",
- "onboarding.page_six.read_guidelines": "Bitte mach dich mit den {guidelines} von {domain} vertraut!",
- "onboarding.page_six.various_app": "Apps",
- "onboarding.page_three.profile": "Bearbeite dein Profil, um dein Bild, deinen Namen und deine Beschreibung anzupassen. Dort findest du auch weitere Einstellungen.",
- "onboarding.page_three.search": "Benutze die Suchfunktion, um Leute zu finden und mit Hashtags wie {illustration} oder {introductions} nach Beiträgen zu suchen. Um eine Person zu finden, die auf einer anderen Instanz ist, benutze den vollständigen Profilnamen.",
- "onboarding.page_two.compose": "Schreibe deine Beiträge in der Schreiben-Spalte. Mit den Symbolen unter dem Eingabefeld kannst du Bilder hochladen, Sichtbarkeits-Einstellungen ändern und Inhaltswarnungen hinzufügen.",
- "onboarding.skip": "Überspringen",
"privacy.change": "Sichtbarkeit des Beitrags anpassen",
"privacy.direct.long": "Beitrag nur an erwähnte Profile",
"privacy.direct.short": "Direkt",
@@ -283,6 +297,8 @@
"search_results.statuses": "Beiträge",
"search_results.total": "{count, number} {count, plural, one {Ergebnis} other {Ergebnisse}}",
"standalone.public_title": "Ein kleiner Einblick …",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "Blockiere @{name}",
"status.cancel_reblog_private": "Nicht mehr teilen",
"status.cannot_reblog": "Dieser Beitrag kann nicht geteilt werden",
@@ -318,10 +334,11 @@
"status.show_less_all": "Zeige weniger für alles",
"status.show_more": "Mehr anzeigen",
"status.show_more_all": "Zeige mehr für alles",
+ "status.show_thread": "Zeige Thread",
"status.unmute_conversation": "Stummschaltung von Thread aufheben",
"status.unpin": "Vom Profil lösen",
- "suggestions.dismiss": "Dismiss suggestion",
- "suggestions.header": "You might be interested in…",
+ "suggestions.dismiss": "Hinweis ausblenden",
+ "suggestions.header": "Du bist vielleicht interessiert in…",
"tabs_bar.federated_timeline": "Föderation",
"tabs_bar.home": "Startseite",
"tabs_bar.local_timeline": "Lokal",
@@ -332,7 +349,7 @@
"upload_area.title": "Zum Hochladen hereinziehen",
"upload_button.label": "Mediendatei hinzufügen (JPEG, PNG, GIF, WebM, MP4, MOV)",
"upload_form.description": "Für Menschen mit Sehbehinderung beschreiben",
- "upload_form.focus": "Zuschneiden",
+ "upload_form.focus": "Thumbnail bearbeiten",
"upload_form.undo": "Löschen",
"upload_progress.label": "Wird hochgeladen …",
"video.close": "Video schließen",
diff --git a/app/javascript/mastodon/locales/defaultMessages.json b/app/javascript/mastodon/locales/defaultMessages.json
index 11baedf42..0bc710441 100644
--- a/app/javascript/mastodon/locales/defaultMessages.json
+++ b/app/javascript/mastodon/locales/defaultMessages.json
@@ -306,6 +306,14 @@
{
"defaultMessage": "Embed",
"id": "status.embed"
+ },
+ {
+ "defaultMessage": "Open moderation interface for @{name}",
+ "id": "status.admin_account"
+ },
+ {
+ "defaultMessage": "Open this status in the moderation interface",
+ "id": "status.admin_status"
}
],
"path": "app/javascript/mastodon/components/status_action_bar.json"
@@ -353,6 +361,10 @@
{
"defaultMessage": "{name} boosted",
"id": "status.reblogged_by"
+ },
+ {
+ "defaultMessage": "Show thread",
+ "id": "status.show_thread"
}
],
"path": "app/javascript/mastodon/components/status.json"
@@ -475,6 +487,15 @@
],
"path": "app/javascript/mastodon/features/account_timeline/containers/header_container.json"
},
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "No toots here!",
+ "id": "empty_column.account_timeline"
+ }
+ ],
+ "path": "app/javascript/mastodon/features/account_timeline/index.json"
+ },
{
"descriptors": [
{
@@ -581,6 +602,14 @@
"defaultMessage": "Don't feature on profile",
"id": "account.unendorse"
},
+ {
+ "defaultMessage": "Add or Remove from lists",
+ "id": "account.add_or_remove_from_list"
+ },
+ {
+ "defaultMessage": "Open moderation interface for @{name}",
+ "id": "status.admin_account"
+ },
{
"defaultMessage": "Information below may reflect the user's profile incompletely.",
"id": "account.disclaimer_full"
@@ -630,6 +659,10 @@
"defaultMessage": "Ownership of this link was checked on {date}",
"id": "account.link_verified_on"
},
+ {
+ "defaultMessage": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
+ "id": "account.locked_info"
+ },
{
"defaultMessage": "Follows you",
"id": "account.follows_you"
@@ -1255,8 +1288,8 @@
"id": "getting_started.heading"
},
{
- "defaultMessage": "Find friends from Twitter",
- "id": "getting_started.find_friends"
+ "defaultMessage": "Profile directory",
+ "id": "getting_started.directory"
},
{
"defaultMessage": "Invite people",
@@ -1303,6 +1336,39 @@
},
{
"descriptors": [
+ {
+ "defaultMessage": "Any of these",
+ "id": "hashtag.column_settings.tag_mode.any"
+ },
+ {
+ "defaultMessage": "All of these",
+ "id": "hashtag.column_settings.tag_mode.all"
+ },
+ {
+ "defaultMessage": "None of these",
+ "id": "hashtag.column_settings.tag_mode.none"
+ },
+ {
+ "defaultMessage": "Include additional tags in this column",
+ "id": "hashtag.column_settings.tag_toggle"
+ }
+ ],
+ "path": "app/javascript/mastodon/features/hashtag_timeline/components/column_settings.json"
+ },
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "or {additional}",
+ "id": "hashtag.column_header.tag_mode.any"
+ },
+ {
+ "defaultMessage": "and {additional}",
+ "id": "hashtag.column_header.tag_mode.all"
+ },
+ {
+ "defaultMessage": "without {additional}",
+ "id": "hashtag.column_header.tag_mode.none"
+ },
{
"defaultMessage": "There is nothing in this hashtag yet.",
"id": "empty_column.hashtag"
@@ -1344,6 +1410,79 @@
],
"path": "app/javascript/mastodon/features/home_timeline/index.json"
},
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "First steps",
+ "id": "introduction.welcome.headline"
+ },
+ {
+ "defaultMessage": "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.",
+ "id": "introduction.welcome.text"
+ },
+ {
+ "defaultMessage": "Let's go!",
+ "id": "introduction.welcome.action"
+ },
+ {
+ "defaultMessage": "Home",
+ "id": "introduction.federation.home.headline"
+ },
+ {
+ "defaultMessage": "Posts from people you follow will appear in your home feed. You can follow anyone on any server!",
+ "id": "introduction.federation.home.text"
+ },
+ {
+ "defaultMessage": "Local",
+ "id": "introduction.federation.local.headline"
+ },
+ {
+ "defaultMessage": "Public posts from people on the same server as you will appear in the local timeline.",
+ "id": "introduction.federation.local.text"
+ },
+ {
+ "defaultMessage": "Federated",
+ "id": "introduction.federation.federated.headline"
+ },
+ {
+ "defaultMessage": "Public posts from other servers of the fediverse will appear in the federated timeline.",
+ "id": "introduction.federation.federated.text"
+ },
+ {
+ "defaultMessage": "Next",
+ "id": "introduction.federation.action"
+ },
+ {
+ "defaultMessage": "Reply",
+ "id": "introduction.interactions.reply.headline"
+ },
+ {
+ "defaultMessage": "You can reply to other people's and your own toots, which will chain them together in a conversation.",
+ "id": "introduction.interactions.reply.text"
+ },
+ {
+ "defaultMessage": "Boost",
+ "id": "introduction.interactions.reblog.headline"
+ },
+ {
+ "defaultMessage": "You can share other people's toots with your followers by boosting them.",
+ "id": "introduction.interactions.reblog.text"
+ },
+ {
+ "defaultMessage": "Favourite",
+ "id": "introduction.interactions.favourite.headline"
+ },
+ {
+ "defaultMessage": "You can save a toot for later, and let the author know that you liked it, by favouriting it.",
+ "id": "introduction.interactions.favourite.text"
+ },
+ {
+ "defaultMessage": "Finish tutorial!",
+ "id": "introduction.interactions.action"
+ }
+ ],
+ "path": "app/javascript/mastodon/features/introduction/index.json"
+ },
{
"descriptors": [
{
@@ -1473,6 +1612,19 @@
],
"path": "app/javascript/mastodon/features/keyboard_shortcuts/index.json"
},
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "Remove from list",
+ "id": "lists.account.remove"
+ },
+ {
+ "defaultMessage": "Add to list",
+ "id": "lists.account.add"
+ }
+ ],
+ "path": "app/javascript/mastodon/features/list_adder/components/list.json"
+ },
{
"descriptors": [
{
@@ -1574,6 +1726,14 @@
},
{
"descriptors": [
+ {
+ "defaultMessage": "Show",
+ "id": "notifications.column_settings.filter_bar.show"
+ },
+ {
+ "defaultMessage": "Display all categories",
+ "id": "notifications.column_settings.filter_bar.advanced"
+ },
{
"defaultMessage": "Desktop notifications",
"id": "notifications.column_settings.alert"
@@ -1590,6 +1750,10 @@
"defaultMessage": "Push notifications",
"id": "notifications.column_settings.push"
},
+ {
+ "defaultMessage": "Quick filter bar",
+ "id": "notifications.column_settings.filter_bar.category"
+ },
{
"defaultMessage": "New followers:",
"id": "notifications.column_settings.follow"
@@ -1609,6 +1773,31 @@
],
"path": "app/javascript/mastodon/features/notifications/components/column_settings.json"
},
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "Mentions",
+ "id": "notifications.filter.mentions"
+ },
+ {
+ "defaultMessage": "Favourites",
+ "id": "notifications.filter.favourites"
+ },
+ {
+ "defaultMessage": "Boosts",
+ "id": "notifications.filter.boosts"
+ },
+ {
+ "defaultMessage": "Follows",
+ "id": "notifications.filter.follows"
+ },
+ {
+ "defaultMessage": "All",
+ "id": "notifications.filter.all"
+ }
+ ],
+ "path": "app/javascript/mastodon/features/notifications/components/filter_bar.json"
+ },
{
"descriptors": [
{
@@ -1778,6 +1967,14 @@
{
"defaultMessage": "Embed",
"id": "status.embed"
+ },
+ {
+ "defaultMessage": "Open moderation interface for @{name}",
+ "id": "status.admin_account"
+ },
+ {
+ "defaultMessage": "Open this status in the moderation interface",
+ "id": "status.admin_status"
}
],
"path": "app/javascript/mastodon/features/status/components/action_bar.json"
@@ -1960,111 +2157,6 @@
],
"path": "app/javascript/mastodon/features/ui/components/mute_modal.json"
},
- {
- "descriptors": [
- {
- "defaultMessage": "Home",
- "id": "column.home"
- },
- {
- "defaultMessage": "Notifications",
- "id": "column.notifications"
- },
- {
- "defaultMessage": "Local timeline",
- "id": "column.community"
- },
- {
- "defaultMessage": "Federated timeline",
- "id": "column.public"
- },
- {
- "defaultMessage": "Welcome to Mastodon!",
- "id": "onboarding.page_one.welcome"
- },
- {
- "defaultMessage": "Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
- "id": "onboarding.page_one.federation"
- },
- {
- "defaultMessage": "Your full handle",
- "id": "onboarding.page_one.full_handle"
- },
- {
- "defaultMessage": "This is what you would tell your friends to search for.",
- "id": "onboarding.page_one.handle_hint"
- },
- {
- "defaultMessage": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
- "id": "onboarding.page_two.compose"
- },
- {
- "defaultMessage": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
- "id": "onboarding.page_three.search"
- },
- {
- "defaultMessage": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
- "id": "onboarding.page_three.profile"
- },
- {
- "defaultMessage": "The home timeline shows posts from people you follow.",
- "id": "onboarding.page_four.home"
- },
- {
- "defaultMessage": "The notifications column shows when someone interacts with you.",
- "id": "onboarding.page_four.notifications"
- },
- {
- "defaultMessage": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
- "id": "onboarding.page_five.public_timelines"
- },
- {
- "defaultMessage": "Your instance's admin is {admin}.",
- "id": "onboarding.page_six.admin"
- },
- {
- "defaultMessage": "Please read {domain}'s {guidelines}!",
- "id": "onboarding.page_six.read_guidelines"
- },
- {
- "defaultMessage": "community guidelines",
- "id": "onboarding.page_six.guidelines"
- },
- {
- "defaultMessage": "Almost done...",
- "id": "onboarding.page_six.almost_done"
- },
- {
- "defaultMessage": "Mastodon is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
- "id": "onboarding.page_six.github"
- },
- {
- "defaultMessage": "There are {apps} available for iOS, Android and other platforms.",
- "id": "onboarding.page_six.apps_available"
- },
- {
- "defaultMessage": "mobile apps",
- "id": "onboarding.page_six.various_app"
- },
- {
- "defaultMessage": "Bon Appetoot!",
- "id": "onboarding.page_six.appetoot"
- },
- {
- "defaultMessage": "Next",
- "id": "onboarding.next"
- },
- {
- "defaultMessage": "Done",
- "id": "onboarding.done"
- },
- {
- "defaultMessage": "Skip",
- "id": "onboarding.skip"
- }
- ],
- "path": "app/javascript/mastodon/features/ui/components/onboarding_modal.json"
- },
{
"descriptors": [
{
diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json
index e577e2a07..e0c472cf5 100644
--- a/app/javascript/mastodon/locales/el.json
+++ b/app/javascript/mastodon/locales/el.json
@@ -1,4 +1,5 @@
{
+ "account.add_or_remove_from_list": "Προσθήκη ή αφαίρεση από λίστες",
"account.badges.bot": "Μποτ",
"account.block": "Απόκλεισε τον/την @{name}",
"account.block_domain": "Απόκρυψε τα πάντα από το {domain}",
@@ -16,6 +17,7 @@
"account.follows_you": "Σε ακολουθεί",
"account.hide_reblogs": "Απόκρυψη προωθήσεων από @{name}",
"account.link_verified_on": "Η ιδιοκτησία αυτού του συνδέσμου εκλέχθηκε την {date}",
+ "account.locked_info": "Η κατάσταση απορρήτου αυτού του λογαριασμού είναι κλειδωμένη. Ο ιδιοκτήτης επιβεβαιώνει χειροκίνητα ποιος μπορεί να τον ακολουθήσει.",
"account.media": "Πολυμέσα",
"account.mention": "Ανάφερε @{name}",
"account.moved_to": "{name} μεταφέρθηκε στο:",
@@ -76,7 +78,7 @@
"compose_form.sensitive.marked": "Το πολυμέσο έχει σημειωθεί ως ευαίσθητο",
"compose_form.sensitive.unmarked": "Το πολυμέσο δεν έχει σημειωθεί ως ευαίσθητο",
"compose_form.spoiler.marked": "Κείμενο κρυμμένο πίσω από προειδοποίηση",
- "compose_form.spoiler.unmarked": "Κείμενο μη κρυμμένο",
+ "compose_form.spoiler.unmarked": "Μη κρυμμένο κείμενο",
"compose_form.spoiler_placeholder": "Γράψε την προειδοποίησή σου εδώ",
"confirmation_modal.cancel": "Άκυρο",
"confirmations.block.confirm": "Απόκλεισε",
@@ -111,6 +113,7 @@
"emoji_button.search_results": "Αποτελέσματα αναζήτησης",
"emoji_button.symbols": "Σύμβολα",
"emoji_button.travel": "Ταξίδια & Τοποθεσίες",
+ "empty_column.account_timeline": "Δεν έχει τουτ εδώ!",
"empty_column.blocks": "Δεν έχεις αποκλείσει κανέναν χρήστη ακόμα.",
"empty_column.community": "Η τοπική ροή είναι κενή. Γράψε κάτι δημόσιο παραμύθι ν' αρχινίσει!",
"empty_column.direct": "Δεν έχεις προσωπικά μηνύματα ακόμα. Όταν στείλεις ή λάβεις κανένα, θα εμφανιστεί εδώ.",
@@ -134,53 +137,77 @@
"follow_request.authorize": "Ενέκρινε",
"follow_request.reject": "Απέρριψε",
"getting_started.developers": "Ανάπτυξη",
+ "getting_started.directory": "Κατάλογος λογαριασμών",
"getting_started.documentation": "Τεκμηρίωση",
- "getting_started.find_friends": "Βρες φίλους από το Twitter",
"getting_started.heading": "Αφετηρία",
"getting_started.invite": "Προσκάλεσε κόσμο",
"getting_started.open_source_notice": "Το Mastodon είναι ελεύθερο λογισμικό. Μπορείς να συνεισφέρεις ή να αναφέρεις ζητήματα στο GitHub στο {github}.",
"getting_started.security": "Ασφάλεια",
"getting_started.terms": "Όροι χρήσης",
+ "hashtag.column_header.tag_mode.all": "και {additional}",
+ "hashtag.column_header.tag_mode.any": "ή {additional}",
+ "hashtag.column_header.tag_mode.none": "χωρίς {additional}",
+ "hashtag.column_settings.tag_mode.all": "Όλα αυτα",
+ "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": "Εμφάνιση απαντήσεων",
- "keyboard_shortcuts.back": "για επιστροφή πίσω",
+ "introduction.federation.action": "Επόμενο",
+ "introduction.federation.federated.headline": "Federated",
+ "introduction.federation.federated.text": "Οι δημόσιες αναρτήσεις από άλλους κόμβους του fediverse θα εμφανίζονται στην ομοσπονδιακή ροή.",
+ "introduction.federation.home.headline": "Home",
+ "introduction.federation.home.text": "Οι αναρτήσεις όσων ακολουθείς θα εμφανίζονται στην αρχική ροή. Μπορείς να ακολουθήσεις όποιον θέλεις σε οποιονδήποτε κόμβο!",
+ "introduction.federation.local.headline": "Local",
+ "introduction.federation.local.text": "Οι δημόσιες αναρτήσεις από άτομα στον ίδιο κόμβο με εσένα θα εμφανίζονται στην τοπική ροή.",
+ "introduction.interactions.action": "Τέλος μαθήματος!",
+ "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.welcome.action": "Ας ξεκινήσουμε!",
+ "introduction.welcome.headline": "Πρώτα βήματα",
+ "introduction.welcome.text": "Καλώς ήρθες στο fediverse! Σε πολύ λίγο θα μπορείς να στέλνεις δημοσιεύσεις και να μιλάς με τους φίλους σου σε πολλούς, διαφορετικούς κόμβους. Ο κόμβος {domain} όμως είναι ξεχωριστός — φιλοξενεί τον λογαριασμό σου, για αυτό μα θυμάσαι το όνομά του.",
+ "keyboard_shortcuts.back": "επιστροφή",
"keyboard_shortcuts.blocked": "άνοιγμα λίστας αποκλεισμένων χρηστών",
- "keyboard_shortcuts.boost": "για προώθηση",
- "keyboard_shortcuts.column": "για εστίαση μιας κατάστασης σε μια από τις στήλες",
- "keyboard_shortcuts.compose": "για εστίαση στην περιοχή κειμένου συγγραφής",
- "keyboard_shortcuts.description": "Description",
- "keyboard_shortcuts.direct": "άνοιγμα κολώνας απευθείας μηνυμάτων",
- "keyboard_shortcuts.down": "για κίνηση προς τα κάτω στη λίστα",
- "keyboard_shortcuts.enter": "to open status",
- "keyboard_shortcuts.favourite": "για σημείωση αγαπημένου",
+ "keyboard_shortcuts.boost": "προώθηση",
+ "keyboard_shortcuts.column": "εμφάνιση της κατάστασης σε μια από τις στήλες",
+ "keyboard_shortcuts.compose": "εστίαση στην περιοχή συγγραφής",
+ "keyboard_shortcuts.description": "Περιγραφή",
+ "keyboard_shortcuts.direct": "άνοιγμα στήλης απευθείας μηνυμάτων",
+ "keyboard_shortcuts.down": "κίνηση προς τα κάτω στη λίστα",
+ "keyboard_shortcuts.enter": "εμφάνιση κατάστασης",
+ "keyboard_shortcuts.favourite": "σημείωση ως αγαπημένο",
"keyboard_shortcuts.favourites": "άνοιγμα λίστας αγαπημένων",
"keyboard_shortcuts.federated": "άνοιγμα ομοσπονδιακής ροής",
- "keyboard_shortcuts.heading": "Keyboard Shortcuts",
+ "keyboard_shortcuts.heading": "Συντομεύσεις",
"keyboard_shortcuts.home": "άνοιγμα αρχικής ροής",
"keyboard_shortcuts.hotkey": "Συντόμευση",
- "keyboard_shortcuts.legend": "για να εμφανίσεις αυτόν τον οδηγό",
+ "keyboard_shortcuts.legend": "εμφάνιση αυτού του οδηγού",
"keyboard_shortcuts.local": "άνοιγμα τοπικής ροής",
- "keyboard_shortcuts.mention": "για να αναφέρεις το συγγραφέα",
+ "keyboard_shortcuts.mention": "αναφορά προς συγγραφέα",
"keyboard_shortcuts.muted": "άνοιγμα λίστας αποσιωπημενων χρηστών",
"keyboard_shortcuts.my_profile": "άνοιγμα του προφίλ σου",
- "keyboard_shortcuts.notifications": "άνοιγμα κολώνας ειδοποιήσεων",
+ "keyboard_shortcuts.notifications": "άνοιγμα στήλης ειδοποιήσεων",
"keyboard_shortcuts.pinned": "άνοιγμα λίστας καρφιτσωμένων τουτ",
"keyboard_shortcuts.profile": "άνοιγμα προφίλ συγγραφέα",
- "keyboard_shortcuts.reply": "για απάντηση",
+ "keyboard_shortcuts.reply": "απάντηση",
"keyboard_shortcuts.requests": "άνοιγμα λίστας αιτημάτων παρακολούθησης",
- "keyboard_shortcuts.search": "για εστίαση αναζήτησης",
+ "keyboard_shortcuts.search": "εστίαση αναζήτησης",
"keyboard_shortcuts.start": "άνοιγμα κολώνας \"Ξεκινώντας\"",
- "keyboard_shortcuts.toggle_hidden": "για εμφάνιση/απόκρυψη κειμένου πίσω από την προειδοποίηση",
- "keyboard_shortcuts.toot": "για δημιουργία ολοκαίνουριου τουτ",
- "keyboard_shortcuts.unfocus": "για την απο-εστίαση του πεδίου σύνθεσης/αναζήτησης",
- "keyboard_shortcuts.up": "να κινηθείς προς την κορυφή της λίστας",
- "lightbox.close": "Κλείσε",
+ "keyboard_shortcuts.toggle_hidden": "εμφάνιση/απόκρυψη κειμένου πίσω από την προειδοποίηση",
+ "keyboard_shortcuts.toot": "δημιουργία νέου τουτ",
+ "keyboard_shortcuts.unfocus": "απο-εστίαση του πεδίου σύνθεσης/αναζήτησης",
+ "keyboard_shortcuts.up": "κίνηση προς την κορυφή της λίστας",
+ "lightbox.close": "Κλείσιμο",
"lightbox.next": "Επόμενο",
"lightbox.previous": "Προηγούμενο",
"lists.account.add": "Πρόσθεσε στη λίστα",
"lists.account.remove": "Βγάλε από τη λίστα",
- "lists.delete": "Delete list",
+ "lists.delete": "Διαγραφή λίστας",
"lists.edit": "Επεξεργασία λίστας",
"lists.new.create": "Προσθήκη λίστας",
"lists.new.title_placeholder": "Τίτλος νέας λίστα",
@@ -220,34 +247,21 @@
"notifications.clear_confirmation": "Σίγουρα θέλεις να καθαρίσεις όλες τις ειδοποιήσεις σου;",
"notifications.column_settings.alert": "Ειδοποιήσεις επιφάνειας εργασίας",
"notifications.column_settings.favourite": "Αγαπημένα:",
+ "notifications.column_settings.filter_bar.advanced": "Εμφάνιση όλων των κατηγοριών",
+ "notifications.column_settings.filter_bar.category": "Μπάρα γρήγορου φίλτρου",
+ "notifications.column_settings.filter_bar.show": "Εμφάνιση",
"notifications.column_settings.follow": "Νέοι ακόλουθοι:",
"notifications.column_settings.mention": "Αναφορές:",
"notifications.column_settings.push": "Άμεσες ειδοποιήσεις",
"notifications.column_settings.reblog": "Προωθήσεις:",
"notifications.column_settings.show": "Εμφάνισε σε στήλη",
"notifications.column_settings.sound": "Ηχητική ειδοποίηση",
+ "notifications.filter.all": "Όλες",
+ "notifications.filter.boosts": "Προωθήσεις",
+ "notifications.filter.favourites": "Αγαπημένα",
+ "notifications.filter.follows": "Ακόλουθοι",
+ "notifications.filter.mentions": "Αναφορές",
"notifications.group": "{count} ειδοποιήσεις",
- "onboarding.done": "Όλα έτοιμα",
- "onboarding.next": "Επόμενο",
- "onboarding.page_five.public_timelines": "Η τοπική ροή δείχνει τις δημόσιες δημοσιεύσεις από όσους εδρεύουν στον κόμβο {domain}. Η ομοσπονδιακή ροή δείχνει τις δημόσιες δημοσιεύσεις εκείνων που οι χρήστες του {domain} ακολουθούν. Αυτές οι είναι Δημόσιες Ροές, ένας ωραίος τρόπος να ανακαλύψεις καινούριους ανθρώπους.",
- "onboarding.page_four.home": "Η αρχική ροή δείχνει καταστάσεις από ανθρώπους που ακολουθείς.",
- "onboarding.page_four.notifications": "Η στήλη ειδοποιήσεων δείχνει πότε κάποιος αλληλεπιδράει μαζί σου.",
- "onboarding.page_one.federation": "Το Mastodon είναι ένα δίκτυο ανεξάρτητων εξυπηρετητών (servers) που συνεργάζονται δημιουργώντας ένα μεγαλύτερο κοινωνικό δίκτυο. Τους εξυπηρετητές αυτούς τους λέμε κόμβους.",
- "onboarding.page_one.full_handle": "Το πλήρες αναγνωριστικό σου",
- "onboarding.page_one.handle_hint": "Αυτό είναι που θα πεις στους φίλους & φίλες σου να ψάξουν.",
- "onboarding.page_one.welcome": "Καλώς όρισες στο Mastodon!",
- "onboarding.page_six.admin": "Ο διαχειριστής του κόμβου σου είναι ο/η {admin}.",
- "onboarding.page_six.almost_done": "Σχεδόν έτοιμοι...",
- "onboarding.page_six.appetoot": "Καλά τουτ!",
- "onboarding.page_six.apps_available": "Υπάρχουν {apps} για iOS, Android και άλλες πλατφόρμες.",
- "onboarding.page_six.github": "Το Mastodon είναι ελεύθερο λογισμικό. Μπορείς να αναφέρεις σφάλματα, να αιτηθείς νέες λειτουργίες ή να συνεισφέρεις κώδικα στο {github}.",
- "onboarding.page_six.guidelines": "κατευθύνσεις κοινότητας",
- "onboarding.page_six.read_guidelines": "Παρακαλώ διάβασε τις {guidelines} του κόμβου {domain}!",
- "onboarding.page_six.various_app": "εφαρμογές κινητών",
- "onboarding.page_three.profile": "Επεξεργάσου το προφίλ σου για να αλλάξεις την εικόνα σου, το βιογραφικό σου και το εμφανιζόμενο όνομά σου. Εκεί θα βρεις επίσης κι άλλες προτιμήσεις.",
- "onboarding.page_three.search": "Χρησιμοποίησε την μπάρα αναζήτησης για να βρεις ανθρώπους και να δεις ταμπέλες όπως για παράδειγμα {illustration} και {introductions}. Για να ψάξεις κάποιον ή κάποια που δεν είναι σε αυτόν τον κόμβο, χρησιμοποίησε το πλήρες αναγνωριστικό τους.",
- "onboarding.page_two.compose": "Γράψε δημοσιεύσεις στην κολώνα συγγραφής. Μπορείς να ανεβάσεις εικόνες, να αλλάξεις τις ρυθμίσεις ιδιωτικότητας και να προσθέσεις προειδοποιήσεις περιεχομένου με τα παρακάτω εικονίδια.",
- "onboarding.skip": "Παράληψη",
"privacy.change": "Προσαρμογή ιδιωτικότητας δημοσίευσης",
"privacy.direct.long": "Δημοσίευση μόνο σε όσους και όσες αναφέρονται",
"privacy.direct.short": "Προσωπικά",
@@ -259,11 +273,11 @@
"privacy.unlisted.short": "Μη καταχωρημένα",
"regeneration_indicator.label": "Φορτώνει…",
"regeneration_indicator.sublabel": "Η αρχική σου ροή ετοιμάζεται!",
- "relative_time.days": "{number}d",
- "relative_time.hours": "{number}h",
+ "relative_time.days": "{number}η",
+ "relative_time.hours": "{number}ω",
"relative_time.just_now": "τώρα",
- "relative_time.minutes": "{number}m",
- "relative_time.seconds": "{number}s",
+ "relative_time.minutes": "{number}λ",
+ "relative_time.seconds": "{number}δ",
"reply_indicator.cancel": "Άκυρο",
"report.forward": "Προώθηση προς {target}",
"report.forward_hint": "Ο λογαριασμός είναι από διαφορετικό διακομιστή. Να σταλεί ανώνυμο αντίγραφο της καταγγελίας κι εκεί;",
@@ -275,7 +289,7 @@
"search_popout.search_format": "Προχωρημένη αναζήτηση",
"search_popout.tips.full_text": "Απλό κείμενο που επιστρέφει καταστάσεις που έχεις γράψει, σημειώσει ως αγαπημένες, προωθήσει ή έχεις αναφερθεί σε αυτές, καθώς και όσα ονόματα χρηστών και ταμπέλες ταιριάζουν.",
"search_popout.tips.hashtag": "ταμπέλα",
- "search_popout.tips.status": "status",
+ "search_popout.tips.status": "κατάσταση",
"search_popout.tips.text": "Απλό κείμενο που επιστρέφει ονόματα και ταμπέλες που ταιριάζουν",
"search_popout.tips.user": "χρήστης",
"search_results.accounts": "Άνθρωποι",
@@ -283,7 +297,9 @@
"search_results.statuses": "Τουτ",
"search_results.total": "{count, number} {count, plural, ένα {result} υπόλοιπα {results}}",
"standalone.public_title": "Μια πρώτη γεύση...",
- "status.block": "Block @{name}",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
+ "status.block": "Αποκλεισμός @{name}",
"status.cancel_reblog_private": "Ακύρωσε την προώθηση",
"status.cannot_reblog": "Αυτή η δημοσίευση δεν μπορεί να προωθηθεί",
"status.delete": "Διαγραφή",
@@ -318,10 +334,11 @@
"status.show_less_all": "Δείξε λιγότερα για όλα",
"status.show_more": "Δείξε περισσότερα",
"status.show_more_all": "Δείξε περισσότερα για όλα",
+ "status.show_thread": "Εμφάνιση νήματος",
"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": "Τοπικά",
@@ -332,7 +349,7 @@
"upload_area.title": "Drag & drop για να ανεβάσεις",
"upload_button.label": "Πρόσθεσε πολυμέσα (JPEG, PNG, GIF, WebM, MP4, MOV)",
"upload_form.description": "Περιέγραψε για όσους & όσες έχουν προβλήματα όρασης",
- "upload_form.focus": "Περικοπή",
+ "upload_form.focus": "Αλλαγή προεπισκόπησης",
"upload_form.undo": "Διαγραφή",
"upload_progress.label": "Ανεβαίνει...",
"video.close": "Κλείσε το βίντεο",
@@ -341,7 +358,7 @@
"video.fullscreen": "Πλήρης οθόνη",
"video.hide": "Κρύψε βίντεο",
"video.mute": "Σίγαση ήχου",
- "video.pause": "Pause",
+ "video.pause": "Παύση",
"video.play": "Αναπαραγωγή",
"video.unmute": "Αναπαραγωγή ήχου"
}
diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json
index a23e71492..2b57f369f 100644
--- a/app/javascript/mastodon/locales/en.json
+++ b/app/javascript/mastodon/locales/en.json
@@ -1,4 +1,5 @@
{
+ "account.add_or_remove_from_list": "Add or Remove from lists",
"account.badges.bot": "Bot",
"account.block": "Block @{name}",
"account.block_domain": "Hide everything from {domain}",
@@ -16,6 +17,7 @@
"account.follows_you": "Follows you",
"account.hide_reblogs": "Hide boosts from @{name}",
"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.media": "Media",
"account.mention": "Mention @{name}",
"account.moved_to": "{name} has moved to:",
@@ -111,6 +113,7 @@
"emoji_button.search_results": "Search results",
"emoji_button.symbols": "Symbols",
"emoji_button.travel": "Travel & Places",
+ "empty_column.account_timeline": "No toots here!",
"empty_column.blocks": "You haven't blocked any users yet.",
"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.",
@@ -134,16 +137,40 @@
"follow_request.authorize": "Authorize",
"follow_request.reject": "Reject",
"getting_started.developers": "Developers",
+ "getting_started.directory": "Profile directory",
"getting_started.documentation": "Documentation",
- "getting_started.find_friends": "Find friends from Twitter",
"getting_started.heading": "Getting started",
"getting_started.invite": "Invite people",
"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.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 for this column",
"home.column_settings.basic": "Basic",
"home.column_settings.show_reblogs": "Show boosts",
"home.column_settings.show_replies": "Show replies",
+ "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",
+ "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.",
+ "introduction.interactions.action": "Finish tutorial!",
+ "introduction.interactions.favourite.headline": "Favourite",
+ "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.text": "You can share other people's toots with your followers by boosting them.",
+ "introduction.interactions.reply.headline": "Reply",
+ "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.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",
@@ -220,34 +247,21 @@
"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.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.follow": "New followers:",
"notifications.column_settings.mention": "Mentions:",
"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.filter.follows": "Follows",
+ "notifications.filter.mentions": "Mentions",
"notifications.group": "{count} notifications",
- "onboarding.done": "Done",
- "onboarding.next": "Next",
- "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
- "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
- "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
- "onboarding.page_one.federation": "Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
- "onboarding.page_one.full_handle": "Your full handle",
- "onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.",
- "onboarding.page_one.welcome": "Welcome to Mastodon!",
- "onboarding.page_six.admin": "Your instance's admin is {admin}.",
- "onboarding.page_six.almost_done": "Almost done...",
- "onboarding.page_six.appetoot": "Bon Appetoot!",
- "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
- "onboarding.page_six.github": "Mastodon is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
- "onboarding.page_six.guidelines": "community guidelines",
- "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
- "onboarding.page_six.various_app": "mobile apps",
- "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
- "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
- "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
- "onboarding.skip": "Skip",
"privacy.change": "Adjust status privacy",
"privacy.direct.long": "Post to mentioned users only",
"privacy.direct.short": "Direct",
@@ -283,6 +297,8 @@
"search_results.statuses": "Toots",
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
"standalone.public_title": "A look inside...",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "Block @{name}",
"status.cancel_reblog_private": "Unboost",
"status.cannot_reblog": "This post cannot be boosted",
@@ -318,6 +334,7 @@
"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.unmute_conversation": "Unmute conversation",
"status.unpin": "Unpin from profile",
"suggestions.dismiss": "Dismiss suggestion",
@@ -332,7 +349,7 @@
"upload_area.title": "Drag & drop to upload",
"upload_button.label": "Add media (JPEG, PNG, GIF, WebM, MP4, MOV)",
"upload_form.description": "Describe for the visually impaired",
- "upload_form.focus": "Crop",
+ "upload_form.focus": "Change preview",
"upload_form.undo": "Delete",
"upload_progress.label": "Uploading...",
"video.close": "Close video",
diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json
index 5321c5403..28ec37ca2 100644
--- a/app/javascript/mastodon/locales/eo.json
+++ b/app/javascript/mastodon/locales/eo.json
@@ -1,4 +1,5 @@
{
+ "account.add_or_remove_from_list": "Aldoni al aŭ forigi el listoj",
"account.badges.bot": "Roboto",
"account.block": "Bloki @{name}",
"account.block_domain": "Kaŝi ĉion de {domain}",
@@ -10,12 +11,13 @@
"account.endorse": "Montri en profilo",
"account.follow": "Sekvi",
"account.followers": "Sekvantoj",
- "account.followers.empty": "No one follows this user yet.",
+ "account.followers.empty": "Ankoraŭ neniu sekvas tiun uzanton.",
"account.follows": "Sekvatoj",
- "account.follows.empty": "This user doesn't follow anyone yet.",
+ "account.follows.empty": "Tiu uzanto ankoraŭ ne sekvas iun.",
"account.follows_you": "Sekvas vin",
"account.hide_reblogs": "Kaŝi diskonigojn de @{name}",
- "account.link_verified_on": "Ownership of this link was checked on {date}",
+ "account.link_verified_on": "La posedanto de tiu ligilo estis kontrolita je {date}",
+ "account.locked_info": "La privateco de tiu konto estas elektita kiel fermita. La posedanto povas mane akcepti tiun, kiu povas sekvi rin.",
"account.media": "Aŭdovidaĵoj",
"account.mention": "Mencii @{name}",
"account.moved_to": "{name} moviĝis al:",
@@ -90,9 +92,9 @@
"confirmations.mute.confirm": "Silentigi",
"confirmations.mute.message": "Ĉu vi certas, ke vi volas silentigi {name}?",
"confirmations.redraft.confirm": "Forigi kaj reskribi",
- "confirmations.redraft.message": "Ĉu vi certas, ke vi volas forigi tiun mesaĝon kaj reskribi ĝin? Vi perdos ĉiujn respondojn, diskonigojn kaj stelumojn ligitajn al ĝi.",
- "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.redraft.message": "Ĉu vi certas ke vi volas forigi tiun mesaĝon kaj reskribi ĝin? Ĉiuj diskonigoj kaj stelumoj estos perditaj, kaj respondoj al la originala mesaĝo estos senparentaj.",
+ "confirmations.reply.confirm": "Respondi",
+ "confirmations.reply.message": "Respondi nun anstataŭigos la mesaĝon, kiun vi nun skribas. Ĉu vi certas, ke vi volas daŭrigi?",
"confirmations.unfollow.confirm": "Ne plu sekvi",
"confirmations.unfollow.message": "Ĉu vi certas, ke vi volas ĉesi sekvi {name}?",
"embed.instructions": "Enkorpigu ĉi tiun mesaĝon en vian retejon per kopio de la suba kodo.",
@@ -111,19 +113,20 @@
"emoji_button.search_results": "Serĉaj rezultoj",
"emoji_button.symbols": "Simboloj",
"emoji_button.travel": "Vojaĝoj kaj lokoj",
- "empty_column.blocks": "You haven't blocked any users yet.",
+ "empty_column.account_timeline": "Neniu mesaĝo ĉi tie!",
+ "empty_column.blocks": "Vi ankoraŭ ne blokis uzanton.",
"empty_column.community": "La loka tempolinio estas malplena. Skribu ion por plenigi ĝin!",
"empty_column.direct": "Vi ankoraŭ ne havas rektan mesaĝon. Kiam vi sendos aŭ ricevos iun, ĝi aperos ĉi tie.",
- "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.domain_blocks": "Ankoraŭ neniu domajno estas blokita.",
+ "empty_column.favourited_statuses": "Vi ankoraŭ ne stelumis mesaĝon. Kiam vi stelumos iun, tiu aperos ĉi tie.",
+ "empty_column.favourites": "Ankoraŭ neniu stelumis tiun mesaĝon. Kiam iu faros tion, tiu aperos ĉi tie.",
+ "empty_column.follow_requests": "Vi ne ankoraŭ havas iun peton de sekvado. Kiam vi ricevos unu, ĝi aperos ĉi tie.",
"empty_column.hashtag": "Ankoraŭ estas nenio per ĉi tiu kradvorto.",
"empty_column.home": "Via hejma tempolinio estas malplena! Vizitu {public} aŭ uzu la serĉilon por renkonti aliajn uzantojn.",
"empty_column.home.public_timeline": "la publikan tempolinion",
"empty_column.list": "Ankoraŭ estas nenio en ĉi tiu listo. Kiam membroj de ĉi tiu listo afiŝos novajn mesaĝojn, ili aperos ĉi tie.",
- "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.lists": "Vi ankoraŭ ne havas liston. Kiam vi kreos iun, ĝi aperos ĉi tie.",
+ "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 nodoj por plenigi la publikan tempolinion",
"federation.change": "Adjust status federation",
@@ -134,43 +137,67 @@
"follow_request.authorize": "Rajtigi",
"follow_request.reject": "Rifuzi",
"getting_started.developers": "Programistoj",
+ "getting_started.directory": "Profile directory",
"getting_started.documentation": "Dokumentado",
- "getting_started.find_friends": "Trovi amikojn el Twitter",
"getting_started.heading": "Por komenci",
"getting_started.invite": "Inviti homojn",
"getting_started.open_source_notice": "Mastodon estas malfermitkoda programo. Vi povas kontribui aŭ raporti problemojn en GitHub je {github}.",
"getting_started.security": "Sekureco",
"getting_started.terms": "Uzkondiĉoj",
+ "hashtag.column_header.tag_mode.all": "kaj {additional}",
+ "hashtag.column_header.tag_mode.any": "aŭ {additional}",
+ "hashtag.column_header.tag_mode.none": "sen {additional}",
+ "hashtag.column_settings.tag_mode.all": "Ĉiuj",
+ "hashtag.column_settings.tag_mode.any": "Iu ajn",
+ "hashtag.column_settings.tag_mode.none": "Neniu",
+ "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
"home.column_settings.basic": "Bazaj agordoj",
"home.column_settings.show_reblogs": "Montri diskonigojn",
"home.column_settings.show_replies": "Montri respondojn",
+ "introduction.federation.action": "Sekva",
+ "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",
+ "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.",
+ "introduction.interactions.action": "Finish tutorial!",
+ "introduction.interactions.favourite.headline": "Favourite",
+ "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.text": "You can share other people's toots with your followers by boosting them.",
+ "introduction.interactions.reply.headline": "Reply",
+ "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.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": "por reveni",
- "keyboard_shortcuts.blocked": "to open blocked users list",
+ "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.description": "Priskribo",
- "keyboard_shortcuts.direct": "to open direct messages column",
+ "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": "to open favourites list",
- "keyboard_shortcuts.federated": "to open federated timeline",
+ "keyboard_shortcuts.favourites": "por malfermi la liston de stelumoj",
+ "keyboard_shortcuts.federated": "por malfermi la frataran tempolinion",
"keyboard_shortcuts.heading": "Klavaraj mallongigoj",
- "keyboard_shortcuts.home": "to open home timeline",
+ "keyboard_shortcuts.home": "por malfermi la hejman tempolinion",
"keyboard_shortcuts.hotkey": "Rapidklavo",
"keyboard_shortcuts.legend": "por montri ĉi tiun noton",
- "keyboard_shortcuts.local": "to open local timeline",
+ "keyboard_shortcuts.local": "por malfermi la lokan tempolinion",
"keyboard_shortcuts.mention": "por mencii la aŭtoron",
- "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.pinned": "to open pinned toots list",
+ "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.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": "to open follow requests list",
+ "keyboard_shortcuts.requests": "por malfermi la liston de petoj de sekvado",
"keyboard_shortcuts.search": "por fokusigi la serĉilon",
- "keyboard_shortcuts.start": "to open \"get started\" column",
+ "keyboard_shortcuts.start": "por malfermi la kolumnon «por komenci»",
"keyboard_shortcuts.toggle_hidden": "por montri/kaŝi tekston malantaŭ enhava averto",
"keyboard_shortcuts.toot": "por komenci tute novan mesaĝon",
"keyboard_shortcuts.unfocus": "por malfokusigi la tekstujon aŭ la serĉilon",
@@ -191,10 +218,10 @@
"missing_indicator.label": "Ne trovita",
"missing_indicator.sublabel": "Ĉi tiu elemento ne estis trovita",
"mute_modal.hide_notifications": "Ĉu vi volas kaŝi la sciigojn el ĉi tiu uzanto?",
- "navigation_bar.apps": "Mobile apps",
+ "navigation_bar.apps": "Telefonaj aplikaĵoj",
"navigation_bar.blocks": "Blokitaj uzantoj",
"navigation_bar.community_timeline": "Loka tempolinio",
- "navigation_bar.compose": "Compose new toot",
+ "navigation_bar.compose": "Skribi novan mesaĝon",
"navigation_bar.direct": "Rektaj mesaĝoj",
"navigation_bar.discover": "Esplori",
"navigation_bar.domain_blocks": "Kaŝitaj domajnoj",
@@ -220,34 +247,21 @@
"notifications.clear_confirmation": "Ĉu vi certas, ke vi volas porĉiame forviŝi ĉiujn viajn sciigojn?",
"notifications.column_settings.alert": "Retumilaj sciigoj",
"notifications.column_settings.favourite": "Stelumoj:",
+ "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.follow": "Novaj sekvantoj:",
"notifications.column_settings.mention": "Mencioj:",
"notifications.column_settings.push": "Puŝsciigoj",
"notifications.column_settings.reblog": "Diskonigoj:",
"notifications.column_settings.show": "Montri en kolumno",
"notifications.column_settings.sound": "Eligi sonon",
+ "notifications.filter.all": "All",
+ "notifications.filter.boosts": "Boosts",
+ "notifications.filter.favourites": "Favourites",
+ "notifications.filter.follows": "Follows",
+ "notifications.filter.mentions": "Mentions",
"notifications.group": "{count} sciigoj",
- "onboarding.done": "Farita",
- "onboarding.next": "Sekva",
- "onboarding.page_five.public_timelines": "La loka tempolinio montras publikajn mesaĝojn de ĉiuj en {domain}. La fratara tempolinio montras publikajn mesaĝojn de ĉiuj, kiuj estas sekvataj de homoj en {domain}. Tio estas la publikaj tempolinioj, kio estas bona maniero por malkovri novajn homojn.",
- "onboarding.page_four.home": "La hejma tempolinio montras mesaĝojn de ĉiuj uzantoj, kiujn vi sekvas.",
- "onboarding.page_four.notifications": "La sciiga kolumno montras kiam iu interagas kun vi.",
- "onboarding.page_one.federation": "Mastodon estas reto de sendependaj serviloj, unuiĝintaj por krei pligrandan socian reton. Ni nomas tiujn servilojn nodoj.",
- "onboarding.page_one.full_handle": "Via kompleta uzantnomo",
- "onboarding.page_one.handle_hint": "Jen kion vi petus al viaj amikoj serĉi.",
- "onboarding.page_one.welcome": "Bonvenon en Mastodon!",
- "onboarding.page_six.admin": "Via noda administranto estas {admin}.",
- "onboarding.page_six.almost_done": "Preskaŭ finita…",
- "onboarding.page_six.appetoot": "Saĝan mesaĝadon!",
- "onboarding.page_six.apps_available": "{apps} estas disponeblaj por iOS, Android kaj aliaj platformoj.",
- "onboarding.page_six.github": "Mastodon estas libera, senpaga kaj malfermitkoda programo. Vi povas raporti cimojn, proponi funkciojn aŭ kontribui al la kodo en {github}.",
- "onboarding.page_six.guidelines": "komunumaj gvidlinioj",
- "onboarding.page_six.read_guidelines": "Bonvolu atenti pri la {guidelines} de {domain}!",
- "onboarding.page_six.various_app": "telefonaj aplikaĵoj",
- "onboarding.page_three.profile": "Redaktu vian profilon por ŝanĝi vian profilbildon, priskribon kaj nomon. Vi ankaŭ trovos tie aliajn agordojn.",
- "onboarding.page_three.search": "Uzu la serĉilon por trovi uzantojn kaj esplori kradvortojn, tiel {illustration} kaj {introductions}. Por trovi iun, kiu ne estas en ĉi tiu nodo, uzu ties kompletan uzantnomon.",
- "onboarding.page_two.compose": "Skribu mesaĝojn en la skriba kolumno. Vi povas alŝuti bildojn, ŝanĝi privatecajn agordojn, kaj aldoni avertojn pri la enhavo per la subaj bildetoj.",
- "onboarding.skip": "Preterpasi",
"privacy.change": "Agordi mesaĝan privatecon",
"privacy.direct.long": "Afiŝi nur al menciitaj uzantoj",
"privacy.direct.short": "Rekta",
@@ -283,11 +297,13 @@
"search_results.statuses": "Mesaĝoj",
"search_results.total": "{count, number} {count, plural, one {rezulto} other {rezultoj}}",
"standalone.public_title": "Enrigardo…",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "Bloki @{name}",
"status.cancel_reblog_private": "Eksdiskonigi",
"status.cannot_reblog": "Ĉi tiu mesaĝo ne diskonigeblas",
"status.delete": "Forigi",
- "status.detailed_status": "Detailed conversation view",
+ "status.detailed_status": "Detala konversacia vido",
"status.direct": "Rekte mesaĝi @{name}",
"status.embed": "Enkorpigi",
"status.favourite": "Stelumi",
@@ -302,11 +318,11 @@
"status.open": "Grandigi",
"status.pin": "Alpingli profile",
"status.pinned": "Alpinglita mesaĝo",
- "status.read_more": "Read more",
+ "status.read_more": "Legi pli",
"status.reblog": "Diskonigi",
"status.reblog_private": "Diskonigi al la originala atentaro",
"status.reblogged_by": "{name} diskonigis",
- "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
+ "status.reblogs.empty": "Ankoraŭ neniu diskonigis tiun mesaĝon. Kiam iu faros tion, tiu aperos ĉi tie.",
"status.redraft": "Forigi kaj reskribi",
"status.reply": "Respondi",
"status.replyAll": "Respondi al la fadeno",
@@ -318,10 +334,11 @@
"status.show_less_all": "Malgrandigi ĉiujn",
"status.show_more": "Grandigi",
"status.show_more_all": "Grandigi ĉiujn",
- "status.unmute_conversation": "Malsilentigi konversacion",
+ "status.show_thread": "Montri la fadenon",
+ "status.unmute_conversation": "Malsilentigi la konversacion",
"status.unpin": "Depingli de profilo",
- "suggestions.dismiss": "Dismiss suggestion",
- "suggestions.header": "You might be interested in…",
+ "suggestions.dismiss": "Forigi la proponon",
+ "suggestions.header": "Vi povus interesiĝi pri…",
"tabs_bar.federated_timeline": "Fratara tempolinio",
"tabs_bar.home": "Hejmo",
"tabs_bar.local_timeline": "Loka tempolinio",
@@ -330,7 +347,7 @@
"trends.count_by_accounts": "{count} {rawCount, pluraj, unu {person} alia(j) {people}} parolas",
"ui.beforeunload": "Via malneto perdiĝos se vi eliras de Mastodon.",
"upload_area.title": "Altreni kaj lasi por alŝuti",
- "upload_button.label": "Aldoni aŭdovidaĵon",
+ "upload_button.label": "Aldoni aŭdovidaĵon (JPEG, PNG, GIF, WebM, MP4, MOV)",
"upload_form.description": "Priskribi por misvidantaj homoj",
"upload_form.focus": "Stuci",
"upload_form.undo": "Forigi",
diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json
index b41703dd3..5d24f92fd 100644
--- a/app/javascript/mastodon/locales/es.json
+++ b/app/javascript/mastodon/locales/es.json
@@ -1,4 +1,5 @@
{
+ "account.add_or_remove_from_list": "Add or Remove from lists",
"account.badges.bot": "Bot",
"account.block": "Bloquear",
"account.block_domain": "Ocultar todo de {domain}",
@@ -16,6 +17,7 @@
"account.follows_you": "Te sigue",
"account.hide_reblogs": "Ocultar retoots de @{name}",
"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.media": "Media",
"account.mention": "Mencionar a @{name}",
"account.moved_to": "{name} se ha mudado a:",
@@ -111,6 +113,7 @@
"emoji_button.search_results": "Resultados de búsqueda",
"emoji_button.symbols": "Símbolos",
"emoji_button.travel": "Viajes y lugares",
+ "empty_column.account_timeline": "No toots here!",
"empty_column.blocks": "Aún no has bloqueado a ningún usuario.",
"empty_column.community": "La línea de tiempo local está vacía. ¡Escribe algo para empezar la fiesta!",
"empty_column.direct": "Aún no tienes ningún mensaje directo. Cuando envíes o recibas uno, se mostrará aquí.",
@@ -134,16 +137,40 @@
"follow_request.authorize": "Autorizar",
"follow_request.reject": "Rechazar",
"getting_started.developers": "Desarrolladores",
+ "getting_started.directory": "Profile directory",
"getting_started.documentation": "Documentation",
- "getting_started.find_friends": "Encuentra a tus amigos desde Twitter",
"getting_started.heading": "Primeros pasos",
"getting_started.invite": "Invitar usuarios",
"getting_started.open_source_notice": "Mastodon es software libre. Puedes contribuir o reportar errores en {github}.",
"getting_started.security": "Seguridad",
"getting_started.terms": "Términos de servicio",
+ "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.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": "Básico",
"home.column_settings.show_reblogs": "Mostrar retoots",
"home.column_settings.show_replies": "Mostrar respuestas",
+ "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",
+ "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.",
+ "introduction.interactions.action": "Finish tutorial!",
+ "introduction.interactions.favourite.headline": "Favourite",
+ "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.text": "You can share other people's toots with your followers by boosting them.",
+ "introduction.interactions.reply.headline": "Reply",
+ "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.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": "volver atrás",
"keyboard_shortcuts.blocked": "abrir una lista de usuarios bloqueados",
"keyboard_shortcuts.boost": "retootear",
@@ -220,34 +247,21 @@
"notifications.clear_confirmation": "¿Seguro que quieres limpiar permanentemente todas tus notificaciones?",
"notifications.column_settings.alert": "Notificaciones de escritorio",
"notifications.column_settings.favourite": "Favoritos:",
+ "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.follow": "Nuevos seguidores:",
"notifications.column_settings.mention": "Menciones:",
"notifications.column_settings.push": "Notificaciones push",
"notifications.column_settings.reblog": "Retoots:",
"notifications.column_settings.show": "Mostrar en columna",
"notifications.column_settings.sound": "Reproducir sonido",
+ "notifications.filter.all": "All",
+ "notifications.filter.boosts": "Boosts",
+ "notifications.filter.favourites": "Favourites",
+ "notifications.filter.follows": "Follows",
+ "notifications.filter.mentions": "Mentions",
"notifications.group": "{count} notificaciones",
- "onboarding.done": "Listo",
- "onboarding.next": "Siguiente",
- "onboarding.page_five.public_timelines": "La línea de tiempo local muestra toots públicos de todos en {domain}. La línea de tiempo federada muestra toots públicos de cualquiera a quien la gente de {domain} siga. Estas son las líneas de tiempo públicas, una buena forma de conocer gente nueva.",
- "onboarding.page_four.home": "La línea de tiempo principal muestra toots de gente que sigues.",
- "onboarding.page_four.notifications": "Las notificaciones se muestran cuando alguien interactúa contigo.",
- "onboarding.page_one.federation": "Mastodon es una red de servidores federados que conforman una red social aún más grande. Llamamos a estos servidores instancias.",
- "onboarding.page_one.full_handle": "Tu sobrenombre completo",
- "onboarding.page_one.handle_hint": "Esto es lo que dirías a tus amistades que buscaran.",
- "onboarding.page_one.welcome": "¡Bienvenido a Mastodon!",
- "onboarding.page_six.admin": "El administrador de tu instancia es {admin}.",
- "onboarding.page_six.almost_done": "Ya casi…",
- "onboarding.page_six.appetoot": "¡Bon Appetoot!",
- "onboarding.page_six.apps_available": "Hay {apps} disponibles para iOS, Android y otras plataformas.",
- "onboarding.page_six.github": "Mastodon es software libre. Puedes reportar errores, pedir funciones nuevas, o contribuir al código en {github}.",
- "onboarding.page_six.guidelines": "guías de la comunidad",
- "onboarding.page_six.read_guidelines": "¡Por favor lee las {guidelines} de {domain}!",
- "onboarding.page_six.various_app": "aplicaciones móviles",
- "onboarding.page_three.profile": "Edita tu perfil para cambiar tu avatar, biografía y nombre de cabecera. Ahí, también encontrarás otros ajustes.",
- "onboarding.page_three.search": "Usa la barra de búsqueda y revisa hashtags, como {illustration} y {introductions}. Para ver a alguien que no es de tu propia instancia, usa su nombre de usuario completo.",
- "onboarding.page_two.compose": "Escribe toots en la columna de redacción. Puedes subir imágenes, cambiar ajustes de privacidad, y añadir advertencias de contenido con los siguientes íconos.",
- "onboarding.skip": "Saltar",
"privacy.change": "Ajustar privacidad",
"privacy.direct.long": "Sólo mostrar a los usuarios mencionados",
"privacy.direct.short": "Directo",
@@ -283,6 +297,8 @@
"search_results.statuses": "Toots",
"search_results.total": "{count, number} {count, plural, one {resultado} other {resultados}}",
"standalone.public_title": "Un pequeño vistazo...",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "Block @{name}",
"status.cancel_reblog_private": "Des-impulsar",
"status.cannot_reblog": "Este toot no puede retootearse",
@@ -318,6 +334,7 @@
"status.show_less_all": "Mostrar menos para todo",
"status.show_more": "Mostrar más",
"status.show_more_all": "Mostrar más para todo",
+ "status.show_thread": "Show thread",
"status.unmute_conversation": "Dejar de silenciar conversación",
"status.unpin": "Dejar de fijar",
"suggestions.dismiss": "Dismiss suggestion",
diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json
index 3655d270c..9a4d01f94 100644
--- a/app/javascript/mastodon/locales/eu.json
+++ b/app/javascript/mastodon/locales/eu.json
@@ -1,4 +1,5 @@
{
+ "account.add_or_remove_from_list": "Gehitu edo kendu zerrendetatik",
"account.badges.bot": "Bot",
"account.block": "Blokeatu @{name}",
"account.block_domain": "Ezkutatu {domain} domeinuko guztia",
@@ -13,16 +14,17 @@
"account.followers.empty": "Ez du inork erabiltzaile hau jarraitzen oraindik.",
"account.follows": "Jarraitzen",
"account.follows.empty": "Erabiltzaile honek ez du inor jarraitzen oraindik.",
- "account.follows_you": "Jarraitzen zaitu",
+ "account.follows_you": "Jarraitzen dizu",
"account.hide_reblogs": "Ezkutatu @{name}(r)en bultzadak",
- "account.link_verified_on": "Ownership of this link was checked on {date}",
+ "account.link_verified_on": "Esteka honen jabetzaren egiaztaketa data: {date}",
+ "account.locked_info": "Kontu honen pribatutasun egoera blokeatuta gisa ezarri da. Jabeak eskuz erabakitzen du nork jarraitu diezaioken.",
"account.media": "Media",
"account.mention": "Aipatu @{name}",
"account.moved_to": "{name} hona lekualdatu da:",
"account.mute": "Mututu @{name}",
"account.mute_notifications": "Mututu @{name}(r)en jakinarazpenak",
"account.muted": "Mutututa",
- "account.posts": "Toot-ak",
+ "account.posts": "Tootak",
"account.posts_with_replies": "Toot eta erantzunak",
"account.report": "Salatu @{name}",
"account.requested": "Onarpenaren zain. Klikatu jarraitzeko eskaera ezeztatzeko",
@@ -91,8 +93,8 @@
"confirmations.mute.message": "Ziur {name} mututu nahi duzula?",
"confirmations.redraft.confirm": "Ezabatu eta berridatzi",
"confirmations.redraft.message": "Ziur mezu hau ezabatu eta berridatzi nahi duzula? Gogokoak eta bultzadak galduko dira eta jaso dituen erantzunak umezurtz geratuko dira.",
- "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": "Erantzun",
+ "confirmations.reply.message": "Orain erantzuteak idazten ari zaren mezua gainidatziko du. Ziur jarraitu nahi duzula?",
"confirmations.unfollow.confirm": "Utzi jarraitzeari",
"confirmations.unfollow.message": "Ziur {name} jarraitzeari utzi nahi diozula?",
"embed.instructions": "Txertatu mezu hau zure webgunean beheko kodea kopatuz.",
@@ -111,6 +113,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.blocks": "Ez duzu erabiltzailerik blokeatu oraindik.",
"empty_column.community": "Denbora-lerro lokala hutsik dago. Idatzi zerbait publikoki pilota biraka jartzeko!",
"empty_column.direct": "Ez duzu mezu zuzenik oraindik. Baten bat bidali edo jasotzen duzunean, hemen agertuko da.",
@@ -134,16 +137,40 @@
"follow_request.authorize": "Baimendu",
"follow_request.reject": "Ukatu",
"getting_started.developers": "Garatzaileak",
+ "getting_started.directory": "Profil-direktorioa",
"getting_started.documentation": "Dokumentazioa",
- "getting_started.find_friends": "Aurkitu Twitter-eko lagunak",
"getting_started.heading": "Menua",
"getting_started.invite": "Gonbidatu jendea",
"getting_started.open_source_notice": "Mastodon software librea da. Ekarpenak egin ditzakezu edo akatsen berri eman GitHub bidez: {github}.",
"getting_started.security": "Segurtasuna",
"getting_started.terms": "Erabilera baldintzak",
+ "hashtag.column_header.tag_mode.all": "eta {osagarria}",
+ "hashtag.column_header.tag_mode.any": "edo {osagarria}",
+ "hashtag.column_header.tag_mode.none": "gabe {osagarria}",
+ "hashtag.column_settings.tag_mode.all": "Hauetako guztiak",
+ "hashtag.column_settings.tag_mode.any": "Hautako edozein",
+ "hashtag.column_settings.tag_mode.none": "Hauetako bat ere ez",
+ "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
"home.column_settings.basic": "Oinarrizkoa",
"home.column_settings.show_reblogs": "Erakutsi bultzadak",
"home.column_settings.show_replies": "Erakutsi erantzunak",
+ "introduction.federation.action": "Hurrengoa",
+ "introduction.federation.federated.headline": "Federated",
+ "introduction.federation.federated.text": "Fedibertsoko beste zerbitzarietako bidalketa publikoak federatutako denbora-lerroan agertuko dira.",
+ "introduction.federation.home.headline": "Home",
+ "introduction.federation.home.text": "Jarraitzen dituzun horien mezuak zure hasierako jarioan agertuko dira. Edozein zerbitzariko edonor jarraitu dezakezu!",
+ "introduction.federation.local.headline": "Local",
+ "introduction.federation.local.text": "Zure zerbitzari berean dauden horien mezu publikoak denbora-lerro lokalean agertuko dira.",
+ "introduction.interactions.action": "Amaitu tutoriala!",
+ "introduction.interactions.favourite.headline": "Gogokoa",
+ "introduction.interactions.favourite.text": "Toot bat geroko gorde dezakezu, eta egileari gustukoa duzula jakinarazi, hau gogoko bihurtuz.",
+ "introduction.interactions.reblog.headline": "Bultzada",
+ "introduction.interactions.reblog.text": "Beste batzuen mezuak partekatu ditzakezu zure jarraitzaileekin hauei bultzada emanez.",
+ "introduction.interactions.reply.headline": "Erantzun",
+ "introduction.interactions.reply.text": "Besteen mezuei eta zure mezuei ere erantzun diezaiekezu, eta elkarrizketa batean lotuta agertuko dira.",
+ "introduction.welcome.action": "Goazen!",
+ "introduction.welcome.headline": "Lehen urratsak",
+ "introduction.welcome.text": "Ongi etorri fedibertsora! Hemendik gutxira hainbat zerbitzarietan zehar mezuak zabaldu eta lagunekin hitz egin ahal izango duzu. Baina zerbitzari hau hainbat zerbitzarietan zehar. berezia da, hau da zure profila ostatatzen duena, ez ahaztu bere izena.",
"keyboard_shortcuts.back": "atzera nabigatzeko",
"keyboard_shortcuts.blocked": "blokeatutako erabiltzaileen zerrenda irekitzeko",
"keyboard_shortcuts.boost": "bultzada ematea",
@@ -220,34 +247,21 @@
"notifications.clear_confirmation": "Ziur zure jakinarazpen guztiak behin betirako garbitu nahi dituzula?",
"notifications.column_settings.alert": "Mahaigaineko jakinarazpenak",
"notifications.column_settings.favourite": "Gogokoak:",
+ "notifications.column_settings.filter_bar.advanced": "Erakutsi kategoria guztiak",
+ "notifications.column_settings.filter_bar.category": "Iragazki azkarraren barra",
+ "notifications.column_settings.filter_bar.show": "Erakutsi",
"notifications.column_settings.follow": "Jarraitzaile berriak:",
"notifications.column_settings.mention": "Aipamenak:",
"notifications.column_settings.push": "Push jakinarazpenak",
"notifications.column_settings.reblog": "Bultzadak:",
"notifications.column_settings.show": "Erakutsi zutabean",
"notifications.column_settings.sound": "Jo soinua",
+ "notifications.filter.all": "Denak",
+ "notifications.filter.boosts": "Bultzadak",
+ "notifications.filter.favourites": "Gogokoak",
+ "notifications.filter.follows": "Jarraipenak",
+ "notifications.filter.mentions": "Aipamenak",
"notifications.group": "{count} jakinarazpen",
- "onboarding.done": "Egina",
- "onboarding.next": "Hurrengoa",
- "onboarding.page_five.public_timelines": "Denbora-lerro lokalak {domain} domeinuko guztien mezu publikoak erakusten ditu. Federatutako denbora-lerroak {domain} domeinuko edonork jarraitutakoen mezu publikoak erakusten ditu. Hauek denbora-lerro publikoak dira, jende berria ezagutzeko primerakoak.",
- "onboarding.page_four.home": "Hasierako denbora-lerroak jarraitzen duzun jendearen mezuak erakusten ditu.",
- "onboarding.page_four.notifications": "Jakinarazpenen zutabeak besteek zurekin hasitako hartu-emanak erakusten ditu.",
- "onboarding.page_one.federation": "Mastodon lotutako zerbitzari independenteez eraikitako gizarte sare bat da. Zerbitzari hauei instantzia deitzen diegu.",
- "onboarding.page_one.full_handle": "Zure erabiltzaile-izen osoa",
- "onboarding.page_one.handle_hint": "Hau da zure lagunei zu aurkitzeko emango zeniena.",
- "onboarding.page_one.welcome": "Ongi etorri Mastodon-era!",
- "onboarding.page_six.admin": "Zure instantziaren administratzailea {admin} da.",
- "onboarding.page_six.almost_done": "Ia eginda...",
- "onboarding.page_six.appetoot": "Bon Appetoot!",
- "onboarding.page_six.apps_available": "{apps} eskuragarri daude iOS, Android eta beste plataformetarako.",
- "onboarding.page_six.github": "Mastodon software librea da. Akatsen berri eman ezakezu, ezaugarriak eskatu, edo kodea proposatu hemen: {github}.",
- "onboarding.page_six.guidelines": "komunitatearen gida-lerroak",
- "onboarding.page_six.read_guidelines": "Irakurri {domain} {guidelines} mesedez!",
- "onboarding.page_six.various_app": "mugikorrerako aplikazioak",
- "onboarding.page_three.profile": "Editatu zure profila zure abatarra, biografia eta pantaila-izena aldatzeko. Han hobespen gehiago daude ere.",
- "onboarding.page_three.search": "Erabili bilaketa-barra jendea aurkitzeko eta traolak begiratzeko, esaterako {illustration} edo {introductions}. Instantzia honetan ez dagoen pertsona bat bilatzeko , erabili erabiltzaile-izen osoa.",
- "onboarding.page_two.compose": "Idatzi mezuak konposizio-zutabean. Irudiak igo ditzakezu, pribatutasun ezarpenak aldatu, eta edukiei abisuak gehitu beheko ikonoekin.",
- "onboarding.skip": "Saltatu",
"privacy.change": "Doitu mezuaren pribatutasuna",
"privacy.direct.long": "Bidali aipatutako erabiltzaileei besterik ez",
"privacy.direct.short": "Zuzena",
@@ -259,8 +273,8 @@
"privacy.unlisted.short": "Zerrendatu gabea",
"regeneration_indicator.label": "Kargatzen…",
"regeneration_indicator.sublabel": "Zure hasiera-jarioa prestatzen ari da!",
- "relative_time.days": "{number}d",
- "relative_time.hours": "{number}h",
+ "relative_time.days": "{number}e",
+ "relative_time.hours": "{number}o",
"relative_time.just_now": "orain",
"relative_time.minutes": "{number}m",
"relative_time.seconds": "{number}s",
@@ -283,6 +297,8 @@
"search_results.statuses": "Toot-ak",
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
"standalone.public_title": "Begiradatxo bat...",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "Block @{name}",
"status.cancel_reblog_private": "Kendu bultzada",
"status.cannot_reblog": "Mezu honi ezin zaio bultzada eman",
@@ -302,7 +318,7 @@
"status.open": "Hedatu mezu hau",
"status.pin": "Finkatu profilean",
"status.pinned": "Finkatutako toot-a",
- "status.read_more": "Read more",
+ "status.read_more": "Irakurri gehiago",
"status.reblog": "Bultzada",
"status.reblog_private": "Bultzada jatorrizko hartzaileei",
"status.reblogged_by": "{name}(r)en bultzada",
@@ -312,16 +328,17 @@
"status.replyAll": "Erantzun harian",
"status.report": "Salatu @{name}",
"status.sensitive_toggle": "Egin klik ikusteko",
- "status.sensitive_warning": "Eduki hunkigarria",
+ "status.sensitive_warning": "Kontuz: Eduki hunkigarria",
"status.share": "Partekatu",
"status.show_less": "Erakutsi gutxiago",
"status.show_less_all": "Erakutsi denetarik gutxiago",
"status.show_more": "Erakutsi gehiago",
"status.show_more_all": "Erakutsi denetarik gehiago",
+ "status.show_thread": "Erakutsi haria",
"status.unmute_conversation": "Desmututu elkarrizketa",
"status.unpin": "Desfinkatu profiletik",
- "suggestions.dismiss": "Dismiss suggestion",
- "suggestions.header": "You might be interested in…",
+ "suggestions.dismiss": "Errefusatu proposamena",
+ "suggestions.header": "Hau interesatu dakizuke…",
"tabs_bar.federated_timeline": "Federatua",
"tabs_bar.home": "Hasiera",
"tabs_bar.local_timeline": "Lokala",
@@ -332,7 +349,7 @@
"upload_area.title": "Arrastatu eta jaregin igotzeko",
"upload_button.label": "Gehitu multimedia (JPEG, PNG, GIF, WebM, MP4, MOV)",
"upload_form.description": "Deskribatu ikusmen arazoak dituztenentzat",
- "upload_form.focus": "Moztu",
+ "upload_form.focus": "Aldatu aurrebista",
"upload_form.undo": "Ezabatu",
"upload_progress.label": "Igotzen...",
"video.close": "Itxi bideoa",
diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json
index d31a7e778..20403838e 100644
--- a/app/javascript/mastodon/locales/fa.json
+++ b/app/javascript/mastodon/locales/fa.json
@@ -1,4 +1,5 @@
{
+ "account.add_or_remove_from_list": "Add or Remove from lists",
"account.badges.bot": "ربات",
"account.block": "مسدودسازی @{name}",
"account.block_domain": "پنهانسازی همه چیز از سرور {domain}",
@@ -16,6 +17,7 @@
"account.follows_you": "پیگیر شماست",
"account.hide_reblogs": "پنهان کردن بازبوقهای @{name}",
"account.link_verified_on": "مالکیت این نشانی در تایخ {date} بررسی شد",
+ "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
"account.media": "عکس و ویدیو",
"account.mention": "نامبردن از @{name}",
"account.moved_to": "{name} منتقل شده است به:",
@@ -111,6 +113,7 @@
"emoji_button.search_results": "نتایج جستجو",
"emoji_button.symbols": "نمادها",
"emoji_button.travel": "سفر و مکان",
+ "empty_column.account_timeline": "No toots here!",
"empty_column.blocks": "شما هنوز هیچ کسی را مسدود نکردهاید.",
"empty_column.community": "فهرست نوشتههای محلی خالی است. چیزی بنویسید تا چرخش بچرخد!",
"empty_column.direct": "شما هیچ پیغام مستقیمی ندارید. اگر چنین پیغامی بگیرید یا بفرستید اینجا نمایش خواهد یافت.",
@@ -134,16 +137,40 @@
"follow_request.authorize": "اجازه دهید",
"follow_request.reject": "اجازه ندهید",
"getting_started.developers": "برای برنامهنویسان",
+ "getting_started.directory": "Profile directory",
"getting_started.documentation": "راهنما",
- "getting_started.find_friends": "یافتن دوستان از توییتر",
"getting_started.heading": "آغاز کنید",
"getting_started.invite": "دعوت از دوستان",
"getting_started.open_source_notice": "ماستدون یک نرمافزار آزاد است. میتوانید در ساخت آن مشارکت کنید یا مشکلاتش را در {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.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": "اصلی",
"home.column_settings.show_reblogs": "نمایش بازبوقها",
"home.column_settings.show_replies": "نمایش پاسخها",
+ "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",
+ "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.",
+ "introduction.interactions.action": "Finish tutorial!",
+ "introduction.interactions.favourite.headline": "Favourite",
+ "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.text": "You can share other people's toots with your followers by boosting them.",
+ "introduction.interactions.reply.headline": "Reply",
+ "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.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": "برای بازگشت",
"keyboard_shortcuts.blocked": "برای گشودن کاربران بیصداشده",
"keyboard_shortcuts.boost": "برای بازبوقیدن",
@@ -220,34 +247,21 @@
"notifications.clear_confirmation": "واقعاً میخواهید همهٔ اعلانهایتان را برای همیشه پاک کنید؟",
"notifications.column_settings.alert": "اعلان در کامپیوتر",
"notifications.column_settings.favourite": "پسندیدهها:",
+ "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.follow": "پیگیران تازه:",
"notifications.column_settings.mention": "نامبردنها:",
"notifications.column_settings.push": "اعلانها از سمت سرور",
"notifications.column_settings.reblog": "بازبوقها:",
"notifications.column_settings.show": "نمایش در ستون",
"notifications.column_settings.sound": "پخش صدا",
+ "notifications.filter.all": "All",
+ "notifications.filter.boosts": "Boosts",
+ "notifications.filter.favourites": "Favourites",
+ "notifications.filter.follows": "Follows",
+ "notifications.filter.mentions": "Mentions",
"notifications.group": "{count} اعلان",
- "onboarding.done": "پایان",
- "onboarding.next": "بعدی",
- "onboarding.page_five.public_timelines": "نوشتههای محلی یعنی نوشتههای همهٔ کاربران {domain}. نوشتههای همهجا یعنی نوشتههای همهٔ کسانی که کاربران {domain} آنها را پی میگیرند. این فهرستهای عمومی راه خوبی برای یافتن کاربران تازه هستند.",
- "onboarding.page_four.home": "ستون «خانه» نوشتههای کسانی را نشان میدهد که شما پی میگیرید.",
- "onboarding.page_four.notifications": "ستون «اعلانها» ارتباطهای شما با دیگران را نشان میدهد.",
- "onboarding.page_one.federation": "ماستدون شبکهای از سرورهای مستقل است که با پیوستن به یکدیگر یک شبکهٔ اجتماعی بزرگ را تشکیل میدهند.",
- "onboarding.page_one.full_handle": "شناسهٔ کاربری کامل شما",
- "onboarding.page_one.handle_hint": "این چیزی است که باید به دوستان خود بگویید تا بتوانند شما را پیدا کنند.",
- "onboarding.page_one.welcome": "به ماستدون خوش آمدید!",
- "onboarding.page_six.admin": "نشانی مسئول سرور شما {admin} است.",
- "onboarding.page_six.almost_done": "الان تقریباً آمادهاید...",
- "onboarding.page_six.appetoot": "بوق! بوق!",
- "onboarding.page_six.apps_available": "اپهای گوناگونی برای اندروید، iOS، و سیستمهای دیگر موجود است.",
- "onboarding.page_six.github": "ماستدون یک نرمافزار آزاد و کدباز است. در {github} میتوانید مشکلاتش را گزارش دهید، ویژگیهای تازه درخواست کنید، یا در کدهایش مشارکت داشته باشید.",
- "onboarding.page_six.guidelines": "رهنمودهای همزیستی دوستانهٔ",
- "onboarding.page_six.read_guidelines": "لطفاً {guidelines} {domain} را بخوانید!",
- "onboarding.page_six.various_app": "اپهای موبایل",
- "onboarding.page_three.profile": "با ویرایش نمایه میتوانید تصویر نمایه، نوشتهٔ معرفی، و نام نمایشی خود را تغییر دهید. ترجیحات دیگر شما هم آنجاست.",
- "onboarding.page_three.search": "در نوار جستجو میتوانید کاربران دیگر را بیابید یا هشتگها را ببینید، مانند {illustration} یا {introductions}. برای یافتن افرادی که روی سرورهای دیگر هستند، شناسهٔ کامل آنها را بنویسید.",
- "onboarding.page_two.compose": "در ستون «نوشتن» میتوانید نوشتههای تازه بنویسید. همچنین با دکمههای زیرش میتوانید تصویر اضافه کنید، حریم خصوصی نوشته را تنظیم کنید، و هشدار محتوا بگذارید.",
- "onboarding.skip": "رد کن",
"privacy.change": "تنظیم حریم خصوصی نوشتهها",
"privacy.direct.long": "تنها به کاربران نامبردهشده نشان بده",
"privacy.direct.short": "مستقیم",
@@ -283,6 +297,8 @@
"search_results.statuses": "بوقها",
"search_results.total": "{count, number} {count, plural, one {نتیجه} other {نتیجه}}",
"standalone.public_title": "نگاهی به کاربران این سرور...",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "مسدودسازی @{name}",
"status.cancel_reblog_private": "حذف بازبوق",
"status.cannot_reblog": "این نوشته را نمیشود بازبوقید",
@@ -318,6 +334,7 @@
"status.show_less_all": "نمایش کمتر همه",
"status.show_more": "نمایش",
"status.show_more_all": "نمایش بیشتر همه",
+ "status.show_thread": "Show thread",
"status.unmute_conversation": "باصداکردن گفتگو",
"status.unpin": "برداشتن نوشتهٔ ثابت نمایه",
"suggestions.dismiss": "Dismiss suggestion",
diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json
index 40e4e6040..a49728cfe 100644
--- a/app/javascript/mastodon/locales/fi.json
+++ b/app/javascript/mastodon/locales/fi.json
@@ -1,4 +1,5 @@
{
+ "account.add_or_remove_from_list": "Add or Remove from lists",
"account.badges.bot": "Botti",
"account.block": "Estä @{name}",
"account.block_domain": "Piilota kaikki sisältö verkkotunnuksesta {domain}",
@@ -7,15 +8,16 @@
"account.disclaimer_full": "Alla olevat käyttäjän profiilitiedot saattavat olla epätäydellisiä.",
"account.domain_blocked": "Verkko-osoite piilotettu",
"account.edit_profile": "Muokkaa",
- "account.endorse": "Feature on profile",
+ "account.endorse": "Suosittele profiilissasi",
"account.follow": "Seuraa",
"account.followers": "Seuraajia",
- "account.followers.empty": "No one follows this user yet.",
+ "account.followers.empty": "Tällä käyttäjällä ei ole vielä seuraajia.",
"account.follows": "Seuraa",
- "account.follows.empty": "This user doesn't follow anyone yet.",
+ "account.follows.empty": "Tämä käyttäjä ei vielä seuraa ketään.",
"account.follows_you": "Seuraa sinua",
"account.hide_reblogs": "Piilota buustaukset käyttäjältä @{name}",
- "account.link_verified_on": "Ownership of this link was checked on {date}",
+ "account.link_verified_on": "Tämän linkin omistaja tarkistettiin {date}",
+ "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
"account.media": "Media",
"account.mention": "Mainitse @{name}",
"account.moved_to": "{name} on muuttanut instanssiin:",
@@ -30,7 +32,7 @@
"account.show_reblogs": "Näytä buustaukset käyttäjältä @{name}",
"account.unblock": "Salli @{name}",
"account.unblock_domain": "Näytä {domain}",
- "account.unendorse": "Don't feature on profile",
+ "account.unendorse": "Poista suosittelu profiilistasi",
"account.unfollow": "Lakkaa seuraamasta",
"account.unmute": "Poista käyttäjän @{name} mykistys",
"account.unmute_notifications": "Poista mykistys käyttäjän @{name} ilmoituksilta",
@@ -64,7 +66,7 @@
"column_header.show_settings": "Näytä asetukset",
"column_header.unpin": "Poista kiinnitys",
"column_subheading.settings": "Asetukset",
- "community.column_settings.media_only": "Media Only",
+ "community.column_settings.media_only": "Vain media",
"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.",
@@ -89,10 +91,10 @@
"confirmations.domain_block.message": "Haluatko aivan varmasti estää koko verkko-osoitteen {domain}? Useimmiten jokunen kohdistettu esto ja mykistys riittää, ja se on suositeltavampi tapa toimia.",
"confirmations.mute.confirm": "Mykistä",
"confirmations.mute.message": "Haluatko varmasti mykistää käyttäjän {name}?",
- "confirmations.redraft.confirm": "Delete & redraft",
+ "confirmations.redraft.confirm": "Poista & palauta muokattavaksi",
"confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? You will lose all replies, boosts and favourites to it.",
- "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": "Vastaa",
+ "confirmations.reply.message": "Jos vastaat nyt, vastaus korvaa tällä hetkellä työstämäsi viestin. Oletko varma, että haluat jatkaa?",
"confirmations.unfollow.confirm": "Lakkaa seuraamasta",
"confirmations.unfollow.message": "Haluatko varmasti lakata seuraamasta käyttäjää {name}?",
"embed.instructions": "Upota statuspäivitys sivullesi kopioimalla alla oleva koodi.",
@@ -111,19 +113,20 @@
"emoji_button.search_results": "Hakutulokset",
"emoji_button.symbols": "Symbolit",
"emoji_button.travel": "Matkailu",
- "empty_column.blocks": "You haven't blocked any users yet.",
+ "empty_column.account_timeline": "No toots here!",
+ "empty_column.blocks": "Et ole vielä estänyt yhtään käyttäjää.",
"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": "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.domain_blocks": "Yhtään verkko-osoitetta ei ole vielä piilotettu.",
+ "empty_column.favourited_statuses": "Et ole vielä lisännyt tuuttauksia suosikkeihisi. Kun teet niin, tuuttaus näkyy tässä.",
+ "empty_column.favourites": "Kukaan ei ole vielä lisännyt tätä tuuttausta suosikkeihinsa. Kun joku tekee niin, näkyy kyseinen henkilö tässä.",
+ "empty_column.follow_requests": "Sinulla ei ole vielä seurauspyyntöjä. Kun saat sellaisen, näkyy se tässä.",
"empty_column.hashtag": "Tällä hashtagilla ei ole vielä mitään.",
"empty_column.home": "Kotiaikajanasi on tyhjä! {public} ja hakutoiminto auttavat alkuun ja kohtaamaan muita käyttäjiä.",
"empty_column.home.public_timeline": "yleinen aikajana",
"empty_column.list": "Lista on vielä tyhjä. Listan jäsenten julkaisemat tilapäivitykset tulevat tähän näkyviin.",
- "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.lists": "Sinulla ei ole vielä yhtään listaa. Kun luot sellaisen, näkyy se tässä.",
+ "empty_column.mutes": "Et ole mykistänyt vielä yhtään käyttäjää.",
"empty_column.notifications": "Sinulle ei ole vielä ilmoituksia. Aloita keskustelu juttelemalla muille.",
"empty_column.public": "Täällä ei ole mitään! Saat sisältöä, kun kirjoitat jotain julkisesti tai käyt manuaalisesti seuraamassa muiden instanssien käyttäjiä",
"federation.change": "Adjust status federation",
@@ -133,44 +136,68 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "Valtuuta",
"follow_request.reject": "Hylkää",
- "getting_started.developers": "Developers",
+ "getting_started.developers": "Kehittäjille",
+ "getting_started.directory": "Profile directory",
"getting_started.documentation": "Documentation",
- "getting_started.find_friends": "Find friends from Twitter",
"getting_started.heading": "Aloitus",
- "getting_started.invite": "Invite people",
+ "getting_started.invite": "Kutsu ihmisiä",
"getting_started.open_source_notice": "Mastodon on avoimen lähdekoodin ohjelma. Voit avustaa tai raportoida ongelmia GitHubissa: {github}.",
- "getting_started.security": "Security",
- "getting_started.terms": "Terms of service",
+ "getting_started.security": "Tunnukset",
+ "getting_started.terms": "Käyttöehdot",
+ "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.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": "Perusasetukset",
"home.column_settings.show_reblogs": "Näytä buustaukset",
"home.column_settings.show_replies": "Näytä vastaukset",
+ "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",
+ "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.",
+ "introduction.interactions.action": "Finish tutorial!",
+ "introduction.interactions.favourite.headline": "Favourite",
+ "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.text": "You can share other people's toots with your followers by boosting them.",
+ "introduction.interactions.reply.headline": "Reply",
+ "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.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": "liiku taaksepäin",
- "keyboard_shortcuts.blocked": "to open blocked users list",
+ "keyboard_shortcuts.blocked": "avaa lista estetyistä käyttäjistä",
"keyboard_shortcuts.boost": "buustaa",
"keyboard_shortcuts.column": "siirrä fokus tietyn sarakkeen tilapäivitykseen",
"keyboard_shortcuts.compose": "siirry tekstinsyöttöön",
"keyboard_shortcuts.description": "Kuvaus",
- "keyboard_shortcuts.direct": "to open direct messages column",
+ "keyboard_shortcuts.direct": "avaa pikaviestisarake",
"keyboard_shortcuts.down": "siirry listassa alaspäin",
"keyboard_shortcuts.enter": "avaa tilapäivitys",
"keyboard_shortcuts.favourite": "tykkää",
- "keyboard_shortcuts.favourites": "to open favourites list",
- "keyboard_shortcuts.federated": "to open federated timeline",
+ "keyboard_shortcuts.favourites": "avaa lista suosikeista",
+ "keyboard_shortcuts.federated": "avaa yleinen aikajana",
"keyboard_shortcuts.heading": "Näppäinkomennot",
- "keyboard_shortcuts.home": "to open home timeline",
+ "keyboard_shortcuts.home": "avaa kotiaikajana",
"keyboard_shortcuts.hotkey": "Pikanäppäin",
"keyboard_shortcuts.legend": "näytä tämä selite",
- "keyboard_shortcuts.local": "to open local timeline",
+ "keyboard_shortcuts.local": "avaa paikallinen aikajana",
"keyboard_shortcuts.mention": "mainitse julkaisija",
- "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.pinned": "to open pinned toots list",
- "keyboard_shortcuts.profile": "to open author's profile",
+ "keyboard_shortcuts.muted": "avaa lista mykistetyistä käyttäjistä",
+ "keyboard_shortcuts.my_profile": "avaa profiilisi",
+ "keyboard_shortcuts.notifications": "avaa ilmoitukset-sarake",
+ "keyboard_shortcuts.pinned": "avaa lista kiinnitetyistä tuuttauksista",
+ "keyboard_shortcuts.profile": "avaa kirjoittajan profiili",
"keyboard_shortcuts.reply": "vastaa",
- "keyboard_shortcuts.requests": "to open follow requests list",
+ "keyboard_shortcuts.requests": "avaa lista seurauspyynnöistä",
"keyboard_shortcuts.search": "siirry hakukenttään",
- "keyboard_shortcuts.start": "to open \"get started\" column",
+ "keyboard_shortcuts.start": "avaa \"Aloitus\" -sarake",
"keyboard_shortcuts.toggle_hidden": "näytä/piilota sisältövaroituksella merkitty teksti",
"keyboard_shortcuts.toot": "ala kirjoittaa uutta tuuttausta",
"keyboard_shortcuts.unfocus": "siirry pois tekstikentästä tai hakukentästä",
@@ -191,16 +218,16 @@
"missing_indicator.label": "Ei löytynyt",
"missing_indicator.sublabel": "Tätä resurssia ei löytynyt",
"mute_modal.hide_notifications": "Piilota tältä käyttäjältä tulevat ilmoitukset?",
- "navigation_bar.apps": "Mobile apps",
+ "navigation_bar.apps": "Mobiiliapplikaatiot",
"navigation_bar.blocks": "Estetyt käyttäjät",
"navigation_bar.community_timeline": "Paikallinen aikajana",
- "navigation_bar.compose": "Compose new toot",
+ "navigation_bar.compose": "Kirjoita uusi tuuttaus",
"navigation_bar.direct": "Viestit",
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Piilotetut verkkotunnukset",
"navigation_bar.edit_profile": "Muokkaa profiilia",
"navigation_bar.favourites": "Suosikit",
- "navigation_bar.filters": "Muted words",
+ "navigation_bar.filters": "Mykistetyt sanat",
"navigation_bar.follow_requests": "Seuraamispyynnöt",
"navigation_bar.info": "Tietoa tästä instanssista",
"navigation_bar.keyboard_shortcuts": "Näppäinkomennot",
@@ -211,7 +238,7 @@
"navigation_bar.pins": "Kiinnitetyt tuuttaukset",
"navigation_bar.preferences": "Asetukset",
"navigation_bar.public_timeline": "Yleinen aikajana",
- "navigation_bar.security": "Security",
+ "navigation_bar.security": "Tunnukset",
"notification.favourite": "{name} tykkäsi tilastasi",
"notification.follow": "{name} seurasi sinua",
"notification.mention": "{name} mainitsi sinut",
@@ -220,34 +247,21 @@
"notifications.clear_confirmation": "Haluatko varmasti poistaa kaikki ilmoitukset pysyvästi?",
"notifications.column_settings.alert": "Työpöytäilmoitukset",
"notifications.column_settings.favourite": "Tykkäykset:",
+ "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.follow": "Uudet seuraajat:",
"notifications.column_settings.mention": "Maininnat:",
"notifications.column_settings.push": "Push-ilmoitukset",
"notifications.column_settings.reblog": "Buustit:",
"notifications.column_settings.show": "Näytä sarakkeessa",
"notifications.column_settings.sound": "Äänimerkki",
+ "notifications.filter.all": "All",
+ "notifications.filter.boosts": "Boosts",
+ "notifications.filter.favourites": "Favourites",
+ "notifications.filter.follows": "Follows",
+ "notifications.filter.mentions": "Mentions",
"notifications.group": "{count} notifications",
- "onboarding.done": "Valmis",
- "onboarding.next": "Seuraava",
- "onboarding.page_five.public_timelines": "Paikallisella aikajanalla näytetään instanssin {domain} kaikkien käyttäjien julkiset julkaisut. Yleisellä aikajanalla näytetään kaikkien instanssin {domain} käyttäjien seuraamien käyttäjien julkiset julkaisut. Nämä julkiset aikajanat ovat loistavia paikkoja löytää uusia ihmisiä.",
- "onboarding.page_four.home": "Kotiaikajanalla näytetään seuraamiesi ihmisten julkaisut.",
- "onboarding.page_four.notifications": "Ilmoitukset-sarakkeessa näytetään muiden sinuun liittyvä toiminta.",
- "onboarding.page_one.federation": "Mastodon on usean itsenäisen palvelimen muodostama yhteisöpalvelu. Näitä palvelimia kutsutaan instansseiksi.",
- "onboarding.page_one.full_handle": "Koko käyttäjänimesi",
- "onboarding.page_one.handle_hint": "Tällä nimellä ystäväsi löytävät sinut.",
- "onboarding.page_one.welcome": "Tervetuloa Mastodoniin!",
- "onboarding.page_six.admin": "Instanssin ylläpitäjä on {admin}.",
- "onboarding.page_six.almost_done": "Melkein valmista...",
- "onboarding.page_six.appetoot": "Tuuttailun iloa!",
- "onboarding.page_six.apps_available": "{apps} on saatavilla iOS:lle, Androidille ja muille alustoille.",
- "onboarding.page_six.github": "Mastodon on ilmainen, vapaan lähdekoodin ohjelma. Voit raportoida bugeja, ehdottaa ominaisuuksia tai osallistua kehittämiseen GitHubissa: {github}.",
- "onboarding.page_six.guidelines": "yhteisön säännöt",
- "onboarding.page_six.read_guidelines": "Ole hyvä ja lue {domain}:n {guidelines}!",
- "onboarding.page_six.various_app": "mobiilisovellukset",
- "onboarding.page_three.profile": "Voit muuttaa profiilikuvaasi, esittelyäsi ja nimimerkkiäsi sekä muita asetuksia muokkaamalla profiiliasi.",
- "onboarding.page_three.search": "Etsi ihmisiä ja hashtageja (esimerkiksi {illustration} tai {introductions}) hakukentän avulla. Jos haet toista instanssia käyttävää henkilöä, käytä hänen koko käyttäjänimeään.",
- "onboarding.page_two.compose": "Kirjoita julkaisuja kirjoitussarakkeessa. Voit ladata kuvia, vaihtaa näkyvyysasetuksia ja lisätä sisältövaroituksia alla olevista painikkeista.",
- "onboarding.skip": "Ohita",
"privacy.change": "Säädä tuuttauksen näkyvyyttä",
"privacy.direct.long": "Julkaise vain mainituille käyttäjille",
"privacy.direct.short": "Suora viesti",
@@ -283,6 +297,8 @@
"search_results.statuses": "Tuuttaukset",
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
"standalone.public_title": "Kurkistus sisälle...",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "Estä @{name}",
"status.cancel_reblog_private": "Peru buustaus",
"status.cannot_reblog": "Tätä julkaisua ei voi buustata",
@@ -291,7 +307,7 @@
"status.direct": "Viesti käyttäjälle @{name}",
"status.embed": "Upota",
"status.favourite": "Tykkää",
- "status.filtered": "Filtered",
+ "status.filtered": "Suodatettu",
"status.load_more": "Lataa lisää",
"status.local_only": "This post is only visible by other users of your instance",
"status.media_hidden": "Media piilotettu",
@@ -302,12 +318,12 @@
"status.open": "Laajenna tilapäivitys",
"status.pin": "Kiinnitä profiiliin",
"status.pinned": "Kiinnitetty tuuttaus",
- "status.read_more": "Read more",
+ "status.read_more": "Näytä enemmän",
"status.reblog": "Buustaa",
"status.reblog_private": "Buustaa alkuperäiselle yleisölle",
"status.reblogged_by": "{name} buustasi",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
- "status.redraft": "Delete & re-draft",
+ "status.redraft": "Poista & palauta muokattavaksi",
"status.reply": "Vastaa",
"status.replyAll": "Vastaa ketjuun",
"status.report": "Raportoi @{name}",
@@ -318,6 +334,7 @@
"status.show_less_all": "Näytä vähemmän kaikista",
"status.show_more": "Näytä lisää",
"status.show_more_all": "Näytä lisää kaikista",
+ "status.show_thread": "Show thread",
"status.unmute_conversation": "Poista keskustelun mykistys",
"status.unpin": "Irrota profiilista",
"suggestions.dismiss": "Dismiss suggestion",
diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json
index f5faaca6b..a7829085d 100644
--- a/app/javascript/mastodon/locales/fr.json
+++ b/app/javascript/mastodon/locales/fr.json
@@ -1,4 +1,5 @@
{
+ "account.add_or_remove_from_list": "Ajouter ou retirer des listes",
"account.badges.bot": "Bot",
"account.block": "Bloquer @{name}",
"account.block_domain": "Tout masquer venant de {domain}",
@@ -16,6 +17,7 @@
"account.follows_you": "Vous suit",
"account.hide_reblogs": "Masquer les partages de @{name}",
"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.mention": "Mentionner",
"account.moved_to": "{name} a déménagé vers :",
@@ -111,6 +113,7 @@
"emoji_button.search_results": "Résultats de la recherche",
"emoji_button.symbols": "Symboles",
"emoji_button.travel": "Lieux & Voyages",
+ "empty_column.account_timeline": "Aucun pouet ici !",
"empty_column.blocks": "Vous n’avez bloqué aucun utilisateur pour le moment.",
"empty_column.community": "Le fil public local est vide. Écrivez donc quelque chose pour le remplir !",
"empty_column.direct": "Vous n’avez pas encore de messages directs. Lorsque vous en enverrez ou recevrez un, il s’affichera ici.",
@@ -134,16 +137,40 @@
"follow_request.authorize": "Accepter",
"follow_request.reject": "Rejeter",
"getting_started.developers": "Développeurs",
+ "getting_started.directory": "Annuaire des profils",
"getting_started.documentation": "Documentation",
- "getting_started.find_friends": "Trouver des amis depuis Twitter",
"getting_started.heading": "Pour commencer",
"getting_started.invite": "Inviter des gens",
"getting_started.open_source_notice": "Mastodon est un logiciel libre. Vous pouvez contribuer et envoyer vos commentaires et rapports de bogues via {github} sur GitHub.",
"getting_started.security": "Sécurité",
"getting_started.terms": "Conditions d’utilisation",
+ "hashtag.column_header.tag_mode.all": "et {additional}",
+ "hashtag.column_header.tag_mode.any": "ou {additional}",
+ "hashtag.column_header.tag_mode.none": "sans {additional}",
+ "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": "Include additional tags in this column",
"home.column_settings.basic": "Basique",
"home.column_settings.show_reblogs": "Afficher les partages",
"home.column_settings.show_replies": "Afficher les réponses",
+ "introduction.federation.action": "Suivant",
+ "introduction.federation.federated.headline": "Federated",
+ "introduction.federation.federated.text": "Les messages publics provenant d'autres serveurs du fediverse apparaîtront dans le fil public global.",
+ "introduction.federation.home.headline": "Home",
+ "introduction.federation.home.text": "Les messages des personnes que vous suivez apparaîtront dans votre fil d'accueil. Vous pouvez suivre n'importe qui sur n'importe quel serveur !",
+ "introduction.federation.local.headline": "Local",
+ "introduction.federation.local.text": "Les messages publics de personnes se trouvant sur le même serveur que vous apparaîtront sur le fil public local.",
+ "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 à l'auteur que vous l'avez aimé, en le favorisant.",
+ "introduction.interactions.reblog.headline": "Repartager",
+ "introduction.interactions.reblog.text": "Vous pouvez partager les pouets d'autres personnes avec vos suiveurs 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 fediverse ! Dans quelques instants, vous pourrez diffuser des messages et parler à vos amis 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": "revenir en arrière",
"keyboard_shortcuts.blocked": "pour ouvrir une liste d’utilisateurs bloqués",
"keyboard_shortcuts.boost": "partager",
@@ -220,34 +247,21 @@
"notifications.clear_confirmation": "Voulez-vous vraiment supprimer toutes vos notifications ?",
"notifications.column_settings.alert": "Notifications locales",
"notifications.column_settings.favourite": "Favoris :",
+ "notifications.column_settings.filter_bar.advanced": "Afficher toutes les catégories",
+ "notifications.column_settings.filter_bar.category": "Barre de recherche rapide",
+ "notifications.column_settings.filter_bar.show": "Afficher",
"notifications.column_settings.follow": "Nouveaux⋅elles abonné⋅e·s :",
"notifications.column_settings.mention": "Mentions :",
"notifications.column_settings.push": "Notifications",
"notifications.column_settings.reblog": "Partages :",
"notifications.column_settings.show": "Afficher dans la colonne",
"notifications.column_settings.sound": "Émettre un son",
+ "notifications.filter.all": "Tout",
+ "notifications.filter.boosts": "Repartages",
+ "notifications.filter.favourites": "Favoris",
+ "notifications.filter.follows": "Suiveurs",
+ "notifications.filter.mentions": "Mentions",
"notifications.group": "{count} notifications",
- "onboarding.done": "Effectué",
- "onboarding.next": "Suivant",
- "onboarding.page_five.public_timelines": "Le fil public global affiche les messages de toutes les personnes suivies par les membres de {domain}. Le fil public local est identique, mais se limite aux membres de {domain}.",
- "onboarding.page_four.home": "L’accueil affiche les messages des personnes que vous suivez.",
- "onboarding.page_four.notifications": "La colonne de notification vous avertit lors d’une interaction avec vous.",
- "onboarding.page_one.federation": "Mastodon est un réseau de serveurs indépendants qui se joignent pour former un réseau social plus vaste. Nous appelons ces serveurs des instances.",
- "onboarding.page_one.full_handle": "Votre identifiant complet",
- "onboarding.page_one.handle_hint": "C’est ce que vos ami·e·s devront rechercher.",
- "onboarding.page_one.welcome": "Bienvenue sur Mastodon !",
- "onboarding.page_six.admin": "Votre instance est administrée par {admin}.",
- "onboarding.page_six.almost_done": "Nous y sommes presque…",
- "onboarding.page_six.appetoot": "Bon appouétit !",
- "onboarding.page_six.apps_available": "De nombreuses {apps} sont disponibles pour iOS, Android et autres.",
- "onboarding.page_six.github": "Mastodon est un logiciel libre, gratuit et open-source. Vous pouvez rapporter des bogues, suggérer des fonctionnalités, ou contribuer à son développement sur {github}.",
- "onboarding.page_six.guidelines": "règles de la communauté",
- "onboarding.page_six.read_guidelines": "S’il vous plaît, n’oubliez pas de lire les {guidelines} !",
- "onboarding.page_six.various_app": "applications mobiles",
- "onboarding.page_three.profile": "Modifiez votre profil pour changer votre avatar, votre description ainsi que votre nom. Vous y trouverez également d’autres préférences.",
- "onboarding.page_three.search": "Utilisez la barre de recherche pour trouver des utilisateur⋅ice⋅s ou regardez des hashtags tels que {illustration} et {introductions}. Pour trouver quelqu’un qui n’est pas sur cette instance, utilisez son identifiant complet.",
- "onboarding.page_two.compose": "Écrivez depuis la colonne de composition. Vous pouvez ajouter des images, changer les réglages de confidentialité, et ajouter des avertissements de contenu (Content Warning) grâce aux icônes en dessous.",
- "onboarding.skip": "Passer",
"privacy.change": "Ajuster la confidentialité du message",
"privacy.direct.long": "N’envoyer qu’aux personnes mentionnées",
"privacy.direct.short": "Direct",
@@ -283,6 +297,8 @@
"search_results.statuses": "Pouets",
"search_results.total": "{count, number} {count, plural, one {résultat} other {résultats}}",
"standalone.public_title": "Un aperçu …",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "Block @{name}",
"status.cancel_reblog_private": "Dé-booster",
"status.cannot_reblog": "Cette publication ne peut être boostée",
@@ -318,10 +334,11 @@
"status.show_less_all": "Tout replier",
"status.show_more": "Déplier",
"status.show_more_all": "Tout déplier",
+ "status.show_thread": "Afficher le fil",
"status.unmute_conversation": "Ne plus masquer la conversation",
"status.unpin": "Retirer du profil",
- "suggestions.dismiss": "Dismiss suggestion",
- "suggestions.header": "You might be interested in…",
+ "suggestions.dismiss": "Rejeter la suggestion",
+ "suggestions.header": "Vous pourriez être intéressé par.…",
"tabs_bar.federated_timeline": "Fil public global",
"tabs_bar.home": "Accueil",
"tabs_bar.local_timeline": "Fil public local",
@@ -332,7 +349,7 @@
"upload_area.title": "Glissez et déposez pour envoyer",
"upload_button.label": "Joindre un média (JPEG, PNG, GIF, WebM, MP4, MOV)",
"upload_form.description": "Décrire pour les malvoyant·e·s",
- "upload_form.focus": "Recadrer",
+ "upload_form.focus": "Modifier l’aperçu",
"upload_form.undo": "Supprimer",
"upload_progress.label": "Envoi en cours…",
"video.close": "Fermer la vidéo",
diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json
index dd186e12d..206f5af34 100644
--- a/app/javascript/mastodon/locales/gl.json
+++ b/app/javascript/mastodon/locales/gl.json
@@ -1,4 +1,5 @@
{
+ "account.add_or_remove_from_list": "Engadir ou Eliminar das listas",
"account.badges.bot": "Bot",
"account.block": "Bloquear @{name}",
"account.block_domain": "Ocultar calquer contido de {domain}",
@@ -16,6 +17,7 @@
"account.follows_you": "Séguena",
"account.hide_reblogs": "Ocultar repeticións de @{name}",
"account.link_verified_on": "A propiedade de esta ligazón foi comprobada en {date}",
+ "account.locked_info": "O estado da intimidade de esta conta estableceuse en pechado. A persoa dona da conta revisa quen pode seguila.",
"account.media": "Medios",
"account.mention": "Mencionar @{name}",
"account.moved_to": "{name} marchou a:",
@@ -98,7 +100,7 @@
"embed.instructions": "Copie o código inferior para incrustar no seu sitio web este estado.",
"embed.preview": "Así será mostrado:",
"emoji_button.activity": "Actividade",
- "emoji_button.custom": "Personalizado",
+ "emoji_button.custom": "Persoalizado",
"emoji_button.flags": "Marcas",
"emoji_button.food": "Comida e Bebida",
"emoji_button.label": "Insertar emoji",
@@ -111,6 +113,7 @@
"emoji_button.search_results": "Resultados da busca",
"emoji_button.symbols": "Símbolos",
"emoji_button.travel": "Viaxes e Lugares",
+ "empty_column.account_timeline": "Sen toots por aquí!",
"empty_column.blocks": "Non bloqueou ningunha usuaria polo de agora.",
"empty_column.community": "A liña temporal local está baldeira. Escriba algo de xeito público para que rule!",
"empty_column.direct": "Aínda non ten mensaxes directas. Cando envíe ou reciba unha, aparecerá aquí.",
@@ -134,16 +137,40 @@
"follow_request.authorize": "Autorizar",
"follow_request.reject": "Rexeitar",
"getting_started.developers": "Desenvolvedoras",
+ "getting_started.directory": "Profile directory",
"getting_started.documentation": "Documentation",
- "getting_started.find_friends": "Atope amigos da Twitter",
"getting_started.heading": "Comezando",
"getting_started.invite": "Convide a xente",
"getting_started.open_source_notice": "Mastodon é software de código aberto. Pode contribuír ou informar de fallos en GitHub en {github}.",
"getting_started.security": "Seguridade",
"getting_started.terms": "Termos do servizo",
+ "hashtag.column_header.tag_mode.all": "e {additional}",
+ "hashtag.column_header.tag_mode.any": "ou {additional}",
+ "hashtag.column_header.tag_mode.none": "sen {additional}",
+ "hashtag.column_settings.tag_mode.all": "Todos estos",
+ "hashtag.column_settings.tag_mode.any": "Calquera de estos",
+ "hashtag.column_settings.tag_mode.none": "Ningún de estos",
+ "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
"home.column_settings.basic": "Básico",
"home.column_settings.show_reblogs": "Mostrar repeticións",
"home.column_settings.show_replies": "Mostrar respostas",
+ "introduction.federation.action": "Seguinte",
+ "introduction.federation.federated.headline": "Federated",
+ "introduction.federation.federated.text": "Publicacións públicas desde outros servidores do fediverso aparecerán na liña temporal federada.",
+ "introduction.federation.home.headline": "Home",
+ "introduction.federation.home.text": "Publicacións de xente que vostede segue aparecerán no TL de Inicio. Pode seguir a calquera en calquer servidor!",
+ "introduction.federation.local.headline": "Local",
+ "introduction.federation.local.text": "Publicacións públicas de xente no seu mesmo servidor aparecerán na liña temporal local.",
+ "introduction.interactions.action": "Rematar titorial!",
+ "introduction.interactions.favourite.headline": "Favorito",
+ "introduction.interactions.favourite.text": "Pode gardar un toot para máis tarde, e facerlle saber a autora que lle gustou, dándolle a Favorito.",
+ "introduction.interactions.reblog.headline": "Promocionar",
+ "introduction.interactions.reblog.text": "Pode compartir os toots de outra xente coas súas seguirodas promocionándoos.",
+ "introduction.interactions.reply.headline": "Respostar",
+ "introduction.interactions.reply.text": "Pode respostar aos toots de outras persoas e aos seus propios, así quedarán encadeados nunha conversa.",
+ "introduction.welcome.action": "Imos!",
+ "introduction.welcome.headline": "Primeiros pasos",
+ "introduction.welcome.text": "Benvida ao fediverso! Nun intre poderá difundir mensaxes e falar cos seus amigos nun gran número de servidores. Pero este servidor (dominio) é especial—hospeda o seu perfil, así que lémbreo.",
"keyboard_shortcuts.back": "voltar atrás",
"keyboard_shortcuts.blocked": "abrir lista de usuarias bloqueadas",
"keyboard_shortcuts.boost": "promover",
@@ -207,7 +234,7 @@
"navigation_bar.lists": "Listas",
"navigation_bar.logout": "Sair",
"navigation_bar.mutes": "Usuarias acaladas",
- "navigation_bar.personal": "Personal",
+ "navigation_bar.personal": "Persoal",
"navigation_bar.pins": "Mensaxes fixadas",
"navigation_bar.preferences": "Preferencias",
"navigation_bar.public_timeline": "Liña temporal federada",
@@ -220,34 +247,21 @@
"notifications.clear_confirmation": "Estás seguro de que queres limpar permanentemente todas as túas notificacións?",
"notifications.column_settings.alert": "Notificacións de escritorio",
"notifications.column_settings.favourite": "Favoritas:",
+ "notifications.column_settings.filter_bar.advanced": "Mostrar todas as categorías",
+ "notifications.column_settings.filter_bar.category": "Barra de filtrado rápido",
+ "notifications.column_settings.filter_bar.show": "Mostrar",
"notifications.column_settings.follow": "Novos seguidores:",
"notifications.column_settings.mention": "Mencións:",
"notifications.column_settings.push": "Enviar notificacións",
"notifications.column_settings.reblog": "Promocións:",
"notifications.column_settings.show": "Mostrar en columna",
"notifications.column_settings.sound": "Reproducir son",
+ "notifications.filter.all": "Todo",
+ "notifications.filter.boosts": "Promocións",
+ "notifications.filter.favourites": "Favoritos",
+ "notifications.filter.follows": "Seguimentos",
+ "notifications.filter.mentions": "Mencións",
"notifications.group": "{count} notificacións",
- "onboarding.done": "Feito",
- "onboarding.next": "Seguinte",
- "onboarding.page_five.public_timelines": "A liña de tempo local mostra as publicacións públicas de todos en {domain}. A liña de tempo federada mostra as publicacións públicas de todos os que as persoas en {domain} seguen. Estas son as Liñas de tempo públicas, unha boa forma de descubrir novas persoas.",
- "onboarding.page_four.home": "A liña de tempo local mostra as publicacións das persoas que segues.",
- "onboarding.page_four.notifications": "A columna de notificacións mostra cando alguén interactúa contigo.",
- "onboarding.page_one.federation": "Mastodon é unha rede de servidores independentes que se unen para facer unha rede social máis grande. Chamamos instancias a estes servidores.",
- "onboarding.page_one.full_handle": "O seu alcume completo",
- "onboarding.page_one.handle_hint": "Esto é o que lle debe dicir a quen queira seguila.",
- "onboarding.page_one.welcome": "Benvido a Mastodon!",
- "onboarding.page_six.admin": "O administrador da túa instancia é {admin}.",
- "onboarding.page_six.almost_done": "Case feito...",
- "onboarding.page_six.appetoot": "Que tootes ben!",
- "onboarding.page_six.apps_available": "Hai {apps} dispoñíbeis para iOS, Android e outras plataformas.",
- "onboarding.page_six.github": "Mastodon é un software gratuito e de código aberto. Pode informar de erros, solicitar novas funcionalidades ou contribuír ao código en {github}.",
- "onboarding.page_six.guidelines": "directrices da comunidade",
- "onboarding.page_six.read_guidelines": "Por favor, le as {guidelines} do {domain}!",
- "onboarding.page_six.various_app": "aplicacións móbiles",
- "onboarding.page_three.profile": "Edita o teu perfil para cambiar o teu avatar, bio e nome. Alí, tamén atoparás outras preferencias.",
- "onboarding.page_three.search": "Utilice a barra de busca para atopar xente e descubrir etiquetas, como {illustration} e {introductions}. Para atopar unha usuaria que non está en esta instancia utilice o seu enderezo completo.",
- "onboarding.page_two.compose": "Escriba mensaxes desde a columna de composición. Pode subir imaxes, mudar as opcións de intimidade e engadir avisos sobre o contido coas iconas inferiores.",
- "onboarding.skip": "Saltar",
"privacy.change": "Axustar a intimidade do estado",
"privacy.direct.long": "Enviar exclusivamente as usuarias mencionadas",
"privacy.direct.short": "Directa",
@@ -283,6 +297,8 @@
"search_results.statuses": "Toots",
"search_results.total": "{count, number} {count,plural,one {result} outros {results}}",
"standalone.public_title": "Ollada dentro...",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "Block @{name}",
"status.cancel_reblog_private": "Non promover",
"status.cannot_reblog": "Esta mensaxe non pode ser promovida",
@@ -318,10 +334,11 @@
"status.show_less_all": "Mostrar menos para todas",
"status.show_more": "Mostrar máis",
"status.show_more_all": "Mostrar máis para todas",
+ "status.show_thread": "Mostrar fío",
"status.unmute_conversation": "Non acalar a conversa",
"status.unpin": "Despegar do perfil",
- "suggestions.dismiss": "Dismiss suggestion",
- "suggestions.header": "You might be interested in…",
+ "suggestions.dismiss": "Rexeitar suxestión",
+ "suggestions.header": "Podería estar interesada en…",
"tabs_bar.federated_timeline": "Federado",
"tabs_bar.home": "Inicio",
"tabs_bar.local_timeline": "Local",
@@ -332,7 +349,7 @@
"upload_area.title": "Arrastre e solte para subir",
"upload_button.label": "Engadir medios (JPEG, PNG, GIF, WebM, MP4, MOV)",
"upload_form.description": "Describa para deficientes visuais",
- "upload_form.focus": "Recortar",
+ "upload_form.focus": "Cambiar vista previa",
"upload_form.undo": "Eliminar",
"upload_progress.label": "Subindo...",
"video.close": "Pechar video",
diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json
index 4036c91eb..6108997bc 100644
--- a/app/javascript/mastodon/locales/he.json
+++ b/app/javascript/mastodon/locales/he.json
@@ -1,4 +1,5 @@
{
+ "account.add_or_remove_from_list": "Add or Remove from lists",
"account.badges.bot": "Bot",
"account.block": "חסימת @{name}",
"account.block_domain": "להסתיר הכל מהקהילה {domain}",
@@ -16,6 +17,7 @@
"account.follows_you": "במעקב אחריך",
"account.hide_reblogs": "להסתיר הידהודים מאת @{name}",
"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.media": "מדיה",
"account.mention": "אזכור של @{name}",
"account.moved_to": "החשבון {name} הועבר אל:",
@@ -111,6 +113,7 @@
"emoji_button.search_results": "תוצאות חיפוש",
"emoji_button.symbols": "סמלים",
"emoji_button.travel": "טיולים ואתרים",
+ "empty_column.account_timeline": "No toots here!",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "טור הסביבה ריק. יש לפרסם משהו כדי שדברים יתרחילו להתגלגל!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
@@ -134,16 +137,40 @@
"follow_request.authorize": "קבלה",
"follow_request.reject": "דחיה",
"getting_started.developers": "Developers",
+ "getting_started.directory": "Profile directory",
"getting_started.documentation": "Documentation",
- "getting_started.find_friends": "Find friends from Twitter",
"getting_started.heading": "בואו נתחיל",
"getting_started.invite": "Invite people",
"getting_started.open_source_notice": "מסטודון היא תוכנה חופשית (בקוד פתוח). ניתן לתרום או לדווח על בעיות בגיטהאב: {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.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": "למתחילים",
"home.column_settings.show_reblogs": "הצגת הדהודים",
"home.column_settings.show_replies": "הצגת תגובות",
+ "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",
+ "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.",
+ "introduction.interactions.action": "Finish tutorial!",
+ "introduction.interactions.favourite.headline": "Favourite",
+ "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.text": "You can share other people's toots with your followers by boosting them.",
+ "introduction.interactions.reply.headline": "Reply",
+ "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.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": "ניווט חזרה",
"keyboard_shortcuts.blocked": "to open blocked users list",
"keyboard_shortcuts.boost": "להדהד",
@@ -220,34 +247,21 @@
"notifications.clear_confirmation": "להסיר את כל ההתראות? בטוח?",
"notifications.column_settings.alert": "התראות לשולחן העבודה",
"notifications.column_settings.favourite": "מחובבים:",
+ "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.follow": "עוקבים חדשים:",
"notifications.column_settings.mention": "פניות:",
"notifications.column_settings.push": "הודעות בדחיפה",
"notifications.column_settings.reblog": "הדהודים:",
"notifications.column_settings.show": "הצגה בטור",
"notifications.column_settings.sound": "שמע מופעל",
+ "notifications.filter.all": "All",
+ "notifications.filter.boosts": "Boosts",
+ "notifications.filter.favourites": "Favourites",
+ "notifications.filter.follows": "Follows",
+ "notifications.filter.mentions": "Mentions",
"notifications.group": "{count} notifications",
- "onboarding.done": "יציאה",
- "onboarding.next": "הלאה",
- "onboarding.page_five.public_timelines": "ציר הזמן המקומי מראה הודעות פומביות מכל באי קהילת {domain}. ציר הזמן העולמי מראה הודעות פומביות מאת כי מי שבאי קהילת {domain} עוקבים אחריו. אלו צירי הזמן הפומביים, דרך נהדרת לגלות אנשים חדשים.",
- "onboarding.page_four.home": "ציר זמן הבית מראה הודעות מהנעקבים שלך.",
- "onboarding.page_four.notifications": "טור ההתראות מראה כשמישהו מתייחס להודעות שלך.",
- "onboarding.page_one.federation": "מסטודון היא רשת של שרתים עצמאיים מצורפים ביחד לכדי רשת חברתית אחת גדולה. אנחנו מכנים את השרתים האלו קהילות.",
- "onboarding.page_one.full_handle": "Your full handle",
- "onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.",
- "onboarding.page_one.welcome": "ברוכים הבאים למסטודון!",
- "onboarding.page_six.admin": "הקהילה מנוהלת בידי {admin}.",
- "onboarding.page_six.almost_done": "כמעט סיימנו...",
- "onboarding.page_six.appetoot": "בתותאבון!",
- "onboarding.page_six.apps_available": "קיימים {apps} זמינים עבור אנדרואיד, אייפון ופלטפורמות נוספות.",
- "onboarding.page_six.github": "מסטודון הוא תוכנה חופשית. ניתן לדווח על באגים, לבקש יכולות, או לתרום לקוד באתר {github}.",
- "onboarding.page_six.guidelines": "חוקי הקהילה",
- "onboarding.page_six.read_guidelines": "נא לקרוא את {guidelines} של {domain}!",
- "onboarding.page_six.various_app": "יישומונים ניידים",
- "onboarding.page_three.profile": "ץתחת 'עריכת פרופיל' ניתן להחליף את תמונת הפרופיל שלך, תיאור קצר, והשם המוצג. שם גם ניתן למצוא אפשרויות והעדפות נוספות.",
- "onboarding.page_three.search": "בחלונית החיפוש ניתן לחפש אנשים והאשתגים, כמו למשל {illustration} או {introductions}. כדי למצוא מישהו שלא על האינסטנס המקומי, יש להשתמש בכינוי המשתמש המלא.",
- "onboarding.page_two.compose": "הודעות כותבים מטור הכתיבה. ניתן לנעלות תמונות, לשנות הגדרות פרטיות, ולהוסיף אזהרות תוכן בעזרת האייקונים שמתחת.",
- "onboarding.skip": "לדלג",
"privacy.change": "שינוי פרטיות ההודעה",
"privacy.direct.long": "הצג רק למי שהודעה זו פונה אליו",
"privacy.direct.short": "הודעה ישירה",
@@ -283,6 +297,8 @@
"search_results.statuses": "Toots",
"search_results.total": "{count, number} {count, plural, one {תוצאה} other {תוצאות}}",
"standalone.public_title": "הצצה פנימה...",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "Block @{name}",
"status.cancel_reblog_private": "Unboost",
"status.cannot_reblog": "לא ניתן להדהד הודעה זו",
@@ -318,6 +334,7 @@
"status.show_less_all": "Show less for all",
"status.show_more": "הראה יותר",
"status.show_more_all": "Show more for all",
+ "status.show_thread": "Show thread",
"status.unmute_conversation": "הסרת השתקת שיחה",
"status.unpin": "לשחרר מקיבוע באודות",
"suggestions.dismiss": "Dismiss suggestion",
diff --git a/app/javascript/mastodon/locales/hr.json b/app/javascript/mastodon/locales/hr.json
index 0d78a132f..7e589c4cc 100644
--- a/app/javascript/mastodon/locales/hr.json
+++ b/app/javascript/mastodon/locales/hr.json
@@ -1,4 +1,5 @@
{
+ "account.add_or_remove_from_list": "Add or Remove from lists",
"account.badges.bot": "Bot",
"account.block": "Blokiraj @{name}",
"account.block_domain": "Sakrij sve sa {domain}",
@@ -16,6 +17,7 @@
"account.follows_you": "te slijedi",
"account.hide_reblogs": "Hide boosts from @{name}",
"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.media": "Media",
"account.mention": "Spomeni @{name}",
"account.moved_to": "{name} has moved to:",
@@ -111,6 +113,7 @@
"emoji_button.search_results": "Search results",
"emoji_button.symbols": "Simboli",
"emoji_button.travel": "Putovanja & Mjesta",
+ "empty_column.account_timeline": "No toots here!",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "Lokalni timeline je prazan. Napiši nešto javno kako bi pokrenuo stvari!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
@@ -134,16 +137,40 @@
"follow_request.authorize": "Autoriziraj",
"follow_request.reject": "Odbij",
"getting_started.developers": "Developers",
+ "getting_started.directory": "Profile directory",
"getting_started.documentation": "Documentation",
- "getting_started.find_friends": "Find friends from Twitter",
"getting_started.heading": "Počnimo",
"getting_started.invite": "Invite people",
"getting_started.open_source_notice": "Mastodon je softver otvorenog koda. Možeš pridonijeti ili prijaviti probleme na GitHubu {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.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": "Osnovno",
"home.column_settings.show_reblogs": "Pokaži boostove",
"home.column_settings.show_replies": "Pokaži odgovore",
+ "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",
+ "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.",
+ "introduction.interactions.action": "Finish tutorial!",
+ "introduction.interactions.favourite.headline": "Favourite",
+ "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.text": "You can share other people's toots with your followers by boosting them.",
+ "introduction.interactions.reply.headline": "Reply",
+ "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.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",
@@ -220,34 +247,21 @@
"notifications.clear_confirmation": "Želiš li zaista obrisati sve svoje notifikacije?",
"notifications.column_settings.alert": "Desktop notifikacije",
"notifications.column_settings.favourite": "Favoriti:",
+ "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.follow": "Novi sljedbenici:",
"notifications.column_settings.mention": "Spominjanja:",
"notifications.column_settings.push": "Push notifications",
"notifications.column_settings.reblog": "Boostovi:",
"notifications.column_settings.show": "Prikaži u stupcu",
"notifications.column_settings.sound": "Sviraj zvuk",
+ "notifications.filter.all": "All",
+ "notifications.filter.boosts": "Boosts",
+ "notifications.filter.favourites": "Favourites",
+ "notifications.filter.follows": "Follows",
+ "notifications.filter.mentions": "Mentions",
"notifications.group": "{count} notifications",
- "onboarding.done": "Učinjeno",
- "onboarding.next": "Sljedeće",
- "onboarding.page_five.public_timelines": "Lokalni timeline prikazuje javne postove sviju od svakog na {domain}. Federalni timeline prikazuje javne postove svakog koga ljudi na {domain} slijede. To su Javni Timelineovi, sjajan način za otkriti nove ljude.",
- "onboarding.page_four.home": "The home timeline prikazuje postove ljudi koje slijediš.",
- "onboarding.page_four.notifications": "Stupac za notifikacije pokazuje poruke drugih upućene tebi.",
- "onboarding.page_one.federation": "Mastodon čini mreža neovisnih servera udruženih u jednu veću socialnu mrežu. Te servere nazivamo instancama.",
- "onboarding.page_one.full_handle": "Your full handle",
- "onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.",
- "onboarding.page_one.welcome": "Dobro došli na Mastodon!",
- "onboarding.page_six.admin": "Administrator tvoje instance je {admin}.",
- "onboarding.page_six.almost_done": "Još malo pa gotovo...",
- "onboarding.page_six.appetoot": "Živjeli!",
- "onboarding.page_six.apps_available": "Postoje {apps} dostupne za iOS, Android i druge platforme.",
- "onboarding.page_six.github": "Mastodon je besplatan softver otvorenog koda. You can report bugs, request features, or contribute to the code on {github}.",
- "onboarding.page_six.guidelines": "smjernice zajednice",
- "onboarding.page_six.read_guidelines": "Molimo pročitaj {domain}'s {guidelines}!",
- "onboarding.page_six.various_app": "mobilne aplikacije",
- "onboarding.page_three.profile": "Uredi svoj profil promjenom svog avatara, biografije, i imena. Ovdje ćeš isto tako pronaći i druge postavke.",
- "onboarding.page_three.search": "Koristi tražilicu kako bi pronašao ljude i tražio hashtags, kao što su {illustration} i {introductions}. Kako bi pronašao osobu koja nije na ovoj instanci, upotrijebi njen pun handle.",
- "onboarding.page_two.compose": "Piši postove u stupcu za sastavljanje. Možeš uploadati slike, promijeniti postavke privatnosti, i dodati upozorenja o sadržaju s ikonama ispod.",
- "onboarding.skip": "Preskoči",
"privacy.change": "Podesi status privatnosti",
"privacy.direct.long": "Prikaži samo spomenutim korisnicima",
"privacy.direct.short": "Direktno",
@@ -283,6 +297,8 @@
"search_results.statuses": "Toots",
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
"standalone.public_title": "A look inside...",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "Block @{name}",
"status.cancel_reblog_private": "Unboost",
"status.cannot_reblog": "Ovaj post ne može biti boostan",
@@ -318,6 +334,7 @@
"status.show_less_all": "Show less for all",
"status.show_more": "Pokaži više",
"status.show_more_all": "Show more for all",
+ "status.show_thread": "Show thread",
"status.unmute_conversation": "Poništi utišavanje razgovora",
"status.unpin": "Unpin from profile",
"suggestions.dismiss": "Dismiss suggestion",
diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json
index 905e8eb8a..fe761d394 100644
--- a/app/javascript/mastodon/locales/hu.json
+++ b/app/javascript/mastodon/locales/hu.json
@@ -1,4 +1,5 @@
{
+ "account.add_or_remove_from_list": "Add or Remove from lists",
"account.badges.bot": "Bot",
"account.block": "@{name} letiltása",
"account.block_domain": "Minden elrejtése innen: {domain}",
@@ -16,6 +17,7 @@
"account.follows_you": "Követnek téged",
"account.hide_reblogs": "Rejtsd el a tülkölést @{name}-tól/től",
"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.media": "Média",
"account.mention": "@{name} említése",
"account.moved_to": "{name} átköltözött:",
@@ -111,6 +113,7 @@
"emoji_button.search_results": "Keresési találatok",
"emoji_button.symbols": "Szimbólumok",
"emoji_button.travel": "Utazás és Helyek",
+ "empty_column.account_timeline": "No toots here!",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "A helyi idővonal üres. Írj egy publikus stástuszt, hogy elindítsd a labdát!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
@@ -134,16 +137,40 @@
"follow_request.authorize": "Engedélyez",
"follow_request.reject": "Visszautasít",
"getting_started.developers": "Developers",
+ "getting_started.directory": "Profile directory",
"getting_started.documentation": "Documentation",
- "getting_started.find_friends": "Find friends from Twitter",
"getting_started.heading": "Első lépések",
"getting_started.invite": "Invite people",
"getting_started.open_source_notice": "Mastodon egy nyílt forráskódú szoftver. Hozzájárulás vagy problémák jelentése a GitHub-on {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.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": "Alap",
"home.column_settings.show_reblogs": "Ismétlések mutatása",
"home.column_settings.show_replies": "Válaszok mutatása",
+ "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",
+ "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.",
+ "introduction.interactions.action": "Finish tutorial!",
+ "introduction.interactions.favourite.headline": "Favourite",
+ "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.text": "You can share other people's toots with your followers by boosting them.",
+ "introduction.interactions.reply.headline": "Reply",
+ "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.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": "vissza navigálás",
"keyboard_shortcuts.blocked": "to open blocked users list",
"keyboard_shortcuts.boost": "ismétlés",
@@ -220,34 +247,21 @@
"notifications.clear_confirmation": "Biztos benne, hogy véglegesen törölni akarja az összes értesítését?",
"notifications.column_settings.alert": "Asztali gépi értesítések",
"notifications.column_settings.favourite": "Kedvencek:",
+ "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.follow": "Új követők:",
"notifications.column_settings.mention": "Megemítéseim:",
"notifications.column_settings.push": "Push értesítések",
"notifications.column_settings.reblog": "Rebloggolások:",
"notifications.column_settings.show": "Oszlopban mutatás",
"notifications.column_settings.sound": "Hang lejátszása",
+ "notifications.filter.all": "All",
+ "notifications.filter.boosts": "Boosts",
+ "notifications.filter.favourites": "Favourites",
+ "notifications.filter.follows": "Follows",
+ "notifications.filter.mentions": "Mentions",
"notifications.group": "{count} notifications",
- "onboarding.done": "Befejezve",
- "onboarding.next": "Következő",
- "onboarding.page_five.public_timelines": "A helyi idővonal mindenkinek a publikus posztját mutatja a(z) {domain}-n. A federált idővonal mindenki publikus posztját mutatja akit {domain} felhasználói követnek. Ezek a publikus idővonalak, nagyszerű mód új emberek megismerésére.",
- "onboarding.page_four.home": "A hazai idővonal azon emberek posztjait mutatja akiket te követsz.",
- "onboarding.page_four.notifications": "Az értesítések oszlop más felhasználók interakcióját veled tükrözi.",
- "onboarding.page_one.federation": "Mastodon egy független szerverekből alkotott hálózat melyek együttműködése egy nagy szociális hálót képez. Ezeket a szervereket instanciáknak hívjuk.",
- "onboarding.page_one.full_handle": "Teljes elérhetőséged",
- "onboarding.page_one.handle_hint": "Ez az amit a barátaidnak mondasz ha meg akarnak keresni.",
- "onboarding.page_one.welcome": "Üdvözölünk a Mastodon-on!",
- "onboarding.page_six.admin": "Az instanciád adminisztrátora {admin}.",
- "onboarding.page_six.almost_done": "Majdnem megvan...",
- "onboarding.page_six.appetoot": "Bon Appetülk!",
- "onboarding.page_six.apps_available": "Vannak {apps} iOS-re, Androidra és más platformokra is.",
- "onboarding.page_six.github": "Mastodon egy szabad és nyílt-forráskódú szoftver. Jelentheted a bug-okat, kérhetsz új funkcionalitásokat vagy hozzájárulhatsz a kódhoz {github}-on.",
- "onboarding.page_six.guidelines": "közösségi útmutató",
- "onboarding.page_six.read_guidelines": "Kérjük olvassa el a(z) {domain}-nak a {guidelines}ját!",
- "onboarding.page_six.various_app": "alkalmazások",
- "onboarding.page_three.profile": "Módosítsa a profilját, hogy megváltoztassa az avatárt, bio-t vagy nevet. Ott megtalálja a többi beállítást is.",
- "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
- "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
- "onboarding.skip": "Átugrás",
"privacy.change": "Státusz láthatóságának módosítása",
"privacy.direct.long": "Posztolás csak az említett felhasználóknak",
"privacy.direct.short": "Egyenesen",
@@ -283,6 +297,8 @@
"search_results.statuses": "Toots",
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
"standalone.public_title": "Betekintés...",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "Block @{name}",
"status.cancel_reblog_private": "Unboost",
"status.cannot_reblog": "Ezen státusz nem rebloggolható",
@@ -318,6 +334,7 @@
"status.show_less_all": "Show less for all",
"status.show_more": "Többet",
"status.show_more_all": "Show more for all",
+ "status.show_thread": "Show thread",
"status.unmute_conversation": "Beszélgetés némításának elvonása",
"status.unpin": "Kitűzés eltávolítása a profilról",
"suggestions.dismiss": "Dismiss suggestion",
diff --git a/app/javascript/mastodon/locales/hy.json b/app/javascript/mastodon/locales/hy.json
index 726855f62..868b8bce1 100644
--- a/app/javascript/mastodon/locales/hy.json
+++ b/app/javascript/mastodon/locales/hy.json
@@ -1,4 +1,5 @@
{
+ "account.add_or_remove_from_list": "Add or Remove from lists",
"account.badges.bot": "Bot",
"account.block": "Արգելափակել @{name}֊ին",
"account.block_domain": "Թաքցնել ամենը հետեւյալ տիրույթից՝ {domain}",
@@ -16,6 +17,7 @@
"account.follows_you": "Հետեւում է քեզ",
"account.hide_reblogs": "Թաքցնել @{name}֊ի տարածածները",
"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.media": "Մեդիա",
"account.mention": "Նշել @{name}֊ին",
"account.moved_to": "{name}֊ը տեղափոխվել է՝",
@@ -111,6 +113,7 @@
"emoji_button.search_results": "Որոնման արդյունքներ",
"emoji_button.symbols": "Նշաններ",
"emoji_button.travel": "Ուղեւորություն եւ տեղանքներ",
+ "empty_column.account_timeline": "No toots here!",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "Տեղական հոսքը դատա՛րկ է։ Հրապարակային մի բան գրիր շարժիչը խոդ տալու համար։",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
@@ -134,16 +137,40 @@
"follow_request.authorize": "Վավերացնել",
"follow_request.reject": "Մերժել",
"getting_started.developers": "Developers",
+ "getting_started.directory": "Profile directory",
"getting_started.documentation": "Documentation",
- "getting_started.find_friends": "Find friends from Twitter",
"getting_started.heading": "Ինչպես սկսել",
"getting_started.invite": "Invite people",
"getting_started.open_source_notice": "Մաստոդոնը բաց ելատեքստով ծրագրակազմ է։ Կարող ես ներդրում անել կամ վրեպներ զեկուցել ԳիթՀաբում՝ {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.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": "Հիմնական",
"home.column_settings.show_reblogs": "Ցուցադրել տարածածները",
"home.column_settings.show_replies": "Ցուցադրել պատասխանները",
+ "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",
+ "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.",
+ "introduction.interactions.action": "Finish tutorial!",
+ "introduction.interactions.favourite.headline": "Favourite",
+ "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.text": "You can share other people's toots with your followers by boosting them.",
+ "introduction.interactions.reply.headline": "Reply",
+ "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.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": "ետ նավարկելու համար",
"keyboard_shortcuts.blocked": "to open blocked users list",
"keyboard_shortcuts.boost": "տարածելու համար",
@@ -220,34 +247,21 @@
"notifications.clear_confirmation": "Վստա՞հ ես, որ ուզում ես մշտապես մաքրել քո բոլոր ծանուցումները։",
"notifications.column_settings.alert": "Աշխատատիրույթի ծանուցումներ",
"notifications.column_settings.favourite": "Հավանածներից՝",
+ "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.follow": "Նոր հետեւողներ՝",
"notifications.column_settings.mention": "Նշումներ՝",
"notifications.column_settings.push": "Հրելու ծանուցումներ",
"notifications.column_settings.reblog": "Տարածածներից՝",
"notifications.column_settings.show": "Ցուցադրել սյունում",
"notifications.column_settings.sound": "Ձայն հանել",
+ "notifications.filter.all": "All",
+ "notifications.filter.boosts": "Boosts",
+ "notifications.filter.favourites": "Favourites",
+ "notifications.filter.follows": "Follows",
+ "notifications.filter.mentions": "Mentions",
"notifications.group": "{count} notifications",
- "onboarding.done": "Պատրաստ է",
- "onboarding.next": "Հաջորդ",
- "onboarding.page_five.public_timelines": "Տեղական հոսքը ցույց է տալիս {domain} տիրույթից բոլորի հրապարակային թթերը։ Դաշնային հոսքը ցույց է տալիս հրապարակային թթերը բոլորից, ում {domain} տիրույթի մարդիկ հետեւում են։ Սրանք Հրապարակային հոսքերն են՝ նոր մարդկանց բացահայտելու հրաշալի միջոց։",
- "onboarding.page_four.home": "Հիմնական հոսքը ցույց է տալիս այն մարդկանց թթերը, ում հետեւում ես։",
- "onboarding.page_four.notifications": "Ծանուցումների սյունը ցույց է տալիս, երբ որեւէ մեկը փոխգործակցում է հետդ։",
- "onboarding.page_one.federation": "Մաստոդոնը անկախ սպասարկիչների ցանց է, որոնք միասնական սոցիալական ցանց են կազմում։ Մենք կոչում ենք այդ սպասարկիչները հանգույցներ։",
- "onboarding.page_one.full_handle": "Քո ամբողջական օգտանունը",
- "onboarding.page_one.handle_hint": "Սա այն է, ինչ ասելու ես ընկերներիդ՝ քեզ փնտրելու համար։",
- "onboarding.page_one.welcome": "Բարի գալուստ Մաստոդո՜ն",
- "onboarding.page_six.admin": "Քո հանգույցի ադմինը նա է՝ {admin}։",
- "onboarding.page_six.almost_done": "Գրեթե պատրաստ է…",
- "onboarding.page_six.appetoot": "Հաջողութությո՜ւն",
- "onboarding.page_six.apps_available": "Նաեւ կան այՕՍի, Անդրոիդի եւ այլ հարթակների համար {apps}։",
- "onboarding.page_six.github": "Մաստոդոնն ազատ ու բաց ելատեքստով ծրագրակազմ է։ Կարող ես վրեպներ զեկուցել, նոր հատկություններ հայցել կամ ներդրում անել {github}֊ում։",
- "onboarding.page_six.guidelines": "համայնքի կանոնակարգ",
- "onboarding.page_six.read_guidelines": "Խնդրում ենք, կարդա {domain} տիրույթի {guidelines}ը։",
- "onboarding.page_six.various_app": "հավելվածներ",
- "onboarding.page_three.profile": "Թարմացրու անձնական էջդ՝ նկարդ, կենսագրությունդ ու անունդ փոխելու համար։ Այնտեղ նաեւ այլ նախապատվություններ կգտնես։",
- "onboarding.page_three.search": "Օգտվիր որոնման դաշտից՝ մարդկանց գտնելու կամ պիտակներին՝ օրինակ {illustration} ու {introductions}, ծանոթանալու համար։ Ոչ այս հանգույցի բնակիչներին փնտրելու համար օգտագործիր նրանց ամբողջական օգտանունը։",
- "onboarding.page_two.compose": "Գրիր թթերդ շարադրման սյունակում։ Կարող ես նկարներ վերբեռնել, փոփոխել գաղտնիության կարգավորումները եւ բովանդակության վերաբերյալ նախազգուշացումներ ավելացնել՝ օգտվելով ներքեւի պատկերակներից։",
- "onboarding.skip": "Բաց թողնել",
"privacy.change": "Կարգավորել թթի գաղտնիությունը",
"privacy.direct.long": "Թթել միայն նշված օգտատերերի համար",
"privacy.direct.short": "Հասցեագրված",
@@ -283,6 +297,8 @@
"search_results.statuses": "Toots",
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
"standalone.public_title": "Այս պահին…",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "Արգելափակել @{name}֊ին",
"status.cancel_reblog_private": "Unboost",
"status.cannot_reblog": "Այս թութը չի կարող տարածվել",
@@ -318,6 +334,7 @@
"status.show_less_all": "Show less for all",
"status.show_more": "Ավելին",
"status.show_more_all": "Show more for all",
+ "status.show_thread": "Show thread",
"status.unmute_conversation": "Ապալռեցնել խոսակցությունը",
"status.unpin": "Հանել անձնական էջից",
"suggestions.dismiss": "Dismiss suggestion",
diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json
index f7276569d..c2b4c8d6a 100644
--- a/app/javascript/mastodon/locales/id.json
+++ b/app/javascript/mastodon/locales/id.json
@@ -1,4 +1,5 @@
{
+ "account.add_or_remove_from_list": "Add or Remove from lists",
"account.badges.bot": "Bot",
"account.block": "Blokir @{name}",
"account.block_domain": "Sembunyikan segalanya dari {domain}",
@@ -16,6 +17,7 @@
"account.follows_you": "Mengikuti anda",
"account.hide_reblogs": "Sembunyikan boosts dari @{name}",
"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.media": "Media",
"account.mention": "Balasan @{name}",
"account.moved_to": "{name} telah pindah ke:",
@@ -111,6 +113,7 @@
"emoji_button.search_results": "Hasil pencarian",
"emoji_button.symbols": "Simbol",
"emoji_button.travel": "Tempat Wisata",
+ "empty_column.account_timeline": "No toots here!",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "Linimasa lokal masih kosong. Tulis sesuatu secara publik dan buat roda berputar!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
@@ -134,16 +137,40 @@
"follow_request.authorize": "Izinkan",
"follow_request.reject": "Tolak",
"getting_started.developers": "Developers",
+ "getting_started.directory": "Profile directory",
"getting_started.documentation": "Documentation",
- "getting_started.find_friends": "Find friends from Twitter",
"getting_started.heading": "Mulai",
"getting_started.invite": "Invite people",
"getting_started.open_source_notice": "Mastodon adalah perangkat lunak yang bersifat terbuka. Anda dapat berkontribusi atau melaporkan permasalahan/bug di Github {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.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": "Dasar",
"home.column_settings.show_reblogs": "Tampilkan boost",
"home.column_settings.show_replies": "Tampilkan balasan",
+ "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",
+ "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.",
+ "introduction.interactions.action": "Finish tutorial!",
+ "introduction.interactions.favourite.headline": "Favourite",
+ "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.text": "You can share other people's toots with your followers by boosting them.",
+ "introduction.interactions.reply.headline": "Reply",
+ "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.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": "untuk kembali",
"keyboard_shortcuts.blocked": "to open blocked users list",
"keyboard_shortcuts.boost": "untuk menyebarkan",
@@ -220,34 +247,21 @@
"notifications.clear_confirmation": "Apa anda yakin hendak menghapus semua notifikasi anda?",
"notifications.column_settings.alert": "Notifikasi desktop",
"notifications.column_settings.favourite": "Favorit:",
+ "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.follow": "Pengikut baru:",
"notifications.column_settings.mention": "Balasan:",
"notifications.column_settings.push": "Push notifications",
"notifications.column_settings.reblog": "Boost:",
"notifications.column_settings.show": "Tampilkan dalam kolom",
"notifications.column_settings.sound": "Mainkan suara",
+ "notifications.filter.all": "All",
+ "notifications.filter.boosts": "Boosts",
+ "notifications.filter.favourites": "Favourites",
+ "notifications.filter.follows": "Follows",
+ "notifications.filter.mentions": "Mentions",
"notifications.group": "{count} notifications",
- "onboarding.done": "Selesei",
- "onboarding.next": "Selanjutnya",
- "onboarding.page_five.public_timelines": "Linimasa lokal menampilkan semua postingan publik dari semua orang di {domain}. Linimasa gabungan menampilkan postingan publik dari semua orang yang diikuti oleh {domain}. Ini semua adalah Linimasa Publik, cara terbaik untuk bertemu orang lain.",
- "onboarding.page_four.home": "Linimasa beranda menampilkan postingan dari orang-orang yang anda ikuti.",
- "onboarding.page_four.notifications": "Kolom notifikasi menampilkan ketika seseorang berinteraksi dengan anda.",
- "onboarding.page_one.federation": "Mastodon adalah jaringan dari beberapa server independen yang bergabung untuk membuat jejaring sosial yang besar.",
- "onboarding.page_one.full_handle": "Your full handle",
- "onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.",
- "onboarding.page_one.welcome": "Selamat datang di Mastodon!",
- "onboarding.page_six.admin": "Admin serveer anda adalah {admin}.",
- "onboarding.page_six.almost_done": "Hampir selesei...",
- "onboarding.page_six.appetoot": "Bon Appetoot!",
- "onboarding.page_six.apps_available": "Ada beberapa apl yang tersedia untuk iOS, Android, dan platform lainnya.",
- "onboarding.page_six.github": "Mastodon adalah software open-source. Anda bisa melaporkan bug, meminta fitur, atau berkontribusi dengan kode di {github}.",
- "onboarding.page_six.guidelines": "pedoman komunitas",
- "onboarding.page_six.read_guidelines": "Silakan baca {guidelines} {domain}!",
- "onboarding.page_six.various_app": "apl handphone",
- "onboarding.page_three.profile": "Ubah profil anda untuk mengganti avatar, bio, dan nama pengguna anda. Disitu, anda juga bisa mengatur opsi lainnya.",
- "onboarding.page_three.search": "Gunakan kolom pencarian untuk mencari orang atau melihat hashtag, seperti {illustration} dan {introductions}. Untuk mencari pengguna yang tidak berada dalam server ini, gunakan nama pengguna mereka selengkapnya.",
- "onboarding.page_two.compose": "Tulis postingan melalui kolom posting. Anda dapat mengunggah gambar, mengganti pengaturan privasi, dan menambahkan peringatan konten dengan ikon-ikon dibawah ini.",
- "onboarding.skip": "Lewati",
"privacy.change": "Tentukan privasi status",
"privacy.direct.long": "Kirim hanya ke pengguna yang disebut",
"privacy.direct.short": "Langsung",
@@ -283,6 +297,8 @@
"search_results.statuses": "Toots",
"search_results.total": "{count, number} {count, plural, one {hasil} other {hasil}}",
"standalone.public_title": "A look inside...",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "Block @{name}",
"status.cancel_reblog_private": "Unboost",
"status.cannot_reblog": "This post cannot be boosted",
@@ -318,6 +334,7 @@
"status.show_less_all": "Show less for all",
"status.show_more": "Tampilkan semua",
"status.show_more_all": "Show more for all",
+ "status.show_thread": "Show thread",
"status.unmute_conversation": "Unmute conversation",
"status.unpin": "Unpin from profile",
"suggestions.dismiss": "Dismiss suggestion",
diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json
index 859b9ae71..c0c45cadc 100644
--- a/app/javascript/mastodon/locales/io.json
+++ b/app/javascript/mastodon/locales/io.json
@@ -1,4 +1,5 @@
{
+ "account.add_or_remove_from_list": "Add or Remove from lists",
"account.badges.bot": "Bot",
"account.block": "Blokusar @{name}",
"account.block_domain": "Hide everything from {domain}",
@@ -16,6 +17,7 @@
"account.follows_you": "Sequas tu",
"account.hide_reblogs": "Hide boosts from @{name}",
"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.media": "Media",
"account.mention": "Mencionar @{name}",
"account.moved_to": "{name} has moved to:",
@@ -111,6 +113,7 @@
"emoji_button.search_results": "Search results",
"emoji_button.symbols": "Symbols",
"emoji_button.travel": "Travel & Places",
+ "empty_column.account_timeline": "No toots here!",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "La lokala tempolineo esas vakua. Skribez ulo publike por iniciar la agiveso!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
@@ -134,16 +137,40 @@
"follow_request.authorize": "Yurizar",
"follow_request.reject": "Refuzar",
"getting_started.developers": "Developers",
+ "getting_started.directory": "Profile directory",
"getting_started.documentation": "Documentation",
- "getting_started.find_friends": "Find friends from Twitter",
"getting_started.heading": "Debuto",
"getting_started.invite": "Invite people",
"getting_started.open_source_notice": "Mastodon esas programaro kun apertita kodexo. Tu povas kontributar o signalar problemi en GitHub ye {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.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": "Simpla",
"home.column_settings.show_reblogs": "Montrar repeti",
"home.column_settings.show_replies": "Montrar respondi",
+ "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",
+ "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.",
+ "introduction.interactions.action": "Finish tutorial!",
+ "introduction.interactions.favourite.headline": "Favourite",
+ "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.text": "You can share other people's toots with your followers by boosting them.",
+ "introduction.interactions.reply.headline": "Reply",
+ "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.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",
@@ -220,34 +247,21 @@
"notifications.clear_confirmation": "Ka tu esas certa, ke tu volas efacar omna tua savigi?",
"notifications.column_settings.alert": "Surtabla savigi",
"notifications.column_settings.favourite": "Favorati:",
+ "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.follow": "Nova sequanti:",
"notifications.column_settings.mention": "Mencioni:",
"notifications.column_settings.push": "Push notifications",
"notifications.column_settings.reblog": "Repeti:",
"notifications.column_settings.show": "Montrar en kolumno",
"notifications.column_settings.sound": "Plear sono",
+ "notifications.filter.all": "All",
+ "notifications.filter.boosts": "Boosts",
+ "notifications.filter.favourites": "Favourites",
+ "notifications.filter.follows": "Follows",
+ "notifications.filter.mentions": "Mentions",
"notifications.group": "{count} notifications",
- "onboarding.done": "Done",
- "onboarding.next": "Next",
- "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
- "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
- "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
- "onboarding.page_one.federation": "Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
- "onboarding.page_one.full_handle": "Your full handle",
- "onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.",
- "onboarding.page_one.welcome": "Welcome to Mastodon!",
- "onboarding.page_six.admin": "Your instance's admin is {admin}.",
- "onboarding.page_six.almost_done": "Almost done...",
- "onboarding.page_six.appetoot": "Bon Appetoot!",
- "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
- "onboarding.page_six.github": "Mastodon is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
- "onboarding.page_six.guidelines": "community guidelines",
- "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
- "onboarding.page_six.various_app": "mobile apps",
- "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
- "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
- "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
- "onboarding.skip": "Skip",
"privacy.change": "Aranjar privateso di mesaji",
"privacy.direct.long": "Sendar nur a mencionata uzeri",
"privacy.direct.short": "Direte",
@@ -283,6 +297,8 @@
"search_results.statuses": "Toots",
"search_results.total": "{count, number} {count, plural, one {rezulto} other {rezulti}}",
"standalone.public_title": "A look inside...",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "Block @{name}",
"status.cancel_reblog_private": "Unboost",
"status.cannot_reblog": "This post cannot be boosted",
@@ -318,6 +334,7 @@
"status.show_less_all": "Show less for all",
"status.show_more": "Montrar plue",
"status.show_more_all": "Show more for all",
+ "status.show_thread": "Show thread",
"status.unmute_conversation": "Unmute conversation",
"status.unpin": "Unpin from profile",
"suggestions.dismiss": "Dismiss suggestion",
diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json
index 113e512dc..177a87120 100644
--- a/app/javascript/mastodon/locales/it.json
+++ b/app/javascript/mastodon/locales/it.json
@@ -1,4 +1,5 @@
{
+ "account.add_or_remove_from_list": "Aggiungi o togli dalle liste",
"account.badges.bot": "Bot",
"account.block": "Blocca @{name}",
"account.block_domain": "Nascondi tutto da {domain}",
@@ -16,6 +17,7 @@
"account.follows_you": "Ti segue",
"account.hide_reblogs": "Nascondi condivisioni da @{name}",
"account.link_verified_on": "La proprietà di questo link è stata controllata il {date}",
+ "account.locked_info": "Il livello di privacy di questo account è impostato a \"bloccato\". Il proprietario esamina manualmente le richieste di seguirlo.",
"account.media": "Media",
"account.mention": "Menziona @{name}",
"account.moved_to": "{name} si è trasferito su:",
@@ -111,6 +113,7 @@
"emoji_button.search_results": "Risultati della ricerca",
"emoji_button.symbols": "Simboli",
"emoji_button.travel": "Viaggi e luoghi",
+ "empty_column.account_timeline": "Non ci sono toot qui!",
"empty_column.blocks": "Non hai ancora bloccato nessun utente.",
"empty_column.community": "La timeline locale è vuota. Condividi qualcosa pubblicamente per dare inizio alla festa!",
"empty_column.direct": "Non hai ancora nessun messaggio diretto. Quando ne manderai o riceverai qualcuno, apparirà qui.",
@@ -134,16 +137,40 @@
"follow_request.authorize": "Autorizza",
"follow_request.reject": "Rifiuta",
"getting_started.developers": "Sviluppatori",
+ "getting_started.directory": "Directory del profilo",
"getting_started.documentation": "Documentazione",
- "getting_started.find_friends": "Trova amici da Twitter",
"getting_started.heading": "Come iniziare",
"getting_started.invite": "Invita qualcuno",
"getting_started.open_source_notice": "Mastodon è un software open source. Puoi contribuire o segnalare errori su GitHub all'indirizzo {github}.",
"getting_started.security": "Sicurezza",
"getting_started.terms": "Condizioni del servizio",
+ "hashtag.column_header.tag_mode.all": "e {additional}",
+ "hashtag.column_header.tag_mode.any": "o {additional}",
+ "hashtag.column_header.tag_mode.none": "senza {additional}",
+ "hashtag.column_settings.tag_mode.all": "Tutti questi",
+ "hashtag.column_settings.tag_mode.any": "Uno o più di questi",
+ "hashtag.column_settings.tag_mode.none": "Nessuno di questi",
+ "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
"home.column_settings.basic": "Semplice",
"home.column_settings.show_reblogs": "Mostra post condivisi",
"home.column_settings.show_replies": "Mostra risposte",
+ "introduction.federation.action": "Avanti",
+ "introduction.federation.federated.headline": "Federated",
+ "introduction.federation.federated.text": "I post pubblici provenienti da altri server del fediverse saranno mostrati nella timeline federata.",
+ "introduction.federation.home.headline": "Home",
+ "introduction.federation.home.text": "I post scritti da persone che segui saranno mostrati nella timeline home. Puoi seguire chiunque su qualunque server!",
+ "introduction.federation.local.headline": "Local",
+ "introduction.federation.local.text": "I post pubblici scritti da persone sul tuo stesso server saranno mostrati nella timeline locale.",
+ "introduction.interactions.action": "Finisci il tutorial!",
+ "introduction.interactions.favourite.headline": "Apprezza",
+ "introduction.interactions.favourite.text": "Puoi salvare un toot e tenerlo per dopo, e far sapere all'autore che ti è piaciuto, segnandolo come apprezzato.",
+ "introduction.interactions.reblog.headline": "Condividi",
+ "introduction.interactions.reblog.text": "Con la condivisione puoi segnalare i toot di altre persone ai tuoi seguaci .",
+ "introduction.interactions.reply.headline": "Rispondi",
+ "introduction.interactions.reply.text": "Puoi rispondere ai toot, sia a quelli di altri sia ai tuoi, e i toot saranno collegati a formare una conversazione.",
+ "introduction.welcome.action": "Andiamo!",
+ "introduction.welcome.headline": "Primi passi",
+ "introduction.welcome.text": "Benvenuto/a nel fediverse! Tra poco potrai inviare messaggi e parlare con i tuoi amici su una grande varietà di server. Ma questo server, {domain}, è speciale: ospita il tuo profilo, quindi ricordati il suo nome.",
"keyboard_shortcuts.back": "per tornare indietro",
"keyboard_shortcuts.blocked": "per aprire l'elenco degli utenti bloccati",
"keyboard_shortcuts.boost": "per condividere",
@@ -220,34 +247,21 @@
"notifications.clear_confirmation": "Vuoi davvero cancellare tutte le notifiche?",
"notifications.column_settings.alert": "Notifiche desktop",
"notifications.column_settings.favourite": "Apprezzati:",
+ "notifications.column_settings.filter_bar.advanced": "Mostra tutte le categorie",
+ "notifications.column_settings.filter_bar.category": "Filtro rapido",
+ "notifications.column_settings.filter_bar.show": "Mostra",
"notifications.column_settings.follow": "Nuovi seguaci:",
"notifications.column_settings.mention": "Menzioni:",
"notifications.column_settings.push": "Notifiche push",
"notifications.column_settings.reblog": "Post condivisi:",
"notifications.column_settings.show": "Mostra in colonna",
"notifications.column_settings.sound": "Riproduci suono",
+ "notifications.filter.all": "Tutti",
+ "notifications.filter.boosts": "Condivisioni",
+ "notifications.filter.favourites": "Apprezzati",
+ "notifications.filter.follows": "Seguaci",
+ "notifications.filter.mentions": "Menzioni",
"notifications.group": "{count} notifiche",
- "onboarding.done": "Fatto",
- "onboarding.next": "Prossimo",
- "onboarding.page_five.public_timelines": "La timeline locale mostra i post pubblici di tutti gli utenti di {domain}. La timeline federata mostra i post pubblici di tutti gli utenti seguiti da quelli di {domain}. Queste sono le timeline pubbliche, che vi danno grandi possibilità di scoprire nuovi utenti.",
- "onboarding.page_four.home": "La timeline home mostra i post degli utenti che segui.",
- "onboarding.page_four.notifications": "La colonna delle notifiche ti fa vedere quando qualcuno interagisce con te.",
- "onboarding.page_one.federation": "Mastodon è una rete di server indipendenti che si collegano tra loro per formare un grande social network. I singoli server sono detti istanze.",
- "onboarding.page_one.full_handle": "Il tuo nome utente completo",
- "onboarding.page_one.handle_hint": "È ciò che diresti ai tuoi amici di cercare per trovarti.",
- "onboarding.page_one.welcome": "Benvenuto in Mastodon!",
- "onboarding.page_six.admin": "L'amministratore della tua istanza è {admin}.",
- "onboarding.page_six.almost_done": "Quasi finito...",
- "onboarding.page_six.appetoot": "Buon appetoot!",
- "onboarding.page_six.apps_available": "Esistono {apps} per iOS, Android e altre piattaforme.",
- "onboarding.page_six.github": "Mastodon è software libero e open-source. Puoi segnalare bug, richiedere nuove funzionalità, o contribuire al codice su {github}.",
- "onboarding.page_six.guidelines": "linee guida per la comunità",
- "onboarding.page_six.read_guidelines": "Ti preghiamo di leggere le {guidelines} di {domain}!",
- "onboarding.page_six.various_app": "app per dispositivi mobili",
- "onboarding.page_three.profile": "Puoi modificare il tuo profilo per cambiare i tuoi avatar, biografia e nome pubblico. E potrai trovarci altre preferenze.",
- "onboarding.page_three.search": "Usa la barra di ricerca per trovare persone e hashtag, come {illustration} e {introductions}. Per trovare una persona che non è su questa istanza, usa il suo nome utente completo.",
- "onboarding.page_two.compose": "Puoi scrivere dei post dalla colonna di composizione. Puoi caricare immagini, modificare le impostazioni di privacy, e aggiungere avvisi sul contenuto con le icone qui sotto.",
- "onboarding.skip": "Salta",
"privacy.change": "Modifica privacy del post",
"privacy.direct.long": "Invia solo a utenti menzionati",
"privacy.direct.short": "Diretto",
@@ -283,6 +297,8 @@
"search_results.statuses": "Toot",
"search_results.total": "{count} {count, plural, one {risultato} other {risultati}}",
"standalone.public_title": "Un'occhiata all'interno...",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "Block @{name}",
"status.cancel_reblog_private": "Annulla condivisione",
"status.cannot_reblog": "Questo post non può essere condiviso",
@@ -318,10 +334,11 @@
"status.show_less_all": "Mostra meno per tutti",
"status.show_more": "Mostra di più",
"status.show_more_all": "Mostra di più per tutti",
+ "status.show_thread": "Mostra thread",
"status.unmute_conversation": "Annulla silenzia conversazione",
"status.unpin": "Non fissare in cima al profilo",
- "suggestions.dismiss": "Dismiss suggestion",
- "suggestions.header": "You might be interested in…",
+ "suggestions.dismiss": "Elimina suggerimento",
+ "suggestions.header": "Ti potrebbe interessare…",
"tabs_bar.federated_timeline": "Federazione",
"tabs_bar.home": "Home",
"tabs_bar.local_timeline": "Locale",
@@ -332,7 +349,7 @@
"upload_area.title": "Trascina per caricare",
"upload_button.label": "Aggiungi file multimediale",
"upload_form.description": "Descrizione per utenti con disabilità visive",
- "upload_form.focus": "Rifila",
+ "upload_form.focus": "Modifica anteprima",
"upload_form.undo": "Cancella",
"upload_progress.label": "Sto caricando...",
"video.close": "Chiudi video",
diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json
index ca1137b8d..ab37a1c09 100644
--- a/app/javascript/mastodon/locales/ja.json
+++ b/app/javascript/mastodon/locales/ja.json
@@ -1,4 +1,5 @@
{
+ "account.add_or_remove_from_list": "リストに追加または外す",
"account.badges.bot": "Bot",
"account.block": "@{name}さんをブロック",
"account.block_domain": "{domain}全体を非表示",
@@ -16,6 +17,7 @@
"account.follows_you": "フォローされています",
"account.hide_reblogs": "@{name}さんからのブーストを非表示",
"account.link_verified_on": "このリンクの所有権は{date}に確認されました",
+ "account.locked_info": "このアカウントは承認制アカウントです。相手が確認するまでフォローは完了しません。",
"account.media": "メディア",
"account.mention": "@{name}さんにトゥート",
"account.moved_to": "{name}さんは引っ越しました:",
@@ -111,6 +113,7 @@
"emoji_button.search_results": "検索結果",
"emoji_button.symbols": "記号",
"emoji_button.travel": "旅行と場所",
+ "empty_column.account_timeline": "トゥートがありません!",
"empty_column.blocks": "まだ誰もブロックしていません。",
"empty_column.community": "ローカルタイムラインはまだ使われていません。何か書いてみましょう!",
"empty_column.direct": "ダイレクトメッセージはまだありません。ダイレクトメッセージをやりとりすると、ここに表示されます。",
@@ -134,16 +137,40 @@
"follow_request.authorize": "許可",
"follow_request.reject": "拒否",
"getting_started.developers": "開発",
+ "getting_started.directory": "Profile directory",
"getting_started.documentation": "ドキュメント",
- "getting_started.find_friends": "Twitterの友達を探す",
"getting_started.heading": "スタート",
"getting_started.invite": "招待",
- "getting_started.open_source_notice": "Mastodonはオープンソースソフトウェアです。誰でもGitHub({github})から開発に参加したり、問題を報告したりできます。",
+ "getting_started.open_source_notice": "Mastodonはオープンソースソフトウェアです。誰でもGitHub ( {github} ) から開発に参加したり、問題を報告したりできます。",
"getting_started.security": "セキュリティ",
"getting_started.terms": "プライバシーポリシー",
+ "hashtag.column_header.tag_mode.all": "と {additional}",
+ "hashtag.column_header.tag_mode.any": "か {additional}",
+ "hashtag.column_header.tag_mode.none": "({additional} を除く)",
+ "hashtag.column_settings.tag_mode.all": "すべてを含む",
+ "hashtag.column_settings.tag_mode.any": "いずれかを含む",
+ "hashtag.column_settings.tag_mode.none": "これらを除く",
+ "hashtag.column_settings.tag_toggle": "このカラムに追加のタグを含める",
"home.column_settings.basic": "基本設定",
"home.column_settings.show_reblogs": "ブースト表示",
"home.column_settings.show_replies": "返信表示",
+ "introduction.federation.action": "次へ",
+ "introduction.federation.federated.headline": "連合タイムライン",
+ "introduction.federation.federated.text": "Fediverseの他のサーバーからの公開投稿は連合タイムラインに表示されます。",
+ "introduction.federation.home.headline": "ホームタイムライン",
+ "introduction.federation.home.text": "フォローしている人々の投稿はホームタイムラインに表示されます。どこのサーバーの誰でもフォローできます!",
+ "introduction.federation.local.headline": "ローカルタイムライン",
+ "introduction.federation.local.text": "同じサーバーにいる人々の公開投稿はローカルタイムラインに表示されます。",
+ "introduction.interactions.action": "はじめよう!",
+ "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.welcome.action": "はじめる!",
+ "introduction.welcome.headline": "はじめに",
+ "introduction.welcome.text": "Fediverseの世界へようこそ!あと少しでメッセージを配信したり、さまざまなサーバーを越えた友達と話せるようになります。ところでここ{domain}は特別なサーバーです…あなたのプロフィールを持つ主体のサーバーですので、名前を覚えておきましょう。",
"keyboard_shortcuts.back": "戻る",
"keyboard_shortcuts.blocked": "ブロックしたユーザーのリストを開く",
"keyboard_shortcuts.boost": "ブースト",
@@ -220,34 +247,21 @@
"notifications.clear_confirmation": "本当に通知を消去しますか?",
"notifications.column_settings.alert": "デスクトップ通知",
"notifications.column_settings.favourite": "お気に入り:",
+ "notifications.column_settings.filter_bar.advanced": "すべてのカテゴリを表示",
+ "notifications.column_settings.filter_bar.category": "クイックフィルターバー",
+ "notifications.column_settings.filter_bar.show": "表示",
"notifications.column_settings.follow": "新しいフォロワー:",
"notifications.column_settings.mention": "返信:",
"notifications.column_settings.push": "プッシュ通知",
"notifications.column_settings.reblog": "ブースト:",
"notifications.column_settings.show": "カラムに表示",
"notifications.column_settings.sound": "通知音を再生",
+ "notifications.filter.all": "すべて",
+ "notifications.filter.boosts": "ブースト",
+ "notifications.filter.favourites": "お気に入り",
+ "notifications.filter.follows": "フォロー",
+ "notifications.filter.mentions": "返信",
"notifications.group": "{count} 件の通知",
- "onboarding.done": "完了",
- "onboarding.next": "次へ",
- "onboarding.page_five.public_timelines": "連合タイムラインでは{domain}の人がフォローしているMastodon全体での公開投稿を表示します。同じくローカルタイムラインでは{domain}のみの公開投稿を表示します。",
- "onboarding.page_four.home": "「ホーム」タイムラインではあなたがフォローしている人の投稿を表示します。",
- "onboarding.page_four.notifications": "「通知」ではあなたへの他の人からの関わりを表示します。",
- "onboarding.page_one.federation": "Mastodonは独立したインスタンス(サーバー)の集合体です。",
- "onboarding.page_one.full_handle": "あなたのフルハンドル",
- "onboarding.page_one.handle_hint": "あなたを探している友達に伝えるといいでしょう。",
- "onboarding.page_one.welcome": "Mastodonへようこそ!",
- "onboarding.page_six.admin": "あなたのインスタンスの管理者は{admin}です。",
- "onboarding.page_six.almost_done": "以上です。",
- "onboarding.page_six.appetoot": "ボナペトゥート!",
- "onboarding.page_six.apps_available": "iOS、Androidあるいは他のプラットフォームで使える{apps}があります。",
- "onboarding.page_six.github": "MastodonはOSSです。バグ報告や機能要望あるいは貢献を{github}から行なえます。",
- "onboarding.page_six.guidelines": "コミュニティガイドライン",
- "onboarding.page_six.read_guidelines": "{domain}の{guidelines}を読むことを忘れないようにしてください!",
- "onboarding.page_six.various_app": "モバイルアプリ",
- "onboarding.page_three.profile": "「プロフィールを編集」から、あなたの自己紹介や表示名を変更できます。またそこでは他の設定ができます。",
- "onboarding.page_three.search": "検索バーで、{illustration}や{introductions}のように特定のハッシュタグの投稿を見たり、ユーザーを探したりできます。",
- "onboarding.page_two.compose": "フォームから投稿できます。イメージや、公開範囲の設定や、表示時の警告の設定は下部のアイコンから行えます。",
- "onboarding.skip": "スキップ",
"privacy.change": "投稿のプライバシーを変更",
"privacy.direct.long": "メンションしたユーザーだけに公開",
"privacy.direct.short": "ダイレクト",
@@ -283,6 +297,8 @@
"search_results.statuses": "トゥート",
"search_results.total": "{count, number}件の結果",
"standalone.public_title": "今こんな話をしています...",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "@{name}さんをブロック",
"status.cancel_reblog_private": "ブースト解除",
"status.cannot_reblog": "この投稿はブーストできません",
@@ -318,10 +334,11 @@
"status.show_less_all": "全て隠す",
"status.show_more": "もっと見る",
"status.show_more_all": "全て見る",
+ "status.show_thread": "スレッドを表示",
"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": "ローカル",
diff --git a/app/javascript/mastodon/locales/ka.json b/app/javascript/mastodon/locales/ka.json
index 51aaca0d7..871cdcbc5 100644
--- a/app/javascript/mastodon/locales/ka.json
+++ b/app/javascript/mastodon/locales/ka.json
@@ -1,4 +1,5 @@
{
+ "account.add_or_remove_from_list": "Add or Remove from lists",
"account.badges.bot": "ბოტი",
"account.block": "დაბლოკე @{name}",
"account.block_domain": "დაიმალოს ყველაფერი დომენიდან {domain}",
@@ -16,6 +17,7 @@
"account.follows_you": "მოგყვებათ",
"account.hide_reblogs": "დაიმალოს ბუსტები @{name}-სგან",
"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.media": "მედია",
"account.mention": "ასახელეთ @{name}",
"account.moved_to": "{name} გადავიდა:",
@@ -111,6 +113,7 @@
"emoji_button.search_results": "ძებნის შედეგები",
"emoji_button.symbols": "სიმბოლოები",
"emoji_button.travel": "მოგზაურობა და ადგილები",
+ "empty_column.account_timeline": "No toots here!",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "ლოკალური თაიმლაინი ცარიელია. დაწერეთ რაიმე ღიად ან ქენით რაიმე სხვა!",
"empty_column.direct": "ჯერ პირდაპირი წერილები არ გაქვთ. როდესაც მიიღებთ ან გააგზავნით, გამოჩნდება აქ.",
@@ -134,16 +137,40 @@
"follow_request.authorize": "ავტორიზაცია",
"follow_request.reject": "უარყოფა",
"getting_started.developers": "დეველოპერები",
+ "getting_started.directory": "Profile directory",
"getting_started.documentation": "დოკუმენტაცია",
- "getting_started.find_friends": "იპოვეთ მეგობრები ტვიტერიდან",
"getting_started.heading": "დაწყება",
"getting_started.invite": "ხალხის მოწვევა",
"getting_started.open_source_notice": "მასტოდონი ღია პროგრამაა. შეგიძლიათ შეუწყოთ ხელი ან შექმნათ პრობემის რეპორტი {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.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": "ძირითადი",
"home.column_settings.show_reblogs": "ბუსტების ჩვენება",
"home.column_settings.show_replies": "პასუხების ჩვენება",
+ "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",
+ "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.",
+ "introduction.interactions.action": "Finish tutorial!",
+ "introduction.interactions.favourite.headline": "Favourite",
+ "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.text": "You can share other people's toots with your followers by boosting them.",
+ "introduction.interactions.reply.headline": "Reply",
+ "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.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": "უკან გადასასვლელად",
"keyboard_shortcuts.blocked": "to open blocked users list",
"keyboard_shortcuts.boost": "დასაბუსტად",
@@ -220,34 +247,21 @@
"notifications.clear_confirmation": "დარწმუნებული ხართ, გსურთ სამუდამოდ წაშალოთ ყველა თქვენი შეტყობინება?",
"notifications.column_settings.alert": "დესკტოპ შეტყობინებები",
"notifications.column_settings.favourite": "ფავორიტები:",
+ "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.follow": "ახალი მიმდევრები:",
"notifications.column_settings.mention": "ხსენებები:",
"notifications.column_settings.push": "ფუშ შეტყობინებები",
"notifications.column_settings.reblog": "ბუსტები:",
"notifications.column_settings.show": "გამოჩნდეს სვეტში",
"notifications.column_settings.sound": "ხმის დაკვრა",
+ "notifications.filter.all": "All",
+ "notifications.filter.boosts": "Boosts",
+ "notifications.filter.favourites": "Favourites",
+ "notifications.filter.follows": "Follows",
+ "notifications.filter.mentions": "Mentions",
"notifications.group": "{count} შეტყობინება",
- "onboarding.done": "დასასრული",
- "onboarding.next": "შემდეგი",
- "onboarding.page_five.public_timelines": "ლოკალური თაიმლაინი {domain}-ზე საჯარო პოსტებს აჩვენებს ყველასგან. ფედერალური თაიმლაინი {domain}-ზე აჩვენებს საჯარო პოსტებს ყველასგან ვინც მიჰყვება. ეს საჯარო თაიმლაინებია, ახალი ადამიანების აღმოჩენის კარგი გზაა.",
- "onboarding.page_four.home": "სახლის თაიმლაინი აჩვენებს პოსტებს ადამიანებისგან, რომლებსაც მიჰყვებით.",
- "onboarding.page_four.notifications": "შეტყობინებების სვეტი აჩვენებს სხვის ურთიერთქმედებებს თქვენთან.",
- "onboarding.page_one.federation": "მასტოდონი დამოუკიდებელი სერვერების ქსელია, რომლებიც ერთიანდებიან ერთი დიდი სოციალური ქსელის შექმნისთვის. ამ სერვერებს ჩვენ ვეძახით ინსტანციებს.",
- "onboarding.page_one.full_handle": "თქვენი სრული სახელური",
- "onboarding.page_one.handle_hint": "ეს არის ის რასაც ეტყოდით თქვენს მეგობრებს რომ მოძიონ.",
- "onboarding.page_one.welcome": "კეთილი იყოს თქვენი მასტოდონში მობრძანება!",
- "onboarding.page_six.admin": "თქვენი ინსტანციის ადმინისტრატორია {admin}.",
- "onboarding.page_six.almost_done": "თითქმის დასრულდა...",
- "onboarding.page_six.appetoot": "ბონ აპეტუტ!",
- "onboarding.page_six.apps_available": "ხელმისაწვდომია {apps} აი-ოსისთვის, ანდროიდისთვის და სხვა პლატფორმებისთვის.",
- "onboarding.page_six.github": "მასტოდონი უფასო ღია პროგრამაა. შეგიძლიათ დაარეპორტოთ შეცდომები, მოითხოვოთ ფუნქციები, შეუწყოთ ხელი კოდს {github}-ზე.",
- "onboarding.page_six.guidelines": "საზოგადოების სახელმძღვანელო",
- "onboarding.page_six.read_guidelines": "გთხოვთ გაეცნოთ {domain}-ს {guidelines}!",
- "onboarding.page_six.various_app": "მობაილ აპები",
- "onboarding.page_three.profile": "შეცვალეთ თქვენი პროფილი რომ შეცვალოთ ავატარი, ბიოგრაფია და დისპლეის სახელი. იქ, ასევე იხილავთ სხვა პრეფერენსიების.",
- "onboarding.page_three.search": "გამოიყენეთ ძიება რომ იპოვნოთ ადამიანები და იხილოთ ჰეშტეგები, ისეთები როგორებიცაა {illustration} და {introductions}. რომ მოძებნოთ ადამიანი ვინც არაა ამ ინსტანციაზე, გამოიყენეთ სრული სახელური.",
- "onboarding.page_two.compose": "პოსტები შექმენით კომპოზიციის სვეტიდან. შეგიძლიათ ატვირთოთ სურათები, შეცვალოთ კონფიდენციალურობა და ქვემოთ მოცემული პიქტოგრამით დაამატოთ კონტენტის გაფრთხილება.",
- "onboarding.skip": "გამოტოვება",
"privacy.change": "სტატუსის კონფიდენციალურობის მითითება",
"privacy.direct.long": "დაიპოსტოს მხოლოდ დასახელებულ მომხმარებლებთან",
"privacy.direct.short": "პირდაპირი",
@@ -283,6 +297,8 @@
"search_results.statuses": "ტუტები",
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
"standalone.public_title": "შიდა ხედი...",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "დაბლოკე @{name}",
"status.cancel_reblog_private": "ბუსტის მოშორება",
"status.cannot_reblog": "ეს პოსტი ვერ დაიბუსტება",
@@ -318,6 +334,7 @@
"status.show_less_all": "აჩვენე ნაკლები ყველაზე",
"status.show_more": "აჩვენე მეტი",
"status.show_more_all": "აჩვენე მეტი ყველაზე",
+ "status.show_thread": "Show thread",
"status.unmute_conversation": "საუბარზე გაჩუმების მოშორება",
"status.unpin": "პროფილიდან პინის მოშორება",
"suggestions.dismiss": "Dismiss suggestion",
diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json
index ea76a7ad0..a21720911 100644
--- a/app/javascript/mastodon/locales/ko.json
+++ b/app/javascript/mastodon/locales/ko.json
@@ -1,4 +1,5 @@
{
+ "account.add_or_remove_from_list": "리스트에 추가 혹은 삭제",
"account.badges.bot": "봇",
"account.block": "@{name}을 차단",
"account.block_domain": "{domain} 전체를 숨김",
@@ -16,6 +17,7 @@
"account.follows_you": "날 팔로우합니다",
"account.hide_reblogs": "@{name}의 부스트를 숨기기",
"account.link_verified_on": "{date}에 이 링크의 소유권이 확인 됨",
+ "account.locked_info": "이 계정의 프라이버시 설정은 잠금으로 설정되어 있습니다. 계정 소유자가 수동으로 팔로어를 승인합니다.",
"account.media": "미디어",
"account.mention": "@{name}에게 글쓰기",
"account.moved_to": "{name}는 계정을 이동했습니다:",
@@ -111,6 +113,7 @@
"emoji_button.search_results": "검색 결과",
"emoji_button.symbols": "기호",
"emoji_button.travel": "여행과 장소",
+ "empty_column.account_timeline": "여긴 툿이 없어요!",
"empty_column.blocks": "아직 아무도 차단하지 않았습니다.",
"empty_column.community": "로컬 타임라인에 아무 것도 없습니다. 아무거나 적어 보세요!",
"empty_column.direct": "아직 다이렉트 메시지가 없습니다. 다이렉트 메시지를 보내거나 받은 경우, 여기에 표시 됩니다.",
@@ -134,16 +137,40 @@
"follow_request.authorize": "허가",
"follow_request.reject": "거부",
"getting_started.developers": "개발자",
+ "getting_started.directory": "프로필 디렉터리",
"getting_started.documentation": "문서",
- "getting_started.find_friends": "트위터에서 친구 찾기",
"getting_started.heading": "시작",
"getting_started.invite": "초대",
"getting_started.open_source_notice": "Mastodon은 오픈 소스 소프트웨어입니다. 누구나 GitHub({github})에서 개발에 참여하거나, 문제를 보고할 수 있습니다.",
"getting_started.security": "보안",
"getting_started.terms": "이용 약관",
+ "hashtag.column_header.tag_mode.all": "그리고 {additional}",
+ "hashtag.column_header.tag_mode.any": "또는 {additional}",
+ "hashtag.column_header.tag_mode.none": "({additional}를 제외)",
+ "hashtag.column_settings.tag_mode.all": "모두",
+ "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": "답글 표시",
+ "introduction.federation.action": "다음",
+ "introduction.federation.federated.headline": "Federated",
+ "introduction.federation.federated.text": "페디버스의 다른 서버의 공개 게시물이 연합 타임라인에 나타납니다.",
+ "introduction.federation.home.headline": "Home",
+ "introduction.federation.home.text": "당신이 팔로우 하고 있는 사람의 게시물이 홈 타임라인에 나타납니다. 어느 서버에 있는 사람이라도 팔로우가 가능합니다!",
+ "introduction.federation.local.headline": "Local",
+ "introduction.federation.local.text": "같은 서버에 있는 공개 게시물은 로컬 타임라인에 나타납니다.",
+ "introduction.interactions.action": "튜토리얼 마치기!",
+ "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.welcome.action": "출발!",
+ "introduction.welcome.headline": "첫걸음",
+ "introduction.welcome.text": "페디버스에 오신 것을 환영합니다! 잠시 후, 당신은 수 많은 다양한 서버들에 존재하는 친구들에게 메시지를 보내고 대화 할 수 있게 됩니다. 하지만 이 서버, {domain}은 특별합니다. 이 서버는 당신의 프로필을 제공하니 이름을 기억하세요.",
"keyboard_shortcuts.back": "뒤로가기",
"keyboard_shortcuts.blocked": "차단한 유저 리스트 열기",
"keyboard_shortcuts.boost": "부스트",
@@ -220,34 +247,21 @@
"notifications.clear_confirmation": "정말로 알림을 삭제하시겠습니까?",
"notifications.column_settings.alert": "데스크탑 알림",
"notifications.column_settings.favourite": "즐겨찾기:",
+ "notifications.column_settings.filter_bar.advanced": "카테고리의 모든 종류를 표시",
+ "notifications.column_settings.filter_bar.category": "퀵 필터 바",
+ "notifications.column_settings.filter_bar.show": "표시",
"notifications.column_settings.follow": "새 팔로워:",
"notifications.column_settings.mention": "답글:",
"notifications.column_settings.push": "푸시 알림",
"notifications.column_settings.reblog": "부스트:",
"notifications.column_settings.show": "컬럼에 표시",
"notifications.column_settings.sound": "효과음 재생",
+ "notifications.filter.all": "모두",
+ "notifications.filter.boosts": "부스트",
+ "notifications.filter.favourites": "즐겨찾기",
+ "notifications.filter.follows": "팔로우",
+ "notifications.filter.mentions": "멘션",
"notifications.group": "{count} 개의 알림",
- "onboarding.done": "완료",
- "onboarding.next": "다음",
- "onboarding.page_five.public_timelines": "연합 타임라인에서는 {domain}의 사람들이 팔로우 중인 Mastodon 전체 인스턴스의 공개 포스트를 표시합니다. 로컬 타임라인에서는 {domain} 만의 공개 포스트를 표시합니다.",
- "onboarding.page_four.home": "홈 타임라인에서는 내가 팔로우 중인 사람들의 포스트를 표시합니다.",
- "onboarding.page_four.notifications": "알림에서는 다른 사람들과의 연결을 표시합니다.",
- "onboarding.page_one.federation": "마스토돈은 누구나 참가할 수 있는 SNS입니다.",
- "onboarding.page_one.full_handle": "당신의 풀 핸들",
- "onboarding.page_one.handle_hint": "이것을 검색하여 친구들이 당신을 찾을 수 있습니다.",
- "onboarding.page_one.welcome": "마스토돈에 어서 오세요!",
- "onboarding.page_six.admin": "이 인스턴스의 관리자는 {admin}입니다.",
- "onboarding.page_six.almost_done": "이상입니다.",
- "onboarding.page_six.appetoot": "본 아페툿!",
- "onboarding.page_six.apps_available": "iOS、Android 또는 다른 플랫폼에서 사용할 수 있는 {apps}이 있습니다.",
- "onboarding.page_six.github": "마스토돈은 오픈 소스 소프트웨어입니다. 버그 보고나 기능 추가 요청, 기여는 {github}에서 할 수 있습니다.",
- "onboarding.page_six.guidelines": "커뮤니티 가이드라인",
- "onboarding.page_six.read_guidelines": "{domain}의 {guidelines}을 확인하는 것을 잊지 마세요!",
- "onboarding.page_six.various_app": "다양한 모바일 애플리케이션",
- "onboarding.page_three.profile": "[프로필 편집] 에서 자기 소개나 이름을 변경할 수 있습니다. 또한 다른 설정도 변경할 수 있습니다.",
- "onboarding.page_three.search": "검색 바에서 {illustration} 나 {introductions} 와 같이 특정 해시태그가 달린 포스트를 보거나, 사용자를 찾을 수 있습니다.",
- "onboarding.page_two.compose": "이 폼에서 포스팅 할 수 있습니다. 이미지나 공개 범위 설정, 스포일러 경고 설정은 아래 아이콘으로 설정할 수 있습니다.",
- "onboarding.skip": "건너뛰기",
"privacy.change": "포스트의 프라이버시 설정을 변경",
"privacy.direct.long": "멘션한 사용자에게만 공개",
"privacy.direct.short": "다이렉트",
@@ -283,6 +297,8 @@
"search_results.statuses": "툿",
"search_results.total": "{count, number}건의 결과",
"standalone.public_title": "지금 이런 이야기를 하고 있습니다…",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "@{name} 차단",
"status.cancel_reblog_private": "부스트 취소",
"status.cannot_reblog": "이 포스트는 부스트 할 수 없습니다",
@@ -318,10 +334,11 @@
"status.show_less_all": "모두 접기",
"status.show_more": "더 보기",
"status.show_more_all": "모두 펼치기",
+ "status.show_thread": "스레드 보기",
"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": "로컬",
@@ -332,7 +349,7 @@
"upload_area.title": "드래그 & 드롭으로 업로드",
"upload_button.label": "미디어 추가 (JPEG, PNG, GIF, WebM, MP4, MOV)",
"upload_form.description": "시각장애인을 위한 설명",
- "upload_form.focus": "크롭",
+ "upload_form.focus": "미리보기 변경",
"upload_form.undo": "삭제",
"upload_progress.label": "업로드 중...",
"video.close": "동영상 닫기",
diff --git a/app/javascript/mastodon/locales/locale-data/oc.js b/app/javascript/mastodon/locales/locale-data/oc.js
index c4b56350b..d4adc42eb 100644
--- a/app/javascript/mastodon/locales/locale-data/oc.js
+++ b/app/javascript/mastodon/locales/locale-data/oc.js
@@ -17,8 +17,8 @@ export default [{
},
relativeTime: {
future: {
- one: "dins {0} an",
- other: "dins {0} ans",
+ one: "d’aquí {0} an",
+ other: "d’aquí {0} ans",
},
past: {
one: "fa {0} an",
@@ -35,8 +35,8 @@ export default [{
},
relativeTime: {
future: {
- one: "dins {0} mes",
- other: "dins {0} meses",
+ one: "d’aquí {0} mes",
+ other: "d’aquí {0} meses",
},
past: {
one: "fa {0} mes",
@@ -53,8 +53,8 @@ export default [{
},
relativeTime: {
future: {
- one: "dins {0} jorn",
- other: "dins {0} jorns",
+ one: "d’aquí {0} jorn",
+ other: "d’aquí {0} jorns",
},
past: {
one: "fa {0} jorn",
@@ -66,8 +66,8 @@ export default [{
displayName: "ora",
relativeTime: {
future: {
- one: "dins {0} ora",
- other: "dins {0} oras",
+ one: "d’aquí {0} ora",
+ other: "d’aquí {0} oras",
},
past: {
one: "fa {0} ora",
@@ -79,8 +79,8 @@ export default [{
displayName: "minuta",
relativeTime: {
future: {
- one: "dins {0} minuta",
- other: "dins {0} minutas",
+ one: "d’aquí {0} minuta",
+ other: "d’aquí {0} minutas",
},
past: {
one: "fa {0} minuta",
@@ -95,8 +95,8 @@ export default [{
},
relativeTime: {
future: {
- one: "dins {0} segonda",
- other: "dins {0} segondas",
+ one: "d’aquí {0} segonda",
+ other: "d’aquí {0} segondas",
},
past: {
one: "fa {0} segonda",
diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json
new file mode 100644
index 000000000..0d510d011
--- /dev/null
+++ b/app/javascript/mastodon/locales/lv.json
@@ -0,0 +1,358 @@
+{
+ "account.add_or_remove_from_list": "Add or Remove from lists",
+ "account.badges.bot": "Bot",
+ "account.block": "Block @{name}",
+ "account.block_domain": "Hide everything from {domain}",
+ "account.blocked": "Blocked",
+ "account.direct": "Direct message @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.domain_blocked": "Domain hidden",
+ "account.edit_profile": "Edit profile",
+ "account.endorse": "Feature on profile",
+ "account.follow": "Follow",
+ "account.followers": "Followers",
+ "account.followers.empty": "No one follows this user yet.",
+ "account.follows": "Follows",
+ "account.follows.empty": "This user doesn't follow anyone yet.",
+ "account.follows_you": "Follows you",
+ "account.hide_reblogs": "Hide boosts from @{name}",
+ "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.media": "Media",
+ "account.mention": "Mention @{name}",
+ "account.moved_to": "{name} has moved to:",
+ "account.mute": "Mute @{name}",
+ "account.mute_notifications": "Mute notifications from @{name}",
+ "account.muted": "Muted",
+ "account.posts": "Toots",
+ "account.posts_with_replies": "Toots and replies",
+ "account.report": "Report @{name}",
+ "account.requested": "Awaiting approval. Click to cancel follow request",
+ "account.share": "Share @{name}'s profile",
+ "account.show_reblogs": "Show boosts from @{name}",
+ "account.unblock": "Unblock @{name}",
+ "account.unblock_domain": "Unhide {domain}",
+ "account.unendorse": "Don't feature on profile",
+ "account.unfollow": "Unfollow",
+ "account.unmute": "Unmute @{name}",
+ "account.unmute_notifications": "Unmute notifications from @{name}",
+ "account.view_full_profile": "View full profile",
+ "alert.unexpected.message": "An unexpected error occurred.",
+ "alert.unexpected.title": "Oops!",
+ "boost_modal.combo": "You can press {combo} to skip this next time",
+ "bundle_column_error.body": "Something went wrong while loading this component.",
+ "bundle_column_error.retry": "Try again",
+ "bundle_column_error.title": "Network error",
+ "bundle_modal_error.close": "Close",
+ "bundle_modal_error.message": "Something went wrong while loading this component.",
+ "bundle_modal_error.retry": "Try again",
+ "column.blocks": "Blocked users",
+ "column.community": "Local timeline",
+ "column.direct": "Direct messages",
+ "column.domain_blocks": "Hidden domains",
+ "column.favourites": "Favourites",
+ "column.follow_requests": "Follow requests",
+ "column.home": "Home",
+ "column.lists": "Lists",
+ "column.mutes": "Muted users",
+ "column.notifications": "Notifications",
+ "column.pins": "Pinned toot",
+ "column.public": "Federated timeline",
+ "column_back_button.label": "Back",
+ "column_header.hide_settings": "Hide settings",
+ "column_header.moveLeft_settings": "Move column to the left",
+ "column_header.moveRight_settings": "Move column to the right",
+ "column_header.pin": "Pin",
+ "column_header.show_settings": "Show settings",
+ "column_header.unpin": "Unpin",
+ "column_subheading.settings": "Settings",
+ "community.column_settings.media_only": "Media 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.",
+ "compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
+ "compose_form.lock_disclaimer.lock": "locked",
+ "compose_form.placeholder": "What is on your mind?",
+ "compose_form.publish": "Toot",
+ "compose_form.publish_loud": "{publish}!",
+ "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.spoiler.unmarked": "Text is not hidden",
+ "compose_form.spoiler_placeholder": "Write your warning here",
+ "confirmation_modal.cancel": "Cancel",
+ "confirmations.block.confirm": "Block",
+ "confirmations.block.message": "Are you sure you want to block {name}?",
+ "confirmations.delete.confirm": "Delete",
+ "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.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.mute.confirm": "Mute",
+ "confirmations.mute.message": "Are you sure you want to mute {name}?",
+ "confirmations.redraft.confirm": "Delete & redraft",
+ "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.reply.confirm": "Reply",
+ "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
+ "confirmations.unfollow.confirm": "Unfollow",
+ "confirmations.unfollow.message": "Are you sure you want to unfollow {name}?",
+ "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.blocks": "You haven't blocked any users yet.",
+ "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 instances to fill it up",
+ "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",
+ "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.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",
+ "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",
+ "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.",
+ "introduction.interactions.action": "Finish tutorial!",
+ "introduction.interactions.favourite.headline": "Favourite",
+ "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.text": "You can share other people's toots with your followers by boosting them.",
+ "introduction.interactions.reply.headline": "Reply",
+ "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.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.column": "to focus a status in one of the columns",
+ "keyboard_shortcuts.compose": "to focus the compose textarea",
+ "keyboard_shortcuts.description": "Description",
+ "keyboard_shortcuts.direct": "to open direct messages column",
+ "keyboard_shortcuts.down": "to move down in the list",
+ "keyboard_shortcuts.enter": "to open status",
+ "keyboard_shortcuts.favourite": "to favourite",
+ "keyboard_shortcuts.favourites": "to open favourites list",
+ "keyboard_shortcuts.federated": "to open federated timeline",
+ "keyboard_shortcuts.heading": "Keyboard Shortcuts",
+ "keyboard_shortcuts.home": "to open home timeline",
+ "keyboard_shortcuts.hotkey": "Hotkey",
+ "keyboard_shortcuts.legend": "to display this legend",
+ "keyboard_shortcuts.local": "to open local timeline",
+ "keyboard_shortcuts.mention": "to mention author",
+ "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.pinned": "to open pinned toots list",
+ "keyboard_shortcuts.profile": "to open author's profile",
+ "keyboard_shortcuts.reply": "to reply",
+ "keyboard_shortcuts.requests": "to open follow requests list",
+ "keyboard_shortcuts.search": "to focus search",
+ "keyboard_shortcuts.start": "to open \"get started\" column",
+ "keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW",
+ "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.next": "Next",
+ "lightbox.previous": "Previous",
+ "lists.account.add": "Add to list",
+ "lists.account.remove": "Remove from list",
+ "lists.delete": "Delete list",
+ "lists.edit": "Edit list",
+ "lists.new.create": "Add list",
+ "lists.new.title_placeholder": "New list title",
+ "lists.search": "Search among people you follow",
+ "lists.subheading": "Your lists",
+ "loading_indicator.label": "Loading...",
+ "media_gallery.toggle_visible": "Toggle visibility",
+ "missing_indicator.label": "Not found",
+ "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.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.info": "About this instance",
+ "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",
+ "notification.favourite": "{name} favourited your status",
+ "notification.follow": "{name} followed you",
+ "notification.mention": "{name} mentioned you",
+ "notification.reblog": "{name} boosted your status",
+ "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.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.follow": "New followers:",
+ "notifications.column_settings.mention": "Mentions:",
+ "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.filter.follows": "Follows",
+ "notifications.filter.mentions": "Mentions",
+ "notifications.group": "{count} notifications",
+ "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",
+ "regeneration_indicator.label": "Loading…",
+ "regeneration_indicator.sublabel": "Your home feed is being prepared!",
+ "relative_time.days": "{number}d",
+ "relative_time.hours": "{number}h",
+ "relative_time.just_now": "now",
+ "relative_time.minutes": "{number}m",
+ "relative_time.seconds": "{number}s",
+ "reply_indicator.cancel": "Cancel",
+ "report.forward": "Forward to {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 instance 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_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.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_results.total": "{count, number} {count, plural, one {result} other {results}}",
+ "standalone.public_title": "A look inside...",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
+ "status.block": "Block @{name}",
+ "status.cancel_reblog_private": "Unboost",
+ "status.cannot_reblog": "This post cannot be boosted",
+ "status.delete": "Delete",
+ "status.detailed_status": "Detailed conversation view",
+ "status.direct": "Direct message @{name}",
+ "status.embed": "Embed",
+ "status.favourite": "Favourite",
+ "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.open": "Expand this status",
+ "status.pin": "Pin on profile",
+ "status.pinned": "Pinned toot",
+ "status.read_more": "Read more",
+ "status.reblog": "Boost",
+ "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.reply": "Reply",
+ "status.replyAll": "Reply to thread",
+ "status.report": "Report @{name}",
+ "status.sensitive_toggle": "Click to view",
+ "status.sensitive_warning": "Sensitive content",
+ "status.share": "Share",
+ "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.unmute_conversation": "Unmute conversation",
+ "status.unpin": "Unpin from profile",
+ "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",
+ "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
+ "ui.beforeunload": "Your draft will be lost if you leave Mastodon.",
+ "upload_area.title": "Drag & drop to upload",
+ "upload_button.label": "Add media (JPEG, PNG, GIF, WebM, MP4, MOV)",
+ "upload_form.description": "Describe for the visually impaired",
+ "upload_form.focus": "Crop",
+ "upload_form.undo": "Delete",
+ "upload_progress.label": "Uploading...",
+ "video.close": "Close video",
+ "video.exit_fullscreen": "Exit full screen",
+ "video.expand": "Expand video",
+ "video.fullscreen": "Full screen",
+ "video.hide": "Hide video",
+ "video.mute": "Mute sound",
+ "video.pause": "Pause",
+ "video.play": "Play",
+ "video.unmute": "Unmute sound"
+}
diff --git a/app/javascript/mastodon/locales/ms.json b/app/javascript/mastodon/locales/ms.json
new file mode 100644
index 000000000..0d510d011
--- /dev/null
+++ b/app/javascript/mastodon/locales/ms.json
@@ -0,0 +1,358 @@
+{
+ "account.add_or_remove_from_list": "Add or Remove from lists",
+ "account.badges.bot": "Bot",
+ "account.block": "Block @{name}",
+ "account.block_domain": "Hide everything from {domain}",
+ "account.blocked": "Blocked",
+ "account.direct": "Direct message @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.domain_blocked": "Domain hidden",
+ "account.edit_profile": "Edit profile",
+ "account.endorse": "Feature on profile",
+ "account.follow": "Follow",
+ "account.followers": "Followers",
+ "account.followers.empty": "No one follows this user yet.",
+ "account.follows": "Follows",
+ "account.follows.empty": "This user doesn't follow anyone yet.",
+ "account.follows_you": "Follows you",
+ "account.hide_reblogs": "Hide boosts from @{name}",
+ "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.media": "Media",
+ "account.mention": "Mention @{name}",
+ "account.moved_to": "{name} has moved to:",
+ "account.mute": "Mute @{name}",
+ "account.mute_notifications": "Mute notifications from @{name}",
+ "account.muted": "Muted",
+ "account.posts": "Toots",
+ "account.posts_with_replies": "Toots and replies",
+ "account.report": "Report @{name}",
+ "account.requested": "Awaiting approval. Click to cancel follow request",
+ "account.share": "Share @{name}'s profile",
+ "account.show_reblogs": "Show boosts from @{name}",
+ "account.unblock": "Unblock @{name}",
+ "account.unblock_domain": "Unhide {domain}",
+ "account.unendorse": "Don't feature on profile",
+ "account.unfollow": "Unfollow",
+ "account.unmute": "Unmute @{name}",
+ "account.unmute_notifications": "Unmute notifications from @{name}",
+ "account.view_full_profile": "View full profile",
+ "alert.unexpected.message": "An unexpected error occurred.",
+ "alert.unexpected.title": "Oops!",
+ "boost_modal.combo": "You can press {combo} to skip this next time",
+ "bundle_column_error.body": "Something went wrong while loading this component.",
+ "bundle_column_error.retry": "Try again",
+ "bundle_column_error.title": "Network error",
+ "bundle_modal_error.close": "Close",
+ "bundle_modal_error.message": "Something went wrong while loading this component.",
+ "bundle_modal_error.retry": "Try again",
+ "column.blocks": "Blocked users",
+ "column.community": "Local timeline",
+ "column.direct": "Direct messages",
+ "column.domain_blocks": "Hidden domains",
+ "column.favourites": "Favourites",
+ "column.follow_requests": "Follow requests",
+ "column.home": "Home",
+ "column.lists": "Lists",
+ "column.mutes": "Muted users",
+ "column.notifications": "Notifications",
+ "column.pins": "Pinned toot",
+ "column.public": "Federated timeline",
+ "column_back_button.label": "Back",
+ "column_header.hide_settings": "Hide settings",
+ "column_header.moveLeft_settings": "Move column to the left",
+ "column_header.moveRight_settings": "Move column to the right",
+ "column_header.pin": "Pin",
+ "column_header.show_settings": "Show settings",
+ "column_header.unpin": "Unpin",
+ "column_subheading.settings": "Settings",
+ "community.column_settings.media_only": "Media 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.",
+ "compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
+ "compose_form.lock_disclaimer.lock": "locked",
+ "compose_form.placeholder": "What is on your mind?",
+ "compose_form.publish": "Toot",
+ "compose_form.publish_loud": "{publish}!",
+ "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.spoiler.unmarked": "Text is not hidden",
+ "compose_form.spoiler_placeholder": "Write your warning here",
+ "confirmation_modal.cancel": "Cancel",
+ "confirmations.block.confirm": "Block",
+ "confirmations.block.message": "Are you sure you want to block {name}?",
+ "confirmations.delete.confirm": "Delete",
+ "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.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.mute.confirm": "Mute",
+ "confirmations.mute.message": "Are you sure you want to mute {name}?",
+ "confirmations.redraft.confirm": "Delete & redraft",
+ "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.reply.confirm": "Reply",
+ "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
+ "confirmations.unfollow.confirm": "Unfollow",
+ "confirmations.unfollow.message": "Are you sure you want to unfollow {name}?",
+ "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.blocks": "You haven't blocked any users yet.",
+ "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 instances to fill it up",
+ "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",
+ "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.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",
+ "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",
+ "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.",
+ "introduction.interactions.action": "Finish tutorial!",
+ "introduction.interactions.favourite.headline": "Favourite",
+ "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.text": "You can share other people's toots with your followers by boosting them.",
+ "introduction.interactions.reply.headline": "Reply",
+ "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.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.column": "to focus a status in one of the columns",
+ "keyboard_shortcuts.compose": "to focus the compose textarea",
+ "keyboard_shortcuts.description": "Description",
+ "keyboard_shortcuts.direct": "to open direct messages column",
+ "keyboard_shortcuts.down": "to move down in the list",
+ "keyboard_shortcuts.enter": "to open status",
+ "keyboard_shortcuts.favourite": "to favourite",
+ "keyboard_shortcuts.favourites": "to open favourites list",
+ "keyboard_shortcuts.federated": "to open federated timeline",
+ "keyboard_shortcuts.heading": "Keyboard Shortcuts",
+ "keyboard_shortcuts.home": "to open home timeline",
+ "keyboard_shortcuts.hotkey": "Hotkey",
+ "keyboard_shortcuts.legend": "to display this legend",
+ "keyboard_shortcuts.local": "to open local timeline",
+ "keyboard_shortcuts.mention": "to mention author",
+ "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.pinned": "to open pinned toots list",
+ "keyboard_shortcuts.profile": "to open author's profile",
+ "keyboard_shortcuts.reply": "to reply",
+ "keyboard_shortcuts.requests": "to open follow requests list",
+ "keyboard_shortcuts.search": "to focus search",
+ "keyboard_shortcuts.start": "to open \"get started\" column",
+ "keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW",
+ "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.next": "Next",
+ "lightbox.previous": "Previous",
+ "lists.account.add": "Add to list",
+ "lists.account.remove": "Remove from list",
+ "lists.delete": "Delete list",
+ "lists.edit": "Edit list",
+ "lists.new.create": "Add list",
+ "lists.new.title_placeholder": "New list title",
+ "lists.search": "Search among people you follow",
+ "lists.subheading": "Your lists",
+ "loading_indicator.label": "Loading...",
+ "media_gallery.toggle_visible": "Toggle visibility",
+ "missing_indicator.label": "Not found",
+ "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.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.info": "About this instance",
+ "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",
+ "notification.favourite": "{name} favourited your status",
+ "notification.follow": "{name} followed you",
+ "notification.mention": "{name} mentioned you",
+ "notification.reblog": "{name} boosted your status",
+ "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.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.follow": "New followers:",
+ "notifications.column_settings.mention": "Mentions:",
+ "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.filter.follows": "Follows",
+ "notifications.filter.mentions": "Mentions",
+ "notifications.group": "{count} notifications",
+ "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",
+ "regeneration_indicator.label": "Loading…",
+ "regeneration_indicator.sublabel": "Your home feed is being prepared!",
+ "relative_time.days": "{number}d",
+ "relative_time.hours": "{number}h",
+ "relative_time.just_now": "now",
+ "relative_time.minutes": "{number}m",
+ "relative_time.seconds": "{number}s",
+ "reply_indicator.cancel": "Cancel",
+ "report.forward": "Forward to {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 instance 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_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.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_results.total": "{count, number} {count, plural, one {result} other {results}}",
+ "standalone.public_title": "A look inside...",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
+ "status.block": "Block @{name}",
+ "status.cancel_reblog_private": "Unboost",
+ "status.cannot_reblog": "This post cannot be boosted",
+ "status.delete": "Delete",
+ "status.detailed_status": "Detailed conversation view",
+ "status.direct": "Direct message @{name}",
+ "status.embed": "Embed",
+ "status.favourite": "Favourite",
+ "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.open": "Expand this status",
+ "status.pin": "Pin on profile",
+ "status.pinned": "Pinned toot",
+ "status.read_more": "Read more",
+ "status.reblog": "Boost",
+ "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.reply": "Reply",
+ "status.replyAll": "Reply to thread",
+ "status.report": "Report @{name}",
+ "status.sensitive_toggle": "Click to view",
+ "status.sensitive_warning": "Sensitive content",
+ "status.share": "Share",
+ "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.unmute_conversation": "Unmute conversation",
+ "status.unpin": "Unpin from profile",
+ "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",
+ "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
+ "ui.beforeunload": "Your draft will be lost if you leave Mastodon.",
+ "upload_area.title": "Drag & drop to upload",
+ "upload_button.label": "Add media (JPEG, PNG, GIF, WebM, MP4, MOV)",
+ "upload_form.description": "Describe for the visually impaired",
+ "upload_form.focus": "Crop",
+ "upload_form.undo": "Delete",
+ "upload_progress.label": "Uploading...",
+ "video.close": "Close video",
+ "video.exit_fullscreen": "Exit full screen",
+ "video.expand": "Expand video",
+ "video.fullscreen": "Full screen",
+ "video.hide": "Hide video",
+ "video.mute": "Mute sound",
+ "video.pause": "Pause",
+ "video.play": "Play",
+ "video.unmute": "Unmute sound"
+}
diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json
index 25dcccaa8..71cc437cb 100644
--- a/app/javascript/mastodon/locales/nl.json
+++ b/app/javascript/mastodon/locales/nl.json
@@ -1,4 +1,5 @@
{
+ "account.add_or_remove_from_list": "Toevoegen of verwijderen vanuit lijsten",
"account.badges.bot": "Bot",
"account.block": "Blokkeer @{name}",
"account.block_domain": "Verberg alles van {domain}",
@@ -16,6 +17,7 @@
"account.follows_you": "Volgt jou",
"account.hide_reblogs": "Verberg boosts van @{name}",
"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.moved_to": "{name} is verhuisd naar:",
@@ -111,6 +113,7 @@
"emoji_button.search_results": "Zoekresultaten",
"emoji_button.symbols": "Symbolen",
"emoji_button.travel": "Reizen en plekken",
+ "empty_column.account_timeline": "Hier zijn geen toots!",
"empty_column.blocks": "Jij hebt nog geen enkele gebruiker geblokkeerd.",
"empty_column.community": "De lokale tijdlijn is nog leeg. Toot iets in het openbaar om de bal aan het rollen te krijgen!",
"empty_column.direct": "Je hebt nog geen directe berichten. Wanneer je er een verzend of ontvangt, zijn deze hier te zien.",
@@ -134,16 +137,40 @@
"follow_request.authorize": "Goedkeuren",
"follow_request.reject": "Afkeuren",
"getting_started.developers": "Ontwikkelaars",
+ "getting_started.directory": "Gebruikersgids",
"getting_started.documentation": "Documentatie",
- "getting_started.find_friends": "Vind vrienden van Twitter",
"getting_started.heading": "Aan de slag",
"getting_started.invite": "Mensen uitnodigen",
"getting_started.open_source_notice": "Mastodon is vrije software. Je kunt bijdragen of problemen melden op GitHub via {github}.",
"getting_started.security": "Beveiliging",
"getting_started.terms": "Voorwaarden",
+ "hashtag.column_header.tag_mode.all": "en {additional}",
+ "hashtag.column_header.tag_mode.any": "of {additional}",
+ "hashtag.column_header.tag_mode.none": "zonder {additional}",
+ "hashtag.column_settings.tag_mode.all": "Allemaal",
+ "hashtag.column_settings.tag_mode.any": "Een van deze",
+ "hashtag.column_settings.tag_mode.none": "Geen van deze",
+ "hashtag.column_settings.tag_toggle": "Additionele tags aan deze kolom toevoegen",
"home.column_settings.basic": "Algemeen",
"home.column_settings.show_reblogs": "Boosts tonen",
"home.column_settings.show_replies": "Reacties tonen",
+ "introduction.federation.action": "Volgende",
+ "introduction.federation.federated.headline": "Globaal",
+ "introduction.federation.federated.text": "Openbare toots van mensen op andere servers in de fediverse verschijnen op de globale tijdlijn.",
+ "introduction.federation.home.headline": "Home",
+ "introduction.federation.home.text": "Toots van mensen die jij volgt verschijnen onder start. Je kunt iedereen op elke server volgen!",
+ "introduction.federation.local.headline": "Local",
+ "introduction.federation.local.text": "Openbare toots van mensen die ook op jouw server zitten verschijnen op de lokale tijdlijn.",
+ "introduction.interactions.action": "Introductie beëindigen!",
+ "introduction.interactions.favourite.headline": "Favorieten",
+ "introduction.interactions.favourite.text": "Je kunt door een toot als favoriet te markeren, deze voor later bewaren en de auteur laten weten dat je het leuk vond.",
+ "introduction.interactions.reblog.headline": "Boost",
+ "introduction.interactions.reblog.text": "Je kunt toots van andere mensen met jouw volgers delen door deze te boosten.",
+ "introduction.interactions.reply.headline": "Reageren",
+ "introduction.interactions.reply.text": "Je kunt op toots van andere mensen en op die van jezelf reageren, waardoor er een gesprek ontstaat.",
+ "introduction.welcome.action": "Laten we beginnen!",
+ "introduction.welcome.headline": "Eerste stappen",
+ "introduction.welcome.text": "Welkom in de fediverse! Binnen enkele ogenblikken kun jij berichten (toots) versturen en met vrienden op veel verschillende servers praten. Maar deze server, {domain}, is speciaal—het herbergt jouw profiel, onthou dus de naam.",
"keyboard_shortcuts.back": "om terug te gaan",
"keyboard_shortcuts.blocked": "om de door jou geblokkeerde gebruikers te tonen",
"keyboard_shortcuts.boost": "om te boosten",
@@ -205,7 +232,7 @@
"navigation_bar.info": "Over deze server",
"navigation_bar.keyboard_shortcuts": "Sneltoetsen",
"navigation_bar.lists": "Lijsten",
- "navigation_bar.logout": "Afmelden",
+ "navigation_bar.logout": "Uitloggen",
"navigation_bar.mutes": "Genegeerde gebruikers",
"navigation_bar.personal": "Persoonlijk",
"navigation_bar.pins": "Vastgezette toots",
@@ -220,34 +247,21 @@
"notifications.clear_confirmation": "Weet je het zeker dat je al jouw meldingen wilt verwijderen?",
"notifications.column_settings.alert": "Desktopmeldingen",
"notifications.column_settings.favourite": "Favorieten:",
+ "notifications.column_settings.filter_bar.advanced": "Alle categorieën tonen",
+ "notifications.column_settings.filter_bar.category": "Snelle filterbalk",
+ "notifications.column_settings.filter_bar.show": "Tonen",
"notifications.column_settings.follow": "Nieuwe volgers:",
"notifications.column_settings.mention": "Vermeldingen:",
"notifications.column_settings.push": "Pushmeldingen",
"notifications.column_settings.reblog": "Boosts:",
"notifications.column_settings.show": "In kolom tonen",
"notifications.column_settings.sound": "Geluid afspelen",
+ "notifications.filter.all": "Alles",
+ "notifications.filter.boosts": "Boosts",
+ "notifications.filter.favourites": "Favorieten",
+ "notifications.filter.follows": "Die jij volgt",
+ "notifications.filter.mentions": "Vermeldingen",
"notifications.group": "{count} meldingen",
- "onboarding.done": "Klaar",
- "onboarding.next": "Volgende",
- "onboarding.page_five.public_timelines": "De lokale tijdlijn toont openbare toots van iedereen op {domain}. De globale tijdlijn toont openbare toots van iedereen die door gebruikers van {domain} worden gevolgd, dus ook mensen van andere Mastodonservers. Dit zijn de openbare tijdlijnen en vormen een uitstekende manier om nieuwe mensen te leren kennen.",
- "onboarding.page_four.home": "Deze tijdlijn laat toots zien van mensen die jij volgt.",
- "onboarding.page_four.notifications": "De kolom met meldingen toont alle interacties die je met andere Mastodongebruikers hebt.",
- "onboarding.page_one.federation": "Mastodon is een netwerk van onafhankelijke servers die samen een groot sociaal netwerk vormen.",
- "onboarding.page_one.full_handle": "Jouw volledige Mastodonadres",
- "onboarding.page_one.handle_hint": "Dit is waarmee jouw vrienden je kunnen vinden.",
- "onboarding.page_one.welcome": "Welkom op Mastodon!",
- "onboarding.page_six.admin": "De beheerder van jouw Mastodonserver is {admin}.",
- "onboarding.page_six.almost_done": "Bijna klaar...",
- "onboarding.page_six.appetoot": "Veel succes!",
- "onboarding.page_six.apps_available": "Er zijn {apps} beschikbaar voor iOS, Android en andere platformen.",
- "onboarding.page_six.github": "Mastodon kost niets en is vrije software. Je kan bugs melden, nieuwe mogelijkheden aanvragen en als ontwikkelaar meewerken op {github}.",
- "onboarding.page_six.guidelines": "communityrichtlijnen",
- "onboarding.page_six.read_guidelines": "Vergeet niet de {guidelines} van {domain} te lezen!",
- "onboarding.page_six.various_app": "mobiele apps",
- "onboarding.page_three.profile": "Bewerk jouw profiel om jouw avatar, bio en weergavenaam te veranderen. Daar vind je ook andere instellingen.",
- "onboarding.page_three.search": "Gebruik de zoekbalk linksboven om andere mensen op Mastodon te vinden en om te zoeken op hashtags, zoals {illustration} en {introductions}. Om iemand te vinden die niet op deze Mastodonserver zit, moet je het volledige Mastodonadres van deze persoon invoeren.",
- "onboarding.page_two.compose": "Schrijf berichten (wij noemen dit toots) in het tekstvak in de linkerkolom. Je kan met de pictogrammen daaronder afbeeldingen uploaden, privacy-instellingen veranderen en je tekst een waarschuwing meegeven.",
- "onboarding.skip": "Overslaan",
"privacy.change": "Zichtbaarheid toot aanpassen",
"privacy.direct.long": "Alleen aan vermelde gebruikers tonen",
"privacy.direct.short": "Direct",
@@ -283,6 +297,8 @@
"search_results.statuses": "Toots",
"search_results.total": "{count, number} {count, plural, one {resultaat} other {resultaten}}",
"standalone.public_title": "Een kijkje binnenin...",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "Blokkeer @{name}",
"status.cancel_reblog_private": "Niet langer boosten",
"status.cannot_reblog": "Deze toot kan niet geboost worden",
@@ -318,10 +334,11 @@
"status.show_less_all": "Alles minder tonen",
"status.show_more": "Meer tonen",
"status.show_more_all": "Alles meer tonen",
- "status.unmute_conversation": "Conversatie niet langer negeren",
+ "status.show_thread": "Gesprek tonen",
+ "status.unmute_conversation": "Gesprek niet langer negeren",
"status.unpin": "Van profielpagina losmaken",
- "suggestions.dismiss": "Dismiss suggestion",
- "suggestions.header": "You might be interested in…",
+ "suggestions.dismiss": "Suggestie verwerpen",
+ "suggestions.header": "Je bent waarschijnlijk ook geïnteresseerd in…",
"tabs_bar.federated_timeline": "Globaal",
"tabs_bar.home": "Start",
"tabs_bar.local_timeline": "Lokaal",
@@ -332,7 +349,7 @@
"upload_area.title": "Hierin slepen om te uploaden",
"upload_button.label": "Media toevoegen (JPEG, PNG, GIF, WebM, MP4, MOV)",
"upload_form.description": "Omschrijf dit voor mensen met een visuele beperking",
- "upload_form.focus": "Bijsnijden",
+ "upload_form.focus": "Voorvertoning aanpassen",
"upload_form.undo": "Verwijderen",
"upload_progress.label": "Uploaden...",
"video.close": "Video sluiten",
diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json
index 522562741..61c03c87d 100644
--- a/app/javascript/mastodon/locales/no.json
+++ b/app/javascript/mastodon/locales/no.json
@@ -1,4 +1,5 @@
{
+ "account.add_or_remove_from_list": "Add or Remove from lists",
"account.badges.bot": "Bot",
"account.block": "Blokkér @{name}",
"account.block_domain": "Skjul alt fra {domain}",
@@ -16,6 +17,7 @@
"account.follows_you": "Følger deg",
"account.hide_reblogs": "Skjul fremhevinger fra @{name}",
"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.media": "Media",
"account.mention": "Nevn @{name}",
"account.moved_to": "{name} har flyttet til:",
@@ -111,6 +113,7 @@
"emoji_button.search_results": "Søkeresultat",
"emoji_button.symbols": "Symboler",
"emoji_button.travel": "Reise & steder",
+ "empty_column.account_timeline": "No toots here!",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "Den lokale tidslinjen er tom. Skriv noe offentlig for å få snøballen til å rulle!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
@@ -134,16 +137,40 @@
"follow_request.authorize": "Autorisér",
"follow_request.reject": "Avvis",
"getting_started.developers": "Developers",
+ "getting_started.directory": "Profile directory",
"getting_started.documentation": "Documentation",
- "getting_started.find_friends": "Find friends from Twitter",
"getting_started.heading": "Kom i gang",
"getting_started.invite": "Invite people",
"getting_started.open_source_notice": "Mastodon er fri programvare. Du kan bidra eller rapportere problemer på GitHub på {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.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": "Enkel",
"home.column_settings.show_reblogs": "Vis fremhevinger",
"home.column_settings.show_replies": "Vis svar",
+ "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",
+ "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.",
+ "introduction.interactions.action": "Finish tutorial!",
+ "introduction.interactions.favourite.headline": "Favourite",
+ "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.text": "You can share other people's toots with your followers by boosting them.",
+ "introduction.interactions.reply.headline": "Reply",
+ "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.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": "for å navigere tilbake",
"keyboard_shortcuts.blocked": "to open blocked users list",
"keyboard_shortcuts.boost": "å fremheve",
@@ -220,34 +247,21 @@
"notifications.clear_confirmation": "Er du sikker på at du vil fjerne alle dine varsler permanent?",
"notifications.column_settings.alert": "Skrivebordsvarslinger",
"notifications.column_settings.favourite": "Likt:",
+ "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.follow": "Nye følgere:",
"notifications.column_settings.mention": "Nevnt:",
"notifications.column_settings.push": "Push varsler",
"notifications.column_settings.reblog": "Fremhevet:",
"notifications.column_settings.show": "Vis i kolonne",
"notifications.column_settings.sound": "Spill lyd",
+ "notifications.filter.all": "All",
+ "notifications.filter.boosts": "Boosts",
+ "notifications.filter.favourites": "Favourites",
+ "notifications.filter.follows": "Follows",
+ "notifications.filter.mentions": "Mentions",
"notifications.group": "{count} notifications",
- "onboarding.done": "Ferdig",
- "onboarding.next": "Neste",
- "onboarding.page_five.public_timelines": "Den lokale tidslinjen viser offentlige poster fra alle på {domain}. Felles tidslinje viser offentlige poster fra alle som brukere på {domain} følger. Dette er de offentlige tidslinjene, et fint sted å oppdage nye brukere.",
- "onboarding.page_four.home": "Hjem er tidslinjen med alle brukere som du følger.",
- "onboarding.page_four.notifications": "Kolonnen med varsler viser når noen interakterer med deg.",
- "onboarding.page_one.federation": "Mastdodon er et nettverk med uavhengige servere som sammarbeider om å danne et stort sosialt nettverk. Vi kaller disse serverene instanser.",
- "onboarding.page_one.full_handle": "Ditt fulle kallenavn",
- "onboarding.page_one.handle_hint": "Dette er hva du ber dine venner å søke etter.",
- "onboarding.page_one.welcome": "Velkommen til Mastodon!",
- "onboarding.page_six.admin": "Administratoren på din instans er {admin}.",
- "onboarding.page_six.almost_done": "Snart ferdig...",
- "onboarding.page_six.appetoot": "Bon Appetut!",
- "onboarding.page_six.apps_available": "Det er {apps} tilgjengelig for iOS, Android og andre plattformer.",
- "onboarding.page_six.github": "Mastodon er programvare med fri og åpen kildekode. Du kan rapportere feil, be om hjelp eller foreslå endringer på {github}.",
- "onboarding.page_six.guidelines": "samfunnets retningslinjer",
- "onboarding.page_six.read_guidelines": "Vennligst les {guidelines} for {domain}!",
- "onboarding.page_six.various_app": "mobilapper",
- "onboarding.page_three.profile": "Rediger profilen din for å endre din avatar, biografi, og visningsnavn. Der finner du også andre innstillinger.",
- "onboarding.page_three.search": "Bruk søkemenyen for å søke etter emneknagger eller brukere, slik som {illustration} og {introductions}. For å søke på en bruker som ikke er på samme instans som deg bruk hele brukernavnet..",
- "onboarding.page_two.compose": "Skriv innlegg fra forfatt-kolonnen. Du kan laste opp bilder, justere synlighet, og legge til innholdsvarsler med knappene under.",
- "onboarding.skip": "Hopp over",
"privacy.change": "Justér synlighet",
"privacy.direct.long": "Post kun til nevnte brukere",
"privacy.direct.short": "Direkte",
@@ -283,6 +297,8 @@
"search_results.statuses": "Toots",
"search_results.total": "{count, number} {count, plural, one {resultat} other {resultater}}",
"standalone.public_title": "En titt inni...",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "Block @{name}",
"status.cancel_reblog_private": "Unboost",
"status.cannot_reblog": "Denne posten kan ikke fremheves",
@@ -318,6 +334,7 @@
"status.show_less_all": "Show less for all",
"status.show_more": "Vis mer",
"status.show_more_all": "Show more for all",
+ "status.show_thread": "Show thread",
"status.unmute_conversation": "Ikke demp samtale",
"status.unpin": "Angre festing på profilen",
"suggestions.dismiss": "Dismiss suggestion",
diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json
index 2a11d8fda..f32537ddd 100644
--- a/app/javascript/mastodon/locales/oc.json
+++ b/app/javascript/mastodon/locales/oc.json
@@ -1,4 +1,5 @@
{
+ "account.add_or_remove_from_list": "Ajustar o tirar de las listas",
"account.badges.bot": "Robòt",
"account.block": "Blocar @{name}",
"account.block_domain": "Tot amagar del domeni {domain}",
@@ -16,6 +17,7 @@
"account.follows_you": "Vos sèc",
"account.hide_reblogs": "Rescondre los partatges de @{name}",
"account.link_verified_on": "La proprietat d’aqueste ligam foguèt verificada lo {date}",
+ "account.locked_info": "L’estatut de privacitat del compte es configurat sus clavat. Lo proprietari causís qual pòt sègre son compte.",
"account.media": "Mèdias",
"account.mention": "Mencionar @{name}",
"account.moved_to": "{name} a mudat los catons a :",
@@ -67,7 +69,7 @@
"community.column_settings.media_only": "Solament los mèdias",
"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 pas cercar que los tuts publics per etiqueta.",
+ "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.",
"compose_form.lock_disclaimer": "Vòstre compte es pas {locked}. Tot lo monde pòt vos sègre e veire los estatuts reservats als seguidors.",
"compose_form.lock_disclaimer.lock": "clavat",
"compose_form.placeholder": "A de qué pensatz ?",
@@ -111,6 +113,7 @@
"emoji_button.search_results": "Resultats de recèrca",
"emoji_button.symbols": "Simbòls",
"emoji_button.travel": "Viatges & lòcs",
+ "empty_column.account_timeline": "Cap de tuts aquí !",
"empty_column.blocks": "Avètz pas blocat degun pel moment.",
"empty_column.community": "Lo flux public local es void. Escrivètz quicòm per lo garnir !",
"empty_column.direct": "Avètz pas encara cap de messatges. Quand ne mandatz un o que ne recebètz un, serà mostrat aquí.",
@@ -134,43 +137,67 @@
"follow_request.authorize": "Acceptar",
"follow_request.reject": "Regetar",
"getting_started.developers": "Desvelopaires",
+ "getting_started.directory": "Annuari de perfils",
"getting_started.documentation": "Documentacion",
- "getting_started.find_friends": "Trobar d’amics de Twitter",
"getting_started.heading": "Per començar",
"getting_started.invite": "Convidar de monde",
"getting_started.open_source_notice": "Mastodon es un logicial liure. Podètz contribuir e mandar vòstres comentaris e rapòrt de bug via {github} sus GitHub.",
"getting_started.security": "Seguretat",
"getting_started.terms": "Condicions d’utilizacion",
+ "hashtag.column_header.tag_mode.all": "e {additional}",
+ "hashtag.column_header.tag_mode.any": "o {additional}",
+ "hashtag.column_header.tag_mode.none": "sens {additional}",
+ "hashtag.column_settings.tag_mode.all": "Totes aquestes",
+ "hashtag.column_settings.tag_mode.any": "Un d’aquestes",
+ "hashtag.column_settings.tag_mode.none": "Cap d’aquestes",
+ "hashtag.column_settings.tag_toggle": "Inclure las etiquetas suplementàrias dins aquesta colomna",
"home.column_settings.basic": "Basic",
"home.column_settings.show_reblogs": "Mostrar los partatges",
"home.column_settings.show_replies": "Mostrar las responsas",
+ "introduction.federation.action": "Seguent",
+ "introduction.federation.federated.headline": "Federat",
+ "introduction.federation.federated.text": "Los tuts publics d’autres servidors del fediverse apareisseràn dins lo flux d’actualitats.",
+ "introduction.federation.home.headline": "Acuèlh",
+ "introduction.federation.home.text": "Los tuts del monde que seguètz apareisseràn dins vòstre flux d’acuèlh. Podètz sègre de monde ont que siasquen !",
+ "introduction.federation.local.headline": "Local",
+ "introduction.federation.local.text": "Los tuts publics del monde del meteis servidor que vosautres apareisseràn dins lo flux local.",
+ "introduction.interactions.action": "Acabar la leiçon !",
+ "introduction.interactions.favourite.headline": "Favorit",
+ "introduction.interactions.favourite.text": "Podètz enregistrar un tut per mai tard, e avisar l’autor que l’avètz aimat, en l’ajustant als favorits.",
+ "introduction.interactions.reblog.headline": "Partejar",
+ "introduction.interactions.reblog.text": "Podètz partejar los tuts dels autres amb vòstres seguidors en los partejant.",
+ "introduction.interactions.reply.headline": "Respondre",
+ "introduction.interactions.reply.text": "Podètz respondre als tuts dels autres e a vòstres tuts, seràn amassats en una conversacion.",
+ "introduction.welcome.action": "Anem-i !",
+ "introduction.welcome.headline": "Primièrs passes",
+ "introduction.welcome.text": "La benvenguda al fediverse ! D’aquí un momenton, poiretz enviar de messatges e charrar amd d’amics via mantuns servidors. Mas aqueste servidor, {domain}, es especial perque alberga vòstre perfil, doncas oblidatz pas son nom.",
"keyboard_shortcuts.back": "anar enrèire",
- "keyboard_shortcuts.blocked": "per dobrir la lista d’utilizaires blocats",
+ "keyboard_shortcuts.blocked": "dobrir la lista d’utilizaires blocats",
"keyboard_shortcuts.boost": "partejar",
"keyboard_shortcuts.column": "centrar un estatut a una colomna",
"keyboard_shortcuts.compose": "anar al camp tèxte",
- "keyboard_shortcuts.description": "Descripcion",
- "keyboard_shortcuts.direct": "per dobrir la colomna de messatges dirèctes",
+ "keyboard_shortcuts.description": "descripcion",
+ "keyboard_shortcuts.direct": "dobrir la colomna de messatges dirèctes",
"keyboard_shortcuts.down": "far davalar dins la lista",
"keyboard_shortcuts.enter": "dobrir los estatuts",
"keyboard_shortcuts.favourite": "apondre als favorits",
- "keyboard_shortcuts.favourites": "per dobrir la lista de favorits",
- "keyboard_shortcuts.federated": "per dobrir lo flux public global",
+ "keyboard_shortcuts.favourites": "dobrir la lista de favorits",
+ "keyboard_shortcuts.federated": "dobrir lo flux public global",
"keyboard_shortcuts.heading": "Acorchis clavièr",
- "keyboard_shortcuts.home": "per dobrir lo flux public local",
+ "keyboard_shortcuts.home": "dobrir lo flux public local",
"keyboard_shortcuts.hotkey": "Acorchis",
"keyboard_shortcuts.legend": "mostrar aquesta legenda",
- "keyboard_shortcuts.local": "per dobrir lo flux public local",
+ "keyboard_shortcuts.local": "dobrir lo flux public local",
"keyboard_shortcuts.mention": "mencionar l’autor",
- "keyboard_shortcuts.muted": "per dobrir la lista dels utilizaires silenciats",
- "keyboard_shortcuts.my_profile": "per dobrir vòstre perfil",
- "keyboard_shortcuts.notifications": "per dobrir la colomna de notificacions",
- "keyboard_shortcuts.pinned": "per dobrir la lista dels tuts penjats",
- "keyboard_shortcuts.profile": "per dobrir lo perfil de l’autor",
+ "keyboard_shortcuts.muted": "dobrir la lista dels utilizaires silenciats",
+ "keyboard_shortcuts.my_profile": "dobrir vòstre perfil",
+ "keyboard_shortcuts.notifications": "dobrir la colomna de notificacions",
+ "keyboard_shortcuts.pinned": "dobrir la lista dels tuts penjats",
+ "keyboard_shortcuts.profile": "dobrir lo perfil de l’autor",
"keyboard_shortcuts.reply": "respondre",
- "keyboard_shortcuts.requests": "per dorbir la lista de demanda d’abonament",
+ "keyboard_shortcuts.requests": "dorbir la lista de demanda d’abonament",
"keyboard_shortcuts.search": "anar a la recèrca",
- "keyboard_shortcuts.start": "per dobrir la columna «Per començar»",
+ "keyboard_shortcuts.start": "dobrir la colomna « Per començar »",
"keyboard_shortcuts.toggle_hidden": "mostrar/amagar lo tèxte dels avertiments",
"keyboard_shortcuts.toot": "començar un estatut tot novèl",
"keyboard_shortcuts.unfocus": "quitar lo camp tèxte/de recèrca",
@@ -220,34 +247,21 @@
"notifications.clear_confirmation": "Volètz vertadièrament escafar totas vòstras las notificacions ?",
"notifications.column_settings.alert": "Notificacions localas",
"notifications.column_settings.favourite": "Favorits :",
+ "notifications.column_settings.filter_bar.advanced": "Mostrar totas las categorias",
+ "notifications.column_settings.filter_bar.category": "Barra de recèrca rapida",
+ "notifications.column_settings.filter_bar.show": "Mostrar",
"notifications.column_settings.follow": "Nòus seguidors :",
"notifications.column_settings.mention": "Mencions :",
"notifications.column_settings.push": "Notificacions",
"notifications.column_settings.reblog": "Partatges :",
"notifications.column_settings.show": "Mostrar dins la colomna",
"notifications.column_settings.sound": "Emetre un son",
+ "notifications.filter.all": "Totes",
+ "notifications.filter.boosts": "Partages",
+ "notifications.filter.favourites": "Favorits",
+ "notifications.filter.follows": "Seguiments",
+ "notifications.filter.mentions": "Mencions",
"notifications.group": "{count} notificacions",
- "onboarding.done": "Sortir",
- "onboarding.next": "Seguent",
- "onboarding.page_five.public_timelines": "Lo flux local mòstra los estatuts publics del monde de vòstra instància, aquí {domain}. Lo flux federat mòstra los estatuts publics de la gent que los de {domain} sègon. Son los fluxes publics, un bon biais de trobar de mond.",
- "onboarding.page_four.home": "Lo flux d’acuèlh mòstra los estatuts del monde que seguètz.",
- "onboarding.page_four.notifications": "La colomna de notificacions vos fa veire quand qualqu’un interagís amb vos.",
- "onboarding.page_one.federation": "Mastodon es un malhum de servidors independents que comunican per construire un malhum mai larg. Òm los apèla instàncias.",
- "onboarding.page_one.full_handle": "Vòstre escais-nom complèt",
- "onboarding.page_one.handle_hint": "Vos cal dire a vòstres amics de cercar aquò.",
- "onboarding.page_one.welcome": "Benvengut a Mastodon !",
- "onboarding.page_six.admin": "Vòstre administrator d’instància es {admin}.",
- "onboarding.page_six.almost_done": "Gaireben acabat…",
- "onboarding.page_six.appetoot": "Bon Appetut !",
- "onboarding.page_six.apps_available": "I a d’aplicacions per mobil per iOS, Android e mai.",
- "onboarding.page_six.github": "Mastodon es un logicial liure e open-source. Podètz senhalar de bugs, demandar de foncionalitats e contribuir al còdi sus {github}.",
- "onboarding.page_six.guidelines": "guida de la comunitat",
- "onboarding.page_six.read_guidelines": "Mercés de legir la {guidelines} de {domain} !",
- "onboarding.page_six.various_app": "aplicacions per mobil",
- "onboarding.page_three.profile": "Modificatz vòstre perfil per cambiar vòstre avatar, bio e escais-nom. I a enlà totas las preferéncias.",
- "onboarding.page_three.search": "Emplegatz la barra de recèrca per trobar de monde e engachatz las etiquetas coma {illustration} e {introductions}. Per trobar una persona d’una autra instància, picatz son identificant complèt.",
- "onboarding.page_two.compose": "Escrivètz un estatut dempuèi la colomna per compausar. Podètz mandar un imatge, cambiar la confidencialitat e ajustar un avertiment amb las icònas cai-jos.",
- "onboarding.skip": "Passar",
"privacy.change": "Ajustar la confidencialitat del messatge",
"privacy.direct.long": "Mostrar pas qu’a las personas mencionadas",
"privacy.direct.short": "Dirècte",
@@ -283,6 +297,8 @@
"search_results.statuses": "Tuts",
"search_results.total": "{count, number} {count, plural, one {resultat} other {resultats}}",
"standalone.public_title": "Una ulhada dedins…",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "Blocar @{name}",
"status.cancel_reblog_private": "Quitar de partejar",
"status.cannot_reblog": "Aqueste estatut pòt pas èsser partejat",
@@ -318,10 +334,11 @@
"status.show_less_all": "Los tornar plegar totes",
"status.show_more": "Desplegar",
"status.show_more_all": "Los desplegar totes",
+ "status.show_thread": "Mostrar lo fil",
"status.unmute_conversation": "Tornar mostrar la conversacion",
"status.unpin": "Tirar del perfil",
"suggestions.dismiss": "Regetar la suggestion",
- "suggestions.header": "Aquò vos poiriá interessar…",
+ "suggestions.header": "Vos poiriá interessar…",
"tabs_bar.federated_timeline": "Flux public global",
"tabs_bar.home": "Acuèlh",
"tabs_bar.local_timeline": "Flux public local",
@@ -332,7 +349,7 @@
"upload_area.title": "Lisatz e depausatz per mandar",
"upload_button.label": "Ajustar un mèdia (JPEG, PNG, GIF, WebM, MP4, MOV)",
"upload_form.description": "Descripcion pels mal vesents",
- "upload_form.focus": "Retalhar",
+ "upload_form.focus": "Modificar l’apercebut",
"upload_form.undo": "Suprimir",
"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 eda0f62fd..8d5f6c8dc 100644
--- a/app/javascript/mastodon/locales/pl.json
+++ b/app/javascript/mastodon/locales/pl.json
@@ -1,4 +1,5 @@
{
+ "account.add_or_remove_from_list": "Add or Remove from lists",
"account.badges.bot": "Bot",
"account.block": "Blokuj @{name}",
"account.block_domain": "Blokuj wszystko z {domain}",
@@ -16,6 +17,7 @@
"account.follows_you": "Śledzi Cię",
"account.hide_reblogs": "Ukryj podbicia od @{name}",
"account.link_verified_on": "Własność tego odnośnika została potwierdzona {date}",
+ "account.locked_info": "To konto jest prywatne. Właściciel ręcznie wybiera kto może go śledzić.",
"account.media": "Zawartość multimedialna",
"account.mention": "Wspomnij o @{name}",
"account.moved_to": "{name} przeniósł(-osła) się do:",
@@ -111,6 +113,7 @@
"emoji_button.search_results": "Wyniki wyszukiwania",
"emoji_button.symbols": "Symbole",
"emoji_button.travel": "Podróże i miejsca",
+ "empty_column.account_timeline": "No toots here!",
"empty_column.blocks": "Nie zablokowałeś(-aś) jeszcze żadnego użytkownika.",
"empty_column.community": "Lokalna oś czasu jest pusta. Napisz coś publicznie, aby zagaić!",
"empty_column.direct": "Nie masz żadnych wiadomości bezpośrednich. Kiedy dostaniesz lub wyślesz jakąś, pojawi się ona tutaj.",
@@ -134,16 +137,40 @@
"follow_request.authorize": "Autoryzuj",
"follow_request.reject": "Odrzuć",
"getting_started.developers": "Dla programistów",
+ "getting_started.directory": "Profile directory",
"getting_started.documentation": "Dokumentacja",
- "getting_started.find_friends": "Znajdź znajomych z Twittera",
"getting_started.heading": "Rozpocznij",
"getting_started.invite": "Zaproś znajomych",
"getting_started.open_source_notice": "Mastodon jest oprogramowaniem o otwartym źródle. Możesz pomóc w rozwoju lub zgłaszać błędy na GitHubie tutaj: {github}.",
"getting_started.security": "Bezpieczeństwo",
"getting_started.terms": "Zasady użytkowania",
+ "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.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": "Podstawowe",
"home.column_settings.show_reblogs": "Pokazuj podbicia",
"home.column_settings.show_replies": "Pokazuj odpowiedzi",
+ "introduction.federation.action": "Dalej",
+ "introduction.federation.federated.headline": "Oś czasu federacji",
+ "introduction.federation.federated.text": "Publiczne wpisy osób z tego całego Fediwersum pojawiają się na lokalnej osi czasu.",
+ "introduction.federation.home.headline": "Strona główna",
+ "introduction.federation.home.text": "Wpisy osób które śledzisz pojawią się na stronie głównej. Możesz zacząć śledzić użytkowników dowolnego serwera!",
+ "introduction.federation.local.headline": "Lokalna oś czasu",
+ "introduction.federation.local.text": "Publiczne wpisy osób z tego samego serwera pojawiają się na lokalnej osi czasu.",
+ "introduction.interactions.action": "Zakończ poradnik!",
+ "introduction.interactions.favourite.headline": "Ulubione",
+ "introduction.interactions.favourite.text": "Możesz zapisać wpis na później i pokazać autorowi, że Ci się spodobał, jeżeli dodasz go .",
+ "introduction.interactions.reblog.headline": "Podbicia",
+ "introduction.interactions.reblog.text": "Możesz podzielić się wpisem innego użytkownikami z osobami które Cię śledzą podbijając go.",
+ "introduction.interactions.reply.headline": "Odpowiedzi",
+ "introduction.interactions.reply.text": "Możesz odpowiadać na wpisy swoje i innych, tworząc konwersację.",
+ "introduction.welcome.action": "Rozpocznij!",
+ "introduction.welcome.headline": "Pierwsze kroki",
+ "introduction.welcome.text": "Witmay w Fediwersum! Za chwilę dowiesz się, jak przekazywać wiadomości i rozmawiać ze znajomymi pomiędzy różnymi serwerami. Ale ten serwer – {domain} jest wyjątkowy, ponieważ zawiera Twój profil – zapamiętaj więc jego nazwę.",
"keyboard_shortcuts.back": "aby cofnąć się",
"keyboard_shortcuts.blocked": "aby przejść do listy zablokowanych użytkowników",
"keyboard_shortcuts.boost": "aby podbić wpis",
@@ -220,34 +247,21 @@
"notifications.clear_confirmation": "Czy na pewno chcesz bezpowrotnie usunąć wszystkie powiadomienia?",
"notifications.column_settings.alert": "Powiadomienia na pulpicie",
"notifications.column_settings.favourite": "Dodanie do ulubionych:",
+ "notifications.column_settings.filter_bar.advanced": "Wyświetl wszystkie kategorie",
+ "notifications.column_settings.filter_bar.category": "Szybkie filtrowanie",
+ "notifications.column_settings.filter_bar.show": "Pokaż",
"notifications.column_settings.follow": "Nowi śledzący:",
"notifications.column_settings.mention": "Wspomnienia:",
"notifications.column_settings.push": "Powiadomienia push",
"notifications.column_settings.reblog": "Podbicia:",
"notifications.column_settings.show": "Pokaż w kolumnie",
"notifications.column_settings.sound": "Odtwarzaj dźwięk",
+ "notifications.filter.all": "Wszystkie",
+ "notifications.filter.boosts": "Podbicia",
+ "notifications.filter.favourites": "Ulubione",
+ "notifications.filter.follows": "Śledzenia",
+ "notifications.filter.mentions": "Wspomienia",
"notifications.group": "{count, number} {count, plural, one {powiadomienie} few {powiadomienia} many {powiadomień} more {powiadomień}}",
- "onboarding.done": "Gotowe",
- "onboarding.next": "Dalej",
- "onboarding.page_five.public_timelines": "Lokalna oś czasu zawiera wszystkie publiczne wpisy z {domain}. Globalna oś czasu wyświetla publiczne wpisy śledzonych przez członków {domain}. Są to publiczne osie czasu – najlepszy sposób na poznanie nowych osób.",
- "onboarding.page_four.home": "Główna oś czasu wyświetla publiczne wpisy.",
- "onboarding.page_four.notifications": "Kolumna powiadomień wyświetla, gdy ktoś dokonuje interakcji z tobą.",
- "onboarding.page_one.federation": "Mastodon jest siecią niezależnych serwerów połączonych w jeden portal społecznościowy. Nazywamy te serwery instancjami.",
- "onboarding.page_one.full_handle": "Twój pełny adres",
- "onboarding.page_one.handle_hint": "Należy go podać znajomym, aby mogli Cię odnaleźć.",
- "onboarding.page_one.welcome": "Witamy w Mastodon!",
- "onboarding.page_six.admin": "Administratorem tej instancji jest {admin}.",
- "onboarding.page_six.almost_done": "Prawie gotowe…",
- "onboarding.page_six.appetoot": "Bon Appetoot!",
- "onboarding.page_six.apps_available": "Są dostępne {apps} dla Androida, iOS i innych platform.",
- "onboarding.page_six.github": "Mastodon jest oprogramowaniem otwartoźródłwym. Możesz zgłaszać błędy, proponować funkcje i pomóc w rozwoju na {github}.",
- "onboarding.page_six.guidelines": "wytyczne dla społeczności",
- "onboarding.page_six.read_guidelines": "Przeczytaj {guidelines} {domain}!",
- "onboarding.page_six.various_app": "aplikacje mobilne",
- "onboarding.page_three.profile": "Edytuj profil, aby zmienić obraz profilowy, biografię, wyświetlaną nazwę i inne ustawienia.",
- "onboarding.page_three.search": "Użyj paska wyszukiwania aby znaleźć ludzi i hashtagi, takie jak {illustration} i {introductions}. Aby znaleźć osobę spoza tej instancji, musisz użyć pełnego adresu.",
- "onboarding.page_two.compose": "Utwórz wpisy, aby wypełnić kolumnę. Możesz wysłać zdjęcia, zmienić ustawienia prywatności lub dodać ostrzeżenie o zawartości.",
- "onboarding.skip": "Pomiń",
"privacy.change": "Dostosuj widoczność wpisów",
"privacy.direct.long": "Widoczny tylko dla wspomnianych",
"privacy.direct.short": "Bezpośrednio",
@@ -283,6 +297,8 @@
"search_results.statuses": "Wpisy",
"search_results.total": "{count, number} {count, plural, one {wynik} few {wyniki} many {wyników} more {wyników}}",
"standalone.public_title": "Spojrzenie w głąb…",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "Zablokuj @{name}",
"status.cancel_reblog_private": "Cofnij podbicie",
"status.cannot_reblog": "Ten wpis nie może zostać podbity",
@@ -318,6 +334,7 @@
"status.show_less_all": "Zwiń wszystkie",
"status.show_more": "Rozwiń",
"status.show_more_all": "Rozwiń wszystkie",
+ "status.show_thread": "Show thread",
"status.unmute_conversation": "Cofnij wyciszenie konwersacji",
"status.unpin": "Odepnij z profilu",
"suggestions.dismiss": "Dismiss suggestion",
diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json
index 3f09f0d54..723d7f78f 100644
--- a/app/javascript/mastodon/locales/pt-BR.json
+++ b/app/javascript/mastodon/locales/pt-BR.json
@@ -1,4 +1,5 @@
{
+ "account.add_or_remove_from_list": "Adicionar ou remover de listas",
"account.badges.bot": "Robô",
"account.block": "Bloquear @{name}",
"account.block_domain": "Esconder tudo de {domain}",
@@ -16,6 +17,7 @@
"account.follows_you": "Segue você",
"account.hide_reblogs": "Esconder compartilhamentos de @{name}",
"account.link_verified_on": "A posse desse link foi verificada em {date}",
+ "account.locked_info": "Essa conta está trancada. Se você a seguir sua solicitação será revisada manualmente.",
"account.media": "Mídia",
"account.mention": "Mencionar @{name}",
"account.moved_to": "{name} se mudou para:",
@@ -111,6 +113,7 @@
"emoji_button.search_results": "Resultados da busca",
"emoji_button.symbols": "Símbolos",
"emoji_button.travel": "Viagens & Lugares",
+ "empty_column.account_timeline": "Não há toots aqui!",
"empty_column.blocks": "Você ainda não bloqueou nenhum usuário.",
"empty_column.community": "A timeline local está vazia. Escreva algo publicamente para começar!",
"empty_column.direct": "Você não tem nenhuma mensagem direta ainda. Quando você enviar ou receber uma, as mensagens aparecerão por aqui.",
@@ -134,16 +137,40 @@
"follow_request.authorize": "Autorizar",
"follow_request.reject": "Rejeitar",
"getting_started.developers": "Desenvolvedores",
+ "getting_started.directory": "Diretório de perfis",
"getting_started.documentation": "Documentação",
- "getting_started.find_friends": "Encontre amizades do Twitter",
"getting_started.heading": "Primeiros passos",
"getting_started.invite": "Convide pessoas",
"getting_started.open_source_notice": "Mastodon é um software de código aberto. Você pode contribuir ou reportar problemas na página do GitHub do projeto: {github}.",
"getting_started.security": "Segurança",
"getting_started.terms": "Termos de serviço",
+ "hashtag.column_header.tag_mode.all": "e {additional}",
+ "hashtag.column_header.tag_mode.any": "ou {additional}",
+ "hashtag.column_header.tag_mode.none": "sem {additional}",
+ "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": "Include additional tags in this column",
"home.column_settings.basic": "Básico",
"home.column_settings.show_reblogs": "Mostrar compartilhamentos",
"home.column_settings.show_replies": "Mostrar as respostas",
+ "introduction.federation.action": "Próximo",
+ "introduction.federation.federated.headline": "Federated",
+ "introduction.federation.federated.text": "Posts públicos de outros servidores do fediverso vão aparecer na timeline global.",
+ "introduction.federation.home.headline": "Home",
+ "introduction.federation.home.text": "Posts de pessoas que você segue vão aparecer na sua página inicial. Você pode seguir pessoas de qualquer servidor!",
+ "introduction.federation.local.headline": "Local",
+ "introduction.federation.local.text": "Posts públicos de pessoas no mesmo servidor que você vão aparecer na timeline local.",
+ "introduction.interactions.action": "Finalizar o tutorial!",
+ "introduction.interactions.favourite.headline": "Favoritos",
+ "introduction.interactions.favourite.text": "Você pode salvar um toot pra mais tarde, e deixar a pessoa que postou saber que você gostou, favoritando-o.",
+ "introduction.interactions.reblog.headline": "Compartilhamento",
+ "introduction.interactions.reblog.text": "Você pode mostrar toots de outras pessoas aos seus seguidores compartilhando.",
+ "introduction.interactions.reply.headline": "Responder",
+ "introduction.interactions.reply.text": "Você pode responder a toots de outras pessoas e aos seus, e isso vai uni-los em uma conversa.",
+ "introduction.welcome.action": "Vamos!",
+ "introduction.welcome.headline": "Primeiros passos",
+ "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 esse servidor, {domain}, é especial—é onde o seu perfil está hospedado, então lembre do nome.",
"keyboard_shortcuts.back": "para navegar de volta",
"keyboard_shortcuts.blocked": "para abrir a lista de usuários bloqueados",
"keyboard_shortcuts.boost": "para compartilhar",
@@ -207,7 +234,7 @@
"navigation_bar.lists": "Listas",
"navigation_bar.logout": "Sair",
"navigation_bar.mutes": "Usuários silenciados",
- "navigation_bar.personal": "Personal",
+ "navigation_bar.personal": "Pessoal",
"navigation_bar.pins": "Postagens fixadas",
"navigation_bar.preferences": "Preferências",
"navigation_bar.public_timeline": "Global",
@@ -220,34 +247,21 @@
"notifications.clear_confirmation": "Você tem certeza de que quer limpar todas as suas notificações permanentemente?",
"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": "Novos seguidores:",
"notifications.column_settings.mention": "Menções:",
"notifications.column_settings.push": "Enviar notificações",
"notifications.column_settings.reblog": "Compartilhamento:",
"notifications.column_settings.show": "Mostrar nas colunas",
"notifications.column_settings.sound": "Reproduzir som",
+ "notifications.filter.all": "Tudo",
+ "notifications.filter.boosts": "Compartilhamentos",
+ "notifications.filter.favourites": "Favoritos",
+ "notifications.filter.follows": "Seguidores",
+ "notifications.filter.mentions": "Menções",
"notifications.group": "{count} notificações",
- "onboarding.done": "Pronto",
- "onboarding.next": "Próximo",
- "onboarding.page_five.public_timelines": "A timeline local mostra postagens públicas de todos os usuários no {domain}. A timeline federada mostra todas as postagens de todas as pessoas que pessoas no {domain} seguem. Estas são as timelines públicas, uma ótima maneira de conhecer novas pessoas.",
- "onboarding.page_four.home": "A página inicial mostra postagens de pessoas que você segue.",
- "onboarding.page_four.notifications": "A coluna de notificações te mostra quando alguém interage com você.",
- "onboarding.page_one.federation": "Mastodon é uma rede de servidores independentes que se juntam para fazer uma grande rede social. Nós chamamos estes servidores de instâncias.",
- "onboarding.page_one.full_handle": "Seu nome de usuário completo",
- "onboarding.page_one.handle_hint": "Isso é o que você diz aos seus amigos para que eles possam te mandar mensagens ou te seguir a partir de outra instância.",
- "onboarding.page_one.welcome": "Boas-vindas ao Mastodon!",
- "onboarding.page_six.admin": "O administrador de sua instância é {admin}.",
- "onboarding.page_six.almost_done": "Quase acabando...",
- "onboarding.page_six.appetoot": "Bom Apetoot!",
- "onboarding.page_six.apps_available": "Há {apps} disponíveis para iOS, Android e outras plataformas.",
- "onboarding.page_six.github": "Mastodon é um software gratuito e de código aberto. Você pode reportar bugs, prequisitar novas funções ou contribuir para o código no {github}.",
- "onboarding.page_six.guidelines": "diretrizes da comunidade",
- "onboarding.page_six.read_guidelines": "Por favor, leia as {guidelines} do {domain}!",
- "onboarding.page_six.various_app": "aplicativos móveis",
- "onboarding.page_three.profile": "Edite o seu perfil para mudar o seu o seu avatar, bio e nome de exibição. No menu de configurações, você também encontrará outras preferências.",
- "onboarding.page_three.search": "Use a barra de buscas para encontrar pessoas e consultar hashtags, como #illustrations e #introductions. Para procurar por uma pessoa que não estiver nesta instância, use o nome de usuário completo dela.",
- "onboarding.page_two.compose": "Escreva postagens na coluna de escrita. Você pode hospedar imagens, mudar as configurações de privacidade e adicionar alertas de conteúdo através dos ícones abaixo.",
- "onboarding.skip": "Pular",
"privacy.change": "Ajustar a privacidade da mensagem",
"privacy.direct.long": "Apenas para usuários mencionados",
"privacy.direct.short": "Direta",
@@ -283,6 +297,8 @@
"search_results.statuses": "Toots",
"search_results.total": "{count, number} {count, plural, one {resultado} other {resultados}}",
"standalone.public_title": "Dê uma espiada...",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "Block @{name}",
"status.cancel_reblog_private": "Desfazer compartilhamento",
"status.cannot_reblog": "Esta postagem não pode ser compartilhada",
@@ -318,10 +334,11 @@
"status.show_less_all": "Mostrar menos para todas as mensagens",
"status.show_more": "Mostrar mais",
"status.show_more_all": "Mostrar mais para todas as mensagens",
+ "status.show_thread": "Mostrar sequência",
"status.unmute_conversation": "Desativar silêncio desta conversa",
"status.unpin": "Desafixar do perfil",
- "suggestions.dismiss": "Dismiss suggestion",
- "suggestions.header": "You might be interested in…",
+ "suggestions.dismiss": "Ignorar a sugestão",
+ "suggestions.header": "Você pode se interessar por…",
"tabs_bar.federated_timeline": "Global",
"tabs_bar.home": "Página inicial",
"tabs_bar.local_timeline": "Local",
diff --git a/app/javascript/mastodon/locales/pt.json b/app/javascript/mastodon/locales/pt.json
index 73ba794ec..55e8b61b6 100644
--- a/app/javascript/mastodon/locales/pt.json
+++ b/app/javascript/mastodon/locales/pt.json
@@ -1,4 +1,5 @@
{
+ "account.add_or_remove_from_list": "Add or Remove from lists",
"account.badges.bot": "Bot",
"account.block": "Bloquear @{name}",
"account.block_domain": "Esconder tudo do domínio {domain}",
@@ -16,6 +17,7 @@
"account.follows_you": "É teu seguidor",
"account.hide_reblogs": "Esconder partilhas de @{name}",
"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.media": "Media",
"account.mention": "Mencionar @{name}",
"account.moved_to": "{name} mudou a sua conta para:",
@@ -111,6 +113,7 @@
"emoji_button.search_results": "Resultados da pesquisa",
"emoji_button.symbols": "Símbolos",
"emoji_button.travel": "Viagens & Lugares",
+ "empty_column.account_timeline": "No toots here!",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "Ainda não existe conteúdo local para mostrar!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
@@ -134,16 +137,40 @@
"follow_request.authorize": "Autorizar",
"follow_request.reject": "Rejeitar",
"getting_started.developers": "Developers",
+ "getting_started.directory": "Profile directory",
"getting_started.documentation": "Documentation",
- "getting_started.find_friends": "Find friends from Twitter",
"getting_started.heading": "Primeiros passos",
"getting_started.invite": "Invite people",
"getting_started.open_source_notice": "Mastodon é software de fonte aberta. Podes contribuir ou repostar problemas no GitHub do projecto: {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.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": "Básico",
"home.column_settings.show_reblogs": "Mostrar as partilhas",
"home.column_settings.show_replies": "Mostrar as respostas",
+ "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",
+ "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.",
+ "introduction.interactions.action": "Finish tutorial!",
+ "introduction.interactions.favourite.headline": "Favourite",
+ "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.text": "You can share other people's toots with your followers by boosting them.",
+ "introduction.interactions.reply.headline": "Reply",
+ "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.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": "para voltar",
"keyboard_shortcuts.blocked": "to open blocked users list",
"keyboard_shortcuts.boost": "para partilhar",
@@ -220,34 +247,21 @@
"notifications.clear_confirmation": "Queres mesmo limpar todas as notificações?",
"notifications.column_settings.alert": "Notificações no computador",
"notifications.column_settings.favourite": "Favoritos:",
+ "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.follow": "Novos seguidores:",
"notifications.column_settings.mention": "Menções:",
"notifications.column_settings.push": "Notificações Push",
"notifications.column_settings.reblog": "Partilhas:",
"notifications.column_settings.show": "Mostrar nas colunas",
"notifications.column_settings.sound": "Reproduzir som",
+ "notifications.filter.all": "All",
+ "notifications.filter.boosts": "Boosts",
+ "notifications.filter.favourites": "Favourites",
+ "notifications.filter.follows": "Follows",
+ "notifications.filter.mentions": "Mentions",
"notifications.group": "{count} notifications",
- "onboarding.done": "Pronto",
- "onboarding.next": "Próximo",
- "onboarding.page_five.public_timelines": "A timeline local mostra as publicações de todos os utilizadores em {domain}. A timeline global mostra as publicações de todas as pessoas que pessoas em {domain} seguem. Estas são as timelines públicas, uma óptima forma de conhecer novas pessoas.",
- "onboarding.page_four.home": "A timeline home mostra as publicações de pessoas que tu segues.",
- "onboarding.page_four.notifications": "A coluna de notificações mostra-te quando alguém interage contigo.",
- "onboarding.page_one.federation": "Mastodon é uma rede de servidores independentes ligados entre si para fazer uma grande rede social. Nós chamamos instâncias a estes servidores.",
- "onboarding.page_one.full_handle": "O teu nome de utilizador completo",
- "onboarding.page_one.handle_hint": "Isto é o que dizes aos teus amigos para pesquisar.",
- "onboarding.page_one.welcome": "Boas-vindas ao Mastodon!",
- "onboarding.page_six.admin": "O administrador da tua instância é {admin}.",
- "onboarding.page_six.almost_done": "Quase pronto...",
- "onboarding.page_six.appetoot": "Bon Appetoot!",
- "onboarding.page_six.apps_available": "Existem {apps} disponíveis para iOS, Android e outras plataformas.",
- "onboarding.page_six.github": "Mastodon é um software gratuito e de código aberto. Podes reportar bugs, solicitar novas funcionalidades e contribuir para o código em {github}.",
- "onboarding.page_six.guidelines": "termos de utilização da comunidade",
- "onboarding.page_six.read_guidelines": "Por favor, lê os {guidelines} de {domain}!",
- "onboarding.page_six.various_app": "aplicações de telemóvel",
- "onboarding.page_three.profile": "Edita o teu perfil para mudar a tua imagem, biografia e nome. Lá encontrarás também outras preferências que podes personalizar.",
- "onboarding.page_three.search": "Utiliza a caixa de pesquisa para procurar pessoas ou hashtags, exemplo {illustration} / {introductions}. Para procurar uma pessoa que não está nesta instância, utiliza o endereço completo.",
- "onboarding.page_two.compose": "Escreve posts na coluna de publicações. Podes publicar imagens, alterar a privacidade e adicionar alertas de conteúdo usando os ícones abaixo da caixa de composição.",
- "onboarding.skip": "Saltar",
"privacy.change": "Ajustar a privacidade da mensagem",
"privacy.direct.long": "Apenas para utilizadores mencionados",
"privacy.direct.short": "Directo",
@@ -283,6 +297,8 @@
"search_results.statuses": "Toots",
"search_results.total": "{count, number} {count, plural, one {resultado} other {resultados}}",
"standalone.public_title": "Espreitar lá dentro...",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "Block @{name}",
"status.cancel_reblog_private": "Unboost",
"status.cannot_reblog": "Este post não pode ser partilhado",
@@ -318,6 +334,7 @@
"status.show_less_all": "Show less for all",
"status.show_more": "Mostrar mais",
"status.show_more_all": "Show more for all",
+ "status.show_thread": "Show thread",
"status.unmute_conversation": "Deixar de silenciar esta conversa",
"status.unpin": "Não fixar no perfil",
"suggestions.dismiss": "Dismiss suggestion",
diff --git a/app/javascript/mastodon/locales/ro.json b/app/javascript/mastodon/locales/ro.json
index e17817e3d..9c1412627 100644
--- a/app/javascript/mastodon/locales/ro.json
+++ b/app/javascript/mastodon/locales/ro.json
@@ -1,21 +1,23 @@
{
+ "account.add_or_remove_from_list": "Adaugă sau Elimină din liste",
"account.badges.bot": "Bot",
"account.block": "Blochează @{name}",
"account.block_domain": "Ascunde tot de la {domain}",
"account.blocked": "Blocat",
"account.direct": "Mesaj direct @{name}",
- "account.disclaimer_full": "Informațiile de mai jos pot reflecta profilul incomplet al utilizatorului.",
+ "account.disclaimer_full": "Informațiile de mai jos pot reflecta profilul utilizatorului incomplet.",
"account.domain_blocked": "Domeniu ascuns",
"account.edit_profile": "Editează profilul",
"account.endorse": "Redistribuie pe profil",
"account.follow": "Urmărește",
"account.followers": "Urmăritori",
- "account.followers.empty": "Nimeni nu urmărește acest utilizator incă.",
+ "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_you": "Te urmărește",
"account.hide_reblogs": "Ascunde redistribuirile de la @{name}",
- "account.link_verified_on": "Ownership of this link was checked on {date}",
+ "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.media": "Media",
"account.mention": "Menționează @{name}",
"account.moved_to": "{name} a fost mutat la:",
@@ -25,22 +27,22 @@
"account.posts": "Postări",
"account.posts_with_replies": "Postări și replici",
"account.report": "Raportează @{name}",
- "account.requested": "Așteaptă aprobare. Apasă pentru a anula cererea de urmărire",
+ "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.unendorse": "Nu promova pe profil",
"account.unfollow": "Nu mai urmări",
- "account.unmute": "Pornește notificările @{name}",
- "account.unmute_notifications": "Pornește notificările de la @{name}",
+ "account.unmute": "Activează notificările de la @{name}",
+ "account.unmute_notifications": "Activează notificările de la @{name}",
"account.view_full_profile": "Vezi profilul complet",
"alert.unexpected.message": "A apărut o eroare neașteptată.",
"alert.unexpected.title": "Hopa!",
- "boost_modal.combo": "Poți apăsa {combo} pentru a sări peste asta data viitoare",
+ "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": "Eoare de rețea",
+ "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.retry": "Încearcă din nou",
@@ -68,16 +70,16 @@
"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.lock_disclaimer": "Contul tău nu este {locked}. Toată lumea te poate urmări pentru a vedea postările doar pentru urmăritori.",
+ "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.publish": "Postează",
"compose_form.publish_loud": "{publish}!",
"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 advertizare",
+ "compose_form.spoiler.marked": "Textul este ascuns sub o avertizare",
"compose_form.spoiler.unmarked": "Textul nu este ascuns",
- "compose_form.spoiler_placeholder": "Scrie adveritzarea aici",
+ "compose_form.spoiler_placeholder": "Scrie averitzarea aici",
"confirmation_modal.cancel": "Anulează",
"confirmations.block.confirm": "Blochează",
"confirmations.block.message": "Ești sigur că vrei să blochezi {name}?",
@@ -86,13 +88,13 @@
"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 retrași.",
+ "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.mute.confirm": "Oprește",
"confirmations.mute.message": "Ești sigur că vrei să oprești {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.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": "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}?",
"embed.instructions": "Inserează această postare pe site-ul tău adăugând codul de mai jos.",
@@ -111,14 +113,15 @@
"emoji_button.search_results": "Rezultatele căutării",
"emoji_button.symbols": "Simboluri",
"emoji_button.travel": "Călătorii si Locuri",
+ "empty_column.account_timeline": "Nici o postare aici!",
"empty_column.blocks": "Nu ai blocat nici un utilizator incă.",
"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, vor fi afișate aici.",
+ "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.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ă nicăieri.",
+ "empty_column.hashtag": "Acest hastag 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.",
@@ -134,53 +137,77 @@
"follow_request.authorize": "Autorizează",
"follow_request.reject": "Respinge",
"getting_started.developers": "Dezvoltatori",
+ "getting_started.directory": "Directorul profilului",
"getting_started.documentation": "Documentație",
- "getting_started.find_friends": "Importă din Twitter",
"getting_started.heading": "Începe",
- "getting_started.invite": "Invită oameni",
+ "getting_started.invite": "Invită prieteni",
"getting_started.open_source_notice": "Mastodon este o rețea de socializare de tip open source. Puteți contribuii la dezvoltarea ei sau să semnalați erorile pe GitHub la {github}.",
"getting_started.security": "Securitate",
- "getting_started.terms": "Termenii de Utilizare",
+ "getting_started.terms": "Termeni de Utilizare",
+ "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.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_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_replies": "Arată răspunsurile",
+ "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.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.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",
"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.description": "Descriere",
- "keyboard_shortcuts.direct": "sa deschida coloane de mesaje directe",
- "keyboard_shortcuts.down": "sa fie mutata jos in lista",
- "keyboard_shortcuts.enter": "sa deschisa status",
- "keyboard_shortcuts.favourite": "sa adauge la favorite",
- "keyboard_shortcuts.favourites": "sa deschida lista cu favorite",
- "keyboard_shortcuts.federated": "sa deschida fluxul global",
- "keyboard_shortcuts.heading": "Comenzi din tastatură",
- "keyboard_shortcuts.home": "sa deschida fluxul principal",
+ "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.favourites": "să deschidă lista cu favorite",
+ "keyboard_shortcuts.federated": "să deschidă fluxul global",
+ "keyboard_shortcuts.heading": "Comenzi rapide",
+ "keyboard_shortcuts.home": "să deschidă fluxul Acasă",
"keyboard_shortcuts.hotkey": "Prescurtări",
- "keyboard_shortcuts.legend": "sa afiseze aceasta legenda",
- "keyboard_shortcuts.local": "sa deschida fluxul local",
- "keyboard_shortcuts.mention": "sa mentioneze autorul",
- "keyboard_shortcuts.muted": "sa deschida lista utilizatorilor opriti",
- "keyboard_shortcuts.my_profile": "sa deschida profilul tau",
- "keyboard_shortcuts.notifications": "sa deschida coloana cu notificari",
- "keyboard_shortcuts.pinned": "sa deschida lista postarilor fixate",
- "keyboard_shortcuts.profile": "sa deschida porfilul autorului",
- "keyboard_shortcuts.reply": "sa raspunda",
- "keyboard_shortcuts.requests": "sa deschida lista cu cereri de urmarire",
- "keyboard_shortcuts.search": "sa focuseze cautarea",
- "keyboard_shortcuts.start": "sa deschida coloana \"Incepere\"",
- "keyboard_shortcuts.toggle_hidden": "sa arate/ascunda textul in spatele CW",
- "keyboard_shortcuts.toot": "sa inceapa o noua postare",
- "keyboard_shortcuts.unfocus": "sa dezactiveze compunerea/cautarea",
- "keyboard_shortcuts.up": "sa mute mai sus in lista",
+ "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.my_profile": "să deschidă profilul tău",
+ "keyboard_shortcuts.notifications": "să deschidă coloana cu notificări",
+ "keyboard_shortcuts.pinned": "să deschidă lista postărilor fixate",
+ "keyboard_shortcuts.profile": "să deschidă porfilul 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.start": "să deschidă coloana \"Începere\"",
+ "keyboard_shortcuts.toggle_hidden": "să arate/ascundă textul in spatele CW",
+ "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",
"lists.account.add": "Adaugă în listă",
"lists.account.remove": "Elimină din listă",
- "lists.delete": "Șterge listă",
+ "lists.delete": "Șterge lista",
"lists.edit": "Editează lista",
"lists.new.create": "Adaugă listă",
"lists.new.title_placeholder": "Titlu pentru noua listă",
@@ -220,34 +247,21 @@
"notifications.clear_confirmation": "Ești sigur că vrei să ștergi 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.mention": "Mențiuni:",
"notifications.column_settings.push": "Notificări push",
"notifications.column_settings.reblog": "Redistribuite:",
"notifications.column_settings.show": "Arată în coloană",
"notifications.column_settings.sound": "Redă sunet",
+ "notifications.filter.all": "Toate",
+ "notifications.filter.boosts": "Redistribuiri",
+ "notifications.filter.favourites": "Favorite",
+ "notifications.filter.follows": "Urmărește",
+ "notifications.filter.mentions": "Menționări",
"notifications.group": "{count} notificări",
- "onboarding.done": "Gata",
- "onboarding.next": "Următorul",
- "onboarding.page_five.public_timelines": "Fluxul local afișează postările publice de la toți utilizatorii pe {domain}. Fluxul global afișează postările publice de la toți utilizatorii din rețeaua mastodon pe care utilizatorii de pe {domain} ii urmăresc. Acestea sunt fluxurile publice, un mod grozav de a descoperi oameni noi.",
- "onboarding.page_four.home": "Fluxul Acasă arată postarile celor pe care ii urmărești.",
- "onboarding.page_four.notifications": "Coloana de notificări arată când cineva interacționează cu tine.",
- "onboarding.page_one.federation": "Mastodon este o rețea independentă de servere care împreună formează o imensă retea de socializare. Noi numim aceste servere istanțe.",
- "onboarding.page_one.full_handle": "Id-ul tău complet",
- "onboarding.page_one.handle_hint": "Asta este ceea ce trebuie să le spuneți prietenilor când vor să vă caute.",
- "onboarding.page_one.welcome": "Bun venit la Mastodon!",
- "onboarding.page_six.admin": "Administatorul acestei instanțe este {admin}.",
- "onboarding.page_six.almost_done": "Aproape gata...",
- "onboarding.page_six.appetoot": "Distracție plăcută!",
- "onboarding.page_six.apps_available": "Acestea sunt {apps} disponibile pentru iOS, Android și alte platforme.",
- "onboarding.page_six.github": "Mastodon este un software de tip open source. Puteți raporta erori, cere facilități, sau să contribuiți pe {github}.",
- "onboarding.page_six.guidelines": "regulamentul comunității",
- "onboarding.page_six.read_guidelines": "Vă rugăm citiți {domain} {guidelines}!",
- "onboarding.page_six.various_app": "aplicații mobile",
- "onboarding.page_three.profile": "Editează profilul pentru a modifica fotografia de profil, descrierea si numele. Tot acolo vei găsi și alte preferințe.",
- "onboarding.page_three.search": "Utilizează bara de căutare pentru a găsi oameni sau hastaguri precum {illustration} și {introductions}. Pentru a găsi o persoană care nu este înscrisă pe această instanță folosește id-ul lui complet.",
- "onboarding.page_two.compose": "Scrie postări din coloana pentru compunere. Poți încărca imagini, schimba setările de confidențialitate, și adăuga advertisemente asupra conținutului.",
- "onboarding.skip": "Omite",
"privacy.change": "Cine vede asta",
"privacy.direct.long": "Postează doar pentru utilizatorii menționați",
"privacy.direct.short": "Direct",
@@ -282,7 +296,9 @@
"search_results.hashtags": "Hashtaguri",
"search_results.statuses": "Postări",
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
- "standalone.public_title": "Se întâmplă acum",
+ "standalone.public_title": "Se întâmplă acum...",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "Blochează @{name}",
"status.cancel_reblog_private": "Nedistribuit",
"status.cannot_reblog": "Această postare nu poate fi redistribuită",
@@ -302,10 +318,10 @@
"status.open": "Extinde acest status",
"status.pin": "Fixează pe profil",
"status.pinned": "Postare fixată",
- "status.read_more": "Read more",
+ "status.read_more": "Citește mai mult",
"status.reblog": "Redistribuie",
"status.reblog_private": "Redistribuie către audiența originală",
- "status.reblogged_by": "{name} redistribuit",
+ "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.redraft": "Șterge și adaugă la ciorne",
"status.reply": "Răspunde",
@@ -318,10 +334,11 @@
"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.unmute_conversation": "Repornește conversația",
"status.unpin": "Eliberează din profil",
- "suggestions.dismiss": "Dismiss suggestion",
- "suggestions.header": "You might be interested in…",
+ "suggestions.dismiss": "Omite sugestia",
+ "suggestions.header": "Ai putea fi interesat de…",
"tabs_bar.federated_timeline": "Global",
"tabs_bar.home": "Acasă",
"tabs_bar.local_timeline": "Local",
@@ -332,7 +349,7 @@
"upload_area.title": "Trage și eliberează pentru a încărca",
"upload_button.label": "Adaugă media (JPEG, PNG, GIF, WebM, MP4, MOV)",
"upload_form.description": "Adaugă o descriere pentru persoanele cu deficiențe de vedere",
- "upload_form.focus": "Taie",
+ "upload_form.focus": "Schimbă previzualizarea",
"upload_form.undo": "Șterge",
"upload_progress.label": "Se Încarcă...",
"video.close": "Închide video",
diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json
index 2ce123327..734ad7c2c 100644
--- a/app/javascript/mastodon/locales/ru.json
+++ b/app/javascript/mastodon/locales/ru.json
@@ -1,4 +1,5 @@
{
+ "account.add_or_remove_from_list": "Add or Remove from lists",
"account.badges.bot": "Бот",
"account.block": "Блокировать",
"account.block_domain": "Блокировать все с {domain}",
@@ -16,6 +17,7 @@
"account.follows_you": "Подписан(а) на Вас",
"account.hide_reblogs": "Скрыть продвижения от @{name}",
"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.media": "Медиа",
"account.mention": "Упомянуть",
"account.moved_to": "Ищите {name} здесь:",
@@ -111,6 +113,7 @@
"emoji_button.search_results": "Результаты поиска",
"emoji_button.symbols": "Символы",
"emoji_button.travel": "Путешествия",
+ "empty_column.account_timeline": "No toots here!",
"empty_column.blocks": "Вы ещё никого не заблокировали.",
"empty_column.community": "Локальная лента пуста. Напишите что-нибудь, чтобы разогреть народ!",
"empty_column.direct": "У Вас пока нет личных сообщений. Когда Вы начнёте их отправлять или получать, они появятся здесь.",
@@ -134,16 +137,40 @@
"follow_request.authorize": "Авторизовать",
"follow_request.reject": "Отказать",
"getting_started.developers": "Для разработчиков",
+ "getting_started.directory": "Profile directory",
"getting_started.documentation": "Документация",
- "getting_started.find_friends": "Найти друзей из Twitter",
"getting_started.heading": "Добро пожаловать",
"getting_started.invite": "Пригласить людей",
"getting_started.open_source_notice": "Mastodon - сервис с открытым исходным кодом. Вы можете помочь проекту или сообщить о проблемах на GitHub по адресу {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.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": "Основные",
"home.column_settings.show_reblogs": "Показывать продвижения",
"home.column_settings.show_replies": "Показывать ответы",
+ "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",
+ "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.",
+ "introduction.interactions.action": "Finish tutorial!",
+ "introduction.interactions.favourite.headline": "Favourite",
+ "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.text": "You can share other people's toots with your followers by boosting them.",
+ "introduction.interactions.reply.headline": "Reply",
+ "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.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": "перейти назад",
"keyboard_shortcuts.blocked": "чтобы открыть список заблокированных",
"keyboard_shortcuts.boost": "продвинуть пост",
@@ -220,34 +247,21 @@
"notifications.clear_confirmation": "Вы уверены, что хотите очистить все уведомления?",
"notifications.column_settings.alert": "Десктопные уведомления",
"notifications.column_settings.favourite": "Нравится:",
+ "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.follow": "Новые подписчики:",
"notifications.column_settings.mention": "Упоминания:",
"notifications.column_settings.push": "Push-уведомления",
"notifications.column_settings.reblog": "Продвижения:",
"notifications.column_settings.show": "Показывать в колонке",
"notifications.column_settings.sound": "Проигрывать звук",
+ "notifications.filter.all": "All",
+ "notifications.filter.boosts": "Boosts",
+ "notifications.filter.favourites": "Favourites",
+ "notifications.filter.follows": "Follows",
+ "notifications.filter.mentions": "Mentions",
"notifications.group": "{count} уведомл.",
- "onboarding.done": "Готово",
- "onboarding.next": "Далее",
- "onboarding.page_five.public_timelines": "Локальная лента показывает публичные посты всех пользователей {domain}. Глобальная лента показывает публичные посты всех людей, на которых подписаны пользователи {domain}. Это - публичные ленты, отличный способ найти новые знакомства.",
- "onboarding.page_four.home": "Домашняя лента показывает посты от тех, на кого Вы подписаны.",
- "onboarding.page_four.notifications": "Колонка уведомлений сообщает о взаимодействии с Вами других людей.",
- "onboarding.page_one.federation": "Mastodon - это сеть независимых серверов, которые вместе образуют единую социальную сеть. Мы называем эти сервера узлами.",
- "onboarding.page_one.full_handle": "Всё в ваших руках",
- "onboarding.page_one.handle_hint": "Это то, что вы посоветуете искать своим друзьям.",
- "onboarding.page_one.welcome": "Добро пожаловать в Mastodon!",
- "onboarding.page_six.admin": "Админ Вашего узла - {admin}.",
- "onboarding.page_six.almost_done": "Почти готово...",
- "onboarding.page_six.appetoot": "Удачи!",
- "onboarding.page_six.apps_available": "Для взаимодействия с Mastodon существуют {apps} для iOS, Android и других платформ.",
- "onboarding.page_six.github": "Mastodon - свободная программа с открытым исходным кодом. Вы можете сообщить о баге, предложить идею или поучаствовать в разработке на {github}.",
- "onboarding.page_six.guidelines": "правила поведения",
- "onboarding.page_six.read_guidelines": "Пожалуйста, прочитайте {guidelines} для {domain}!",
- "onboarding.page_six.various_app": "мобильные приложения",
- "onboarding.page_three.profile": "Отредактируйте свой профиль, чтобы изменить аватар, короткую информацию о Вас, отображаемое имя и другие настройки.",
- "onboarding.page_three.search": "Используйте панель поиска, чтобы искать людей и хэштеги, например, {illustration} и {introductions}. Чтобы найти человека, находящегося на другом узле, введите его полное имя пользователя.",
- "onboarding.page_two.compose": "Пишите посты в колонке автора. Вы можете загружать изображения, изменять настройки видимости и добавлять предупреждения о контенте с помощью иконок внизу.",
- "onboarding.skip": "Пропустить",
"privacy.change": "Изменить видимость статуса",
"privacy.direct.long": "Показать только упомянутым",
"privacy.direct.short": "Направленный",
@@ -283,6 +297,8 @@
"search_results.statuses": "Посты",
"search_results.total": "{count, number} {count, plural, one {результат} few {результата} many {результатов} other {результатов}}",
"standalone.public_title": "Прямо сейчас",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "Заблокировать @{name}",
"status.cancel_reblog_private": "Не продвигать",
"status.cannot_reblog": "Этот статус не может быть продвинут",
@@ -318,6 +334,7 @@
"status.show_less_all": "Свернуть для всех",
"status.show_more": "Развернуть",
"status.show_more_all": "Развернуть для всех",
+ "status.show_thread": "Show thread",
"status.unmute_conversation": "Снять глушение с треда",
"status.unpin": "Открепить от профиля",
"suggestions.dismiss": "Dismiss suggestion",
diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json
index c2ba01451..764a314cf 100644
--- a/app/javascript/mastodon/locales/sk.json
+++ b/app/javascript/mastodon/locales/sk.json
@@ -1,4 +1,5 @@
{
+ "account.add_or_remove_from_list": "Pridaj, alebo odstráň zo zoznamov",
"account.badges.bot": "Bot",
"account.block": "Blokuj @{name}",
"account.block_domain": "Ukry všetko z {domain}",
@@ -12,10 +13,11 @@
"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.empty": "Tento užívateľ tu ešte nikoho nenásleduje.",
"account.follows_you": "Následuje ťa",
"account.hide_reblogs": "Skryť povýšenia od @{name}",
- "account.link_verified_on": "Ownership of this link was checked on {date}",
+ "account.link_verified_on": "Vlastníctvo tohto odkazu bolo skontrolované {date}",
+ "account.locked_info": "Stav súkromia pre tento účet je nastavený na zamknutý. Jeho vlastník sám prehodnocuje, kto ho môže sledovať.",
"account.media": "Médiá",
"account.mention": "Spomeň @{name}",
"account.moved_to": "{name} sa presunul/a na:",
@@ -23,19 +25,19 @@
"account.mute_notifications": "Stĺmiť oboznámenia od @{name}",
"account.muted": "Utíšený/á",
"account.posts": "Hlášky",
- "account.posts_with_replies": "Príspevky s odpoveďami",
+ "account.posts_with_replies": "Hlášky s odpoveďami",
"account.report": "Nahlás @{name}",
"account.requested": "Čaká na schválenie. Kliknite pre zrušenie žiadosti",
"account.share": "Zdieľať @{name} profil",
- "account.show_reblogs": "Ukáž povýšenia od @{name}",
- "account.unblock": "Odblokovať @{name}",
- "account.unblock_domain": "Prestať blokovať {domain}",
+ "account.show_reblogs": "Ukáž vyzdvihnutia od @{name}",
+ "account.unblock": "Odblokuj @{name}",
+ "account.unblock_domain": "Prestaň skrývať {domain}",
"account.unendorse": "Nezobrazuj na profile",
- "account.unfollow": "Prestať nasledovať",
- "account.unmute": "Prestať ignorovať @{name}",
- "account.unmute_notifications": "Odtĺmiť notifikácie od @{name}",
+ "account.unfollow": "Prestaň následovať",
+ "account.unmute": "Prestaň ignorovať @{name}",
+ "account.unmute_notifications": "Odtĺm oboznámenia od @{name}",
"account.view_full_profile": "Pozri celý profil",
- "alert.unexpected.message": "Vyskytla sa neočakávaná chyba.",
+ "alert.unexpected.message": "Vyskytla sa nečakaná chyba.",
"alert.unexpected.title": "Oops!",
"boost_modal.combo": "Nabudúce môžeš kliknúť {combo} pre preskočenie",
"bundle_column_error.body": "Pri načítaní tohto prvku nastala nejaká chyba.",
@@ -54,7 +56,7 @@
"column.lists": "Zoznamy",
"column.mutes": "Ignorovaní užívatelia",
"column.notifications": "Oboznámenia",
- "column.pins": "Pripnuté príspevky",
+ "column.pins": "Pripnuté hlášky",
"column.public": "Federovaná časová os",
"column_back_button.label": "Späť",
"column_header.hide_settings": "Skryť nastavenia",
@@ -90,9 +92,9 @@
"confirmations.mute.confirm": "Ignoruj",
"confirmations.mute.message": "Naozaj chcete ignorovať {name}?",
"confirmations.redraft.confirm": "Vyčistiť a prepísať",
- "confirmations.redraft.message": "Si si istý/á, že chceš premazať a prepísať tento príspevok? Jeho nadobudnuté odpovede, povýšenia a obľúbenia, ale i odpovede na pôvodný príspevok budú odlúčené.",
- "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.redraft.message": "Si si istý/á, že chceš premazať a prepísať tento príspevok? Jeho nadobudnuté vyzdvihnutia a obľúbenia, ale i odpovede na pôvodný príspevok budú odlúčené.",
+ "confirmations.reply.confirm": "Odpovedz",
+ "confirmations.reply.message": "Odpovedaním akurát teraz prepíšeš správu, ktorú máš práve rozpísanú. Si si istý/á, že chceš pokračovať?",
"confirmations.unfollow.confirm": "Nesledovať",
"confirmations.unfollow.message": "Naozaj chcete prestať sledovať {name}?",
"embed.instructions": "Umiestni kód uvedený nižšie pre pridanie tohto statusu na tvoju web stránku.",
@@ -111,6 +113,7 @@
"emoji_button.search_results": "Nájdené",
"emoji_button.symbols": "Symboly",
"emoji_button.travel": "Cestovanie a miesta",
+ "empty_column.account_timeline": "Niesú tu žiadne príspevky!",
"empty_column.blocks": "Ešte si nikoho nezablokoval/a.",
"empty_column.community": "Lokálna časová os je prázdna. Napíšte niečo, aby sa to tu začalo hýbať!",
"empty_column.direct": "Ešte nemáš žiadne súkromné správy. Keď nejakú pošleš, alebo dostaneš, ukáže sa tu.",
@@ -124,8 +127,8 @@
"empty_column.list": "Tento zoznam je ešte prázdny. Keď ale členovia tohoto zoznamu napíšu nové správy, tak tie sa objavia priamo tu.",
"empty_column.lists": "Nemáš ešte žiadne zoznamy. Keď nejaký vytvoríš, bude zobrazený práve tu.",
"empty_column.mutes": "Ešte si nestĺmil žiadných užívateľov.",
- "empty_column.notifications": "Nemáš ešte žiadne oznámenia. Zapoj sa s niekym do debaty a komunikuj s ostatnými aby diskusia mohla začať.",
- "empty_column.public": "Ešte tu nič nie je. Napíš niečo verejne alebo začnite sledovať užívateľov z iných Mastodon serverov, aby tu tak niečo pribudlo",
+ "empty_column.notifications": "Ešte nemáš žiadne oznámenia. Začni komunikovať s ostatnými, aby diskusia mohla začať.",
+ "empty_column.public": "Ešte tu nič nie je. Napíš niečo verejne, alebo začni sledovať užívateľov z iných Mastodon serverov, aby tu niečo pribudlo",
"federation.change": "Adjust status federation",
"federation.federated.long": "Allow toot to reach other instances",
"federation.federated.short": "Federated",
@@ -134,16 +137,40 @@
"follow_request.authorize": "Povoľ prístup",
"follow_request.reject": "Odmietni",
"getting_started.developers": "Vývojári",
+ "getting_started.directory": "Databáza profilov",
"getting_started.documentation": "Dokumentácia",
- "getting_started.find_friends": "Nájdi priateľov z Twitteru",
"getting_started.heading": "Začni tu",
"getting_started.invite": "Pozvať ľudí",
"getting_started.open_source_notice": "Mastodon je softvér s otvoreným kódom. Nahlásiť chyby, alebo prispievať môžeš na GitHube v {github}.",
"getting_started.security": "Zabezpečenie",
"getting_started.terms": "Podmienky prevozu",
+ "hashtag.column_header.tag_mode.all": "a {additional}",
+ "hashtag.column_header.tag_mode.any": "alebo {additional}",
+ "hashtag.column_header.tag_mode.none": "bez {additional}",
+ "hashtag.column_settings.tag_mode.all": "Všetky tieto",
+ "hashtag.column_settings.tag_mode.any": "Hociktorý z týchto",
+ "hashtag.column_settings.tag_mode.none": "Žiaden z týchto",
+ "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
"home.column_settings.basic": "Základné",
"home.column_settings.show_reblogs": "Zobraziť povýšené",
"home.column_settings.show_replies": "Ukázať odpovede",
+ "introduction.federation.action": "Ďalej",
+ "introduction.federation.federated.headline": "Federated",
+ "introduction.federation.federated.text": "Verejné príspevky z ostatných serverov vo fediverse budú zobrazenie vo federovanej časovej osi.",
+ "introduction.federation.home.headline": "Home",
+ "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.local.headline": "Local",
+ "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!",
+ "introduction.interactions.favourite.headline": "Obľúbené",
+ "introduction.interactions.favourite.text": "Obľúbením si môžeš príspevok uložiť na neskôr, a zároveň dať jeho autorovi vedieť, že sa ti páčil.",
+ "introduction.interactions.reblog.headline": "Povýš",
+ "introduction.interactions.reblog.text": "Môžeš zdieľať príspevky iných ľudí s vašimi následovateľmi tým, že ich povýšiš.",
+ "introduction.interactions.reply.headline": "Odpovedz",
+ "introduction.interactions.reply.text": "Odpovedať môžeš na príspevky iných ľudí, aj na svoje vlastné, čím sa sspolu prepoja do konverzácie.",
+ "introduction.welcome.action": "Poďme do toho!",
+ "introduction.welcome.headline": "Prvé kroky",
+ "introduction.welcome.text": "Vitaj vo fediverse! Za malú chvíľu budeš môcť posielať správy a rozpovedať sa so svojími priateľmi cez širokú škálu rôznorodých serverov. Ale tento server, {domain}, je špeciálny v tom, že ukladá tvoj profil, takže si jeho názov zapametaj.",
"keyboard_shortcuts.back": "dostať sa naspäť",
"keyboard_shortcuts.blocked": "otvor zoznam blokovaných užívateľov",
"keyboard_shortcuts.boost": "vyzdvihnúť",
@@ -189,8 +216,8 @@
"loading_indicator.label": "Načítam...",
"media_gallery.toggle_visible": "Zapnúť/Vypnúť viditeľnosť",
"missing_indicator.label": "Nenájdené",
- "missing_indicator.sublabel": "Tento zdroj sa nepodarilo nájsť",
- "mute_modal.hide_notifications": "Skryť notifikácie od tohoto užívateľa?",
+ "missing_indicator.sublabel": "Tento zdroj sa ešte nepodarilo nájsť",
+ "mute_modal.hide_notifications": "Skryť oboznámenia od tohoto užívateľa?",
"navigation_bar.apps": "Mobilné aplikácie",
"navigation_bar.blocks": "Blokovaní užívatelia",
"navigation_bar.community_timeline": "Lokálna časová os",
@@ -220,34 +247,21 @@
"notifications.clear_confirmation": "Naozaj chcete nenávratne prečistiť všetky vaše notifikácie?",
"notifications.column_settings.alert": "Notifikácie na ploche",
"notifications.column_settings.favourite": "Obľúbené:",
+ "notifications.column_settings.filter_bar.advanced": "Zobraz všetky kategórie",
+ "notifications.column_settings.filter_bar.category": "Rýchle triedenie",
+ "notifications.column_settings.filter_bar.show": "Ukáž",
"notifications.column_settings.follow": "Noví následujúci:",
"notifications.column_settings.mention": "Zmienenia:",
"notifications.column_settings.push": "Push notifikácie",
"notifications.column_settings.reblog": "Boosty:",
"notifications.column_settings.show": "Zobraziť v stĺpci",
"notifications.column_settings.sound": "Prehrať zvuk",
+ "notifications.filter.all": "Všetky",
+ "notifications.filter.boosts": "Vyzdvihnutia",
+ "notifications.filter.favourites": "Obľúbené",
+ "notifications.filter.follows": "Sledovania",
+ "notifications.filter.mentions": "Spomenutia",
"notifications.group": "{count} oznámenia",
- "onboarding.done": "Koniec",
- "onboarding.next": "Ďalej",
- "onboarding.page_five.public_timelines": "Lokálna časová os zobrazuje verejné správy od všetkých na {domain}. Federovaná časová os zobrazuje verejné správy od všetkých tých, čo následujú užívatrľov {domain} z iných serverov. Tieto sú takzvané Verejné Časové Osi, výborná možnosť ako nájsť a spoznať nových ľudí.",
- "onboarding.page_four.home": "Domovská časová os zobrazí správy od ľudí ktorých sledujete.",
- "onboarding.page_four.notifications": "Stĺpec s notifikáciami zobrazí keď budete s niekým komunikovať.",
- "onboarding.page_one.federation": "Mastodon je sieť nezávislých serverov, spojením ktorých vzniká jedna veľká federovaná sociálna sieť.",
- "onboarding.page_one.full_handle": "Vaša celá prezývka aj s adresou",
- "onboarding.page_one.handle_hint": "Toto je čo by si povedal/a vaším kamarátom, že majú hľadať.",
- "onboarding.page_one.welcome": "Vitaj na Mastodone!",
- "onboarding.page_six.admin": "Správcom tvojej instancie je {admin}.",
- "onboarding.page_six.almost_done": "Takmer hotovo...",
- "onboarding.page_six.appetoot": "Bon Appetoot!",
- "onboarding.page_six.apps_available": "Aplikácie {apps} sú dostupné na pre iOS, Android and ďalšie platformy.",
- "onboarding.page_six.github": "Mastodon je free open-source software. Nahlásiť chyby, zaujímať sa o nové funkcie, alebo prispievať svojím kódom mǒžeete na {github}.",
- "onboarding.page_six.guidelines": "pravidlá komunity",
- "onboarding.page_six.read_guidelines": "Prosím prečítajte si {domain} pravidlá {guidelines}!",
- "onboarding.page_six.various_app": "mobilné applikácie",
- "onboarding.page_three.profile": "Upravte svoj profil ak chcete zmeňiť svoj avatar, popis profilu a meno ktoré bude zobrazené. V nastaveniach nájdete ďalšie možnosti.",
- "onboarding.page_three.search": "Použite vyhľadávacie políčko na nájdenie ľudí a hashtagov, ako napríklad {slovensko}, {slovakia} alebo {pivo}. Na nájdenie človeka ktorý je registrovaný na inom Mastodon serveri použi jeho celý nickname.",
- "onboarding.page_two.compose": "Správy píšte zo stĺpca na komponovanie. Je možné nahrávať obrázky, meniť nastavenia súkromia správ a pridávať varovania ikonkami nižšie.",
- "onboarding.skip": "Preskočiť",
"privacy.change": "Zmeňiť viditeľnosť statusu",
"privacy.direct.long": "Poslať priamo iba spomenutým používateľom",
"privacy.direct.short": "Súkromne",
@@ -280,9 +294,11 @@
"search_popout.tips.user": "používateľ",
"search_results.accounts": "Ľudia",
"search_results.hashtags": "Haštagy",
- "search_results.statuses": "Príspevky",
- "search_results.total": "{count, number} {count, plural, jeden {výsledok} ostatné {výsledky}}",
+ "search_results.statuses": "Hlášky",
+ "search_results.total": "{count, number} {count, plural, one {výsledok} many {výsledkov} other {výsledky}}",
"standalone.public_title": "Náhľad dovnútra...",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "Blokovať @{name}",
"status.cancel_reblog_private": "Nezdieľaj",
"status.cannot_reblog": "Tento príspevok nemôže byť re-tootnutý",
@@ -302,7 +318,7 @@
"status.open": "Otvoriť tento status",
"status.pin": "Pripni na profil",
"status.pinned": "Pripnutý príspevok",
- "status.read_more": "Read more",
+ "status.read_more": "Čítaj ďalej",
"status.reblog": "Povýšiť",
"status.reblog_private": "Povýš k pôvodnému publiku",
"status.reblogged_by": "{name} povýšil/a",
@@ -311,28 +327,29 @@
"status.reply": "Odpovedať",
"status.replyAll": "Odpovedať na diskusiu",
"status.report": "Nahlásiť @{name}",
- "status.sensitive_toggle": "Kliknite pre zobrazenie",
+ "status.sensitive_toggle": "Klikni pre zobrazenie",
"status.sensitive_warning": "Chúlostivý obsah",
"status.share": "Zdieľať",
"status.show_less": "Zobraz menej",
"status.show_less_all": "Všetkým ukáž menej",
"status.show_more": "Ukáž viac",
"status.show_more_all": "Všetkým ukáž viac",
- "status.unmute_conversation": "Prestať ignorovať konverzáciu",
- "status.unpin": "Odopnúť z profilu",
- "suggestions.dismiss": "Dismiss suggestion",
- "suggestions.header": "You might be interested in…",
+ "status.show_thread": "Ukáž diskusné vlákno",
+ "status.unmute_conversation": "Prestaň ignorovať konverzáciu",
+ "status.unpin": "Odopni z profilu",
+ "suggestions.dismiss": "Zavrhni návrh",
+ "suggestions.header": "Mohlo by ťa zaujímať…",
"tabs_bar.federated_timeline": "Federovaná",
"tabs_bar.home": "Domov",
"tabs_bar.local_timeline": "Lokálna",
"tabs_bar.notifications": "Notifikácie",
"tabs_bar.search": "Hľadaj",
- "trends.count_by_accounts": "{count} {rawCount, viacerí, jeden {person} iní {people}} diskutujú",
+ "trends.count_by_accounts": "{count} {rawCount, plural, one {človek vraví} other {ľudia vravia}}",
"ui.beforeunload": "Čo máš rozpísané sa stratí, ak opustíš Mastodon.",
"upload_area.title": "Pretiahni a pusť pre nahratie",
"upload_button.label": "Pridať médiálny súbor (JPEG, PNG, GIF, WebM, MP4, MOV)",
"upload_form.description": "Opis pre slabo vidiacich",
- "upload_form.focus": "Vystrihni",
+ "upload_form.focus": "Pozmeň náhľad",
"upload_form.undo": "Vymaž",
"upload_progress.label": "Nahráva sa...",
"video.close": "Zavrieť video",
diff --git a/app/javascript/mastodon/locales/sl.json b/app/javascript/mastodon/locales/sl.json
index 71904bdf0..cfc121697 100644
--- a/app/javascript/mastodon/locales/sl.json
+++ b/app/javascript/mastodon/locales/sl.json
@@ -1,4 +1,5 @@
{
+ "account.add_or_remove_from_list": "Add or Remove from lists",
"account.badges.bot": "Robot",
"account.block": "Blokiraj @{name}",
"account.block_domain": "Skrij vse iz {domain}",
@@ -10,12 +11,13 @@
"account.endorse": "Zmožnost profila",
"account.follow": "Sledi",
"account.followers": "Sledilci",
- "account.followers.empty": "Nihče ne sledi tega uporabnika.",
+ "account.followers.empty": "Nihče ne sledi temu uporabniku.",
"account.follows": "Sledi",
"account.follows.empty": "Ta uporabnik še ne sledi nikomur.",
"account.follows_you": "Ti sledi",
- "account.hide_reblogs": "Skrij napuhke od @{name}",
+ "account.hide_reblogs": "Skrij sunke od @{name}",
"account.link_verified_on": "Lastništvo te povezave je bilo preverjeno {date}",
+ "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
"account.media": "Mediji",
"account.mention": "Omeni @{name}",
"account.moved_to": "{name} se je premaknil na:",
@@ -111,6 +113,7 @@
"emoji_button.search_results": "Rezultati iskanja",
"emoji_button.symbols": "Simboli",
"emoji_button.travel": "Potovanja in Kraji",
+ "empty_column.account_timeline": "No toots here!",
"empty_column.blocks": "Niste še blokirali nobenega uporabnika.",
"empty_column.community": "Lokalna časovnica je prazna. Napišite nekaj javnega, da se bo žoga zakotalila!",
"empty_column.direct": "Nimate še nobenih neposrednih sporočil. Ko ga pošljete ali prejmete, se prikaže tukaj.",
@@ -134,16 +137,40 @@
"follow_request.authorize": "Odobri",
"follow_request.reject": "Zavrni",
"getting_started.developers": "Developers",
+ "getting_started.directory": "Profile directory",
"getting_started.documentation": "Documentation",
- "getting_started.find_friends": "Find friends from Twitter",
"getting_started.heading": "Prvi koraki",
"getting_started.invite": "Invite people",
"getting_started.open_source_notice": "Mastodon je odprtokodna programska oprema. V GitHubu na {github} lahko prispevate ali poročate o napakah.",
"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.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": "Osnovno",
"home.column_settings.show_reblogs": "Pokaži sunke",
"home.column_settings.show_replies": "Pokaži odgovore",
+ "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",
+ "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.",
+ "introduction.interactions.action": "Finish tutorial!",
+ "introduction.interactions.favourite.headline": "Favourite",
+ "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.text": "You can share other people's toots with your followers by boosting them.",
+ "introduction.interactions.reply.headline": "Reply",
+ "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.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": "za krmarjenje nazaj",
"keyboard_shortcuts.blocked": "to open blocked users list",
"keyboard_shortcuts.boost": "suniti",
@@ -220,34 +247,21 @@
"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.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.follow": "New followers:",
"notifications.column_settings.mention": "Mentions:",
"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.filter.follows": "Follows",
+ "notifications.filter.mentions": "Mentions",
"notifications.group": "{count} notifications",
- "onboarding.done": "Done",
- "onboarding.next": "Next",
- "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
- "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
- "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
- "onboarding.page_one.federation": "Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
- "onboarding.page_one.full_handle": "Your full handle",
- "onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.",
- "onboarding.page_one.welcome": "Welcome to Mastodon!",
- "onboarding.page_six.admin": "Your instance's admin is {admin}.",
- "onboarding.page_six.almost_done": "Almost done...",
- "onboarding.page_six.appetoot": "Bon Appetut!",
- "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
- "onboarding.page_six.github": "Mastodon is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
- "onboarding.page_six.guidelines": "community guidelines",
- "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
- "onboarding.page_six.various_app": "mobile apps",
- "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
- "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
- "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
- "onboarding.skip": "Skip",
"privacy.change": "Adjust status privacy",
"privacy.direct.long": "Post to mentioned users only",
"privacy.direct.short": "Direct",
@@ -283,6 +297,8 @@
"search_results.statuses": "Tuti",
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
"standalone.public_title": "A look inside...",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "Block @{name}",
"status.cancel_reblog_private": "Unboost",
"status.cannot_reblog": "This post cannot be boosted",
@@ -318,6 +334,7 @@
"status.show_less_all": "Prikaži manj za vse",
"status.show_more": "Prikaži več",
"status.show_more_all": "Prikaži več za vse",
+ "status.show_thread": "Show thread",
"status.unmute_conversation": "Odtišaj pogovor",
"status.unpin": "Odpni iz profila",
"suggestions.dismiss": "Dismiss suggestion",
diff --git a/app/javascript/mastodon/locales/sr-Latn.json b/app/javascript/mastodon/locales/sr-Latn.json
index 6eae10ce9..1eb904a1e 100644
--- a/app/javascript/mastodon/locales/sr-Latn.json
+++ b/app/javascript/mastodon/locales/sr-Latn.json
@@ -1,4 +1,5 @@
{
+ "account.add_or_remove_from_list": "Add or Remove from lists",
"account.badges.bot": "Bot",
"account.block": "Blokiraj korisnika @{name}",
"account.block_domain": "Sakrij sve sa domena {domain}",
@@ -16,6 +17,7 @@
"account.follows_you": "Prati Vas",
"account.hide_reblogs": "Sakrij podrške koje daje korisnika @{name}",
"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.media": "Mediji",
"account.mention": "Pomeni korisnika @{name}",
"account.moved_to": "{name} se pomerio na:",
@@ -111,6 +113,7 @@
"emoji_button.search_results": "Rezultati pretrage",
"emoji_button.symbols": "Simboli",
"emoji_button.travel": "Putovanja & mesta",
+ "empty_column.account_timeline": "No toots here!",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "Lokalna lajna je prazna. Napišite nešto javno da lajna produva!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
@@ -134,16 +137,40 @@
"follow_request.authorize": "Odobri",
"follow_request.reject": "Odbij",
"getting_started.developers": "Developers",
+ "getting_started.directory": "Profile directory",
"getting_started.documentation": "Documentation",
- "getting_started.find_friends": "Find friends from Twitter",
"getting_started.heading": "Da počnete",
"getting_started.invite": "Invite people",
"getting_started.open_source_notice": "Mastodont je softver otvorenog koda. Možete mu doprineti ili prijaviti probleme preko GitHub-a na {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.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": "Osnovno",
"home.column_settings.show_reblogs": "Prikaži i podržavanja",
"home.column_settings.show_replies": "Prikaži odgovore",
+ "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",
+ "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.",
+ "introduction.interactions.action": "Finish tutorial!",
+ "introduction.interactions.favourite.headline": "Favourite",
+ "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.text": "You can share other people's toots with your followers by boosting them.",
+ "introduction.interactions.reply.headline": "Reply",
+ "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.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": "da odete nazad",
"keyboard_shortcuts.blocked": "to open blocked users list",
"keyboard_shortcuts.boost": "da podržite",
@@ -220,34 +247,21 @@
"notifications.clear_confirmation": "Da li ste sigurno da trajno želite da očistite Vaša obaveštenja?",
"notifications.column_settings.alert": "Obaveštenja na radnoj površini",
"notifications.column_settings.favourite": "Omiljeni:",
+ "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.follow": "Novi pratioci:",
"notifications.column_settings.mention": "Pominjanja:",
"notifications.column_settings.push": "Guraj obaveštenja",
"notifications.column_settings.reblog": "Podrški:",
"notifications.column_settings.show": "Prikaži u koloni",
"notifications.column_settings.sound": "Puštaj zvuk",
+ "notifications.filter.all": "All",
+ "notifications.filter.boosts": "Boosts",
+ "notifications.filter.favourites": "Favourites",
+ "notifications.filter.follows": "Follows",
+ "notifications.filter.mentions": "Mentions",
"notifications.group": "{count} notifications",
- "onboarding.done": "Gotovo",
- "onboarding.next": "Sledeće",
- "onboarding.page_five.public_timelines": "Lokalna lajna prikazuje sve javne statuse od svih na domenu {domain}. Federisana lajna prikazuje javne statuse od svih ljudi koje prate korisnici sa domena {domain}. Ovo su javne lajne, sjajan način da otkrijete nove ljude.",
- "onboarding.page_four.home": "Početna lajna prikazuje statuse ljudi koje Vi pratite.",
- "onboarding.page_four.notifications": "Kolona sa obaveštenjima Vam prikazuje kada neko priča sa Vama.",
- "onboarding.page_one.federation": "Mastodont je mreža nezavisnih servera koji se uvezuju da naprave jednu veću društvenu mrežu. Ove servere zovemo instancama.",
- "onboarding.page_one.full_handle": "Your full handle",
- "onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.",
- "onboarding.page_one.welcome": "Dobrodošli na Mastodont!",
- "onboarding.page_six.admin": "Administrator Vaše instance je {admin}.",
- "onboarding.page_six.almost_done": "Još malo, pa gotovo...",
- "onboarding.page_six.appetoot": "Prijatutno!",
- "onboarding.page_six.apps_available": "Postoje {apps} dostupne za iOS, Android i druge platforme.",
- "onboarding.page_six.github": "Mastodont je slobodan softver otvorenog koda. Možete prijavljivati greške, potraživati nove funckionalnosti, ili učestvujući u programiranju. Naš izvorni kod je ovde: {github}.",
- "onboarding.page_six.guidelines": "smernice zajednice",
- "onboarding.page_six.read_guidelines": "Pročitejte {guidelines} domena {domain}!",
- "onboarding.page_six.various_app": "mobilne aplikacije",
- "onboarding.page_three.profile": "Izmenite profil da promenite avatar, biografiju i ime za prikaz. Tamo ćete naći i ostala podešavanja.",
- "onboarding.page_three.search": "Korisite pretragu da nađete ljude i gledate heštegove, kao što su {illustration} i {introductions}. Da nađete osobu koja nije na ovoj instanci, koristite njenu punu identifikaciju.",
- "onboarding.page_two.compose": "Pišite statuse iz prve kolone. Možete otpremati slike, menjati podešavanja privatnosti, i dodavati upozorenja za osetljiv sadržaj preko ikonica ispod.",
- "onboarding.skip": "Preskoči",
"privacy.change": "Podesi status privatnosti",
"privacy.direct.long": "Objavi samo korisnicima koji su pomenuti",
"privacy.direct.short": "Direktno",
@@ -283,6 +297,8 @@
"search_results.statuses": "Toots",
"search_results.total": "{count, number} {count, plural, one {rezultat} few {rezultata} other {rezultata}}",
"standalone.public_title": "Pogled iznutra...",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "Block @{name}",
"status.cancel_reblog_private": "Unboost",
"status.cannot_reblog": "Ovaj status ne može da se podrži",
@@ -318,6 +334,7 @@
"status.show_less_all": "Show less for all",
"status.show_more": "Prikaži više",
"status.show_more_all": "Show more for all",
+ "status.show_thread": "Show thread",
"status.unmute_conversation": "Uključi prepisku",
"status.unpin": "Otkači sa profila",
"suggestions.dismiss": "Dismiss suggestion",
diff --git a/app/javascript/mastodon/locales/sr.json b/app/javascript/mastodon/locales/sr.json
index 61eb55e97..b72e5e631 100644
--- a/app/javascript/mastodon/locales/sr.json
+++ b/app/javascript/mastodon/locales/sr.json
@@ -1,4 +1,5 @@
{
+ "account.add_or_remove_from_list": "Add or Remove from lists",
"account.badges.bot": "Бот",
"account.block": "Блокирај @{name}",
"account.block_domain": "Сакриј све са домена {domain}",
@@ -16,6 +17,7 @@
"account.follows_you": "Прати Вас",
"account.hide_reblogs": "Сакриј подршке које даје корисника @{name}",
"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.media": "Медији",
"account.mention": "Помени корисника @{name}",
"account.moved_to": "{name} се померио на:",
@@ -111,6 +113,7 @@
"emoji_button.search_results": "Резултати претраге",
"emoji_button.symbols": "Симболи",
"emoji_button.travel": "Путовања и места",
+ "empty_column.account_timeline": "No toots here!",
"empty_column.blocks": "Још увек немате блокираних корисника.",
"empty_column.community": "Локална временска линија је празна. Напишите нешто јавно да започнете!",
"empty_column.direct": "Још увек немате директних порука. Када пошаљете или примите једну, појавиће се овде.",
@@ -134,16 +137,40 @@
"follow_request.authorize": "Одобри",
"follow_request.reject": "Одбиј",
"getting_started.developers": "Програмери",
+ "getting_started.directory": "Profile directory",
"getting_started.documentation": "Документација",
- "getting_started.find_friends": "Пронађите пријатеље са Твитера",
"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.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": "Основно",
"home.column_settings.show_reblogs": "Прикажи и подржавања",
"home.column_settings.show_replies": "Прикажи одговоре",
+ "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",
+ "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.",
+ "introduction.interactions.action": "Finish tutorial!",
+ "introduction.interactions.favourite.headline": "Favourite",
+ "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.text": "You can share other people's toots with your followers by boosting them.",
+ "introduction.interactions.reply.headline": "Reply",
+ "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.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": "да одете назад",
"keyboard_shortcuts.blocked": "да отворите листу блокираних корисника",
"keyboard_shortcuts.boost": "да подржите",
@@ -220,34 +247,21 @@
"notifications.clear_confirmation": "Да ли сте сигурно да трајно желите да очистите Ваша обавештења?",
"notifications.column_settings.alert": "Обавештења на радној површини",
"notifications.column_settings.favourite": "Омиљени:",
+ "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.follow": "Нови пратиоци:",
"notifications.column_settings.mention": "Помињања:",
"notifications.column_settings.push": "Гурај обавештења",
"notifications.column_settings.reblog": "Подршки:",
"notifications.column_settings.show": "Прикажи у колони",
"notifications.column_settings.sound": "Пуштај звук",
+ "notifications.filter.all": "All",
+ "notifications.filter.boosts": "Boosts",
+ "notifications.filter.favourites": "Favourites",
+ "notifications.filter.follows": "Follows",
+ "notifications.filter.mentions": "Mentions",
"notifications.group": "{count} обавештења",
- "onboarding.done": "Готово",
- "onboarding.next": "Следеће",
- "onboarding.page_five.public_timelines": "Локална временска линија приказује све јавне статусе од свих на домену {domain}. Здружена временска линија приказује јавне статусе од свих људи које прате корисници са домена {domain}. Ово су јавне временске линије, сјајан начин да откријете нове људе.",
- "onboarding.page_four.home": "Почетна временска линија приказује статусе људи које Ви пратите.",
- "onboarding.page_four.notifications": "Колона са обавештењима Вам приказује када неко прича са Вама.",
- "onboarding.page_one.federation": "Мастодонт је мрежа независних сервера који се увезују да направе једну већу друштвену мрежу. Ове сервере зовемо инстанцама.",
- "onboarding.page_one.full_handle": "Ваш пун надимак",
- "onboarding.page_one.handle_hint": "Ово бисте рекли својим пријатељима да траже.",
- "onboarding.page_one.welcome": "Добродошли на Мастодон!",
- "onboarding.page_six.admin": "Администратор Ваше инстанце је {admin}.",
- "onboarding.page_six.almost_done": "Још мало, па готово...",
- "onboarding.page_six.appetoot": "Пријатутно!",
- "onboarding.page_six.apps_available": "Постоје {apps} доступне за iOS, Андроид и друге платформе.",
- "onboarding.page_six.github": "Мастодон је слободан софтвер отвореног кода. Можете пријављивати грешке, потраживати нове фунцкионалности, или учествујући у програмирању. Наш изворни код је овде {github}.",
- "onboarding.page_six.guidelines": "смернице заједнице",
- "onboarding.page_six.read_guidelines": "Прочитејте {guidelines} домена {domain}!",
- "onboarding.page_six.various_app": "мобилне апликације",
- "onboarding.page_three.profile": "Измените профил да промените аватар, биографију и име за приказ. Тамо ћете наћи и остала подешавања.",
- "onboarding.page_three.search": "Корисите претрагу да нађете људе и гледате хештегове, као што су {illustration} и {introductions}. Да нађете особу која није на овој инстанци, користите њену пуну идентификацију.",
- "onboarding.page_two.compose": "Пишите статусе из прве колоне. Можете отпремати слике, мењати подешавања приватности, и додавати упозорења за осетљив садржај преко иконица испод.",
- "onboarding.skip": "Прескочи",
"privacy.change": "Подеси статус приватности",
"privacy.direct.long": "Објави само корисницима који су поменути",
"privacy.direct.short": "Директно",
@@ -283,6 +297,8 @@
"search_results.statuses": "Трубе",
"search_results.total": "{count, number} {count, plural, one {резултат} few {резултата} other {резултата}}",
"standalone.public_title": "Поглед изнутра...",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "Блокирај @{name}",
"status.cancel_reblog_private": "Уклони подршку",
"status.cannot_reblog": "Овај статус не може да се подржи",
@@ -318,6 +334,7 @@
"status.show_less_all": "Прикажи мање за све",
"status.show_more": "Прикажи више",
"status.show_more_all": "Прикажи више за све",
+ "status.show_thread": "Show thread",
"status.unmute_conversation": "Укључи преписку",
"status.unpin": "Откачи са профила",
"suggestions.dismiss": "Dismiss suggestion",
diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json
index 6ce52de4e..2d5eae6ae 100644
--- a/app/javascript/mastodon/locales/sv.json
+++ b/app/javascript/mastodon/locales/sv.json
@@ -1,4 +1,5 @@
{
+ "account.add_or_remove_from_list": "Add or Remove from lists",
"account.badges.bot": "Robot",
"account.block": "Blockera @{name}",
"account.block_domain": "Dölj allt från {domain}",
@@ -16,6 +17,7 @@
"account.follows_you": "Följer dig",
"account.hide_reblogs": "Dölj knuffar från @{name}",
"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.media": "Media",
"account.mention": "Nämna @{name}",
"account.moved_to": "{name} har flyttat till:",
@@ -111,6 +113,7 @@
"emoji_button.search_results": "Sökresultat",
"emoji_button.symbols": "Symboler",
"emoji_button.travel": "Resor & Platser",
+ "empty_column.account_timeline": "No toots here!",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "Den lokala tidslinjen är tom. Skriv något offentligt för att få bollen att rulla!",
"empty_column.direct": "Du har inga direktmeddelanden än. När du skickar eller tar emot kommer den att dyka upp här.",
@@ -134,16 +137,40 @@
"follow_request.authorize": "Godkänn",
"follow_request.reject": "Avvisa",
"getting_started.developers": "Utvecklare",
+ "getting_started.directory": "Profile directory",
"getting_started.documentation": "Documentation",
- "getting_started.find_friends": "Hitta vänner från Twitter",
"getting_started.heading": "Kom igång",
"getting_started.invite": "Skicka inbjudningar",
"getting_started.open_source_notice": "Mastodon är programvara med öppen källkod. Du kan bidra eller rapportera problem via GitHub på {github}.",
"getting_started.security": "Säkerhet",
"getting_started.terms": "Användarvillkor",
+ "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.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": "Grundläggande",
"home.column_settings.show_reblogs": "Visa knuffar",
"home.column_settings.show_replies": "Visa svar",
+ "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",
+ "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.",
+ "introduction.interactions.action": "Finish tutorial!",
+ "introduction.interactions.favourite.headline": "Favourite",
+ "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.text": "You can share other people's toots with your followers by boosting them.",
+ "introduction.interactions.reply.headline": "Reply",
+ "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.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": "att navigera tillbaka",
"keyboard_shortcuts.blocked": "to open blocked users list",
"keyboard_shortcuts.boost": "att knuffa",
@@ -220,34 +247,21 @@
"notifications.clear_confirmation": "Är du säker på att du vill radera alla dina meddelanden permanent?",
"notifications.column_settings.alert": "Skrivbordsmeddelanden",
"notifications.column_settings.favourite": "Favoriter:",
+ "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.follow": "Nya följare:",
"notifications.column_settings.mention": "Omnämningar:",
"notifications.column_settings.push": "Push meddelanden",
"notifications.column_settings.reblog": "Knuffar:",
"notifications.column_settings.show": "Visa i kolumnen",
"notifications.column_settings.sound": "Spela upp ljud",
+ "notifications.filter.all": "All",
+ "notifications.filter.boosts": "Boosts",
+ "notifications.filter.favourites": "Favourites",
+ "notifications.filter.follows": "Follows",
+ "notifications.filter.mentions": "Mentions",
"notifications.group": "{count} aviseringar",
- "onboarding.done": "Klart",
- "onboarding.next": "Nästa",
- "onboarding.page_five.public_timelines": "Den lokala tidslinjen visar offentliga inlägg från alla på {domain}. Den förenade tidslinjen visar offentliga inlägg från alla personer på {domain} som följer. Dom här offentliga tidslinjerna är ett bra sätt att upptäcka nya människor.",
- "onboarding.page_four.home": "Hemmatidslinjen visar inlägg från personer du följer.",
- "onboarding.page_four.notifications": "Meddelandekolumnen visar när någon interagerar med dig.",
- "onboarding.page_one.federation": "Mastodon är ett nätverk av oberoende servrar som ansluter för att skapa ett större socialt nätverk. Vi kallar dessa servrar instanser.",
- "onboarding.page_one.full_handle": "Ditt fullständiga användarnamn/mastodonadress",
- "onboarding.page_one.handle_hint": "Det här är vad du skulle berätta för dina vänner att söka efter.",
- "onboarding.page_one.welcome": "Välkommen till Mastodon!",
- "onboarding.page_six.admin": "Din instansadmin är {admin}.",
- "onboarding.page_six.almost_done": "Snart klart...",
- "onboarding.page_six.appetoot": "Bon Appetoot!",
- "onboarding.page_six.apps_available": "Det finns {apps} tillgängligt för iOS, Android och andra plattformar.",
- "onboarding.page_six.github": "Mastodon är fri programvara med öppen källkod. Du kan rapportera fel, efterfråga funktioner eller bidra till koden på {github}.",
- "onboarding.page_six.guidelines": "gemenskapsriktlinjer",
- "onboarding.page_six.read_guidelines": "Vänligen läs {domain}'s {guidelines}!",
- "onboarding.page_six.various_app": "mobilappar",
- "onboarding.page_three.profile": "Redigera din profil för att ändra ditt avatar, bio och visningsnamn. Där hittar du även andra inställningar.",
- "onboarding.page_three.search": "Använd sökfältet för att hitta personer och titta på hashtags, till exempel {illustration} och {introductions}. För att leta efter en person som inte befinner sig i detta fall använd deras fulla handhavande.",
- "onboarding.page_two.compose": "Skriv inlägg från skrivkolumnen. Du kan ladda upp bilder, ändra integritetsinställningar och lägga till varningar med ikonerna nedan.",
- "onboarding.skip": "Hoppa över",
"privacy.change": "Justera sekretess",
"privacy.direct.long": "Skicka endast till nämnda användare",
"privacy.direct.short": "Direkt",
@@ -283,6 +297,8 @@
"search_results.statuses": "Toots",
"search_results.total": "{count, number} {count, plural, ett {result} andra {results}}",
"standalone.public_title": "En titt inuti...",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "Block @{name}",
"status.cancel_reblog_private": "Ta bort knuff",
"status.cannot_reblog": "Detta inlägg kan inte knuffas",
@@ -318,6 +334,7 @@
"status.show_less_all": "Visa mindre för alla",
"status.show_more": "Visa mer",
"status.show_more_all": "Visa mer för alla",
+ "status.show_thread": "Show thread",
"status.unmute_conversation": "Öppna konversation",
"status.unpin": "Ångra fäst i profil",
"suggestions.dismiss": "Dismiss suggestion",
diff --git a/app/javascript/mastodon/locales/ta.json b/app/javascript/mastodon/locales/ta.json
index 89e90d8c9..70df09970 100644
--- a/app/javascript/mastodon/locales/ta.json
+++ b/app/javascript/mastodon/locales/ta.json
@@ -1,4 +1,5 @@
{
+ "account.add_or_remove_from_list": "Add or Remove from lists",
"account.badges.bot": "Bot",
"account.block": "Block @{name}",
"account.block_domain": "Hide everything from {domain}",
@@ -16,6 +17,7 @@
"account.follows_you": "Follows you",
"account.hide_reblogs": "Hide boosts from @{name}",
"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.media": "Media",
"account.mention": "Mention @{name}",
"account.moved_to": "{name} has moved to:",
@@ -111,6 +113,7 @@
"emoji_button.search_results": "Search results",
"emoji_button.symbols": "Symbols",
"emoji_button.travel": "Travel & Places",
+ "empty_column.account_timeline": "No toots here!",
"empty_column.blocks": "You haven't blocked any users yet.",
"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.",
@@ -134,16 +137,40 @@
"follow_request.authorize": "Authorize",
"follow_request.reject": "Reject",
"getting_started.developers": "Developers",
+ "getting_started.directory": "Profile directory",
"getting_started.documentation": "Documentation",
- "getting_started.find_friends": "Find friends from Twitter",
"getting_started.heading": "Getting started",
"getting_started.invite": "Invite people",
"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.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",
+ "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",
+ "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.",
+ "introduction.interactions.action": "Finish tutorial!",
+ "introduction.interactions.favourite.headline": "Favourite",
+ "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.text": "You can share other people's toots with your followers by boosting them.",
+ "introduction.interactions.reply.headline": "Reply",
+ "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.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",
@@ -220,34 +247,21 @@
"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.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.follow": "New followers:",
"notifications.column_settings.mention": "Mentions:",
"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.filter.follows": "Follows",
+ "notifications.filter.mentions": "Mentions",
"notifications.group": "{count} notifications",
- "onboarding.done": "Done",
- "onboarding.next": "Next",
- "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
- "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
- "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
- "onboarding.page_one.federation": "Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
- "onboarding.page_one.full_handle": "Your full handle",
- "onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.",
- "onboarding.page_one.welcome": "Welcome to Mastodon!",
- "onboarding.page_six.admin": "Your instance's admin is {admin}.",
- "onboarding.page_six.almost_done": "Almost done...",
- "onboarding.page_six.appetoot": "Bon Appetoot!",
- "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
- "onboarding.page_six.github": "Mastodon is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
- "onboarding.page_six.guidelines": "community guidelines",
- "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
- "onboarding.page_six.various_app": "mobile apps",
- "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
- "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
- "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
- "onboarding.skip": "Skip",
"privacy.change": "Adjust status privacy",
"privacy.direct.long": "Post to mentioned users only",
"privacy.direct.short": "Direct",
@@ -283,6 +297,8 @@
"search_results.statuses": "Toots",
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
"standalone.public_title": "A look inside...",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "Block @{name}",
"status.cancel_reblog_private": "Unboost",
"status.cannot_reblog": "This post cannot be boosted",
@@ -318,6 +334,7 @@
"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.unmute_conversation": "Unmute conversation",
"status.unpin": "Unpin from profile",
"suggestions.dismiss": "Dismiss suggestion",
diff --git a/app/javascript/mastodon/locales/te.json b/app/javascript/mastodon/locales/te.json
index 5def05699..ae56de63c 100644
--- a/app/javascript/mastodon/locales/te.json
+++ b/app/javascript/mastodon/locales/te.json
@@ -1,4 +1,5 @@
{
+ "account.add_or_remove_from_list": "జాబితాల నుండి చేర్చు లేదా తీసివేయి",
"account.badges.bot": "బాట్",
"account.block": "@{name} ను బ్లాక్ చేయి",
"account.block_domain": "{domain} నుంచి అన్నీ దాచిపెట్టు",
@@ -15,7 +16,8 @@
"account.follows.empty": "ఈ వినియోగదారి ఇంకా ఎవరినీ అనుసరించడంలేదు.",
"account.follows_you": "మిమ్మల్ని అనుసరిస్తున్నారు",
"account.hide_reblogs": "@{name} నుంచి బూస్ట్ లను దాచిపెట్టు",
- "account.link_verified_on": "Ownership of this link was checked on {date}",
+ "account.link_verified_on": "ఈ లంకె యొక్క యాజమాన్యం {date}న పరీక్షించబడింది",
+ "account.locked_info": "ఈ ఖాతా యొక్క గోప్యత స్థితి లాక్ చేయబడి వుంది. ఈ ఖాతాను ఎవరు అనుసరించవచ్చో యజమానే నిర్ణయం తీసుకుంటారు.",
"account.media": "మీడియా",
"account.mention": "@{name}ను ప్రస్తావించు",
"account.moved_to": "{name} ఇక్కడికి మారారు:",
@@ -91,8 +93,8 @@
"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}ను మీరు ఖచ్చితంగా అనుసరించవద్దనుకుంటున్నారా?",
"embed.instructions": "దిగువ కోడ్ను కాపీ చేయడం ద్వారా మీ వెబ్సైట్లో ఈ స్టేటస్ ని పొందుపరచండి.",
@@ -111,6 +113,7 @@
"emoji_button.search_results": "శోధన ఫలితాలు",
"emoji_button.symbols": "చిహ్నాలు",
"emoji_button.travel": "ప్రయాణం & ప్రదేశాలు",
+ "empty_column.account_timeline": "ఇక్కడ ఏ టూట్లూ లేవు!No toots here!",
"empty_column.blocks": "మీరు ఇంకా ఏ వినియోగదారులనూ బ్లాక్ చేయలేదు.",
"empty_column.community": "స్థానిక కాలక్రమం ఖాళీగా ఉంది. మొదలుపెట్టడానికి బహిరంగంగా ఏదో ఒకటి వ్రాయండి!",
"empty_column.direct": "మీకు ఇంకా ఏ ప్రత్యక్ష సందేశాలు లేవు. మీరు ఒకదాన్ని పంపినప్పుడు లేదా స్వీకరించినప్పుడు, అది ఇక్కడ చూపబడుతుంది.",
@@ -134,16 +137,40 @@
"follow_request.authorize": "అనుమతించు",
"follow_request.reject": "తిరస్కరించు",
"getting_started.developers": "డెవలపర్లు",
+ "getting_started.directory": "ప్రొఫైల్ డైరెక్టరీProfile directory",
"getting_started.documentation": "డాక్యుమెంటేషన్",
- "getting_started.find_friends": "ట్విట్టర్ నుండి స్నేహితులను కనుగొనండి",
"getting_started.heading": "మొదలుపెడదాం",
"getting_started.invite": "వ్యక్తులను ఆహ్వానించండి",
"getting_started.open_source_notice": "మాస్టొడొన్ ఓపెన్ సోర్స్ సాఫ్ట్వేర్. మీరు {github} వద్ద GitHub పై సమస్యలను నివేదించవచ్చు లేదా తోడ్పడచ్చు.",
"getting_started.security": "భద్రత",
"getting_started.terms": "సేవా నిబంధనలు",
+ "hashtag.column_header.tag_mode.all": "మరియు {additional}",
+ "hashtag.column_header.tag_mode.any": "లేదా {additional}",
+ "hashtag.column_header.tag_mode.none": "{additional} లేకుండా",
+ "hashtag.column_settings.tag_mode.all": "ఇవన్నీAll of these",
+ "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": "ప్రత్యుత్తరాలను చూపించు",
+ "introduction.federation.action": "తరువాత",
+ "introduction.federation.federated.headline": "Federated",
+ "introduction.federation.federated.text": "ఫెడివర్స్ లోని ఇతర సర్వర్లకు చెందిన పబ్లిక్ టూట్లు ఫెడరేటెడ్ టైంలైన్ లో కనిపిస్తాయి.",
+ "introduction.federation.home.headline": "Home",
+ "introduction.federation.home.text": "మీరు అనుసరిస్తున్న ఖాతాల టూట్లు హోం ఫీడ్ లో కనిపిస్తాయి. ఏ సర్వర్లో ఎవరినైనా మీరు అనుసరించవచ్చు!",
+ "introduction.federation.local.headline": "Local",
+ "introduction.federation.local.text": "ఈ సర్వరుకు చెందిన ఖాతాల పబ్లిక్ టూట్లు లోకల్ టైంలైన్ లో కనిపిస్తాయి.",
+ "introduction.interactions.action": "బోధనను ముగించు!",
+ "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.welcome.action": "ఇక ప్రారంభించు!",
+ "introduction.welcome.headline": "మొదటి మెట్లు",
+ "introduction.welcome.text": "ఫెడివర్స్ కు స్వాగతం! మరి కొంతసేపట్లో మీరు సందేశాలను ప్రసారం చేయవచ్చు మరియు వేర్వేరు సర్వర్లలో వున్న మీ స్నేహితులతో మాట్లాడవచ్చు. కానీ ఈ సర్వరు, {domain}, ప్రత్యేకమైనది - ఇది మీ ప్రొఫైలును హోస్టు చేస్తుంది, కాబట్టి ఈ సర్వరు పేరును గుర్తుంచుకోండి.",
"keyboard_shortcuts.back": "వెనక్కి తిరిగి వెళ్ళడానికి",
"keyboard_shortcuts.blocked": "బ్లాక్ చేయబడిన వినియోగదారుల జాబితాను తెరవడానికి",
"keyboard_shortcuts.boost": "బూస్ట్ చేయడానికి",
@@ -220,34 +247,21 @@
"notifications.clear_confirmation": "మీరు మీ అన్ని నోటిఫికేషన్లను శాశ్వతంగా తొలగించాలనుకుంటున్నారా?",
"notifications.column_settings.alert": "డెస్క్టాప్ నోటిఫికేషన్లు",
"notifications.column_settings.favourite": "ఇష్టపడినవి:",
+ "notifications.column_settings.filter_bar.advanced": "అన్ని విభాగాలను చూపించు",
+ "notifications.column_settings.filter_bar.category": "క్విక్ ఫిల్టర్ బార్",
+ "notifications.column_settings.filter_bar.show": "చూపించు",
"notifications.column_settings.follow": "క్రొత్త అనుచరులు:",
"notifications.column_settings.mention": "ప్రస్తావనలు:",
"notifications.column_settings.push": "పుష్ ప్రకటనలు",
"notifications.column_settings.reblog": "బూస్ట్ లు:",
"notifications.column_settings.show": "నిలువు వరుసలో చూపు",
"notifications.column_settings.sound": "ధ్వనిని ప్లే చేయి",
+ "notifications.filter.all": "అన్నీ",
+ "notifications.filter.boosts": "బూస్ట్లు",
+ "notifications.filter.favourites": "ఇష్టాలు",
+ "notifications.filter.follows": "అనుసరిస్తున్నవి",
+ "notifications.filter.mentions": "పేర్కొన్నవి",
"notifications.group": "{count} ప్రకటనలు",
- "onboarding.done": "పూర్తయింది",
- "onboarding.next": "తరువాత",
- "onboarding.page_five.public_timelines": "స్థానిక కాలక్రమం {domain}లో ప్రతి ఒక్కరి నుండి పబ్లిక్ పోస్ట్లను చూపుతుంది. సమాఖ్య కాలక్రమం {డొమైన్} లోని వ్యక్తులు అనుసరించే ప్రతి ఒక్కరి నుండి పబ్లిక్ పోస్ట్లను చూపుతుంది. ఈ పబ్లిక్ కాలక్రమాలు క్రొత్త వ్యక్తులను కనుగొనడానికి ఒక గొప్ప మార్గం.",
- "onboarding.page_four.home": "హోమ్ కాలక్రమం మీరు అనుసరించే వ్యక్తుల నుండి పోస్ట్లను చూపిస్తుంది.",
- "onboarding.page_four.notifications": "ఎవరైనా మీతో సంభాషించినప్పుడు నోటిఫికేషన్ల నిలువు వరుసలో కనిపిస్తుంది.",
- "onboarding.page_one.federation": "మాస్టొడొన్ అనేది అనేక స్వతంత్ర సేవికల సమాహారం వలన ఏర్పడిన ఒక సోషల్ నెట్వర్క్. మేము ఈ సేవికలను దుష్టాంతాలని అంటాము.",
- "onboarding.page_one.full_handle": "మీ పూర్తి హ్యాండిల్",
- "onboarding.page_one.handle_hint": "మీరు మీ స్నేహితులకు శోధించమని చెప్పేది ఇదే.",
- "onboarding.page_one.welcome": "మాస్తోడాన్ కు స్వాగతం!",
- "onboarding.page_six.admin": "మీ దృష్టాంతం యొక్క నిర్వాహకులు {admin}.",
- "onboarding.page_six.almost_done": "దాదాపుగా అయిపోయింది...",
- "onboarding.page_six.appetoot": "బాన్ ఆప్పెటూట్!",
- "onboarding.page_six.apps_available": "iOS, Android మరియు ఇతర ప్లాట్ఫారమ్లకు {apps} అందుబాటులో ఉన్నాయి.",
- "onboarding.page_six.github": "మాస్టొడొన్ ఉచిత ఓపెన్ సోర్స్ సాఫ్ట్వేర్. మీరు దోషాలను నివేదించవచ్చు, ఫీచర్లను అభ్యర్థించవచ్చు లేదా {github} లో కోడ్కు దోహదం చేయవచ్చు.",
- "onboarding.page_six.guidelines": "సంఘం మార్గదర్శకాలు",
- "onboarding.page_six.read_guidelines": "దయచేసి {domain} యొక్క {guidelines} చదవండి!",
- "onboarding.page_six.various_app": "మొబైల్ అనువర్తనాలు",
- "onboarding.page_three.profile": "మీ అవతార్, బయో, ప్రదర్శన పేరు మార్చడానికి మీ ప్రొఫైల్ను సవరించండి. అక్కడ, మీరు ఇతర ప్రాధాన్యతలను కూడా కనుగొంటారు.",
- "onboarding.page_three.search": "వ్యక్తులను కనుగొనడానికి లేదా {illustration} మరియు {introductions} వంటి హ్యాష్ట్యాగ్లను చూడటానికి శోధన పట్టీని ఉపయోగించండి. ఈ దుష్టాంతంలో లేని ఒక వ్యక్తి కోసం శోధించేందుకు, వారి పూర్తి హ్యాండిల్ను ఉపయోగించండి.",
- "onboarding.page_two.compose": "కంపోజ్ నిలువు వరుస నుండి పోస్ట్లను వ్రాయండి. మీరు చిత్రాలను అప్లోడ్ చెయ్యవచ్చు, గోప్యతా సెట్టింగ్లను మార్చవచ్చు మరియు దిగువ చిహ్నాలతో కంటెంట్ హెచ్చరికలను జోడించవచ్చు.",
- "onboarding.skip": "దాటవేయి",
"privacy.change": "స్టేటస్ గోప్యతను సర్దుబాటు చేయండి",
"privacy.direct.long": "పేర్కొన్న వినియోగదారులకు మాత్రమే పోస్ట్ చేయి",
"privacy.direct.short": "ప్రత్యక్ష",
@@ -283,6 +297,8 @@
"search_results.statuses": "టూట్లు",
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
"standalone.public_title": "లోపలికి ఒక చూపు...",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "@{name} ను బ్లాక్ చేయి",
"status.cancel_reblog_private": "బూస్ట్ను తొలగించు",
"status.cannot_reblog": "ఈ పోస్ట్ను బూస్ట్ చేయడం సాధ్యం కాదు",
@@ -302,7 +318,7 @@
"status.open": "ఈ స్టేటస్ ను విస్తరించు",
"status.pin": "ప్రొఫైల్లో అతికించు",
"status.pinned": "అతికించిన టూట్",
- "status.read_more": "Read more",
+ "status.read_more": "ఇంకా చదవండి",
"status.reblog": "బూస్ట్",
"status.reblog_private": "అసలు ప్రేక్షకులకు బూస్ట్ చేయి",
"status.reblogged_by": "{name} బూస్ట్ చేసారు",
@@ -318,10 +334,11 @@
"status.show_less_all": "అన్నిటికీ తక్కువ చూపించు",
"status.show_more": "ఇంకా చూపించు",
"status.show_more_all": "అన్నిటికీ ఇంకా చూపించు",
+ "status.show_thread": "గొలుసును చూపించు",
"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": "స్థానిక",
@@ -332,7 +349,7 @@
"upload_area.title": "అప్లోడ్ చేయడానికి డ్రాగ్ & డ్రాప్ చేయండి",
"upload_button.label": "మీడియాను జోడించండి (JPEG, PNG, GIF, WebM, MP4, MOV)",
"upload_form.description": "దృష్టి లోపమున్న వారి కోసం వివరించండి",
- "upload_form.focus": "కత్తిరించు",
+ "upload_form.focus": "ప్రివ్యూను మార్చు",
"upload_form.undo": "తొలగించు",
"upload_progress.label": "అప్లోడ్ అవుతోంది...",
"video.close": "వీడియోని మూసివేయి",
diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json
index 9ecf95472..7e5c8f542 100644
--- a/app/javascript/mastodon/locales/th.json
+++ b/app/javascript/mastodon/locales/th.json
@@ -1,4 +1,5 @@
{
+ "account.add_or_remove_from_list": "Add or Remove from lists",
"account.badges.bot": "Bot",
"account.block": "Block @{name}",
"account.block_domain": "Hide everything from {domain}",
@@ -16,6 +17,7 @@
"account.follows_you": "Follows you",
"account.hide_reblogs": "Hide boosts from @{name}",
"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.media": "Media",
"account.mention": "Mention @{name}",
"account.moved_to": "{name} has moved to:",
@@ -111,6 +113,7 @@
"emoji_button.search_results": "Search results",
"emoji_button.symbols": "Symbols",
"emoji_button.travel": "Travel & Places",
+ "empty_column.account_timeline": "No toots here!",
"empty_column.blocks": "You haven't blocked any users yet.",
"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.",
@@ -134,16 +137,40 @@
"follow_request.authorize": "Authorize",
"follow_request.reject": "Reject",
"getting_started.developers": "Developers",
+ "getting_started.directory": "Profile directory",
"getting_started.documentation": "Documentation",
- "getting_started.find_friends": "Find friends from Twitter",
"getting_started.heading": "Getting started",
"getting_started.invite": "Invite people",
"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.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",
+ "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",
+ "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.",
+ "introduction.interactions.action": "Finish tutorial!",
+ "introduction.interactions.favourite.headline": "Favourite",
+ "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.text": "You can share other people's toots with your followers by boosting them.",
+ "introduction.interactions.reply.headline": "Reply",
+ "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.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",
@@ -220,34 +247,21 @@
"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.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.follow": "New followers:",
"notifications.column_settings.mention": "Mentions:",
"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.filter.follows": "Follows",
+ "notifications.filter.mentions": "Mentions",
"notifications.group": "{count} notifications",
- "onboarding.done": "Done",
- "onboarding.next": "Next",
- "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
- "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
- "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
- "onboarding.page_one.federation": "Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
- "onboarding.page_one.full_handle": "Your full handle",
- "onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.",
- "onboarding.page_one.welcome": "Welcome to Mastodon!",
- "onboarding.page_six.admin": "Your instance's admin is {admin}.",
- "onboarding.page_six.almost_done": "Almost done...",
- "onboarding.page_six.appetoot": "Bon Appetoot!",
- "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
- "onboarding.page_six.github": "Mastodon is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
- "onboarding.page_six.guidelines": "community guidelines",
- "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
- "onboarding.page_six.various_app": "mobile apps",
- "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
- "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
- "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
- "onboarding.skip": "Skip",
"privacy.change": "Adjust status privacy",
"privacy.direct.long": "Post to mentioned users only",
"privacy.direct.short": "Direct",
@@ -283,6 +297,8 @@
"search_results.statuses": "Toots",
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
"standalone.public_title": "A look inside...",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "Block @{name}",
"status.cancel_reblog_private": "Unboost",
"status.cannot_reblog": "This post cannot be boosted",
@@ -318,6 +334,7 @@
"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.unmute_conversation": "Unmute conversation",
"status.unpin": "Unpin from profile",
"suggestions.dismiss": "Dismiss suggestion",
diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json
index 480bd68da..ae86e6dd7 100644
--- a/app/javascript/mastodon/locales/tr.json
+++ b/app/javascript/mastodon/locales/tr.json
@@ -1,4 +1,5 @@
{
+ "account.add_or_remove_from_list": "Add or Remove from lists",
"account.badges.bot": "Bot",
"account.block": "Engelle @{name}",
"account.block_domain": "Hide everything from {domain}",
@@ -16,6 +17,7 @@
"account.follows_you": "Seni takip ediyor",
"account.hide_reblogs": "Hide boosts from @{name}",
"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.media": "Media",
"account.mention": "Bahset @{name}",
"account.moved_to": "{name} has moved to:",
@@ -111,6 +113,7 @@
"emoji_button.search_results": "Search results",
"emoji_button.symbols": "Semboller",
"emoji_button.travel": "Seyahat ve Yerler",
+ "empty_column.account_timeline": "No toots here!",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "Yerel zaman tüneliniz boş. Daha fazla eğlence için herkese açık bir gönderi paylaşın.",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
@@ -134,16 +137,40 @@
"follow_request.authorize": "Yetkilendir",
"follow_request.reject": "Reddet",
"getting_started.developers": "Developers",
+ "getting_started.directory": "Profile directory",
"getting_started.documentation": "Documentation",
- "getting_started.find_friends": "Find friends from Twitter",
"getting_started.heading": "Başlangıç",
"getting_started.invite": "Invite people",
"getting_started.open_source_notice": "Mastodon açık kaynaklı bir yazılımdır. Github {github}. {apps} üzerinden katkıda bulunabilir, hata raporlayabilirsiniz.",
"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.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": "Temel",
"home.column_settings.show_reblogs": "Boost edilenleri göster",
"home.column_settings.show_replies": "Cevapları göster",
+ "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",
+ "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.",
+ "introduction.interactions.action": "Finish tutorial!",
+ "introduction.interactions.favourite.headline": "Favourite",
+ "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.text": "You can share other people's toots with your followers by boosting them.",
+ "introduction.interactions.reply.headline": "Reply",
+ "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.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",
@@ -220,34 +247,21 @@
"notifications.clear_confirmation": "Tüm bildirimlerinizi kalıcı olarak temizlemek ister misiniz?",
"notifications.column_settings.alert": "Masaüstü bildirimleri",
"notifications.column_settings.favourite": "Favoriler:",
+ "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.follow": "Yeni takipçiler:",
"notifications.column_settings.mention": "Bahsedilenler:",
"notifications.column_settings.push": "Push notifications",
"notifications.column_settings.reblog": "Boost’lar:",
"notifications.column_settings.show": "Bildirimlerde göster",
"notifications.column_settings.sound": "Ses çal",
+ "notifications.filter.all": "All",
+ "notifications.filter.boosts": "Boosts",
+ "notifications.filter.favourites": "Favourites",
+ "notifications.filter.follows": "Follows",
+ "notifications.filter.mentions": "Mentions",
"notifications.group": "{count} notifications",
- "onboarding.done": "Tamam",
- "onboarding.next": "Sıradaki",
- "onboarding.page_five.public_timelines": "Yerel zaman tüneli, bu sunucudaki herkesten gelen gönderileri gösterir.Federe zaman tüneli, kullanıcıların diğer sunuculardan takip ettiği kişilerin herkese açık gönderilerini gösterir. Bunlar herkese açık zaman tünelleridir ve yeni insanlarla tanışmak için harika yerlerdir. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new",
- "onboarding.page_four.home": "Takip ettiğiniz insanlardan gelen gönderileri gosteren zaman tünelidir",
- "onboarding.page_four.notifications": "Herkimse sizinle iletişime geçtiğinde gelen bildirimleri gösterir.",
- "onboarding.page_one.federation": "Mastodon, geniş bir sosyal ağ kurmak için birleşen bağımsız sunuculardan oluşan bir ağdır.",
- "onboarding.page_one.full_handle": "Your full handle",
- "onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.",
- "onboarding.page_one.welcome": "Mastodon'a hoş geldiniz.",
- "onboarding.page_six.admin": "{admin}, şu anda bulunduğunuz sunucunun yöneticisidir.",
- "onboarding.page_six.almost_done": "Neredeyse tamam...",
- "onboarding.page_six.appetoot": "Bon Appetoot!",
- "onboarding.page_six.apps_available": "iOS, Android ve diğer platformlar için {apps} mevcuttur",
- "onboarding.page_six.github": "Mastodon açık kaynaklı bir yazılımdır. Github {github} üzerinden katkıda bulunabilir, özellik başvurusunda bulunabilir,hata raporlayabilirsiniz.",
- "onboarding.page_six.guidelines": "topluluk kılavuzları",
- "onboarding.page_six.read_guidelines": "Lütfen {domain}'in {guidelines} kılavuzlarını okuyunuz.",
- "onboarding.page_six.various_app": "mobil uygulamalar",
- "onboarding.page_three.profile": "Profil resminizi, kişisel bilgilerinizi ve görünen isminizi değiştirmek için profilinizi düzenleyebilirsiniz. Ayrıca diğer tercihlerinizi de düzenleyebilirsiniz.",
- "onboarding.page_three.search": "Arama çubuğunu kullanarak kişileri bulabilir, ve {illustration} ve {introductions} gibi hashtag'leri arayabilirsiniz. Eğer bu sunucuda olmayan birini aramak istiyorsanız, kullanıcı adının tamamını yazarak arayabilirsiniz.",
- "onboarding.page_two.compose": "Toot oluşturma alanını kullanarak gönderiler yazabilirsiniz. Aşağıdaki ikonları kullanarak görseller ekleyebilir, gizlilik ayarlarını değiştirebilir ve içerik uyarısı ekleyebilirsiniz.",
- "onboarding.skip": "Geç",
"privacy.change": "Gönderi gizliliğini ayarla",
"privacy.direct.long": "Sadece bahsedilen kişilere gönder",
"privacy.direct.short": "Direkt",
@@ -283,6 +297,8 @@
"search_results.statuses": "Toots",
"search_results.total": "{count, number} {count, plural, one {sonuç} other {sonuçlar}}",
"standalone.public_title": "A look inside...",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "Block @{name}",
"status.cancel_reblog_private": "Unboost",
"status.cannot_reblog": "Bu gönderi boost edilemez",
@@ -318,6 +334,7 @@
"status.show_less_all": "Show less for all",
"status.show_more": "Daha fazlası",
"status.show_more_all": "Show more for all",
+ "status.show_thread": "Show thread",
"status.unmute_conversation": "Unmute conversation",
"status.unpin": "Unpin from profile",
"suggestions.dismiss": "Dismiss suggestion",
diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json
index e7b93f22c..afa5d815c 100644
--- a/app/javascript/mastodon/locales/uk.json
+++ b/app/javascript/mastodon/locales/uk.json
@@ -1,4 +1,5 @@
{
+ "account.add_or_remove_from_list": "Add or Remove from lists",
"account.badges.bot": "Бот",
"account.block": "Заблокувати @{name}",
"account.block_domain": "Заглушити {domain}",
@@ -16,6 +17,7 @@
"account.follows_you": "Підписаний(-а) на Вас",
"account.hide_reblogs": "Сховати передмухи від @{name}",
"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.media": "Медіа",
"account.mention": "Згадати @{name}",
"account.moved_to": "{name} переїхав на:",
@@ -111,6 +113,7 @@
"emoji_button.search_results": "Результати пошуку",
"emoji_button.symbols": "Символи",
"emoji_button.travel": "Подорожі",
+ "empty_column.account_timeline": "No toots here!",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "Локальна стрічка пуста. Напишіть щось, щоб розігріти народ!",
"empty_column.direct": "У вас ще немає прямих повідомлень. Коли ви відправите чи отримаєте якесь, воно з'явиться тут.",
@@ -134,16 +137,40 @@
"follow_request.authorize": "Авторизувати",
"follow_request.reject": "Відмовити",
"getting_started.developers": "Розробникам",
+ "getting_started.directory": "Profile directory",
"getting_started.documentation": "Документація",
- "getting_started.find_friends": "Знайдіть друзів із Twitter",
"getting_started.heading": "Ласкаво просимо",
"getting_started.invite": "Запросіть людей",
"getting_started.open_source_notice": "Mastodon - програма з відкритим вихідним кодом. Ви можете допомогти проекту, або повідомити про проблеми на GitHub за адресою {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.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": "Основні",
"home.column_settings.show_reblogs": "Показувати передмухи",
"home.column_settings.show_replies": "Показувати відповіді",
+ "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",
+ "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.",
+ "introduction.interactions.action": "Finish tutorial!",
+ "introduction.interactions.favourite.headline": "Favourite",
+ "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.text": "You can share other people's toots with your followers by boosting them.",
+ "introduction.interactions.reply.headline": "Reply",
+ "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.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": "переходити назад",
"keyboard_shortcuts.blocked": "to open blocked users list",
"keyboard_shortcuts.boost": "передмухувати",
@@ -220,34 +247,21 @@
"notifications.clear_confirmation": "Ви впевнені, що хочете назавжди видалити всі сповіщеня?",
"notifications.column_settings.alert": "Сповіщення на комп'ютері",
"notifications.column_settings.favourite": "Вподобане:",
+ "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.follow": "Нові підписники:",
"notifications.column_settings.mention": "Згадки:",
"notifications.column_settings.push": "Push-сповіщення",
"notifications.column_settings.reblog": "Передмухи:",
"notifications.column_settings.show": "Показати в колонці",
"notifications.column_settings.sound": "Відтворювати звуки",
+ "notifications.filter.all": "All",
+ "notifications.filter.boosts": "Boosts",
+ "notifications.filter.favourites": "Favourites",
+ "notifications.filter.follows": "Follows",
+ "notifications.filter.mentions": "Mentions",
"notifications.group": "{count} сповіщень",
- "onboarding.done": "Готово",
- "onboarding.next": "Далі",
- "onboarding.page_five.public_timelines": "Локальна стрічка показує публічні пости усіх користувачів {domain}. Глобальна стрічка показує публічні пости усіх людей, на яких підписані користувачі {domain}. Це публічні стрічки, відмінний спосіб знайти нових людей.",
- "onboarding.page_four.home": "Домашня стрічка показує пости користувачів, на яких Ви підписані.",
- "onboarding.page_four.notifications": "Колонка сповіщень показує моменти, коли хтось взаємодії з Вами.",
- "onboarding.page_one.federation": "Mastodon - це мережа незалежних серверів, які разом формують єдину соціальну мережу. Ми називаємо ці сервери сайтами.",
- "onboarding.page_one.full_handle": "Your full handle",
- "onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.",
- "onboarding.page_one.welcome": "Ласкаво просимо до Mastodon!",
- "onboarding.page_six.admin": "Адміністратором Вашого сайту є {admin}.",
- "onboarding.page_six.almost_done": "Майже готово...",
- "onboarding.page_six.appetoot": "Смачного дудіння!",
- "onboarding.page_six.apps_available": "Для Mastodon існують {apps}, доступні для iOS, Android та інших платформ.",
- "onboarding.page_six.github": "Mastodon - це вільне відкрите програмне забезпечення. Ви можете допомогти проектові чи сповістити про проблеми на GitHub за адресою {github}.",
- "onboarding.page_six.guidelines": "правила спільноти",
- "onboarding.page_six.read_guidelines": "Будь ласка, прочитайте {guidelines} домену {domain}!",
- "onboarding.page_six.various_app": "мобільні застосунки",
- "onboarding.page_three.profile": "Відредагуйте Ваш профіль, щоб змінити Ваши аватарку, інформацію та відображуване ім'я. Там Ви зможете знайти і інші налаштування.",
- "onboarding.page_three.search": "Використовуйте рядок пошуку, щоб знайти інших людей та подивитися хештеги на кшталт {illustration} та {introductions}. Для того, щоб знайти людину з іншого сайту, використовуйте їхній повний нікнейм.",
- "onboarding.page_two.compose": "Пишіть пости у колонці 'Написати'. Ви можете завантажувати зображення, міняти налаштування приватності та додавати попередження за допомогою піктограм знизу.",
- "onboarding.skip": "Пропустити",
"privacy.change": "Змінити видимість допису",
"privacy.direct.long": "Показати тільки згаданим користувачам",
"privacy.direct.short": "Направлений",
@@ -283,6 +297,8 @@
"search_results.statuses": "Toots",
"search_results.total": "{count, number} {count, plural, one {результат} few {результати} many {результатів} other {результатів}}",
"standalone.public_title": "A look inside...",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "Block @{name}",
"status.cancel_reblog_private": "Unboost",
"status.cannot_reblog": "Цей допис не може бути передмухнутий",
@@ -318,6 +334,7 @@
"status.show_less_all": "Show less for all",
"status.show_more": "Розгорнути",
"status.show_more_all": "Show more for all",
+ "status.show_thread": "Show thread",
"status.unmute_conversation": "Зняти глушення з діалогу",
"status.unpin": "Unpin from profile",
"suggestions.dismiss": "Dismiss suggestion",
diff --git a/app/javascript/mastodon/locales/whitelist_lv.json b/app/javascript/mastodon/locales/whitelist_lv.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/mastodon/locales/whitelist_lv.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/mastodon/locales/whitelist_ms.json b/app/javascript/mastodon/locales/whitelist_ms.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/mastodon/locales/whitelist_ms.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json
index 772ad98ac..369b1e77a 100644
--- a/app/javascript/mastodon/locales/zh-CN.json
+++ b/app/javascript/mastodon/locales/zh-CN.json
@@ -1,4 +1,5 @@
{
+ "account.add_or_remove_from_list": "Add or Remove from lists",
"account.badges.bot": "机器人",
"account.block": "屏蔽 @{name}",
"account.block_domain": "隐藏来自 {domain} 的内容",
@@ -16,6 +17,7 @@
"account.follows_you": "关注了你",
"account.hide_reblogs": "隐藏来自 @{name} 的转嘟",
"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.media": "媒体",
"account.mention": "提及 @{name}",
"account.moved_to": "{name} 已经迁移到:",
@@ -111,6 +113,7 @@
"emoji_button.search_results": "搜索结果",
"emoji_button.symbols": "符号",
"emoji_button.travel": "旅行和地点",
+ "empty_column.account_timeline": "No toots here!",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "本站时间轴暂时没有内容,快嘟几个来抢头香啊!",
"empty_column.direct": "你还没有使用过私信。当你发出或者收到私信时,它会在这里显示。",
@@ -134,16 +137,40 @@
"follow_request.authorize": "同意",
"follow_request.reject": "拒绝",
"getting_started.developers": "开发",
+ "getting_started.directory": "Profile directory",
"getting_started.documentation": "文档",
- "getting_started.find_friends": "寻找 Twitter 好友",
"getting_started.heading": "开始使用",
"getting_started.invite": "邀请用户",
"getting_started.open_source_notice": "Mastodon 是一个开源软件。欢迎前往 GitHub({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.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": "基本设置",
"home.column_settings.show_reblogs": "显示转嘟",
"home.column_settings.show_replies": "显示回复",
+ "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",
+ "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.",
+ "introduction.interactions.action": "Finish tutorial!",
+ "introduction.interactions.favourite.headline": "Favourite",
+ "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.text": "You can share other people's toots with your followers by boosting them.",
+ "introduction.interactions.reply.headline": "Reply",
+ "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.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": "返回上一页",
"keyboard_shortcuts.blocked": "to open blocked users list",
"keyboard_shortcuts.boost": "转嘟",
@@ -220,34 +247,21 @@
"notifications.clear_confirmation": "你确定要永久清空通知列表吗?",
"notifications.column_settings.alert": "桌面通知",
"notifications.column_settings.favourite": "当你的嘟文被收藏时:",
+ "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.follow": "当有人关注你时:",
"notifications.column_settings.mention": "当有人在嘟文中提及你时:",
"notifications.column_settings.push": "推送通知",
"notifications.column_settings.reblog": "当有人转嘟了你的嘟文时:",
"notifications.column_settings.show": "在通知栏显示",
"notifications.column_settings.sound": "播放音效",
+ "notifications.filter.all": "All",
+ "notifications.filter.boosts": "Boosts",
+ "notifications.filter.favourites": "Favourites",
+ "notifications.filter.follows": "Follows",
+ "notifications.filter.mentions": "Mentions",
"notifications.group": "{count} 条通知",
- "onboarding.done": "出发!",
- "onboarding.next": "下一步",
- "onboarding.page_five.public_timelines": "“本站时间轴”显示的是由本站({domain})用户发布的所有公开嘟文。“跨站公共时间轴”显示的的是由本站用户关注对象所发布的所有公开嘟文。这些就是寻人好去处的公共时间轴啦。",
- "onboarding.page_four.home": "你的“主页”时间轴上显示的是你的关注对象所发布的嘟文。",
- "onboarding.page_four.notifications": "如果有人与你互动了,他们就会出现在“通知”栏中哦~",
- "onboarding.page_one.federation": "Mastodon 是由一系列独立的服务器共同打造的强大的社交网络,我们将这些各自独立而又相互连接的服务器叫做“实例”。",
- "onboarding.page_one.full_handle": "你的完整用户地址",
- "onboarding.page_one.handle_hint": "你的朋友们需要这个才能通过搜索功能找到你。",
- "onboarding.page_one.welcome": "欢迎来到 Mastodon!",
- "onboarding.page_six.admin": "{admin} 是你所在服务器实例的管理员。",
- "onboarding.page_six.almost_done": "差不多了……",
- "onboarding.page_six.appetoot": "嗷呜~",
- "onboarding.page_six.apps_available": "我们还有适用于 iOS、Android 和其它平台的{apps}哦~",
- "onboarding.page_six.github": "Mastodon 是自由的开源软件。欢迎前往 {github} 反馈问题、提出对新功能的建议或贡献代码 :-)",
- "onboarding.page_six.guidelines": "社区指南",
- "onboarding.page_six.read_guidelines": "别忘了看看 {domain} 的{guidelines}!",
- "onboarding.page_six.various_app": "移动设备应用",
- "onboarding.page_three.profile": "你还可以修改你的个人资料,比如头像、简介和昵称等偏好设置。",
- "onboarding.page_three.search": "你可以通过搜索功能寻找用户和话题标签,比如“{illustration}”,或是“{introductions}”。如果你想搜索其他实例上的用户,就需要输入完整用户地址(@用户名@域名)哦。",
- "onboarding.page_two.compose": "在撰写栏中开始嘟嘟吧!下方的按钮分别可以用来上传图片、修改嘟文可见范围,以及添加警告信息。",
- "onboarding.skip": "跳过",
"privacy.change": "设置嘟文可见范围",
"privacy.direct.long": "只有被提及的用户能看到",
"privacy.direct.short": "私信",
@@ -283,6 +297,8 @@
"search_results.statuses": "嘟文",
"search_results.total": "共 {count, number} 个结果",
"standalone.public_title": "大家都在干啥?",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "屏蔽 @{name}",
"status.cancel_reblog_private": "取消转嘟",
"status.cannot_reblog": "无法转嘟这条嘟文",
@@ -318,6 +334,7 @@
"status.show_less_all": "隐藏所有内容",
"status.show_more": "显示内容",
"status.show_more_all": "显示所有内容",
+ "status.show_thread": "Show thread",
"status.unmute_conversation": "不再隐藏此对话",
"status.unpin": "在个人资料页面取消置顶",
"suggestions.dismiss": "Dismiss suggestion",
diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json
index e09f32d9c..875c18851 100644
--- a/app/javascript/mastodon/locales/zh-HK.json
+++ b/app/javascript/mastodon/locales/zh-HK.json
@@ -1,4 +1,5 @@
{
+ "account.add_or_remove_from_list": "Add or Remove from lists",
"account.badges.bot": "機械人",
"account.block": "封鎖 @{name}",
"account.block_domain": "隱藏來自 {domain} 的一切文章",
@@ -16,6 +17,7 @@
"account.follows_you": "關注你",
"account.hide_reblogs": "隱藏 @{name} 的轉推",
"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.media": "媒體",
"account.mention": "提及 @{name}",
"account.moved_to": "{name} 已經遷移到:",
@@ -111,6 +113,7 @@
"emoji_button.search_results": "搜尋結果",
"emoji_button.symbols": "符號",
"emoji_button.travel": "旅遊景物",
+ "empty_column.account_timeline": "No toots here!",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "本站時間軸暫時未有內容,快寫一點東西來搶頭香啊!",
"empty_column.direct": "你沒有個人訊息。當你發出或接收個人訊息,就會在這裡出現。",
@@ -134,16 +137,40 @@
"follow_request.authorize": "批准",
"follow_request.reject": "拒絕",
"getting_started.developers": "開發者",
+ "getting_started.directory": "Profile directory",
"getting_started.documentation": "Documentation",
- "getting_started.find_friends": "尋找 Twitter 好友",
"getting_started.heading": "開始使用",
"getting_started.invite": "邀請使用者",
"getting_started.open_source_notice": "Mastodon(萬象)是一個開放源碼的軟件。你可以在官方 GitHub ({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.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": "基本",
"home.column_settings.show_reblogs": "顯示被轉推的文章",
"home.column_settings.show_replies": "顯示回應文章",
+ "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",
+ "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.",
+ "introduction.interactions.action": "Finish tutorial!",
+ "introduction.interactions.favourite.headline": "Favourite",
+ "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.text": "You can share other people's toots with your followers by boosting them.",
+ "introduction.interactions.reply.headline": "Reply",
+ "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.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": "後退",
"keyboard_shortcuts.blocked": "to open blocked users list",
"keyboard_shortcuts.boost": "轉推",
@@ -220,34 +247,21 @@
"notifications.clear_confirmation": "你確定要清空通知紀錄嗎?",
"notifications.column_settings.alert": "顯示桌面通知",
"notifications.column_settings.favourite": "收藏了你的文章:",
+ "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.follow": "關注你:",
"notifications.column_settings.mention": "提及你:",
"notifications.column_settings.push": "推送通知",
"notifications.column_settings.reblog": "轉推你的文章:",
"notifications.column_settings.show": "在通知欄顯示",
"notifications.column_settings.sound": "播放音效",
+ "notifications.filter.all": "All",
+ "notifications.filter.boosts": "Boosts",
+ "notifications.filter.favourites": "Favourites",
+ "notifications.filter.follows": "Follows",
+ "notifications.filter.mentions": "Mentions",
"notifications.group": "{count} 條通知",
- "onboarding.done": "開始使用",
- "onboarding.next": "繼續",
- "onboarding.page_five.public_timelines": "「本站時間軸」顯示在 {domain} 各用戶的公開文章。「跨站時間軸」顯示在 {domain} 各人關注的所有用戶(包括其他服務站)的公開文章。這些都是「公共時間軸」,是認識新朋友的好地方。",
- "onboarding.page_four.home": "「主頁」顯示你所關注用戶的文章。",
- "onboarding.page_four.notifications": "「通知」欄顯示你和其他人的互動。",
- "onboarding.page_one.federation": "Mastodon(萬象社交)是由一批獨立網站組成的龐大網絡,我們將這些獨立又互連網站稱為「服務站」(instance) 。",
- "onboarding.page_one.full_handle": "你的帳號全名",
- "onboarding.page_one.handle_hint": "朋友可以從這個帳號全名找到你。",
- "onboarding.page_one.welcome": "歡迎使用 Mastodon(萬象社交)!",
- "onboarding.page_six.admin": "你服務站的管理員是{admin}。",
- "onboarding.page_six.almost_done": "差不多了……",
- "onboarding.page_six.appetoot": "手機,你好!",
- "onboarding.page_six.apps_available": "目前支援 Mastodon 的{apps}已經支援 iOS、Android 和其他系統平台。",
- "onboarding.page_six.github": "Mastodon (萬象)是一個開源的程式,你可以在 {github} 上回報問題、提議新功能、或者參與開發貢獻。",
- "onboarding.page_six.guidelines": "社群守則",
- "onboarding.page_six.read_guidelines": "請留意閱讀 {domain} 的 {guidelines}!",
- "onboarding.page_six.various_app": "各手機應用程式",
- "onboarding.page_three.profile": "修改你個人頭像、簡介和顯示名稱,並可找到其他設定的頁面。",
- "onboarding.page_three.search": "用「搜尋」框去找用戶或標籤像「{illustration}」和「{introductions}」。若你想找的人在別的服務站,請用完整的「@用戶名@網域」格式搜尋。",
- "onboarding.page_two.compose": "在編寫欄寫你的文章。你可以在此上載圖片、修改文章的私隱度、及加入適當的內容警告。",
- "onboarding.skip": "略過",
"privacy.change": "調整私隱設定",
"privacy.direct.long": "只有提及的用戶能看到",
"privacy.direct.short": "私人訊息",
@@ -283,6 +297,8 @@
"search_results.statuses": "文章",
"search_results.total": "{count, number} 項結果",
"standalone.public_title": "站點一瞥…",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "封鎖 @{name}",
"status.cancel_reblog_private": "取消轉推",
"status.cannot_reblog": "這篇文章無法被轉推",
@@ -318,6 +334,7 @@
"status.show_less_all": "減少顯示這類文章",
"status.show_more": "顯示更多",
"status.show_more_all": "顯示更多這類文章",
+ "status.show_thread": "Show thread",
"status.unmute_conversation": "解禁對話",
"status.unpin": "解除置頂",
"suggestions.dismiss": "Dismiss suggestion",
diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json
index 532990b1f..2b2acd771 100644
--- a/app/javascript/mastodon/locales/zh-TW.json
+++ b/app/javascript/mastodon/locales/zh-TW.json
@@ -1,4 +1,5 @@
{
+ "account.add_or_remove_from_list": "Add or Remove from lists",
"account.badges.bot": "機器人",
"account.block": "封鎖 @{name}",
"account.block_domain": "隱藏來自 {domain} 的一切嘟文",
@@ -16,6 +17,7 @@
"account.follows_you": "關注你",
"account.hide_reblogs": "隱藏來自 @{name} 的轉推",
"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.media": "媒體",
"account.mention": "提到 @{name}",
"account.moved_to": "{name} 已經移至:",
@@ -111,6 +113,7 @@
"emoji_button.search_results": "搜尋結果",
"emoji_button.symbols": "符號",
"emoji_button.travel": "旅遊與地點",
+ "empty_column.account_timeline": "No toots here!",
"empty_column.blocks": "你還沒有封鎖任何使用者。",
"empty_column.community": "本地時間軸是空的。公開寫點什麼吧!",
"empty_column.direct": "你還沒有使用過私訊。當你發出或著收到私訊時,它會在這裡顯示。",
@@ -134,16 +137,40 @@
"follow_request.authorize": "授權",
"follow_request.reject": "拒絕",
"getting_started.developers": "開發",
+ "getting_started.directory": "Profile directory",
"getting_started.documentation": "文件",
- "getting_started.find_friends": "尋找 Twitter 好友",
"getting_started.heading": "馬上開始",
"getting_started.invite": "邀請使用者",
"getting_started.open_source_notice": "Mastodon 是開源軟體。你可以在 GitHub {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.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": "基本",
"home.column_settings.show_reblogs": "顯示轉推",
"home.column_settings.show_replies": "顯示回應",
+ "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",
+ "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.",
+ "introduction.interactions.action": "Finish tutorial!",
+ "introduction.interactions.favourite.headline": "Favourite",
+ "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.text": "You can share other people's toots with your followers by boosting them.",
+ "introduction.interactions.reply.headline": "Reply",
+ "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.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": "回到上一個",
"keyboard_shortcuts.blocked": "到封鎖的使用者名單",
"keyboard_shortcuts.boost": "到轉推",
@@ -220,34 +247,21 @@
"notifications.clear_confirmation": "確定要永久清除你的通知嗎?",
"notifications.column_settings.alert": "桌面通知",
"notifications.column_settings.favourite": "最愛:",
+ "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.follow": "新的關注者:",
"notifications.column_settings.mention": "提到:",
"notifications.column_settings.push": "推送通知",
"notifications.column_settings.reblog": "轉嘟:",
"notifications.column_settings.show": "顯示在欄位中",
"notifications.column_settings.sound": "播放音效",
+ "notifications.filter.all": "All",
+ "notifications.filter.boosts": "Boosts",
+ "notifications.filter.favourites": "Favourites",
+ "notifications.filter.follows": "Follows",
+ "notifications.filter.mentions": "Mentions",
"notifications.group": "{count} 條通知",
- "onboarding.done": "完成",
- "onboarding.next": "下一步",
- "onboarding.page_five.public_timelines": "本站時間軸顯示 {domain} 上所有的公開嘟文。其他站點時間軸顯示 {domain} 上所有人關注的公開嘟文。這就是公開時間軸,發現新朋友的好地方。",
- "onboarding.page_four.home": "主頁時間軸顯示所有你關注的人的嘟文。",
- "onboarding.page_four.notifications": "通知欄顯示別人和你的互動。",
- "onboarding.page_one.federation": "Mastodon 是由獨立的伺服器連結起來,形成的大社群網路。我們把這些伺服器稱為站點。",
- "onboarding.page_one.full_handle": "你的完整帳戶名稱",
- "onboarding.page_one.handle_hint": "你的朋友們可以從這個帳戶全名找到你。",
- "onboarding.page_one.welcome": "歡迎來到 Mastodon !",
- "onboarding.page_six.admin": "你的站點的管理員是 {admin} 。",
- "onboarding.page_six.almost_done": "快好了…",
- "onboarding.page_six.appetoot": "嗷嗚~!",
- "onboarding.page_six.apps_available": "在 iOS 、 Android 和其他平台上有這些 {apps} 可以用。",
- "onboarding.page_six.github": "Mastodon 是自由的開源軟體。你可以在 {github} 上回報問題、請求新功能或是做出貢獻。",
- "onboarding.page_six.guidelines": "社群指南",
- "onboarding.page_six.read_guidelines": "請閱讀 {domain} 的 {guidelines} !",
- "onboarding.page_six.various_app": "行動版應用程式",
- "onboarding.page_three.profile": "編輯你的頭貼、簡介與顯示名稱。你也可以在這邊找到其他設定。",
- "onboarding.page_three.search": "利用搜尋列來找到其他人或是主題標籤,像是 {illustration} 或 {introductions} 。用完整的帳戶名稱來找其他站點上的使用者。",
- "onboarding.page_two.compose": "在編輯欄寫些什麼。可以上傳圖片、改變隱私設定或是用下面的圖示加上內容警告。",
- "onboarding.skip": "跳過",
"privacy.change": "調整隱私狀態",
"privacy.direct.long": "只有被提到的使用者能看到",
"privacy.direct.short": "私訊",
@@ -283,6 +297,8 @@
"search_results.statuses": "嘟文",
"search_results.total": "{count, number} 項結果",
"standalone.public_title": "站點一瞥…",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this status in the moderation interface",
"status.block": "封鎖 @{name}",
"status.cancel_reblog_private": "取消轉嘟",
"status.cannot_reblog": "這篇嘟文無法被轉嘟",
@@ -318,6 +334,7 @@
"status.show_less_all": "減少顯示這類嘟文",
"status.show_more": "顯示更多",
"status.show_more_all": "顯示更多這類嘟文",
+ "status.show_thread": "Show thread",
"status.unmute_conversation": "解除此對話的靜音",
"status.unpin": "解除置頂",
"suggestions.dismiss": "Dismiss suggestion",
diff --git a/app/javascript/mastodon/reducers/compose.js b/app/javascript/mastodon/reducers/compose.js
index 127c99e5c..3d5dcb1f6 100644
--- a/app/javascript/mastodon/reducers/compose.js
+++ b/app/javascript/mastodon/reducers/compose.js
@@ -53,6 +53,7 @@ const initialState = ImmutableMap({
in_reply_to: null,
is_composing: false,
is_submitting: false,
+ is_changing_upload: false,
is_uploading: false,
progress: 0,
media_attachments: ImmutableList(),
@@ -82,6 +83,7 @@ function clearAll(state) {
map.set('spoiler', false);
map.set('spoiler_text', '');
map.set('is_submitting', false);
+ map.set('is_changing_upload', false);
map.set('in_reply_to', null);
map.set('privacy', state.get('default_privacy'));
map.set('federation', state.get('default_federation'));
@@ -258,13 +260,15 @@ export default function compose(state = initialState, action) {
map.set('idempotencyKey', uuid());
});
case COMPOSE_SUBMIT_REQUEST:
- case COMPOSE_UPLOAD_CHANGE_REQUEST:
return state.set('is_submitting', true);
+ case COMPOSE_UPLOAD_CHANGE_REQUEST:
+ return state.set('is_changing_upload', true);
case COMPOSE_SUBMIT_SUCCESS:
return clearAll(state);
case COMPOSE_SUBMIT_FAIL:
- case COMPOSE_UPLOAD_CHANGE_FAIL:
return state.set('is_submitting', false);
+ case COMPOSE_UPLOAD_CHANGE_FAIL:
+ return state.set('is_changing_upload', false);
case COMPOSE_UPLOAD_REQUEST:
return state.set('is_uploading', true);
case COMPOSE_UPLOAD_SUCCESS:
@@ -310,7 +314,7 @@ export default function compose(state = initialState, action) {
return insertEmoji(state, action.position, action.emoji, action.needsSpace);
case COMPOSE_UPLOAD_CHANGE_SUCCESS:
return state
- .set('is_submitting', false)
+ .set('is_changing_upload', false)
.update('media_attachments', list => list.map(item => {
if (item.get('id') === action.media.id) {
return fromJS(action.media);
diff --git a/app/javascript/mastodon/reducers/index.js b/app/javascript/mastodon/reducers/index.js
index 2c98af1db..0f0de849f 100644
--- a/app/javascript/mastodon/reducers/index.js
+++ b/app/javascript/mastodon/reducers/index.js
@@ -25,6 +25,7 @@ import height_cache from './height_cache';
import custom_emojis from './custom_emojis';
import lists from './lists';
import listEditor from './list_editor';
+import listAdder from './list_adder';
import filters from './filters';
import conversations from './conversations';
import suggestions from './suggestions';
@@ -56,6 +57,7 @@ const reducers = {
custom_emojis,
lists,
listEditor,
+ listAdder,
filters,
conversations,
suggestions,
diff --git a/app/javascript/mastodon/reducers/list_adder.js b/app/javascript/mastodon/reducers/list_adder.js
new file mode 100644
index 000000000..b8c1b0e26
--- /dev/null
+++ b/app/javascript/mastodon/reducers/list_adder.js
@@ -0,0 +1,47 @@
+import { Map as ImmutableMap, List as ImmutableList } from 'immutable';
+import {
+ LIST_ADDER_RESET,
+ LIST_ADDER_SETUP,
+ LIST_ADDER_LISTS_FETCH_REQUEST,
+ LIST_ADDER_LISTS_FETCH_SUCCESS,
+ LIST_ADDER_LISTS_FETCH_FAIL,
+ LIST_EDITOR_ADD_SUCCESS,
+ LIST_EDITOR_REMOVE_SUCCESS,
+} from '../actions/lists';
+
+const initialState = ImmutableMap({
+ accountId: null,
+
+ lists: ImmutableMap({
+ items: ImmutableList(),
+ loaded: false,
+ isLoading: false,
+ }),
+});
+
+export default function listAdderReducer(state = initialState, action) {
+ switch(action.type) {
+ case LIST_ADDER_RESET:
+ return initialState;
+ case LIST_ADDER_SETUP:
+ return state.withMutations(map => {
+ map.set('accountId', action.account.get('id'));
+ });
+ case LIST_ADDER_LISTS_FETCH_REQUEST:
+ return state.setIn(['lists', 'isLoading'], true);
+ case LIST_ADDER_LISTS_FETCH_FAIL:
+ return state.setIn(['lists', 'isLoading'], false);
+ case LIST_ADDER_LISTS_FETCH_SUCCESS:
+ return state.update('lists', lists => lists.withMutations(map => {
+ map.set('isLoading', false);
+ map.set('loaded', true);
+ map.set('items', ImmutableList(action.lists.map(item => item.id)));
+ }));
+ case LIST_EDITOR_ADD_SUCCESS:
+ return state.updateIn(['lists', 'items'], list => list.unshift(action.listId));
+ case LIST_EDITOR_REMOVE_SUCCESS:
+ return state.updateIn(['lists', 'items'], list => list.filterNot(item => item === action.listId));
+ default:
+ return state;
+ }
+};
diff --git a/app/javascript/mastodon/reducers/notifications.js b/app/javascript/mastodon/reducers/notifications.js
index d71ae00ae..19a02f5b1 100644
--- a/app/javascript/mastodon/reducers/notifications.js
+++ b/app/javascript/mastodon/reducers/notifications.js
@@ -3,6 +3,7 @@ import {
NOTIFICATIONS_EXPAND_SUCCESS,
NOTIFICATIONS_EXPAND_REQUEST,
NOTIFICATIONS_EXPAND_FAIL,
+ NOTIFICATIONS_FILTER_SET,
NOTIFICATIONS_CLEAR,
NOTIFICATIONS_SCROLL_TOP,
} from '../actions/notifications';
@@ -98,6 +99,8 @@ export default function notifications(state = initialState, action) {
return state.set('isLoading', true);
case NOTIFICATIONS_EXPAND_FAIL:
return state.set('isLoading', false);
+ case NOTIFICATIONS_FILTER_SET:
+ return state.set('items', ImmutableList()).set('hasMore', true);
case NOTIFICATIONS_SCROLL_TOP:
return updateTop(state, action.top);
case NOTIFICATIONS_UPDATE:
diff --git a/app/javascript/mastodon/reducers/settings.js b/app/javascript/mastodon/reducers/settings.js
index 12bcc2583..2e1878cf7 100644
--- a/app/javascript/mastodon/reducers/settings.js
+++ b/app/javascript/mastodon/reducers/settings.js
@@ -1,4 +1,5 @@
import { SETTING_CHANGE, SETTING_SAVE } from '../actions/settings';
+import { NOTIFICATIONS_FILTER_SET } from '../actions/notifications';
import { COLUMN_ADD, COLUMN_REMOVE, COLUMN_MOVE, COLUMN_PARAMS_CHANGE } from '../actions/columns';
import { STORE_HYDRATE } from '../actions/store';
import { EMOJI_USE } from '../actions/emojis';
@@ -32,6 +33,12 @@ const initialState = ImmutableMap({
mention: true,
}),
+ quickFilter: ImmutableMap({
+ active: 'all',
+ show: true,
+ advanced: false,
+ }),
+
shows: ImmutableMap({
follow: true,
favourite: true,
@@ -112,6 +119,7 @@ export default function settings(state = initialState, action) {
switch(action.type) {
case STORE_HYDRATE:
return hydrate(state, action.state.get('settings'));
+ case NOTIFICATIONS_FILTER_SET:
case SETTING_CHANGE:
return state
.setIn(action.path, action.value)
diff --git a/app/javascript/mastodon/reducers/timelines.js b/app/javascript/mastodon/reducers/timelines.js
index 916a091eb..1f7ece812 100644
--- a/app/javascript/mastodon/reducers/timelines.js
+++ b/app/javascript/mastodon/reducers/timelines.js
@@ -1,6 +1,7 @@
import {
TIMELINE_UPDATE,
TIMELINE_DELETE,
+ TIMELINE_CLEAR,
TIMELINE_EXPAND_SUCCESS,
TIMELINE_EXPAND_REQUEST,
TIMELINE_EXPAND_FAIL,
@@ -25,10 +26,10 @@ const initialTimeline = ImmutableMap({
items: ImmutableList(),
});
-const expandNormalizedTimeline = (state, timeline, statuses, next, isPartial) => {
+const expandNormalizedTimeline = (state, timeline, statuses, next, isPartial, isLoadingRecent) => {
return state.update(timeline, initialTimeline, map => map.withMutations(mMap => {
mMap.set('isLoading', false);
- if (!next) mMap.set('hasMore', false);
+ if (!next && !isLoadingRecent) mMap.set('hasMore', false);
if (!statuses.isEmpty()) {
mMap.update('items', ImmutableList(), oldIds => {
@@ -86,6 +87,10 @@ const deleteStatus = (state, id, accountId, references) => {
return state;
};
+const clearTimeline = (state, timeline) => {
+ return state.set(timeline, initialTimeline);
+};
+
const filterTimelines = (state, relationship, statuses) => {
let references;
@@ -121,11 +126,13 @@ export default function timelines(state = initialState, action) {
case TIMELINE_EXPAND_FAIL:
return state.update(action.timeline, initialTimeline, map => map.set('isLoading', false));
case TIMELINE_EXPAND_SUCCESS:
- return expandNormalizedTimeline(state, action.timeline, fromJS(action.statuses), action.next, action.partial);
+ return expandNormalizedTimeline(state, action.timeline, fromJS(action.statuses), action.next, action.partial, action.isLoadingRecent);
case TIMELINE_UPDATE:
return updateTimeline(state, action.timeline, fromJS(action.status));
case TIMELINE_DELETE:
return deleteStatus(state, action.id, action.accountId, action.references, action.reblogOf);
+ case TIMELINE_CLEAR:
+ return clearTimeline(state, action.timeline);
case ACCOUNT_BLOCK_SUCCESS:
case ACCOUNT_MUTE_SUCCESS:
return filterTimelines(state, action.relationship, action.statuses);
diff --git a/app/javascript/mastodon/store/configureStore.js b/app/javascript/mastodon/store/configureStore.js
index 1376d4cba..7e7472841 100644
--- a/app/javascript/mastodon/store/configureStore.js
+++ b/app/javascript/mastodon/store/configureStore.js
@@ -11,5 +11,5 @@ export default function configureStore() {
loadingBarMiddleware({ promiseTypeSuffixes: ['REQUEST', 'SUCCESS', 'FAIL'] }),
errorsMiddleware(),
soundsMiddleware()
- ), window.devToolsExtension ? window.devToolsExtension() : f => f));
+ ), window.__REDUX_DEVTOOLS_EXTENSION__ ? window.__REDUX_DEVTOOLS_EXTENSION__() : f => f));
};
diff --git a/app/javascript/packs/public.js b/app/javascript/packs/public.js
index 3b02b7c39..6ba37c049 100644
--- a/app/javascript/packs/public.js
+++ b/app/javascript/packs/public.js
@@ -1,3 +1,4 @@
+import escapeTextContentForBrowser from 'escape-html';
import loadPolyfills from '../mastodon/load_polyfills';
import ready from '../mastodon/ready';
import { start } from '../mastodon/common';
@@ -63,7 +64,7 @@ function main() {
content.textContent = timeAgoString({
formatMessage: ({ id, defaultMessage }, values) => (new IntlMessageFormat(messages[id] || defaultMessage, locale)).format(values),
formatDate: (date, options) => (new Intl.DateTimeFormat(locale, options)).format(date),
- }, datetime, now, datetime.getFullYear());
+ }, datetime, now, now.getFullYear());
});
const reactComponents = document.querySelectorAll('[data-component]');
@@ -133,9 +134,12 @@ function main() {
delegate(document, '#account_display_name', 'input', ({ target }) => {
const name = document.querySelector('.card .display-name strong');
-
if (name) {
- name.innerHTML = emojify(target.value);
+ if (target.value) {
+ name.innerHTML = emojify(escapeTextContentForBrowser(target.value));
+ } else {
+ name.textContent = document.querySelector('#default_account_display_name').textContent;
+ }
}
});
diff --git a/app/javascript/styles/application.scss b/app/javascript/styles/application.scss
index 0990a4f25..4bce74187 100644
--- a/app/javascript/styles/application.scss
+++ b/app/javascript/styles/application.scss
@@ -16,6 +16,7 @@
@import 'mastodon/stream_entries';
@import 'mastodon/boost';
@import 'mastodon/components';
+@import 'mastodon/introduction';
@import 'mastodon/modal';
@import 'mastodon/emoji_picker';
@import 'mastodon/about';
diff --git a/app/javascript/styles/mailer.scss b/app/javascript/styles/mailer.scss
index d83bd4d96..74d1df8ed 100644
--- a/app/javascript/styles/mailer.scss
+++ b/app/javascript/styles/mailer.scss
@@ -426,6 +426,10 @@ h5 {
background: $success-green;
}
+ &.alert-icon td {
+ background: $error-red;
+ }
+
img {
max-width: 32px;
width: 32px;
diff --git a/app/javascript/styles/mastodon/_mixins.scss b/app/javascript/styles/mastodon/_mixins.scss
index 67d768a6c..d5bafe6b6 100644
--- a/app/javascript/styles/mastodon/_mixins.scss
+++ b/app/javascript/styles/mastodon/_mixins.scss
@@ -10,3 +10,34 @@
height: $size;
background-size: $size $size;
}
+
+@mixin search-input() {
+ outline: 0;
+ box-sizing: border-box;
+ width: 100%;
+ border: none;
+ box-shadow: none;
+ font-family: inherit;
+ background: $ui-base-color;
+ color: $darker-text-color;
+ font-size: 14px;
+ margin: 0;
+
+ &::-moz-focus-inner {
+ border: 0;
+ }
+
+ &::-moz-focus-inner,
+ &:focus,
+ &:active {
+ outline: 0 !important;
+ }
+
+ &:focus {
+ background: lighten($ui-base-color, 4%);
+ }
+
+ @media screen and (max-width: 600px) {
+ font-size: 16px;
+ }
+}
diff --git a/app/javascript/styles/mastodon/accounts.scss b/app/javascript/styles/mastodon/accounts.scss
index 06effbdb2..63a5c61b8 100644
--- a/app/javascript/styles/mastodon/accounts.scss
+++ b/app/javascript/styles/mastodon/accounts.scss
@@ -189,6 +189,11 @@
&--under-tabs {
border-radius: 0 0 4px 4px;
}
+
+ &--flexible {
+ box-sizing: border-box;
+ min-height: 100%;
+ }
}
.account-role {
diff --git a/app/javascript/styles/mastodon/admin.scss b/app/javascript/styles/mastodon/admin.scss
index b6c771abf..375c655f5 100644
--- a/app/javascript/styles/mastodon/admin.scss
+++ b/app/javascript/styles/mastodon/admin.scss
@@ -151,6 +151,20 @@ $no-columns-breakpoint: 600px;
font-weight: 500;
}
+ .directory__tag a {
+ box-shadow: none;
+ }
+
+ .directory__tag h4 {
+ font-size: 18px;
+ font-weight: 700;
+ color: $primary-text-color;
+ text-transform: none;
+ padding-bottom: 0;
+ margin-bottom: 0;
+ border-bottom: none;
+ }
+
& > p {
font-size: 14px;
line-height: 18px;
@@ -542,6 +556,10 @@ a.name-tag,
border-left-color: lighten($error-red, 12%);
}
+ &.warning {
+ border-left-color: $gold-star;
+ }
+
&__bubble {
padding: 16px;
padding-left: 14px;
diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss
index 20838da83..10e094648 100644
--- a/app/javascript/styles/mastodon/components.scss
+++ b/app/javascript/styles/mastodon/components.scss
@@ -876,7 +876,8 @@
}
}
-.status__relative-time {
+.status__relative-time,
+.notification__relative_time {
color: $dark-text-color;
float: right;
font-size: 14px;
@@ -982,7 +983,6 @@
.status__action-bar-dropdown {
height: 23.15px;
width: 23.15px;
- margin-right: 18px;
}
.detailed-status__action-bar-dropdown {
@@ -1490,6 +1490,7 @@ a.account__display-name {
cursor: default;
color: $darker-text-color;
font-size: 15px;
+ line-height: 22px;
position: relative;
.fa {
@@ -1497,7 +1498,7 @@ a.account__display-name {
}
> span {
- display: block;
+ display: inline;
overflow: hidden;
text-overflow: ellipsis;
}
@@ -1527,6 +1528,10 @@ a.account__display-name {
}
}
+.notification__relative_time {
+ float: right;
+}
+
.display-name {
display: block;
max-width: 100%;
@@ -2093,6 +2098,17 @@ a.account__display-name {
@supports(display: grid) { // hack to fix Chrome <57
contain: strict;
}
+
+ &--flex {
+ display: flex;
+ flex-direction: column;
+ }
+
+ &__append {
+ flex: 1 1 auto;
+ position: relative;
+ min-height: 120px;
+ }
}
.scrollable.fullscreen {
@@ -2571,6 +2587,15 @@ a.status-card {
flex: 0 0 100px;
background: lighten($ui-base-color, 8%);
position: relative;
+
+ & > .fa {
+ font-size: 21px;
+ position: absolute;
+ transform-origin: 50% 50%;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ }
}
.status-card.horizontal {
@@ -2885,7 +2910,6 @@ a.status-card.compact:hover {
transform: translateX(-50%);
margin: 82px 0 0 50%;
white-space: nowrap;
- animation: loader-label 1.15s infinite cubic-bezier(0.215, 0.610, 0.355, 1.000);
}
}
@@ -2894,11 +2918,20 @@ a.status-card.compact:hover {
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
- width: 0;
- height: 0;
+ width: 42px;
+ height: 42px;
box-sizing: border-box;
+ background-color: transparent;
border: 0 solid lighten($ui-base-color, 26%);
+ border-width: 6px;
border-radius: 50%;
+}
+
+.no-reduce-motion .loading-indicator span {
+ animation: loader-label 1.15s infinite cubic-bezier(0.215, 0.610, 0.355, 1.000);
+}
+
+.no-reduce-motion .loading-indicator__figure {
animation: loader-figure 1.15s infinite cubic-bezier(0.215, 0.610, 0.355, 1.000);
}
@@ -3023,6 +3056,26 @@ a.status-card.compact:hover {
display: block;
font-weight: 500;
margin-bottom: 10px;
+
+ .column-settings__hashtag-select {
+ &__control {
+ @include search-input();
+ }
+
+ &__multi-value {
+ background: lighten($ui-base-color, 8%);
+ }
+
+ &__multi-value__label,
+ &__input {
+ color: $darker-text-color;
+ }
+
+ &__indicator-separator,
+ &__dropdown-indicator {
+ display: none;
+ }
+ }
}
.column-settings__row {
@@ -3474,36 +3527,10 @@ a.status-card.compact:hover {
}
.search__input {
- outline: 0;
- box-sizing: border-box;
display: block;
- width: 100%;
- border: none;
padding: 10px;
padding-right: 30px;
- font-family: inherit;
- background: $ui-base-color;
- color: $darker-text-color;
- font-size: 14px;
- margin: 0;
-
- &::-moz-focus-inner {
- border: 0;
- }
-
- &::-moz-focus-inner,
- &:focus,
- &:active {
- outline: 0 !important;
- }
-
- &:focus {
- background: lighten($ui-base-color, 4%);
- }
-
- @media screen and (max-width: 600px) {
- font-size: 16px;
- }
+ @include search-input();
}
.search__icon {
@@ -3780,25 +3807,6 @@ a.status-card.compact:hover {
flex-direction: column;
}
-.onboarding-modal__pager {
- height: 80vh;
- width: 80vw;
- max-width: 520px;
- max-height: 470px;
-
- .react-swipeable-view-container > div {
- width: 100%;
- height: 100%;
- box-sizing: border-box;
- display: none;
- flex-direction: column;
- align-items: center;
- justify-content: center;
- display: flex;
- user-select: text;
- }
-}
-
.error-modal__body {
height: 80vh;
width: 80vw;
@@ -3832,22 +3840,6 @@ a.status-card.compact:hover {
text-align: center;
}
-@media screen and (max-width: 550px) {
- .onboarding-modal {
- width: 100%;
- height: 100%;
- border-radius: 0;
- }
-
- .onboarding-modal__pager {
- width: 100%;
- height: auto;
- max-width: none;
- max-height: none;
- flex: 1 1 auto;
- }
-}
-
.onboarding-modal__paginator,
.error-modal__footer {
flex: 0 0 auto;
@@ -3896,124 +3888,6 @@ a.status-card.compact:hover {
justify-content: center;
}
-.onboarding-modal__dots {
- flex: 1 1 auto;
- display: flex;
- align-items: center;
- justify-content: center;
-}
-
-.onboarding-modal__dot {
- width: 14px;
- height: 14px;
- border-radius: 14px;
- background: darken($ui-secondary-color, 16%);
- margin: 0 3px;
- cursor: pointer;
-
- &:hover {
- background: darken($ui-secondary-color, 18%);
- }
-
- &.active {
- cursor: default;
- background: darken($ui-secondary-color, 24%);
- }
-}
-
-.onboarding-modal__page__wrapper {
- pointer-events: none;
- padding: 25px;
- padding-bottom: 0;
-
- &.onboarding-modal__page__wrapper--active {
- pointer-events: auto;
- }
-}
-
-.onboarding-modal__page {
- cursor: default;
- line-height: 21px;
-
- h1 {
- font-size: 18px;
- font-weight: 500;
- color: $inverted-text-color;
- margin-bottom: 20px;
- }
-
- a {
- color: $highlight-text-color;
-
- &:hover,
- &:focus,
- &:active {
- color: lighten($highlight-text-color, 4%);
- }
- }
-
- .navigation-bar a {
- color: inherit;
- }
-
- p {
- font-size: 16px;
- color: $lighter-text-color;
- margin-top: 10px;
- margin-bottom: 10px;
-
- &:last-child {
- margin-bottom: 0;
- }
-
- strong {
- font-weight: 500;
- background: $ui-base-color;
- color: $secondary-text-color;
- border-radius: 4px;
- font-size: 14px;
- padding: 3px 6px;
-
- @each $lang in $cjk-langs {
- &:lang(#{$lang}) {
- font-weight: 700;
- }
- }
- }
- }
-}
-
-.onboarding-modal__page__wrapper-0 {
- background: url('../images/elephant_ui_greeting.svg') no-repeat left bottom / auto 250px;
- height: 100%;
- padding: 0;
-}
-
-.onboarding-modal__page-one {
- &__lead {
- padding: 65px;
- padding-top: 45px;
- padding-bottom: 0;
- margin-bottom: 10px;
-
- h1 {
- font-size: 26px;
- line-height: 36px;
- margin-bottom: 8px;
- }
-
- p {
- margin-bottom: 0;
- }
- }
-
- &__extra {
- padding-right: 65px;
- padding-left: 185px;
- text-align: center;
- }
-}
-
.display-case {
text-align: center;
font-size: 15px;
@@ -4036,92 +3910,6 @@ a.status-card.compact:hover {
}
}
-.onboarding-modal__page-two,
-.onboarding-modal__page-three,
-.onboarding-modal__page-four,
-.onboarding-modal__page-five {
- p {
- text-align: left;
- }
-
- .figure {
- background: darken($ui-base-color, 8%);
- color: $secondary-text-color;
- margin-bottom: 20px;
- border-radius: 4px;
- padding: 10px;
- text-align: center;
- font-size: 14px;
- box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.3);
-
- .onboarding-modal__image {
- border-radius: 4px;
- margin-bottom: 10px;
- }
-
- &.non-interactive {
- pointer-events: none;
- text-align: left;
- }
- }
-}
-
-.onboarding-modal__page-four__columns {
- .row {
- display: flex;
- margin-bottom: 20px;
-
- & > div {
- flex: 1 1 0;
- margin: 0 10px;
-
- &:first-child {
- margin-left: 0;
- }
-
- &:last-child {
- margin-right: 0;
- }
-
- p {
- text-align: center;
- }
- }
-
- &:last-child {
- margin-bottom: 0;
- }
- }
-
- .column-header {
- color: $primary-text-color;
- }
-}
-
-@media screen and (max-width: 320px) and (max-height: 600px) {
- .onboarding-modal__page p {
- font-size: 14px;
- line-height: 20px;
- }
-
- .onboarding-modal__page-two .figure,
- .onboarding-modal__page-three .figure,
- .onboarding-modal__page-four .figure,
- .onboarding-modal__page-five .figure {
- font-size: 12px;
- margin-bottom: 10px;
- }
-
- .onboarding-modal__page-four__columns .row {
- margin-bottom: 10px;
- }
-
- .onboarding-modal__page-four__columns .column-header {
- padding: 5px;
- font-size: 12px;
- }
-}
-
.onboard-sliders {
display: inline-block;
max-width: 30px;
@@ -4267,6 +4055,7 @@ a.status-card.compact:hover {
color: $highlight-text-color;
}
+ .status__content,
.status__content p {
color: $inverted-text-color;
}
@@ -4655,6 +4444,19 @@ a.status-card.compact:hover {
z-index: 5;
}
+.detailed,
+.fullscreen {
+ .video-player__volume__current,
+ .video-player__volume::before {
+ bottom: 27px;
+ }
+
+ .video-player__volume__handle {
+ bottom: 23px;
+ }
+
+}
+
.video-player {
overflow: hidden;
position: relative;
@@ -4803,7 +4605,7 @@ a.status-card.compact:hover {
&__time-current {
color: $white;
- margin-left: 10px;
+ margin-left: 60px;
}
&__time-sep {
@@ -4816,6 +4618,48 @@ a.status-card.compact:hover {
color: $white;
}
+ &__volume {
+ cursor: pointer;
+ height: 24px;
+ display: inline;
+
+ &::before {
+ content: "";
+ width: 50px;
+ background: rgba($white, 0.35);
+ border-radius: 4px;
+ display: block;
+ position: absolute;
+ height: 4px;
+ left: 70px;
+ bottom: 20px;
+ }
+
+ &__current {
+ display: block;
+ position: absolute;
+ height: 4px;
+ border-radius: 4px;
+ left: 70px;
+ bottom: 20px;
+ background: lighten($ui-highlight-color, 8%);
+ }
+
+ &__handle {
+ position: absolute;
+ z-index: 3;
+ border-radius: 50%;
+ width: 12px;
+ height: 12px;
+ bottom: 16px;
+ left: 70px;
+ transition: opacity .1s ease;
+ background: lighten($ui-highlight-color, 8%);
+ box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);
+ pointer-events: none;
+ }
+ }
+
&__seek {
cursor: pointer;
height: 24px;
@@ -4966,12 +4810,21 @@ a.status-card.compact:hover {
}
}
+.notification__filter-bar,
.account__section-headline {
background: darken($ui-base-color, 4%);
border-bottom: 1px solid lighten($ui-base-color, 8%);
cursor: default;
display: flex;
+ flex-shrink: 0;
+ button {
+ background: darken($ui-base-color, 4%);
+ border: 0;
+ margin: 0;
+ }
+
+ button,
a {
display: block;
flex: 1 1 auto;
@@ -5345,6 +5198,47 @@ noscript {
}
}
+.list-adder {
+ background: $ui-base-color;
+ flex-direction: column;
+ border-radius: 8px;
+ box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);
+ width: 380px;
+ overflow: hidden;
+
+ @media screen and (max-width: 420px) {
+ width: 90%;
+ }
+
+ &__account {
+ background: lighten($ui-base-color, 13%);
+ }
+
+ &__lists {
+ background: lighten($ui-base-color, 13%);
+ height: 50vh;
+ border-radius: 0 0 8px 8px;
+ overflow-y: auto;
+ }
+
+ .list {
+ padding: 10px;
+ border-bottom: 1px solid lighten($ui-base-color, 8%);
+ }
+
+ .list__wrapper {
+ display: flex;
+ }
+
+ .list__display-name {
+ flex: 1 1 auto;
+ overflow: hidden;
+ text-decoration: none;
+ font-size: 16px;
+ padding: 10px;
+ }
+}
+
.focal-point-modal {
max-width: 80vw;
max-height: 80vh;
diff --git a/app/javascript/styles/mastodon/containers.scss b/app/javascript/styles/mastodon/containers.scss
index 44fc1e538..8de53ca98 100644
--- a/app/javascript/styles/mastodon/containers.scss
+++ b/app/javascript/styles/mastodon/containers.scss
@@ -294,6 +294,12 @@
text-decoration: underline;
color: $primary-text-color;
}
+
+ @media screen and (max-width: $no-gap-breakpoint) {
+ &.optional {
+ display: none;
+ }
+ }
}
.nav-button {
diff --git a/app/javascript/styles/mastodon/dashboard.scss b/app/javascript/styles/mastodon/dashboard.scss
index 86cf6c61b..e4564f062 100644
--- a/app/javascript/styles/mastodon/dashboard.scss
+++ b/app/javascript/styles/mastodon/dashboard.scss
@@ -30,13 +30,20 @@
}
}
- &__num {
+ &__num,
+ &__text {
text-align: center;
font-weight: 500;
font-size: 24px;
+ line-height: 21px;
color: $primary-text-color;
font-family: $font-display, sans-serif;
margin-bottom: 20px;
+ line-height: 30px;
+ }
+
+ &__text {
+ font-size: 18px;
}
&__label {
diff --git a/app/javascript/styles/mastodon/forms.scss b/app/javascript/styles/mastodon/forms.scss
index 46ef85774..6132dd1ae 100644
--- a/app/javascript/styles/mastodon/forms.scss
+++ b/app/javascript/styles/mastodon/forms.scss
@@ -266,7 +266,7 @@ code {
font-family: inherit;
font-size: 14px;
color: $primary-text-color;
- display: block;
+ display: inline-block;
width: auto;
position: relative;
padding-top: 5px;
@@ -420,6 +420,7 @@ code {
border: 1px solid darken($ui-base-color, 14%);
border-radius: 4px;
padding: 10px;
+ padding-right: 30px;
height: 41px;
}
diff --git a/app/javascript/styles/mastodon/introduction.scss b/app/javascript/styles/mastodon/introduction.scss
new file mode 100644
index 000000000..222d8f60e
--- /dev/null
+++ b/app/javascript/styles/mastodon/introduction.scss
@@ -0,0 +1,153 @@
+.introduction {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+
+ @media screen and (max-width: 920px) {
+ background: darken($ui-base-color, 8%);
+ display: block !important;
+ }
+
+ &__pager {
+ background: darken($ui-base-color, 8%);
+ box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
+ overflow: hidden;
+ }
+
+ &__pager,
+ &__frame {
+ border-radius: 10px;
+ width: 50vw;
+ min-width: 920px;
+
+ @media screen and (max-width: 920px) {
+ min-width: 0;
+ width: 100%;
+ border-radius: 0;
+ box-shadow: none;
+ }
+ }
+
+ &__frame-wrapper {
+ opacity: 0;
+ transition: opacity 500ms linear;
+
+ &.active {
+ opacity: 1;
+ transition: opacity 50ms linear;
+ }
+ }
+
+ &__frame {
+ overflow: hidden;
+ }
+
+ &__illustration {
+ height: 50vh;
+
+ @media screen and (max-width: 630px) {
+ height: auto;
+ }
+
+ img {
+ object-fit: cover;
+ display: block;
+ margin: 0;
+ width: 100%;
+ height: 100%;
+ }
+ }
+
+ &__text {
+ border-top: 2px solid $ui-highlight-color;
+
+ &--columnized {
+ display: flex;
+
+ & > div {
+ flex: 1 1 33.33%;
+ text-align: center;
+ padding: 25px;
+ padding-bottom: 30px;
+ }
+
+ @media screen and (max-width: 630px) {
+ display: block;
+ padding: 15px 0;
+ padding-bottom: 20px;
+
+ & > div {
+ padding: 10px 25px;
+ }
+ }
+ }
+
+ h3 {
+ font-size: 24px;
+ line-height: 1.5;
+ font-weight: 700;
+ margin-bottom: 10px;
+ }
+
+ p {
+ font-size: 16px;
+ line-height: 24px;
+ font-weight: 400;
+ color: $darker-text-color;
+
+ code {
+ display: inline-block;
+ background: darken($ui-base-color, 8%);
+ font-size: 15px;
+ border: 1px solid lighten($ui-base-color, 8%);
+ border-radius: 2px;
+ padding: 1px 3px;
+ }
+ }
+
+ &--centered {
+ padding: 25px;
+ padding-bottom: 30px;
+ text-align: center;
+ }
+ }
+
+ &__dots {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ padding: 25px;
+
+ @media screen and (max-width: 630px) {
+ display: none;
+ }
+ }
+
+ &__dot {
+ width: 14px;
+ height: 14px;
+ border-radius: 14px;
+ border: 1px solid $ui-highlight-color;
+ background: transparent;
+ margin: 0 3px;
+ cursor: pointer;
+
+ &:hover {
+ background: lighten($ui-base-color, 8%);
+ }
+
+ &.active {
+ cursor: default;
+ background: $ui-highlight-color;
+ }
+ }
+
+ &__action {
+ padding: 25px;
+ padding-top: 0;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+}
diff --git a/app/javascript/styles/mastodon/reset.scss b/app/javascript/styles/mastodon/reset.scss
index a140e8bc7..e24ba8c1c 100644
--- a/app/javascript/styles/mastodon/reset.scss
+++ b/app/javascript/styles/mastodon/reset.scss
@@ -54,8 +54,7 @@ table {
}
html {
- scrollbar-face-color: lighten($ui-base-color, 4%);
- scrollbar-track-color: rgba($base-overlay-background, 0.1);
+ scrollbar-color: lighten($ui-base-color, 4%) transparent;
}
::-webkit-scrollbar {
diff --git a/app/javascript/styles/mastodon/widgets.scss b/app/javascript/styles/mastodon/widgets.scss
index f843f0b42..87e633c70 100644
--- a/app/javascript/styles/mastodon/widgets.scss
+++ b/app/javascript/styles/mastodon/widgets.scss
@@ -229,11 +229,196 @@
margin-bottom: 10px;
}
+.page-header {
+ background: lighten($ui-base-color, 8%);
+ box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
+ border-radius: 4px;
+ padding: 60px 15px;
+ text-align: center;
+ margin: 10px 0;
+
+ h1 {
+ color: $primary-text-color;
+ font-size: 36px;
+ line-height: 1.1;
+ font-weight: 700;
+ margin-bottom: 10px;
+ }
+
+ p {
+ font-size: 15px;
+ color: $darker-text-color;
+ }
+
+ @media screen and (max-width: $no-gap-breakpoint) {
+ margin-top: 0;
+ background: lighten($ui-base-color, 4%);
+
+ h1 {
+ font-size: 24px;
+ }
+ }
+}
+
+.directory {
+ background: $ui-base-color;
+ border-radius: 4px;
+ box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
+
+ &__tag {
+ box-sizing: border-box;
+ margin-bottom: 10px;
+
+ a {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ background: $ui-base-color;
+ border-radius: 4px;
+ padding: 15px;
+ text-decoration: none;
+ color: inherit;
+ box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
+
+ &:hover,
+ &:active,
+ &:focus {
+ background: lighten($ui-base-color, 8%);
+ }
+ }
+
+ &.active a {
+ background: $ui-highlight-color;
+ cursor: default;
+ }
+
+ h4 {
+ flex: 1 1 auto;
+ font-size: 18px;
+ font-weight: 700;
+ color: $primary-text-color;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+
+ .fa {
+ color: $darker-text-color;
+ }
+
+ small {
+ display: block;
+ font-weight: 400;
+ font-size: 15px;
+ margin-top: 8px;
+ color: $darker-text-color;
+ }
+ }
+
+ &.active h4 {
+ &,
+ .fa,
+ small {
+ color: $primary-text-color;
+ }
+ }
+
+ .avatar-stack {
+ flex: 0 0 auto;
+ width: (36px + 4px) * 3;
+ }
+
+ &.active .avatar-stack .account__avatar {
+ border-color: $ui-highlight-color;
+ }
+ }
+}
+
+.avatar-stack {
+ display: flex;
+ justify-content: flex-end;
+
+ .account__avatar {
+ flex: 0 0 auto;
+ width: 36px;
+ height: 36px;
+ border-radius: 50%;
+ position: relative;
+ margin-left: -10px;
+ border: 2px solid $ui-base-color;
+
+ &:nth-child(1) {
+ z-index: 1;
+ }
+
+ &:nth-child(2) {
+ z-index: 2;
+ }
+
+ &:nth-child(3) {
+ z-index: 3;
+ }
+ }
+}
+
+.accounts-table {
+ width: 100%;
+
+ .account {
+ padding: 0;
+ border: 0;
+ }
+
+ thead th {
+ text-align: center;
+ text-transform: uppercase;
+ color: $darker-text-color;
+ font-weight: 700;
+ padding: 10px;
+
+ &:first-child {
+ text-align: left;
+ }
+ }
+
+ tbody td {
+ padding: 15px 0;
+ vertical-align: middle;
+ border-bottom: 1px solid lighten($ui-base-color, 8%);
+ }
+
+ tbody tr:last-child td {
+ border-bottom: 0;
+ }
+
+ &__count {
+ width: 120px;
+ text-align: center;
+ font-size: 15px;
+ font-weight: 500;
+ color: $primary-text-color;
+
+ small {
+ display: block;
+ color: $darker-text-color;
+ font-weight: 400;
+ font-size: 14px;
+ }
+ }
+
+ @media screen and (max-width: $no-gap-breakpoint) {
+ tbody td.optional {
+ display: none;
+ }
+ }
+}
+
.moved-account-widget,
.memoriam-widget,
.box-widget,
.contact-widget,
-.landing-page__information.contact-widget {
+.landing-page__information.contact-widget,
+.directory,
+.page-header {
@media screen and (max-width: $no-gap-breakpoint) {
margin-bottom: 0;
box-shadow: none;
diff --git a/app/lib/activitypub/activity.rb b/app/lib/activitypub/activity.rb
index 0a729011f..87318fb1c 100644
--- a/app/lib/activitypub/activity.rb
+++ b/app/lib/activitypub/activity.rb
@@ -50,6 +50,8 @@ class ActivityPub::Activity
ActivityPub::Activity::Add
when 'Remove'
ActivityPub::Activity::Remove
+ when 'Move'
+ ActivityPub::Activity::Move
end
end
end
diff --git a/app/lib/activitypub/activity/block.rb b/app/lib/activitypub/activity/block.rb
index 26da8bdf5..a17a2d50a 100644
--- a/app/lib/activitypub/activity/block.rb
+++ b/app/lib/activitypub/activity/block.rb
@@ -4,9 +4,10 @@ class ActivityPub::Activity::Block < ActivityPub::Activity
def perform
target_account = account_from_uri(object_uri)
- return if target_account.nil? || !target_account.local? || delete_arrived_first?(@json['id']) || @account.blocking?(target_account)
+ return if target_account.nil? || !target_account.local? || @account.blocking?(target_account)
UnfollowService.new.call(target_account, @account) if target_account.following?(@account)
- @account.block!(target_account, uri: @json['id'])
+
+ @account.block!(target_account, uri: @json['id']) unless delete_arrived_first?(@json['id'])
end
end
diff --git a/app/lib/activitypub/activity/create.rb b/app/lib/activitypub/activity/create.rb
index 9d2ddd3f6..2b238bc88 100644
--- a/app/lib/activitypub/activity/create.rb
+++ b/app/lib/activitypub/activity/create.rb
@@ -210,7 +210,7 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
end
def resolve_thread(status)
- return unless status.reply? && status.thread.nil?
+ return unless status.reply? && status.thread.nil? && Request.valid_url?(in_reply_to_uri)
ThreadResolveWorker.perform_async(status.id, in_reply_to_uri)
end
diff --git a/app/lib/activitypub/activity/flag.rb b/app/lib/activitypub/activity/flag.rb
index 92e59bb81..0d10d6c3c 100644
--- a/app/lib/activitypub/activity/flag.rb
+++ b/app/lib/activitypub/activity/flag.rb
@@ -8,8 +8,6 @@ class ActivityPub::Activity::Flag < ActivityPub::Activity
target_statuses_by_account = object_uris.map { |uri| status_from_uri(uri) }.compact.select(&:local?).group_by(&:account_id)
target_accounts.each do |target_account|
- next if Report.where(account: @account, target_account: target_account).exists?
-
target_statuses = target_statuses_by_account[target_account.id]
ReportService.new.call(
diff --git a/app/lib/activitypub/activity/follow.rb b/app/lib/activitypub/activity/follow.rb
index c45832648..1e805c0d1 100644
--- a/app/lib/activitypub/activity/follow.rb
+++ b/app/lib/activitypub/activity/follow.rb
@@ -6,7 +6,7 @@ class ActivityPub::Activity::Follow < ActivityPub::Activity
return if target_account.nil? || !target_account.local? || delete_arrived_first?(@json['id']) || @account.requested?(target_account)
- if target_account.blocking?(@account) || target_account.domain_blocking?(@account.domain)
+ if target_account.blocking?(@account) || target_account.domain_blocking?(@account.domain) || target_account.moved?
reject_follow_request!(target_account)
return
end
@@ -28,7 +28,7 @@ class ActivityPub::Activity::Follow < ActivityPub::Activity
end
def reject_follow_request!(target_account)
- json = Oj.dump(ActivityPub::LinkedDataSignature.new(ActiveModelSerializers::SerializableResource.new(FollowRequest.new(account: @account, target_account: target_account, uri: @json['id']), serializer: ActivityPub::RejectFollowSerializer, adapter: ActivityPub::Adapter).as_json).sign!(target_account))
+ json = ActiveModelSerializers::SerializableResource.new(FollowRequest.new(account: @account, target_account: target_account, uri: @json['id']), serializer: ActivityPub::RejectFollowSerializer, adapter: ActivityPub::Adapter).to_json
ActivityPub::DeliveryWorker.perform_async(json, target_account.id, @account.inbox_url)
end
end
diff --git a/app/lib/activitypub/activity/move.rb b/app/lib/activitypub/activity/move.rb
new file mode 100644
index 000000000..d7a5f595c
--- /dev/null
+++ b/app/lib/activitypub/activity/move.rb
@@ -0,0 +1,43 @@
+# frozen_string_literal: true
+
+class ActivityPub::Activity::Move < ActivityPub::Activity
+ PROCESSING_COOLDOWN = 7.days.seconds
+
+ def perform
+ return if origin_account.uri != object_uri || processed?
+
+ mark_as_processing!
+
+ target_account = ActivityPub::FetchRemoteAccountService.new.call(target_uri)
+
+ return if target_account.nil? || !target_account.also_known_as.include?(origin_account.uri)
+
+ # In case for some reason we didn't have a redirect for the profile already, set it
+ origin_account.update(moved_to_account: target_account) if origin_account.moved_to_account_id.nil?
+
+ # Initiate a re-follow for each follower
+ origin_account.followers.local.select(:id).find_in_batches do |follower_accounts|
+ UnfollowFollowWorker.push_bulk(follower_accounts.map(&:id)) do |follower_account_id|
+ [follower_account_id, origin_account.id, target_account.id]
+ end
+ end
+ end
+
+ private
+
+ def origin_account
+ @account
+ end
+
+ def target_uri
+ value_or_id(@json['target'])
+ end
+
+ def processed?
+ redis.exists("move_in_progress:#{@account.id}")
+ end
+
+ def mark_as_processing!
+ redis.setex("move_in_progress:#{@account.id}", PROCESSING_COOLDOWN, true)
+ end
+end
diff --git a/app/lib/activitypub/adapter.rb b/app/lib/activitypub/adapter.rb
index d35cae889..99f4d9305 100644
--- a/app/lib/activitypub/adapter.rb
+++ b/app/lib/activitypub/adapter.rb
@@ -10,6 +10,7 @@ class ActivityPub::Adapter < ActiveModelSerializers::Adapter::Base
'manuallyApprovesFollowers' => 'as:manuallyApprovesFollowers',
'sensitive' => 'as:sensitive',
'movedTo' => { '@id' => 'as:movedTo', '@type' => '@id' },
+ 'alsoKnownAs' => { '@id' => 'as:alsoKnownAs', '@type' => '@id' },
'Hashtag' => 'as:Hashtag',
'ostatus' => 'http://ostatus.org#',
'atomUri' => 'ostatus:atomUri',
diff --git a/app/lib/feed_manager.rb b/app/lib/feed_manager.rb
index 31ff53860..f99df33e5 100644
--- a/app/lib/feed_manager.rb
+++ b/app/lib/feed_manager.rb
@@ -27,7 +27,7 @@ class FeedManager
end
def push_to_home(account, status)
- return false unless add_to_feed(:home, account.id, status)
+ return false unless add_to_feed(:home, account.id, status, account.user&.aggregates_reblogs?)
trim(:home, account.id)
PushUpdateWorker.perform_async(account.id, status.id, "timeline:#{account.id}") if push_update_required?("timeline:#{account.id}")
true
@@ -45,7 +45,7 @@ class FeedManager
should_filter &&= !ListAccount.where(list_id: list.id, account_id: status.in_reply_to_account_id).exists?
return false if should_filter
end
- return false unless add_to_feed(:list, list.id, status)
+ return false unless add_to_feed(:list, list.id, status, list.account.user&.aggregates_reblogs?)
trim(:list, list.id)
PushUpdateWorker.perform_async(list.account_id, status.id, "timeline:list:#{list.id}") if push_update_required?("timeline:list:#{list.id}")
true
@@ -93,7 +93,7 @@ class FeedManager
query.each do |status|
next if status.direct_visibility? || status.limited_visibility? || filter?(:home, status, into_account)
- add_to_feed(:home, into_account.id, status)
+ add_to_feed(:home, into_account.id, status, into_account.user&.aggregates_reblogs?)
end
trim(:home, into_account.id)
@@ -131,7 +131,7 @@ class FeedManager
statuses.each do |status|
next if filter_from_home?(status, account)
- added += 1 if add_to_feed(:home, account.id, status)
+ added += 1 if add_to_feed(:home, account.id, status, account.user&.aggregates_reblogs?)
end
break unless added.zero?
@@ -230,11 +230,11 @@ class FeedManager
# added, and false if it was not added to the feed. Note that this is
# an internal helper: callers must call trim or push updates if
# either action is appropriate.
- def add_to_feed(timeline_type, account_id, status)
+ def add_to_feed(timeline_type, account_id, status, aggregate_reblogs = true)
timeline_key = key(timeline_type, account_id)
reblog_key = key(timeline_type, account_id, 'reblogs')
- if status.reblog?
+ if status.reblog? && (aggregate_reblogs.nil? || aggregate_reblogs)
# If the original status or a reblog of it is within
# REBLOG_FALLOFF statuses from the top, do not re-insert it into
# the feed
diff --git a/app/lib/ostatus/activity/creation.rb b/app/lib/ostatus/activity/creation.rb
index 8f8c70052..3840c8fbf 100644
--- a/app/lib/ostatus/activity/creation.rb
+++ b/app/lib/ostatus/activity/creation.rb
@@ -57,7 +57,7 @@ class OStatus::Activity::Creation < OStatus::Activity::Base
save_emojis(status)
end
- if thread? && status.thread.nil?
+ if thread? && status.thread.nil? && Request.valid_url?(thread.second)
Rails.logger.debug "Trying to attach #{status.id} (#{id}) to #{thread.first}"
ThreadResolveWorker.perform_async(status.id, thread.second)
end
diff --git a/app/lib/request.rb b/app/lib/request.rb
index 4a81773e3..ef4aeaf29 100644
--- a/app/lib/request.rb
+++ b/app/lib/request.rb
@@ -66,6 +66,18 @@ class Request
(@account ? @headers.merge('Signature' => signature) : @headers).without(REQUEST_TARGET)
end
+ class << self
+ def valid_url?(url)
+ begin
+ parsed_url = Addressable::URI.parse(url)
+ rescue Addressable::URI::InvalidURIError
+ return false
+ end
+
+ %w(http https).include?(parsed_url.scheme) && parsed_url.host.present?
+ end
+ end
+
private
def set_common_headers!
diff --git a/app/lib/user_settings_decorator.rb b/app/lib/user_settings_decorator.rb
index 3c167ec00..727cbdb36 100644
--- a/app/lib/user_settings_decorator.rb
+++ b/app/lib/user_settings_decorator.rb
@@ -32,6 +32,7 @@ class UserSettingsDecorator
user.settings['noindex'] = noindex_preference if change?('setting_noindex')
user.settings['theme'] = theme_preference if change?('setting_theme')
user.settings['hide_network'] = hide_network_preference if change?('setting_hide_network')
+ user.settings['aggregate_reblogs'] = aggregate_reblogs_preference if change?('setting_aggregate_reblogs')
end
def merged_notification_emails
@@ -102,6 +103,10 @@ class UserSettingsDecorator
settings['setting_default_language']
end
+ def aggregate_reblogs_preference
+ boolean_cast_setting 'setting_aggregate_reblogs'
+ end
+
def boolean_cast_setting(key)
ActiveModel::Type::Boolean.new.cast(settings[key])
end
diff --git a/app/mailers/application_mailer.rb b/app/mailers/application_mailer.rb
index bf161b9be..cc585c3b7 100644
--- a/app/mailers/application_mailer.rb
+++ b/app/mailers/application_mailer.rb
@@ -5,7 +5,6 @@ class ApplicationMailer < ActionMailer::Base
helper :application
helper :instance
- helper :mailer
protected
diff --git a/app/mailers/notification_mailer.rb b/app/mailers/notification_mailer.rb
index b45844296..66fa337c1 100644
--- a/app/mailers/notification_mailer.rb
+++ b/app/mailers/notification_mailer.rb
@@ -66,16 +66,20 @@ class NotificationMailer < ApplicationMailer
end
def digest(recipient, **opts)
- @me = recipient
- @since = opts[:since] || @me.user.last_emailed_at || @me.user.current_sign_in_at
- @notifications = Notification.where(account: @me, activity_type: 'Mention').where('created_at > ?', @since)
- @follows_since = Notification.where(account: @me, activity_type: 'Follow').where('created_at > ?', @since).count
+ return if recipient.user.disabled?
- return if @me.user.disabled? || @notifications.empty?
+ @me = recipient
+ @since = opts[:since] || [@me.user.last_emailed_at, (@me.user.current_sign_in_at + 1.day)].compact.max
+ @notifications_count = Notification.where(account: @me, activity_type: 'Mention').where('created_at > ?', @since).count
+
+ return if @notifications_count.zero?
+
+ @notifications = Notification.where(account: @me, activity_type: 'Mention').where('created_at > ?', @since).limit(40)
+ @follows_since = Notification.where(account: @me, activity_type: 'Follow').where('created_at > ?', @since).count
locale_for_account(@me) do
mail to: @me.user.email,
- subject: I18n.t(:subject, scope: [:notification_mailer, :digest], count: @notifications.size)
+ subject: I18n.t(:subject, scope: [:notification_mailer, :digest], count: @notifications_count)
end
end
diff --git a/app/mailers/user_mailer.rb b/app/mailers/user_mailer.rb
index aa76b4dfe..8f3a4ab3a 100644
--- a/app/mailers/user_mailer.rb
+++ b/app/mailers/user_mailer.rb
@@ -78,4 +78,16 @@ class UserMailer < Devise::Mailer
mail to: @resource.email, subject: I18n.t('user_mailer.backup_ready.subject')
end
end
+
+ def warning(user, warning)
+ @resource = user
+ @warning = warning
+ @instance = Rails.configuration.x.local_domain
+
+ I18n.with_locale(@resource.locale || I18n.default_locale) do
+ mail to: @resource.email,
+ subject: I18n.t("user_mailer.warning.subject.#{@warning.action}", acct: "@#{user.account.local_username_and_domain}"),
+ reply_to: Setting.site_contact_email
+ end
+ end
end
diff --git a/app/models/account.rb b/app/models/account.rb
index acba6770b..11a3c21fe 100644
--- a/app/models/account.rb
+++ b/app/models/account.rb
@@ -32,9 +32,6 @@
# suspended :boolean default(FALSE), not null
# locked :boolean default(FALSE), not null
# header_remote_url :string default(""), not null
-# statuses_count :integer default(0), not null
-# followers_count :integer default(0), not null
-# following_count :integer default(0), not null
# last_webfingered_at :datetime
# inbox_url :string default(""), not null
# outbox_url :string default(""), not null
@@ -46,24 +43,27 @@
# featured_collection_url :string
# fields :jsonb
# actor_type :string
+# discoverable :boolean
+# also_known_as :string is an Array
#
class Account < ApplicationRecord
USERNAME_RE = /[a-z0-9_]+([a-z0-9_\.-]+[a-z0-9_]+)?/i
MENTION_RE = /(?<=^|[^\/[:word:]])@((#{USERNAME_RE})(?:@[a-z0-9\.\-]+[a-z0-9]+)?)/i
+ MIN_FOLLOWERS_DISCOVERY = 10
+ include AccountAssociations
include AccountAvatar
include AccountFinderConcern
include AccountHeader
include AccountInteractions
include Attachmentable
include Paginable
+ include AccountCounters
+ include DomainNormalizable
enum protocol: [:ostatus, :activitypub]
- # Local users
- has_one :user, inverse_of: :account
-
validates :username, presence: true
# Remote user validations
@@ -75,64 +75,29 @@ class Account < ApplicationRecord
validates_with UniqueUsernameValidator, if: -> { local? && will_save_change_to_username? }
validates_with UnreservedUsernameValidator, if: -> { local? && will_save_change_to_username? }
validates :display_name, length: { maximum: 30 }, if: -> { local? && will_save_change_to_display_name? }
- validates :note, length: { maximum: 160 }, if: -> { local? && will_save_change_to_note? }
+ validates :note, note_length: { maximum: 160 }, if: -> { local? && will_save_change_to_note? }
validates :fields, length: { maximum: 4 }, if: -> { local? && will_save_change_to_fields? }
- # Timelines
- has_many :stream_entries, inverse_of: :account, dependent: :destroy
- has_many :statuses, inverse_of: :account, dependent: :destroy
- has_many :favourites, inverse_of: :account, dependent: :destroy
- has_many :mentions, inverse_of: :account, dependent: :destroy
- has_many :notifications, inverse_of: :account, dependent: :destroy
-
- # Pinned statuses
- has_many :status_pins, inverse_of: :account, dependent: :destroy
- has_many :pinned_statuses, -> { reorder('status_pins.created_at DESC') }, through: :status_pins, class_name: 'Status', source: :status
-
- # Endorsements
- has_many :account_pins, inverse_of: :account, dependent: :destroy
- has_many :endorsed_accounts, through: :account_pins, class_name: 'Account', source: :target_account
-
- # Media
- has_many :media_attachments, dependent: :destroy
-
- # PuSH subscriptions
- has_many :subscriptions, dependent: :destroy
-
- # Report relationships
- has_many :reports
- has_many :targeted_reports, class_name: 'Report', foreign_key: :target_account_id
-
- has_many :report_notes, dependent: :destroy
- has_many :custom_filters, inverse_of: :account, dependent: :destroy
-
- # Moderation notes
- has_many :account_moderation_notes, dependent: :destroy
- has_many :targeted_moderation_notes, class_name: 'AccountModerationNote', foreign_key: :target_account_id, dependent: :destroy
-
- # Lists
- has_many :list_accounts, inverse_of: :account, dependent: :destroy
- has_many :lists, through: :list_accounts
-
- # Account migrations
- belongs_to :moved_to_account, class_name: 'Account', optional: true
-
scope :remote, -> { where.not(domain: nil) }
scope :local, -> { where(domain: nil) }
- scope :without_followers, -> { where(followers_count: 0) }
- scope :with_followers, -> { where('followers_count > 0') }
scope :expiring, ->(time) { remote.where.not(subscription_expires_at: nil).where('subscription_expires_at < ?', time) }
scope :partitioned, -> { order(Arel.sql('row_number() over (partition by domain)')) }
scope :silenced, -> { where(silenced: true) }
scope :suspended, -> { where(suspended: true) }
scope :without_suspended, -> { where(suspended: false) }
+ scope :without_silenced, -> { where(silenced: false) }
scope :recent, -> { reorder(id: :desc) }
+ scope :bots, -> { where(actor_type: %w(Application Service)) }
scope :alphabetic, -> { order(domain: :asc, username: :asc) }
scope :by_domain_accounts, -> { group(:domain).select(:domain, 'COUNT(*) AS accounts_count').order('accounts_count desc') }
scope :matches_username, ->(value) { where(arel_table[:username].matches("#{value}%")) }
scope :matches_display_name, ->(value) { where(arel_table[:display_name].matches("#{value}%")) }
scope :matches_domain, ->(value) { where(arel_table[:domain].matches("%#{value}%")) }
- scope :searchable, -> { where(suspended: false).where(moved_to_account_id: nil) }
+ scope :searchable, -> { without_suspended.where(moved_to_account_id: nil) }
+ scope :discoverable, -> { searchable.without_silenced.where(discoverable: true).joins(:account_stat).where(AccountStat.arel_table[:followers_count].gteq(MIN_FOLLOWERS_DISCOVERY)).by_recent_status }
+ 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')) }
+ scope :popular, -> { order('account_stats.followers_count desc') }
delegate :email,
:unconfirmed_email,
@@ -176,6 +141,10 @@ class Account < ApplicationRecord
"#{username}@#{Rails.configuration.x.local_domain}"
end
+ def local_followers_count
+ Follow.where(target_account_id: id).count
+ end
+
def to_webfinger_s
"acct:#{local_username_and_domain}"
end
@@ -193,6 +162,14 @@ class Account < ApplicationRecord
ResolveAccountService.new.call(acct)
end
+ def silence!
+ update!(silenced: true)
+ end
+
+ def unsilence!
+ update!(silenced: false)
+ end
+
def suspend!
transaction do
user&.disable! if local?
@@ -218,6 +195,44 @@ class Account < ApplicationRecord
@keypair ||= OpenSSL::PKey::RSA.new(private_key || public_key)
end
+ def tags_as_strings=(tag_names)
+ tag_names.map! { |name| name.mb_chars.downcase.to_s }
+ tag_names.uniq!
+
+ # Existing hashtags
+ hashtags_map = Tag.where(name: tag_names).each_with_object({}) { |tag, h| h[tag.name] = tag }
+
+ # Initialize not yet existing hashtags
+ tag_names.each do |name|
+ next if hashtags_map.key?(name)
+ hashtags_map[name] = Tag.new(name: name)
+ end
+
+ # Remove hashtags that are to be deleted
+ tags.each do |tag|
+ if hashtags_map.key?(tag.name)
+ hashtags_map.delete(tag.name)
+ else
+ transaction do
+ tags.delete(tag)
+ tag.decrement_count!(:accounts_count)
+ end
+ end
+ end
+
+ # Add hashtags that were so far missing
+ hashtags_map.each_value do |tag|
+ transaction do
+ tags << tag
+ tag.increment_count!(:accounts_count)
+ end
+ end
+ end
+
+ def also_known_as
+ self[:also_known_as] || []
+ end
+
def fields
(self[:fields] || []).map { |f| Field.new(self, f) }
end
@@ -385,7 +400,9 @@ class Account < ApplicationRecord
LIMIT ?
SQL
- find_by_sql([sql, limit])
+ records = find_by_sql([sql, limit])
+ ActiveRecord::Associations::Preloader.new.preload(records, :account_stat)
+ records
end
def advanced_search_for(terms, account, limit = 10, following = false)
@@ -412,7 +429,7 @@ class Account < ApplicationRecord
LIMIT ?
SQL
- find_by_sql([sql, account.id, account.id, account.id, limit])
+ records = find_by_sql([sql, account.id, account.id, account.id, limit])
else
sql = <<-SQL.squish
SELECT
@@ -428,8 +445,11 @@ class Account < ApplicationRecord
LIMIT ?
SQL
- find_by_sql([sql, account.id, account.id, limit])
+ records = find_by_sql([sql, account.id, account.id, limit])
end
+
+ ActiveRecord::Associations::Preloader.new.preload(records, :account_stat)
+ records
end
private
@@ -448,8 +468,8 @@ class Account < ApplicationRecord
end
before_create :generate_keys
- before_validation :normalize_domain
before_validation :prepare_contents, if: :local?
+ before_destroy :clean_feed_manager
private
@@ -469,10 +489,25 @@ class Account < ApplicationRecord
def normalize_domain
return if local?
- self.domain = TagManager.instance.normalize_domain(domain)
+ super
end
def emojifiable_text
[note, display_name, fields.map(&:value)].join(' ')
end
+
+ def clean_feed_manager
+ reblog_key = FeedManager.instance.key(:home, id, 'reblogs')
+ reblogged_id_set = Redis.current.zrange(reblog_key, 0, -1)
+
+ Redis.current.pipelined do
+ Redis.current.del(FeedManager.instance.key(:home, id))
+ Redis.current.del(reblog_key)
+
+ reblogged_id_set.each do |reblogged_id|
+ reblog_set_key = FeedManager.instance.key(:home, id, "reblogs:#{reblogged_id}")
+ Redis.current.del(reblog_set_key)
+ end
+ end
+ end
end
diff --git a/app/models/account_filter.rb b/app/models/account_filter.rb
index 84364bf1b..b10f50db7 100644
--- a/app/models/account_filter.rb
+++ b/app/models/account_filter.rb
@@ -5,13 +5,14 @@ class AccountFilter
def initialize(params)
@params = params
+ set_defaults!
end
def results
- scope = Account.recent
+ scope = Account.recent.includes(:user)
params.each do |key, value|
- scope.merge!(scope_for(key, value)) if value.present?
+ scope.merge!(scope_for(key, value.to_s.strip)) if value.present?
end
scope
@@ -19,6 +20,11 @@ class AccountFilter
private
+ def set_defaults!
+ params['local'] = '1' if params['remote'].blank?
+ params['active'] = '1' if params['suspended'].blank? && params['silenced'].blank?
+ end
+
def scope_for(key, value)
case key.to_s
when 'local'
@@ -27,10 +33,10 @@ class AccountFilter
Account.remote
when 'by_domain'
Account.where(domain: value)
+ when 'active'
+ Account.without_suspended
when 'silenced'
Account.silenced
- when 'alphabetic'
- Account.reorder(nil).alphabetic
when 'suspended'
Account.suspended
when 'username'
@@ -40,11 +46,7 @@ class AccountFilter
when 'email'
accounts_with_users.merge User.matches_email(value)
when 'ip'
- if valid_ip?(value)
- accounts_with_users.merge User.with_recent_ip_address(value)
- else
- Account.default_scoped
- end
+ valid_ip?(value) ? accounts_with_users.where('users.current_sign_in_ip <<= ?', value) : Account.none
when 'staff'
accounts_with_users.merge User.staff
else
@@ -57,8 +59,7 @@ class AccountFilter
end
def valid_ip?(value)
- IPAddr.new(value)
- true
+ IPAddr.new(value) && true
rescue IPAddr::InvalidAddressError
false
end
diff --git a/app/models/account_stat.rb b/app/models/account_stat.rb
new file mode 100644
index 000000000..9813aa84f
--- /dev/null
+++ b/app/models/account_stat.rb
@@ -0,0 +1,34 @@
+# frozen_string_literal: true
+# == Schema Information
+#
+# Table name: account_stats
+#
+# id :bigint(8) not null, primary key
+# account_id :bigint(8) not null
+# statuses_count :bigint(8) default(0), not null
+# following_count :bigint(8) default(0), not null
+# followers_count :bigint(8) default(0), not null
+# created_at :datetime not null
+# updated_at :datetime not null
+# last_status_at :datetime
+#
+
+class AccountStat < ApplicationRecord
+ belongs_to :account, inverse_of: :account_stat
+
+ def increment_count!(key)
+ update(attributes_for_increment(key))
+ end
+
+ def decrement_count!(key)
+ update(key => [public_send(key) - 1, 0].max)
+ end
+
+ private
+
+ def attributes_for_increment(key)
+ attrs = { key => public_send(key) + 1 }
+ attrs[:last_status_at] = Time.now.utc if key == :statuses_count
+ attrs
+ end
+end
diff --git a/app/models/account_tag_stat.rb b/app/models/account_tag_stat.rb
new file mode 100644
index 000000000..3c36c155a
--- /dev/null
+++ b/app/models/account_tag_stat.rb
@@ -0,0 +1,24 @@
+# frozen_string_literal: true
+# == Schema Information
+#
+# Table name: account_tag_stats
+#
+# id :bigint(8) not null, primary key
+# tag_id :bigint(8) not null
+# accounts_count :bigint(8) default(0), not null
+# hidden :boolean default(FALSE), not null
+# created_at :datetime not null
+# updated_at :datetime not null
+#
+
+class AccountTagStat < ApplicationRecord
+ belongs_to :tag, inverse_of: :account_tag_stat
+
+ def increment_count!(key)
+ update(key => public_send(key) + 1)
+ end
+
+ def decrement_count!(key)
+ update(key => [public_send(key) - 1, 0].max)
+ end
+end
diff --git a/app/models/account_warning.rb b/app/models/account_warning.rb
new file mode 100644
index 000000000..157e6c04d
--- /dev/null
+++ b/app/models/account_warning.rb
@@ -0,0 +1,23 @@
+# frozen_string_literal: true
+# == Schema Information
+#
+# Table name: account_warnings
+#
+# id :bigint(8) not null, primary key
+# account_id :bigint(8)
+# target_account_id :bigint(8)
+# action :integer default("none"), not null
+# text :text default(""), not null
+# created_at :datetime not null
+# updated_at :datetime not null
+#
+
+class AccountWarning < ApplicationRecord
+ enum action: %i(none disable silence suspend), _suffix: :action
+
+ belongs_to :account, inverse_of: :account_warnings
+ belongs_to :target_account, class_name: 'Account', inverse_of: :targeted_account_warnings
+
+ scope :latest, -> { order(created_at: :desc) }
+ scope :custom, -> { where.not(text: '') }
+end
diff --git a/app/models/account_warning_preset.rb b/app/models/account_warning_preset.rb
new file mode 100644
index 000000000..ba8ceabb3
--- /dev/null
+++ b/app/models/account_warning_preset.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+# == Schema Information
+#
+# Table name: account_warning_presets
+#
+# id :bigint(8) not null, primary key
+# text :text default(""), not null
+# created_at :datetime not null
+# updated_at :datetime not null
+#
+
+class AccountWarningPreset < ApplicationRecord
+ validates :text, presence: true
+end
diff --git a/app/models/admin/account_action.rb b/app/models/admin/account_action.rb
new file mode 100644
index 000000000..84c3f880d
--- /dev/null
+++ b/app/models/admin/account_action.rb
@@ -0,0 +1,134 @@
+# frozen_string_literal: true
+
+class Admin::AccountAction
+ include ActiveModel::Model
+ include AccountableConcern
+ include Authorization
+
+ TYPES = %w(
+ none
+ disable
+ silence
+ suspend
+ ).freeze
+
+ attr_accessor :target_account,
+ :current_account,
+ :type,
+ :text,
+ :report_id,
+ :warning_preset_id,
+ :send_email_notification
+
+ attr_reader :warning
+
+ def save!
+ ApplicationRecord.transaction do
+ process_action!
+ process_warning!
+ end
+
+ queue_email!
+ process_reports!
+ end
+
+ def report
+ @report ||= Report.find(report_id) if report_id.present?
+ end
+
+ def with_report?
+ !report.nil?
+ end
+
+ class << self
+ def types_for_account(account)
+ if account.local?
+ TYPES
+ else
+ TYPES - %w(none disable)
+ end
+ end
+ end
+
+ private
+
+ def process_action!
+ case type
+ when 'disable'
+ handle_disable!
+ when 'silence'
+ handle_silence!
+ when 'suspend'
+ handle_suspend!
+ end
+ end
+
+ def process_warning!
+ return unless warnable?
+
+ authorize(target_account, :warn?)
+
+ @warning = AccountWarning.create!(target_account: target_account,
+ account: current_account,
+ action: type,
+ text: text_for_warning)
+
+ # A log entry is only interesting if the warning contains
+ # custom text from someone. Otherwise it's just noise.
+ log_action(:create, warning) if warning.text.present?
+ end
+
+ def process_reports!
+ return if report_id.blank?
+
+ authorize(report, :update?)
+
+ if type == 'none'
+ log_action(:resolve, report)
+ report.resolve!(current_account)
+ else
+ Report.where(target_account: target_account).unresolved.update_all(action_taken: true, action_taken_by_account_id: current_account.id)
+ end
+ end
+
+ def handle_disable!
+ authorize(target_account.user, :disable?)
+ log_action(:disable, target_account.user)
+ target_account.user&.disable!
+ end
+
+ def handle_silence!
+ authorize(target_account, :silence?)
+ log_action(:silence, target_account)
+ target_account.silence!
+ end
+
+ def handle_suspend!
+ authorize(target_account, :suspend?)
+ log_action(:suspend, target_account)
+ target_account.suspend!
+ queue_suspension_worker!
+ end
+
+ def text_for_warning
+ [warning_preset&.text, text].compact.join("\n\n")
+ end
+
+ def queue_suspension_worker!
+ Admin::SuspensionWorker.perform_async(target_account.id)
+ end
+
+ def queue_email!
+ return unless warnable?
+
+ UserMailer.warning(target_account.user, warning).deliver_later!
+ end
+
+ def warnable?
+ send_email_notification && target_account.local?
+ end
+
+ def warning_preset
+ @warning_preset ||= AccountWarningPreset.find(warning_preset_id) if warning_preset_id.present?
+ end
+end
diff --git a/app/models/concerns/account_associations.rb b/app/models/concerns/account_associations.rb
new file mode 100644
index 000000000..7dafeee34
--- /dev/null
+++ b/app/models/concerns/account_associations.rb
@@ -0,0 +1,59 @@
+# frozen_string_literal: true
+
+module AccountAssociations
+ extend ActiveSupport::Concern
+
+ included do
+ # Local users
+ has_one :user, inverse_of: :account, dependent: :destroy
+
+ # Timelines
+ has_many :stream_entries, inverse_of: :account, dependent: :destroy
+ has_many :statuses, inverse_of: :account, dependent: :destroy
+ has_many :favourites, inverse_of: :account, dependent: :destroy
+ has_many :mentions, inverse_of: :account, dependent: :destroy
+ has_many :notifications, inverse_of: :account, dependent: :destroy
+ has_many :conversations, class_name: 'AccountConversation', dependent: :destroy, inverse_of: :account
+ has_many :scheduled_statuses, inverse_of: :account, dependent: :destroy
+
+ # Pinned statuses
+ has_many :status_pins, inverse_of: :account, dependent: :destroy
+ has_many :pinned_statuses, -> { reorder('status_pins.created_at DESC') }, through: :status_pins, class_name: 'Status', source: :status
+
+ # Endorsements
+ has_many :account_pins, inverse_of: :account, dependent: :destroy
+ has_many :endorsed_accounts, through: :account_pins, class_name: 'Account', source: :target_account
+
+ # Media
+ has_many :media_attachments, dependent: :destroy
+
+ # PuSH subscriptions
+ has_many :subscriptions, dependent: :destroy
+
+ # Report relationships
+ has_many :reports, dependent: :destroy, inverse_of: :account
+ has_many :targeted_reports, class_name: 'Report', foreign_key: :target_account_id, dependent: :destroy, inverse_of: :target_account
+
+ has_many :report_notes, dependent: :destroy
+ has_many :custom_filters, inverse_of: :account, dependent: :destroy
+
+ # Moderation notes
+ has_many :account_moderation_notes, dependent: :destroy, inverse_of: :account
+ has_many :targeted_moderation_notes, class_name: 'AccountModerationNote', foreign_key: :target_account_id, dependent: :destroy, inverse_of: :target_account
+ has_many :account_warnings, dependent: :destroy, inverse_of: :account
+ has_many :targeted_account_warnings, class_name: 'AccountWarning', foreign_key: :target_account_id, dependent: :destroy, inverse_of: :target_account
+
+ # Lists (that the account is on, not owned by the account)
+ has_many :list_accounts, inverse_of: :account, dependent: :destroy
+ has_many :lists, through: :list_accounts
+
+ # Lists (owned by the account)
+ has_many :owned_lists, class_name: 'List', dependent: :destroy, inverse_of: :account
+
+ # Account migrations
+ belongs_to :moved_to_account, class_name: 'Account', optional: true
+
+ # Hashtags
+ has_and_belongs_to_many :tags
+ end
+end
diff --git a/app/models/concerns/account_counters.rb b/app/models/concerns/account_counters.rb
new file mode 100644
index 000000000..3581df8dd
--- /dev/null
+++ b/app/models/concerns/account_counters.rb
@@ -0,0 +1,32 @@
+# frozen_string_literal: true
+
+module AccountCounters
+ extend ActiveSupport::Concern
+
+ included do
+ has_one :account_stat, inverse_of: :account
+ after_save :save_account_stat
+ end
+
+ delegate :statuses_count,
+ :statuses_count=,
+ :following_count,
+ :following_count=,
+ :followers_count,
+ :followers_count=,
+ :increment_count!,
+ :decrement_count!,
+ :last_status_at,
+ to: :account_stat
+
+ def account_stat
+ super || build_account_stat
+ end
+
+ private
+
+ def save_account_stat
+ return unless account_stat&.changed?
+ account_stat.save
+ end
+end
diff --git a/app/models/concerns/account_finder_concern.rb b/app/models/concerns/account_finder_concern.rb
index 6b7237e89..7e3bbde09 100644
--- a/app/models/concerns/account_finder_concern.rb
+++ b/app/models/concerns/account_finder_concern.rb
@@ -12,6 +12,10 @@ module AccountFinderConcern
find_remote(username, domain) || raise(ActiveRecord::RecordNotFound)
end
+ def representative
+ find_local(Setting.site_contact_username.gsub(/\A@/, '')) || Account.local.find_by(suspended: false)
+ end
+
def find_local(username)
find_remote(username, nil)
end
diff --git a/app/models/concerns/domain_normalizable.rb b/app/models/concerns/domain_normalizable.rb
new file mode 100644
index 000000000..dff3e5414
--- /dev/null
+++ b/app/models/concerns/domain_normalizable.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+module DomainNormalizable
+ extend ActiveSupport::Concern
+
+ included do
+ before_validation :normalize_domain
+ end
+
+ private
+
+ def normalize_domain
+ self.domain = TagManager.instance.normalize_domain(domain)
+ end
+end
diff --git a/app/models/concerns/status_threading_concern.rb b/app/models/concerns/status_threading_concern.rb
index fa441469c..b9c800c2a 100644
--- a/app/models/concerns/status_threading_concern.rb
+++ b/app/models/concerns/status_threading_concern.rb
@@ -8,7 +8,7 @@ module StatusThreadingConcern
end
def descendants(limit, account = nil, max_child_id = nil, since_child_id = nil, depth = nil)
- find_statuses_from_tree_path(descendant_ids(limit, max_child_id, since_child_id, depth), account)
+ find_statuses_from_tree_path(descendant_ids(limit, max_child_id, since_child_id, depth), account, promote: true)
end
private
@@ -76,7 +76,7 @@ module StatusThreadingConcern
descendants_with_self - [self]
end
- def find_statuses_from_tree_path(ids, account)
+ def find_statuses_from_tree_path(ids, account, promote: false)
statuses = statuses_with_accounts(ids).to_a
account_ids = statuses.map(&:account_id).uniq
domains = statuses.map(&:account_domain).compact.uniq
@@ -86,6 +86,28 @@ module StatusThreadingConcern
# Order ancestors/descendants by tree path
statuses.sort_by! { |status| ids.index(status.id) }
+
+ # Bring self-replies to the top
+ if promote
+ promote_by!(statuses) { |status| status.in_reply_to_account_id == status.account_id }
+ else
+ statuses
+ end
+ end
+
+ def promote_by!(arr)
+ insert_at = arr.find_index { |item| !yield(item) }
+
+ return arr if insert_at.nil?
+
+ arr.each_with_index do |item, index|
+ next if index <= insert_at || !yield(item)
+
+ arr.insert(insert_at, arr.delete_at(index))
+ insert_at += 1
+ end
+
+ arr
end
def relations_map_for_account(account, account_ids, domains)
diff --git a/app/models/custom_emoji.rb b/app/models/custom_emoji.rb
index b99ed01f0..d3cc70504 100644
--- a/app/models/custom_emoji.rb
+++ b/app/models/custom_emoji.rb
@@ -31,6 +31,8 @@ class CustomEmoji < ApplicationRecord
has_attached_file :image, styles: { static: { format: 'png', convert_options: '-coalesce -strip' } }
+ before_validation :downcase_domain
+
validates_attachment :image, content_type: { content_type: 'image/png' }, presence: true, size: { less_than: LIMIT }
validates :shortcode, uniqueness: { scope: :domain }, format: { with: /\A#{SHORTCODE_RE_FRAGMENT}\z/ }, length: { minimum: 2 }
@@ -73,4 +75,8 @@ class CustomEmoji < ApplicationRecord
def remove_entity_cache
Rails.cache.delete(EntityCache.instance.to_key(:emoji, shortcode, domain))
end
+
+ def downcase_domain
+ self.domain = domain.downcase unless domain.nil?
+ end
end
diff --git a/app/models/custom_emoji_filter.rb b/app/models/custom_emoji_filter.rb
index c4bc310bb..7649055d2 100644
--- a/app/models/custom_emoji_filter.rb
+++ b/app/models/custom_emoji_filter.rb
@@ -26,7 +26,7 @@ class CustomEmojiFilter
when 'remote'
CustomEmoji.remote
when 'by_domain'
- CustomEmoji.where(domain: value)
+ CustomEmoji.where(domain: value.downcase)
when 'shortcode'
CustomEmoji.search(value)
else
diff --git a/app/models/domain_block.rb b/app/models/domain_block.rb
index b828a9d71..1064ea7c8 100644
--- a/app/models/domain_block.rb
+++ b/app/models/domain_block.rb
@@ -13,6 +13,8 @@
#
class DomainBlock < ApplicationRecord
+ include DomainNormalizable
+
enum severity: [:silence, :suspend, :noop]
attr_accessor :retroactive
@@ -25,12 +27,4 @@ class DomainBlock < ApplicationRecord
def self.blocked?(domain)
where(domain: domain, severity: :suspend).exists?
end
-
- before_validation :normalize_domain
-
- private
-
- def normalize_domain
- self.domain = TagManager.instance.normalize_domain(domain)
- end
end
diff --git a/app/models/email_domain_block.rb b/app/models/email_domain_block.rb
index 10490375b..0fcd36477 100644
--- a/app/models/email_domain_block.rb
+++ b/app/models/email_domain_block.rb
@@ -10,7 +10,7 @@
#
class EmailDomainBlock < ApplicationRecord
- before_validation :normalize_domain
+ include DomainNormalizable
validates :domain, presence: true, uniqueness: true
@@ -27,10 +27,4 @@ class EmailDomainBlock < ApplicationRecord
where(domain: domain).exists?
end
-
- private
-
- def normalize_domain
- self.domain = TagManager.instance.normalize_domain(domain)
- end
end
diff --git a/app/models/export.rb b/app/models/export.rb
index 0eeac0dc0..a2520e9c2 100644
--- a/app/models/export.rb
+++ b/app/models/export.rb
@@ -9,15 +9,33 @@ class Export
end
def to_blocked_accounts_csv
- to_csv account.blocking
+ to_csv account.blocking.select(:username, :domain)
end
def to_muted_accounts_csv
- to_csv account.muting
+ to_csv account.muting.select(:username, :domain)
end
def to_following_accounts_csv
- to_csv account.following
+ to_csv account.following.select(:username, :domain)
+ end
+
+ def to_lists_csv
+ CSV.generate do |csv|
+ account.owned_lists.select(:title).each do |list|
+ list.accounts.select(:username, :domain).each do |account|
+ csv << [list.title, acct(account)]
+ end
+ end
+ end
+ end
+
+ def to_blocked_domains_csv
+ CSV.generate do |csv|
+ account.domain_blocks.pluck(:domain).each do |domain|
+ csv << [domain]
+ end
+ end
end
def total_storage
@@ -32,6 +50,10 @@ class Export
account.following_count
end
+ def total_lists
+ account.owned_lists.count
+ end
+
def total_followers
account.followers_count
end
@@ -44,13 +66,21 @@ class Export
account.muting.count
end
+ def total_domain_blocks
+ account.domain_blocks.count
+ end
+
private
def to_csv(accounts)
CSV.generate do |csv|
accounts.each do |account|
- csv << [(account.local? ? account.local_username_and_domain : account.acct)]
+ csv << [acct(account)]
end
end
end
+
+ def acct(account)
+ account.local? ? account.local_username_and_domain : account.acct
+ end
end
diff --git a/app/models/follow.rb b/app/models/follow.rb
index 7ad56eb78..87fa11425 100644
--- a/app/models/follow.rb
+++ b/app/models/follow.rb
@@ -16,11 +16,8 @@ class Follow < ApplicationRecord
include Paginable
include RelationshipCacheable
- belongs_to :account, counter_cache: :following_count
-
- belongs_to :target_account,
- class_name: 'Account',
- counter_cache: :followers_count
+ belongs_to :account
+ belongs_to :target_account, class_name: 'Account'
has_one :notification, as: :activity, dependent: :destroy
@@ -39,7 +36,9 @@ class Follow < ApplicationRecord
end
before_validation :set_uri, only: :create
+ after_create :increment_cache_counters
after_destroy :remove_endorsements
+ after_destroy :decrement_cache_counters
private
@@ -50,4 +49,14 @@ class Follow < ApplicationRecord
def remove_endorsements
AccountPin.where(target_account_id: target_account_id, account_id: account_id).delete_all
end
+
+ def increment_cache_counters
+ account&.increment_count!(:following_count)
+ target_account&.increment_count!(:followers_count)
+ end
+
+ def decrement_cache_counters
+ account&.decrement_count!(:following_count)
+ target_account&.decrement_count!(:followers_count)
+ end
end
diff --git a/app/models/form/admin_settings.rb b/app/models/form/admin_settings.rb
index 9fef7da97..eca71bf62 100644
--- a/app/models/form/admin_settings.rb
+++ b/app/models/form/admin_settings.rb
@@ -44,6 +44,8 @@ class Form::AdminSettings
:preview_sensitive_media=,
:custom_css,
:custom_css=,
+ :profile_directory,
+ :profile_directory=,
to: Setting
)
end
diff --git a/app/models/form/admin_suspension_confirmation.rb b/app/models/form/admin_suspension_confirmation.rb
deleted file mode 100644
index c34b5b30e..000000000
--- a/app/models/form/admin_suspension_confirmation.rb
+++ /dev/null
@@ -1,7 +0,0 @@
-# frozen_string_literal: true
-
-class Form::AdminSuspensionConfirmation
- include ActiveModel::Model
-
- attr_accessor :acct, :report_id
-end
diff --git a/app/models/form/status_batch.rb b/app/models/form/status_batch.rb
index 8f5fd1fa2..898728067 100644
--- a/app/models/form/status_batch.rb
+++ b/app/models/form/status_batch.rb
@@ -6,8 +6,6 @@ class Form::StatusBatch
attr_accessor :status_ids, :action, :current_account
- ACTION_TYPE = %w(nsfw_on nsfw_off delete).freeze
-
def save
case action
when 'nsfw_on', 'nsfw_off'
diff --git a/app/models/identity.rb b/app/models/identity.rb
index a5e0c09ec..8cc65aef4 100644
--- a/app/models/identity.rb
+++ b/app/models/identity.rb
@@ -3,12 +3,12 @@
#
# Table name: identities
#
-# id :integer not null, primary key
-# user_id :integer
# provider :string default(""), not null
# uid :string default(""), not null
# created_at :datetime not null
# updated_at :datetime not null
+# id :bigint(8) not null, primary key
+# user_id :bigint(8)
#
class Identity < ApplicationRecord
diff --git a/app/models/instance.rb b/app/models/instance.rb
index 6d5c9c2ab..7448d465c 100644
--- a/app/models/instance.rb
+++ b/app/models/instance.rb
@@ -3,10 +3,23 @@
class Instance
include ActiveModel::Model
- attr_accessor :domain, :accounts_count
+ attr_accessor :domain, :accounts_count, :domain_block
- def initialize(account)
- @domain = account.domain
- @accounts_count = account.accounts_count
+ def initialize(resource)
+ @domain = resource.domain
+ @accounts_count = resource.accounts_count
+ @domain_block = resource.is_a?(DomainBlock) ? resource : DomainBlock.find_by(domain: domain)
+ end
+
+ def cached_sample_accounts
+ Rails.cache.fetch("#{cache_key}/sample_accounts", expires_in: 12.hours) { Account.where(domain: domain).searchable.joins(:account_stat).popular.limit(3) }
+ end
+
+ def to_param
+ domain
+ end
+
+ def cache_key
+ domain
end
end
diff --git a/app/models/instance_filter.rb b/app/models/instance_filter.rb
index 5073cf1fa..3483d8cd6 100644
--- a/app/models/instance_filter.rb
+++ b/app/models/instance_filter.rb
@@ -8,21 +8,10 @@ class InstanceFilter
end
def results
- scope = Account.remote.by_domain_accounts
- params.each do |key, value|
- scope.merge!(scope_for(key, value)) if value.present?
- end
- scope
- end
-
- private
-
- def scope_for(key, value)
- case key.to_s
- when 'domain_name'
- Account.matches_domain(value)
+ if params[:limited].present?
+ DomainBlock.order(id: :desc)
else
- raise "Unknown filter: #{key}"
+ Account.remote.by_domain_accounts
end
end
end
diff --git a/app/models/media_attachment.rb b/app/models/media_attachment.rb
index 62a11185a..6b939124f 100644
--- a/app/models/media_attachment.rb
+++ b/app/models/media_attachment.rb
@@ -3,20 +3,21 @@
#
# 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
+# 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)
#
class MediaAttachment < ApplicationRecord
@@ -76,8 +77,9 @@ class MediaAttachment < ApplicationRecord
IMAGE_LIMIT = 8.megabytes
VIDEO_LIMIT = 40.megabytes
- belongs_to :account, inverse_of: :media_attachments, optional: true
- belongs_to :status, inverse_of: :media_attachments, optional: true
+ 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
has_attached_file :file,
styles: ->(f) { file_styles f },
@@ -94,8 +96,8 @@ class MediaAttachment < ApplicationRecord
validates :account, presence: true
validates :description, length: { maximum: 420 }, if: :local?
- scope :attached, -> { where.not(status_id: nil) }
- scope :unattached, -> { where(status_id: nil) }
+ scope :attached, -> { where.not(status_id: nil).or(where.not(scheduled_status_id: nil)) }
+ scope :unattached, -> { where(status_id: nil, scheduled_status_id: nil) }
scope :local, -> { where(remote_url: '') }
scope :remote, -> { where.not(remote_url: '') }
diff --git a/app/models/notification.rb b/app/models/notification.rb
index 4233532d0..2f0a9b78c 100644
--- a/app/models/notification.rb
+++ b/app/models/notification.rb
@@ -75,7 +75,7 @@ class Notification < ApplicationRecord
return if account_ids.empty?
- accounts = Account.where(id: account_ids).each_with_object({}) { |a, h| h[a.id] = a }
+ accounts = Account.where(id: account_ids).includes(:account_stat).each_with_object({}) { |a, h| h[a.id] = a }
cached_items.each do |item|
item.from_account = accounts[item.from_account_id]
diff --git a/app/models/relay.rb b/app/models/relay.rb
index 75cb060b2..7478c110d 100644
--- a/app/models/relay.rb
+++ b/app/models/relay.rb
@@ -68,7 +68,7 @@ class Relay < ApplicationRecord
end
def some_local_account
- @some_local_account ||= Account.local.find_by(suspended: false)
+ @some_local_account ||= Account.representative
end
def ensure_disabled
diff --git a/app/models/report_note.rb b/app/models/report_note.rb
index 54b416577..6d7167e0e 100644
--- a/app/models/report_note.rb
+++ b/app/models/report_note.rb
@@ -15,7 +15,7 @@ class ReportNote < ApplicationRecord
belongs_to :account
belongs_to :report, inverse_of: :notes, touch: true
- scope :latest, -> { reorder('created_at ASC') }
+ scope :latest, -> { reorder(created_at: :desc) }
validates :content, presence: true, length: { maximum: 500 }
end
diff --git a/app/models/scheduled_status.rb b/app/models/scheduled_status.rb
new file mode 100644
index 000000000..27f0cbd28
--- /dev/null
+++ b/app/models/scheduled_status.rb
@@ -0,0 +1,39 @@
+# frozen_string_literal: true
+
+# == Schema Information
+#
+# Table name: scheduled_statuses
+#
+# id :bigint(8) not null, primary key
+# account_id :bigint(8)
+# scheduled_at :datetime
+# params :jsonb
+#
+
+class ScheduledStatus < ApplicationRecord
+ include Paginable
+
+ TOTAL_LIMIT = 300
+ DAILY_LIMIT = 25
+
+ belongs_to :account, inverse_of: :scheduled_statuses
+ has_many :media_attachments, inverse_of: :scheduled_status, dependent: :nullify
+
+ validate :validate_future_date
+ validate :validate_total_limit
+ validate :validate_daily_limit
+
+ private
+
+ def validate_future_date
+ errors.add(:scheduled_at, I18n.t('scheduled_statuses.too_soon')) if scheduled_at.present? && scheduled_at <= Time.now.utc + PostStatusService::MIN_SCHEDULE_OFFSET
+ end
+
+ def validate_total_limit
+ errors.add(:base, I18n.t('scheduled_statuses.over_total_limit', limit: TOTAL_LIMIT)) if account.scheduled_statuses.count >= TOTAL_LIMIT
+ end
+
+ def validate_daily_limit
+ errors.add(:base, I18n.t('scheduled_statuses.over_daily_limit', limit: DAILY_LIMIT)) if account.scheduled_statuses.where('scheduled_at::date = ?::date', scheduled_at).count >= DAILY_LIMIT
+ end
+end
diff --git a/app/models/status.rb b/app/models/status.rb
index 72a5bfb4c..9c036b27d 100644
--- a/app/models/status.rb
+++ b/app/models/status.rb
@@ -84,18 +84,28 @@ class Status < ApplicationRecord
scope :including_silenced_accounts, -> { left_outer_joins(:account).where(accounts: { silenced: true }) }
scope :not_excluded_by_account, ->(account) { where.not(account_id: account.excluded_from_timeline_account_ids) }
scope :not_domain_blocked_by_account, ->(account) { account.excluded_from_timeline_domains.blank? ? left_outer_joins(:account) : left_outer_joins(:account).where('accounts.domain IS NULL OR accounts.domain NOT IN (?)', account.excluded_from_timeline_domains) }
+ scope :tagged_with_all, ->(tags) {
+ Array(tags).map(&:id).map(&:to_i).reduce(self) do |result, id|
+ result.joins("INNER JOIN statuses_tags t#{id} ON t#{id}.status_id = statuses.id AND t#{id}.tag_id = #{id}")
+ end
+ }
+ scope :tagged_with_none, ->(tags) {
+ Array(tags).map(&:id).map(&:to_i).reduce(self) do |result, id|
+ result.joins("LEFT OUTER JOIN statuses_tags t#{id} ON t#{id}.status_id = statuses.id AND t#{id}.tag_id = #{id}")
+ .where("t#{id}.tag_id IS NULL")
+ end
+ }
- cache_associated :account,
- :application,
+ cache_associated :application,
:media_attachments,
:conversation,
:status_stat,
:tags,
:preview_cards,
:stream_entry,
- active_mentions: :account,
+ account: :account_stat,
+ active_mentions: { account: :account_stat },
reblog: [
- :account,
:application,
:stream_entry,
:tags,
@@ -103,9 +113,10 @@ class Status < ApplicationRecord
:media_attachments,
:conversation,
:status_stat,
- active_mentions: :account,
+ account: :account_stat,
+ active_mentions: { account: :account_stat },
],
- thread: :account
+ thread: { account: :account_stat }
delegate :domain, to: :account, prefix: true
@@ -231,8 +242,8 @@ class Status < ApplicationRecord
update_status_stat!(key => [public_send(key) - 1, 0].max)
end
- after_create :increment_counter_caches
- after_destroy :decrement_counter_caches
+ after_create_commit :increment_counter_caches
+ after_destroy_commit :decrement_counter_caches
after_create_commit :store_uri, if: :local?
after_create_commit :update_statistics, if: :local?
@@ -345,7 +356,7 @@ class Status < ApplicationRecord
return if account_ids.empty?
- accounts = Account.where(id: account_ids).each_with_object({}) { |a, h| h[a.id] = a }
+ accounts = Account.where(id: account_ids).includes(:account_stat).each_with_object({}) { |a, h| h[a.id] = a }
cached_items.each do |item|
item.account = accounts[item.account_id]
@@ -423,7 +434,7 @@ class Status < ApplicationRecord
end
def store_uri
- update_attribute(:uri, ActivityPub::TagManager.instance.uri_for(self)) if uri.nil?
+ update_column(:uri, ActivityPub::TagManager.instance.uri_for(self)) if uri.nil?
end
def prepare_contents
@@ -442,6 +453,8 @@ class Status < ApplicationRecord
end
def set_conversation
+ self.thread = thread.reblog if thread&.reblog?
+
self.reply = !(in_reply_to_id.nil? && thread.nil?) unless reply
if reply? && !thread.nil?
@@ -476,12 +489,7 @@ class Status < ApplicationRecord
def increment_counter_caches
return if direct_visibility?
- if association(:account).loaded?
- account.update_attribute(:statuses_count, account.statuses_count + 1)
- else
- Account.where(id: account_id).update_all('statuses_count = COALESCE(statuses_count, 0) + 1')
- end
-
+ account&.increment_count!(:statuses_count)
reblog&.increment_count!(:reblogs_count) if reblog?
thread&.increment_count!(:replies_count) if in_reply_to_id.present? && (public_visibility? || unlisted_visibility?)
end
@@ -489,12 +497,7 @@ class Status < ApplicationRecord
def decrement_counter_caches
return if direct_visibility? || marked_for_mass_destruction?
- if association(:account).loaded?
- account.update_attribute(:statuses_count, [account.statuses_count - 1, 0].max)
- else
- Account.where(id: account_id).update_all('statuses_count = GREATEST(COALESCE(statuses_count, 0) - 1, 0)')
- end
-
+ account&.decrement_count!(:statuses_count)
reblog&.decrement_count!(:reblogs_count) if reblog?
thread&.decrement_count!(:replies_count) if in_reply_to_id.present? && (public_visibility? || unlisted_visibility?)
end
diff --git a/app/models/tag.rb b/app/models/tag.rb
index 4f31f796e..99830ae92 100644
--- a/app/models/tag.rb
+++ b/app/models/tag.rb
@@ -11,12 +11,36 @@
class Tag < ApplicationRecord
has_and_belongs_to_many :statuses
+ has_and_belongs_to_many :accounts
+ has_and_belongs_to_many :sample_accounts, -> { searchable.discoverable.popular.limit(3) }, class_name: 'Account'
+
+ has_one :account_tag_stat, dependent: :destroy
HASHTAG_NAME_RE = '[[:word:]_]*[[:alpha:]_·][[:word:]_]*'
HASHTAG_RE = /(?:^|[^\/\)\w])#(#{HASHTAG_NAME_RE})/i
validates :name, presence: true, uniqueness: true, format: { with: /\A#{HASHTAG_NAME_RE}\z/i }
+ scope :discoverable, -> { joins(:account_tag_stat).where(AccountTagStat.arel_table[:accounts_count].gt(0)).where(account_tag_stats: { hidden: false }).order(Arel.sql('account_tag_stats.accounts_count desc')) }
+ scope :hidden, -> { where(account_tag_stats: { hidden: true }) }
+
+ delegate :accounts_count,
+ :accounts_count=,
+ :increment_count!,
+ :decrement_count!,
+ :hidden?,
+ to: :account_tag_stat
+
+ after_save :save_account_tag_stat
+
+ def account_tag_stat
+ super || build_account_tag_stat
+ end
+
+ def cached_sample_accounts
+ Rails.cache.fetch("#{cache_key}/sample_accounts", expires_in: 12.hours) { sample_accounts }
+ end
+
def to_param
name
end
@@ -43,4 +67,11 @@ class Tag < ApplicationRecord
Tag.where('lower(name) like lower(?)', pattern).order(:name).limit(limit)
end
end
+
+ private
+
+ def save_account_tag_stat
+ return unless account_tag_stat&.changed?
+ account_tag_stat.save
+ end
end
diff --git a/app/models/user.rb b/app/models/user.rb
index 219feca84..92eb4d6f0 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -36,6 +36,7 @@
# invite_id :bigint(8)
# remember_token :string
# chosen_languages :string is an Array
+# created_by_application_id :bigint(8)
#
class User < ApplicationRecord
@@ -49,7 +50,7 @@ class User < ApplicationRecord
# every day. Raising the duration reduces the amount of expensive
# RegenerationWorker jobs that need to be run when those people come
# to check their feed
- ACTIVE_DURATION = ENV.fetch('USER_ACTIVE_DAYS', 7).to_i.days
+ ACTIVE_DURATION = ENV.fetch('USER_ACTIVE_DAYS', 7).to_i.days.freeze
devise :two_factor_authenticatable,
otp_secret_encryption_key: Rails.configuration.x.otp_secret
@@ -66,6 +67,7 @@ class User < ApplicationRecord
belongs_to :account, inverse_of: :user
belongs_to :invite, counter_cache: :uses, optional: true
+ belongs_to :created_by_application, class_name: 'Doorkeeper::Application', optional: true
accepts_nested_attributes_for :account
has_many :applications, class_name: 'Doorkeeper::Application', as: :owner
@@ -73,17 +75,19 @@ class User < ApplicationRecord
validates :locale, inclusion: I18n.available_locales.map(&:to_s), if: :locale?
validates_with BlacklistedEmailValidator, if: :email_changed?
- validates_with EmailMxValidator, if: :email_changed?
+ validates_with EmailMxValidator, if: :validate_email_dns?
+ validates :agreement, acceptance: { allow_nil: false, accept: [true, 'true', '1'] }, on: :create
scope :recent, -> { order(id: :desc) }
scope :admins, -> { where(admin: true) }
scope :moderators, -> { where(moderator: true) }
scope :staff, -> { admins.or(moderators) }
scope :confirmed, -> { where.not(confirmed_at: nil) }
+ scope :enabled, -> { where(disabled: false) }
scope :inactive, -> { where(arel_table[:current_sign_in_at].lt(ACTIVE_DURATION.ago)) }
scope :active, -> { confirmed.where(arel_table[:current_sign_in_at].gteq(ACTIVE_DURATION.ago)).joins(:account).where(accounts: { suspended: false }) }
scope :matches_email, ->(value) { where(arel_table[:email].matches("#{value}%")) }
- scope :with_recent_ip_address, ->(value) { where(arel_table[:current_sign_in_ip].eq(value).or(arel_table[:last_sign_in_ip].eq(value))) }
+ scope :emailable, -> { confirmed.enabled.joins(:account).merge(Account.searchable) }
before_validation :sanitize_languages
@@ -96,7 +100,7 @@ class User < ApplicationRecord
delegate :auto_play_gif, :default_sensitive, :unfollow_modal, :boost_modal, :delete_modal,
:reduce_motion, :system_font_ui, :noindex, :theme, :display_media, :hide_network,
- :expand_spoilers, :default_language, :default_federation, to: :settings, prefix: :setting, allow_nil: false
+ :expand_spoilers, :default_language, :aggregate_reblogs, :default_federation, to: :settings, prefix: :setting, allow_nil: false
attr_reader :invite_code
@@ -137,6 +141,10 @@ class User < ApplicationRecord
confirmed_at.present?
end
+ def invited?
+ invite_id.present?
+ end
+
def staff?
admin? || moderator?
end
@@ -232,6 +240,10 @@ class User < ApplicationRecord
@hides_network ||= settings.hide_network
end
+ def aggregates_reblogs?
+ @aggregates_reblogs ||= settings.aggregate_reblogs
+ end
+
def token_for_app(a)
return nil if a.nil? || a.owner != self
Doorkeeper::AccessToken
@@ -291,7 +303,7 @@ class User < ApplicationRecord
end
if resource.blank?
- resource = new(email: attributes[:email])
+ resource = new(email: attributes[:email], agreement: true)
if Devise.check_at_sign && !resource[:email].index('@')
resource[:email] = Rpam2.getenv(resource.find_pam_service, attributes[:email], attributes[:password], 'email', false)
resource[:email] = "#{attributes[:email]}@#{resource.find_pam_suffix}" unless resource[:email]
@@ -304,7 +316,7 @@ class User < ApplicationRecord
resource = joins(:account).find_by(accounts: { username: attributes[Devise.ldap_uid.to_sym].first })
if resource.blank?
- resource = new(email: attributes[:mail].first, account_attributes: { username: attributes[Devise.ldap_uid.to_sym].first })
+ resource = new(email: attributes[:mail].first, agreement: true, account_attributes: { username: attributes[Devise.ldap_uid.to_sym].first })
resource.ldap_setup(attributes)
end
@@ -357,4 +369,8 @@ class User < ApplicationRecord
def needs_feed_update?
last_sign_in_at < ACTIVE_DURATION.ago
end
+
+ def validate_email_dns?
+ email_changed? && !(Rails.env.test? || Rails.env.development?)
+ end
end
diff --git a/app/models/web/push_subscription.rb b/app/models/web/push_subscription.rb
index d19b20c48..b57807d1c 100644
--- a/app/models/web/push_subscription.rb
+++ b/app/models/web/push_subscription.rb
@@ -68,6 +68,9 @@ class Web::PushSubscription < ApplicationRecord
p256dh: key_p256dh,
auth: key_auth,
ttl: ttl,
+ ssl_timeout: 10,
+ open_timeout: 10,
+ read_timeout: 10,
vapid: {
subject: "mailto:#{::Setting.site_contact_email}",
private_key: Rails.configuration.x.vapid_private_key,
diff --git a/app/policies/account_policy.rb b/app/policies/account_policy.rb
index efabe80d0..9c145979d 100644
--- a/app/policies/account_policy.rb
+++ b/app/policies/account_policy.rb
@@ -9,6 +9,10 @@ class AccountPolicy < ApplicationPolicy
staff?
end
+ def warn?
+ staff? && !record.user&.staff?
+ end
+
def suspend?
staff? && !record.user&.staff?
end
@@ -33,6 +37,10 @@ class AccountPolicy < ApplicationPolicy
staff?
end
+ def remove_header?
+ staff?
+ end
+
def subscribe?
admin?
end
diff --git a/app/policies/account_warning_preset_policy.rb b/app/policies/account_warning_preset_policy.rb
new file mode 100644
index 000000000..bccbd33ef
--- /dev/null
+++ b/app/policies/account_warning_preset_policy.rb
@@ -0,0 +1,19 @@
+# frozen_string_literal: true
+
+class AccountWarningPresetPolicy < ApplicationPolicy
+ def index?
+ staff?
+ end
+
+ def create?
+ staff?
+ end
+
+ def update?
+ staff?
+ end
+
+ def destroy?
+ staff?
+ end
+end
diff --git a/app/policies/instance_policy.rb b/app/policies/instance_policy.rb
index d1956e2de..a73823556 100644
--- a/app/policies/instance_policy.rb
+++ b/app/policies/instance_policy.rb
@@ -5,7 +5,7 @@ class InstancePolicy < ApplicationPolicy
admin?
end
- def resubscribe?
+ def show?
admin?
end
end
diff --git a/app/policies/tag_policy.rb b/app/policies/tag_policy.rb
new file mode 100644
index 000000000..c63de01db
--- /dev/null
+++ b/app/policies/tag_policy.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class TagPolicy < ApplicationPolicy
+ def index?
+ staff?
+ end
+
+ def hide?
+ staff?
+ end
+
+ def unhide?
+ staff?
+ end
+end
diff --git a/app/presenters/instance_presenter.rb b/app/presenters/instance_presenter.rb
index bf33c7287..dc77162d4 100644
--- a/app/presenters/instance_presenter.rb
+++ b/app/presenters/instance_presenter.rb
@@ -22,7 +22,7 @@ class InstancePresenter
end
def status_count
- Rails.cache.fetch('local_status_count') { Account.local.sum(:statuses_count) }
+ Rails.cache.fetch('local_status_count') { Account.local.joins(:account_stat).sum('account_stats.statuses_count') }.to_i
end
def domain_count
diff --git a/app/serializers/activitypub/actor_serializer.rb b/app/serializers/activitypub/actor_serializer.rb
index 5054bd683..6746c1782 100644
--- a/app/serializers/activitypub/actor_serializer.rb
+++ b/app/serializers/activitypub/actor_serializer.rb
@@ -14,6 +14,7 @@ class ActivityPub::ActorSerializer < ActiveModel::Serializer
has_many :virtual_attachments, key: :attachment
attribute :moved_to, if: :moved?
+ attribute :also_known_as, if: :also_known_as?
class EndpointsSerializer < ActiveModel::Serializer
include RoutingHelper
@@ -105,7 +106,7 @@ class ActivityPub::ActorSerializer < ActiveModel::Serializer
end
def virtual_tags
- object.emojis
+ object.emojis + object.tags
end
def virtual_attachments
@@ -116,9 +117,31 @@ class ActivityPub::ActorSerializer < ActiveModel::Serializer
ActivityPub::TagManager.instance.uri_for(object.moved_to_account)
end
+ def also_known_as?
+ !object.also_known_as.empty?
+ end
+
class CustomEmojiSerializer < ActivityPub::EmojiSerializer
end
+ class TagSerializer < ActiveModel::Serializer
+ include RoutingHelper
+
+ attributes :type, :href, :name
+
+ def type
+ 'Hashtag'
+ end
+
+ def href
+ explore_hashtag_url(object)
+ end
+
+ def name
+ "##{object.name}"
+ end
+ end
+
class Account::FieldSerializer < ActiveModel::Serializer
attributes :type, :name, :value
diff --git a/app/serializers/initial_state_serializer.rb b/app/serializers/initial_state_serializer.rb
index 9762b244a..f0688699a 100644
--- a/app/serializers/initial_state_serializer.rb
+++ b/app/serializers/initial_state_serializer.rb
@@ -17,6 +17,7 @@ class InitialStateSerializer < ActiveModel::Serializer
version: Mastodon::Version.to_s,
invites_enabled: Setting.min_invite_role == 'user',
mascot: instance_presenter.mascot&.file&.url,
+ profile_directory: Setting.profile_directory,
}
if object.current_account
@@ -28,6 +29,7 @@ class InitialStateSerializer < ActiveModel::Serializer
store[:display_media] = object.current_account.user.setting_display_media
store[:expand_spoilers] = object.current_account.user.setting_expand_spoilers
store[:reduce_motion] = object.current_account.user.setting_reduce_motion
+ store[:is_staff] = object.current_account.user.staff?
end
store
diff --git a/app/serializers/rest/scheduled_status_serializer.rb b/app/serializers/rest/scheduled_status_serializer.rb
new file mode 100644
index 000000000..5d6311b87
--- /dev/null
+++ b/app/serializers/rest/scheduled_status_serializer.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class REST::ScheduledStatusSerializer < ActiveModel::Serializer
+ attributes :id, :scheduled_at, :params
+
+ has_many :media_attachments, serializer: REST::MediaAttachmentSerializer
+
+ def id
+ object.id.to_s
+ end
+
+ def params
+ object.params.without(:application_id)
+ end
+end
diff --git a/app/services/activitypub/fetch_remote_account_service.rb b/app/services/activitypub/fetch_remote_account_service.rb
index 8430d12d5..3c2044941 100644
--- a/app/services/activitypub/fetch_remote_account_service.rb
+++ b/app/services/activitypub/fetch_remote_account_service.rb
@@ -5,8 +5,8 @@ class ActivityPub::FetchRemoteAccountService < BaseService
SUPPORTED_TYPES = %w(Application Group Organization Person Service).freeze
- # Does a WebFinger roundtrip on each call
- def call(uri, id: true, prefetched_body: nil, break_on_redirect: false)
+ # Does a WebFinger roundtrip on each call, unless `only_key` is true
+ def call(uri, id: true, prefetched_body: nil, break_on_redirect: false, only_key: false)
return ActivityPub::TagManager.instance.uri_to_resource(uri, Account) if ActivityPub::TagManager.instance.local_uri?(uri)
@json = if prefetched_body.nil?
@@ -21,9 +21,9 @@ class ActivityPub::FetchRemoteAccountService < BaseService
@username = @json['preferredUsername']
@domain = Addressable::URI.parse(@uri).normalized_host
- return unless verified_webfinger?
+ return unless only_key || verified_webfinger?
- ActivityPub::ProcessAccountService.new.call(@username, @domain, @json)
+ ActivityPub::ProcessAccountService.new.call(@username, @domain, @json, only_key: only_key)
rescue Oj::ParseError
nil
end
diff --git a/app/services/activitypub/process_account_service.rb b/app/services/activitypub/process_account_service.rb
index 5c865dae2..d6c791b44 100644
--- a/app/services/activitypub/process_account_service.rb
+++ b/app/services/activitypub/process_account_service.rb
@@ -33,8 +33,10 @@ class ActivityPub::ProcessAccountService < BaseService
after_protocol_change! if protocol_changed?
after_key_change! if key_changed? && !@options[:signed_with_known_key]
- check_featured_collection! if @account.featured_collection_url.present?
- check_links! unless @account.fields.empty?
+ unless @options[:only_key]
+ check_featured_collection! if @account.featured_collection_url.present?
+ check_links! unless @account.fields.empty?
+ end
@account
rescue Oj::ParseError
@@ -54,11 +56,11 @@ class ActivityPub::ProcessAccountService < BaseService
end
def update_account
- @account.last_webfingered_at = Time.now.utc
+ @account.last_webfingered_at = Time.now.utc unless @options[:only_key]
@account.protocol = :activitypub
set_immediate_attributes!
- set_fetchable_attributes!
+ set_fetchable_attributes! unless @options[:only_keys]
@account.save_with_optional_media!
end
@@ -75,6 +77,7 @@ class ActivityPub::ProcessAccountService < BaseService
@account.note = @json['summary'] || ''
@account.locked = @json['manuallyApprovesFollowers'] || false
@account.fields = property_values || {}
+ @account.also_known_as = as_array(@json['alsoKnownAs'] || []).map { |item| value_or_id(item) }
@account.actor_type = actor_type
end
diff --git a/app/services/activitypub/process_collection_service.rb b/app/services/activitypub/process_collection_service.rb
index 79cdca297..5c54aad89 100644
--- a/app/services/activitypub/process_collection_service.rb
+++ b/app/services/activitypub/process_collection_service.rb
@@ -27,7 +27,7 @@ class ActivityPub::ProcessCollectionService < BaseService
private
def different_actor?
- @json['actor'].present? && value_or_id(@json['actor']) != @account.uri && @json['signature'].present?
+ @json['actor'].present? && value_or_id(@json['actor']) != @account.uri
end
def process_items(items)
diff --git a/app/services/after_block_domain_from_account_service.rb b/app/services/after_block_domain_from_account_service.rb
index 56cc819fb..180f13403 100644
--- a/app/services/after_block_domain_from_account_service.rb
+++ b/app/services/after_block_domain_from_account_service.rb
@@ -31,11 +31,11 @@ class AfterBlockDomainFromAccountService < BaseService
return unless follow.account.activitypub?
- json = Oj.dump(ActivityPub::LinkedDataSignature.new(ActiveModelSerializers::SerializableResource.new(
+ json = ActiveModelSerializers::SerializableResource.new(
follow,
serializer: ActivityPub::RejectFollowSerializer,
adapter: ActivityPub::Adapter
- ).as_json).sign!(@account))
+ ).to_json
ActivityPub::DeliveryWorker.perform_async(json, @account.id, follow.account.inbox_url)
end
diff --git a/app/services/app_sign_up_service.rb b/app/services/app_sign_up_service.rb
new file mode 100644
index 000000000..d621cc462
--- /dev/null
+++ b/app/services/app_sign_up_service.rb
@@ -0,0 +1,23 @@
+# frozen_string_literal: true
+
+class AppSignUpService < BaseService
+ def call(app, params)
+ return unless allowed_registrations?
+
+ user_params = params.slice(:email, :password, :agreement, :locale)
+ account_params = params.slice(:username)
+ user = User.create!(user_params.merge(created_by_application: app, password_confirmation: user_params[:password], account_attributes: account_params))
+
+ Doorkeeper::AccessToken.create!(application: app,
+ resource_owner_id: user.id,
+ scopes: app.scopes,
+ expires_in: Doorkeeper.configuration.access_token_expires_in,
+ use_refresh_token: Doorkeeper.configuration.refresh_token_enabled?)
+ end
+
+ private
+
+ def allowed_registrations?
+ Setting.open_registrations && !Rails.configuration.x.single_user_mode
+ end
+end
diff --git a/app/services/authorize_follow_service.rb b/app/services/authorize_follow_service.rb
index 1674239df..f2e3ebe7d 100644
--- a/app/services/authorize_follow_service.rb
+++ b/app/services/authorize_follow_service.rb
@@ -24,11 +24,11 @@ class AuthorizeFollowService < BaseService
end
def build_json(follow_request)
- Oj.dump(ActivityPub::LinkedDataSignature.new(ActiveModelSerializers::SerializableResource.new(
+ ActiveModelSerializers::SerializableResource.new(
follow_request,
serializer: ActivityPub::AcceptFollowSerializer,
adapter: ActivityPub::Adapter
- ).as_json).sign!(follow_request.target_account))
+ ).to_json
end
def build_xml(follow_request)
diff --git a/app/services/batched_remove_status_service.rb b/app/services/batched_remove_status_service.rb
index 75d756495..2e61904fc 100644
--- a/app/services/batched_remove_status_service.rb
+++ b/app/services/batched_remove_status_service.rb
@@ -9,7 +9,9 @@ class BatchedRemoveStatusService < BaseService
# Remove statuses from home feeds
# Push delete events to streaming API for home feeds and public feeds
# @param [Status] statuses A preferably batched array of statuses
- def call(statuses)
+ # @param [Hash] options
+ # @option [Boolean] :skip_side_effects
+ def call(statuses, **options)
statuses = Status.where(id: statuses.map(&:id)).includes(:account, :stream_entry).flat_map { |status| [status] + status.reblogs.includes(:account, :stream_entry).to_a }
@mentions = statuses.each_with_object({}) { |s, h| h[s.id] = s.active_mentions.includes(:account).to_a }
@@ -26,6 +28,8 @@ class BatchedRemoveStatusService < BaseService
status.destroy
end
+ return if options[:skip_side_effects]
+
# Batch by source account
statuses.group_by(&:account_id).each_value do |account_statuses|
account = account_statuses.first.account
diff --git a/app/services/block_service.rb b/app/services/block_service.rb
index b39c3eef2..140b238df 100644
--- a/app/services/block_service.rb
+++ b/app/services/block_service.rb
@@ -1,8 +1,6 @@
# frozen_string_literal: true
class BlockService < BaseService
- include StreamEntryRenderer
-
def call(account, target_account)
return if account.id == target_account.id
@@ -27,11 +25,11 @@ class BlockService < BaseService
end
def build_json(block)
- Oj.dump(ActivityPub::LinkedDataSignature.new(ActiveModelSerializers::SerializableResource.new(
+ ActiveModelSerializers::SerializableResource.new(
block,
serializer: ActivityPub::BlockSerializer,
adapter: ActivityPub::Adapter
- ).as_json).sign!(block.account))
+ ).to_json
end
def build_xml(block)
diff --git a/app/services/fetch_link_card_service.rb b/app/services/fetch_link_card_service.rb
index 38c578de2..7979c312e 100644
--- a/app/services/fetch_link_card_service.rb
+++ b/app/services/fetch_link_card_service.rb
@@ -137,7 +137,8 @@ class FetchLinkCardService < BaseService
detector.strip_tags = true
guess = detector.detect(@html, @html_charset)
- page = Nokogiri::HTML(@html, nil, guess&.fetch(:encoding, nil))
+ encoding = guess&.fetch(:confidence, 0).to_i > 60 ? guess&.fetch(:encoding, nil) : nil
+ page = Nokogiri::HTML(@html, nil, encoding)
player_url = meta_property(page, 'twitter:player')
if player_url && !bad_url?(Addressable::URI.parse(player_url))
diff --git a/app/services/follow_service.rb b/app/services/follow_service.rb
index 0020bc9fe..9d36a1449 100644
--- a/app/services/follow_service.rb
+++ b/app/services/follow_service.rb
@@ -1,8 +1,6 @@
# frozen_string_literal: true
class FollowService < BaseService
- include StreamEntryRenderer
-
# 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)
@@ -12,7 +10,7 @@ class FollowService < BaseService
target_account = ResolveAccountService.new.call(target_account, skip_webfinger: true)
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)
+ raise Mastodon::NotPermittedError if target_account.blocking?(source_account) || source_account.blocking?(target_account) || target_account.moved?
if source_account.following?(target_account)
# We're already following this account, but we'll call follow! again to
@@ -82,10 +80,10 @@ class FollowService < BaseService
end
def build_json(follow_request)
- Oj.dump(ActivityPub::LinkedDataSignature.new(ActiveModelSerializers::SerializableResource.new(
+ ActiveModelSerializers::SerializableResource.new(
follow_request,
serializer: ActivityPub::FollowSerializer,
adapter: ActivityPub::Adapter
- ).as_json).sign!(follow_request.account))
+ ).to_json
end
end
diff --git a/app/services/hashtag_query_service.rb b/app/services/hashtag_query_service.rb
new file mode 100644
index 000000000..5773d78c6
--- /dev/null
+++ b/app/services/hashtag_query_service.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+class HashtagQueryService < BaseService
+ def call(tag, params, account = nil, local = false)
+ tags = tags_for(Array(tag.name) | Array(params[:any])).pluck(:id)
+ all = tags_for(params[:all])
+ none = tags_for(params[:none])
+
+ Status.distinct
+ .as_tag_timeline(tags, account, local)
+ .tagged_with_all(all)
+ .tagged_with_none(none)
+ end
+
+ private
+
+ def tags_for(tags)
+ Tag.where(name: tags.map(&:downcase)) if tags.presence
+ end
+end
diff --git a/app/services/post_status_service.rb b/app/services/post_status_service.rb
index 83d661ae2..26b611bee 100644
--- a/app/services/post_status_service.rb
+++ b/app/services/post_status_service.rb
@@ -1,79 +1,105 @@
# frozen_string_literal: true
class PostStatusService < BaseService
+ MIN_SCHEDULE_OFFSET = 5.minutes.freeze
+
# Post a text status update, fetch and notify remote users mentioned
# @param [Account] account Account from which to post
- # @param [String] text Message
- # @param [Status] in_reply_to Optional status to reply to
# @param [Hash] options
+ # @option [String] :text Message
+ # @option [Status] :thread Optional status to reply to
# @option [Boolean] :sensitive
# @option [String] :visibility
# @option [String] :spoiler_text
+ # @option [String] :language
+ # @option [String] :scheduled_at
# @option [Enumerable] :media_ids Optional array of media IDs to attach
# @option [Doorkeeper::Application] :application
# @option [String] :idempotency Optional idempotency key
# @return [Status]
- def call(account, text, in_reply_to = nil, **options)
- if options[:idempotency].present?
- existing_id = redis.get("idempotency:status:#{account.id}:#{options[:idempotency]}")
- return Status.find(existing_id) if existing_id
+ def call(account, options = {})
+ @account = account
+ @options = options
+ @text = @options[:text] || ''
+ @in_reply_to = @options[:thread]
+
+ return idempotency_duplicate if idempotency_given? && idempotency_duplicate?
+
+ validate_media!
+ preprocess_attributes!
+
+ if scheduled?
+ schedule_status!
+ else
+ process_status!
+ postprocess_status!
+ bump_potential_friendship!
end
- media = validate_media!(options[:media_ids])
- status = nil
- text = options.delete(:spoiler_text) if text.blank? && options[:spoiler_text].present?
+ redis.setex(idempotency_key, 3_600, @status.id) if idempotency_given?
- ApplicationRecord.transaction do
- status = account.statuses.create!(text: text,
- media_attachments: media || [],
- thread: in_reply_to,
- sensitive: (options[:sensitive].nil? ? account.user&.setting_default_sensitive : options[:sensitive]) || options[:spoiler_text].present?,
- spoiler_text: options[:spoiler_text] || '',
- visibility: options[:visibility] || account.user&.setting_default_privacy,
- 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))
- end
-
- process_hashtags_service.call(status)
- process_mentions_service.call(status)
-
- LinkCrawlWorker.perform_async(status.id) unless status.spoiler_text?
- DistributionWorker.perform_async(status.id)
-
- unless status.local_only?
- Pubsubhubbub::DistributionWorker.perform_async(status.stream_entry.id)
- ActivityPub::DistributionWorker.perform_async(status.id)
- ActivityPub::ReplyDistributionWorker.perform_async(status.id) if status.reply? && status.thread.account.local?
- end
-
- if options[:idempotency].present?
- redis.setex("idempotency:status:#{account.id}:#{options[:idempotency]}", 3_600, status.id)
- end
-
- bump_potential_friendship(account, status)
-
- status
+ @status
end
private
+ def preprocess_attributes!
+ @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
+ @scheduled_at = @options[:scheduled_at]&.to_datetime
+ @scheduled_at = nil if scheduled_in_the_past?
+ end
+
+ def process_status!
+ # The following transaction block is needed to wrap the UPDATEs to
+ # the media attachments when the status is created
+
+ ApplicationRecord.transaction do
+ @status = @account.statuses.create!(status_attributes)
+ end
+
+ process_hashtags_service.call(@status)
+ process_mentions_service.call(@status)
+ end
+
+ def schedule_status!
+ if @account.statuses.build(status_attributes).valid?
+ # The following transaction block is needed to wrap the UPDATEs to
+ # the media attachments when the scheduled status is created
+
+ ApplicationRecord.transaction do
+ @status = @account.scheduled_statuses.create!(scheduled_status_attributes)
+ end
+ else
+ raise ActiveRecord::RecordInvalid
+ end
+ end
+
def local_only_option(local_only, in_reply_to, federation_setting)
return in_reply_to&.local_only? if local_only.nil? # XXX temporary, just until clients implement to avoid leaking local_only posts
return federation_setting if local_only.nil?
local_only
end
- def validate_media!(media_ids)
- return if media_ids.blank? || !media_ids.is_a?(Enumerable)
+ def postprocess_status!
+ LinkCrawlWorker.perform_async(@status.id) unless @status.spoiler_text?
+ DistributionWorker.perform_async(@status.id)
- raise Mastodon::ValidationError, I18n.t('media_attachments.validations.too_many') if media_ids.size > 4
+ unless @status.local_only?
+ Pubsubhubbub::DistributionWorker.perform_async(@status.stream_entry.id)
+ ActivityPub::DistributionWorker.perform_async(@status.id)
+ end
+ end
- media = MediaAttachment.where(status_id: nil).where(id: media_ids.take(4).map(&:to_i))
+ def validate_media!
+ return if @options[:media_ids].blank? || !@options[:media_ids].is_a?(Enumerable)
- raise Mastodon::ValidationError, I18n.t('media_attachments.validations.images_and_video') if media.size > 1 && media.find(&:video?)
+ raise Mastodon::ValidationError, I18n.t('media_attachments.validations.too_many') if @options[:media_ids].size > 4
- media
+ @media = MediaAttachment.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(&:video?)
end
def language_from_option(str)
@@ -92,10 +118,69 @@ class PostStatusService < BaseService
Redis.current
end
- def bump_potential_friendship(account, status)
- return if !status.reply? || account.id == status.in_reply_to_account_id
+ def scheduled?
+ @scheduled_at.present?
+ end
+
+ def idempotency_key
+ "idempotency:status:#{@account.id}:#{@options[:idempotency]}"
+ end
+
+ def idempotency_given?
+ @options[:idempotency].present?
+ end
+
+ def idempotency_duplicate
+ if scheduled?
+ @account.schedule_statuses.find(@idempotency_duplicate)
+ else
+ @account.statuses.find(@idempotency_duplicate)
+ end
+ end
+
+ def idempotency_duplicate?
+ @idempotency_duplicate = redis.get(idempotency_key)
+ end
+
+ def scheduled_in_the_past?
+ @scheduled_at.present? && @scheduled_at <= Time.now.utc + MIN_SCHEDULE_OFFSET
+ end
+
+ def bump_potential_friendship!
+ return if !@status.reply? || @account.id == @status.in_reply_to_account_id
ActivityTracker.increment('activity:interactions')
- return if account.following?(status.in_reply_to_account_id)
- PotentialFriendshipTracker.record(account.id, status.in_reply_to_account_id, :reply)
+ return if @account.following?(@status.in_reply_to_account_id)
+ PotentialFriendshipTracker.record(@account.id, @status.in_reply_to_account_id, :reply)
+ end
+
+ def status_attributes
+ {
+ text: @text,
+ media_attachments: @media || [],
+ thread: @in_reply_to,
+ sensitive: (@options[:sensitive].nil? ? @account.user&.setting_default_sensitive : @options[:sensitive]) || @options[:spoiler_text].present?,
+ 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),
+ }
+ end
+
+ def scheduled_status_attributes
+ {
+ scheduled_at: @scheduled_at,
+ media_attachments: @media || [],
+ params: scheduled_options,
+ }
+ end
+
+ 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
+ end
end
end
diff --git a/app/services/process_mentions_service.rb b/app/services/process_mentions_service.rb
index ec7d33b1d..2595c5fd3 100644
--- a/app/services/process_mentions_service.rb
+++ b/app/services/process_mentions_service.rb
@@ -60,11 +60,13 @@ class ProcessMentionsService < BaseService
end
def activitypub_json
- @activitypub_json ||= Oj.dump(ActivityPub::LinkedDataSignature.new(ActiveModelSerializers::SerializableResource.new(
+ return @activitypub_json if defined?(@activitypub_json)
+ payload = ActiveModelSerializers::SerializableResource.new(
@status,
serializer: ActivityPub::ActivitySerializer,
adapter: ActivityPub::Adapter
- ).as_json).sign!(@status.account))
+ ).as_json
+ @activitypub_json = Oj.dump(@status.distributable? ? ActivityPub::LinkedDataSignature.new(payload).sign!(@status.account) : payload)
end
def resolve_account_service
diff --git a/app/services/pubsubhubbub/subscribe_service.rb b/app/services/pubsubhubbub/subscribe_service.rb
index 2dba05b12..550da6328 100644
--- a/app/services/pubsubhubbub/subscribe_service.rb
+++ b/app/services/pubsubhubbub/subscribe_service.rb
@@ -19,31 +19,18 @@ class Pubsubhubbub::SubscribeService < BaseService
private
def process_subscribe
- case subscribe_status
- when :invalid_topic
+ if account.nil?
['Invalid topic URL', 422]
- when :invalid_callback
+ elsif !valid_callback?
['Invalid callback URL', 422]
- when :callback_not_allowed
+ elsif blocked_domain?
['Callback URL not allowed', 403]
- when :valid
+ else
confirm_subscription
['', 202]
end
end
- def subscribe_status
- if account.nil?
- :invalid_topic
- elsif !valid_callback?
- :invalid_callback
- elsif blocked_domain?
- :callback_not_allowed
- else
- :valid
- end
- end
-
def confirm_subscription
subscription = locate_subscription
Pubsubhubbub::ConfirmationWorker.perform_async(subscription.id, 'subscribe', secret, lease_seconds)
@@ -58,12 +45,7 @@ class Pubsubhubbub::SubscribeService < BaseService
end
def locate_subscription
- subscription = Subscription.find_by(account: account, callback_url: callback)
-
- if subscription.nil?
- subscription = Subscription.new(account: account, callback_url: callback)
- end
-
+ subscription = Subscription.find_or_initialize_by(account: account, callback_url: callback)
subscription.domain = domain
subscription.save!
subscription
diff --git a/app/services/reject_follow_service.rb b/app/services/reject_follow_service.rb
index c1f7bcb60..a91266aa4 100644
--- a/app/services/reject_follow_service.rb
+++ b/app/services/reject_follow_service.rb
@@ -19,11 +19,11 @@ class RejectFollowService < BaseService
end
def build_json(follow_request)
- Oj.dump(ActivityPub::LinkedDataSignature.new(ActiveModelSerializers::SerializableResource.new(
+ ActiveModelSerializers::SerializableResource.new(
follow_request,
serializer: ActivityPub::RejectFollowSerializer,
adapter: ActivityPub::Adapter
- ).as_json).sign!(follow_request.target_account))
+ ).to_json
end
def build_xml(follow_request)
diff --git a/app/services/report_service.rb b/app/services/report_service.rb
index 057d05ab9..1bcc1c0d5 100644
--- a/app/services/report_service.rb
+++ b/app/services/report_service.rb
@@ -52,6 +52,6 @@ class ReportService < BaseService
end
def some_local_account
- @some_local_account ||= Account.local.where(suspended: false).first
+ @some_local_account ||= Account.representative
end
end
diff --git a/app/services/resolve_account_service.rb b/app/services/resolve_account_service.rb
index c3064211d..4ff351c5f 100644
--- a/app/services/resolve_account_service.rb
+++ b/app/services/resolve_account_service.rb
@@ -19,6 +19,7 @@ class ResolveAccountService < BaseService
@account = uri
@username = @account.username
@domain = @account.domain
+ uri = "#{@username}@#{@domain}"
return @account if @account.local? || !webfinger_update_due?
else
diff --git a/app/services/search_service.rb b/app/services/search_service.rb
index cc1fcb52f..1c31e0509 100644
--- a/app/services/search_service.rb
+++ b/app/services/search_service.rb
@@ -34,6 +34,8 @@ class SearchService < BaseService
.compact
statuses.reject { |status| StatusFilter.new(status, account).filtered? }
+ rescue Faraday::ConnectionFailed
+ []
end
def perform_hashtags_search!
diff --git a/app/services/suspend_account_service.rb b/app/services/suspend_account_service.rb
index 8fc79b8ad..1bc2314de 100644
--- a/app/services/suspend_account_service.rb
+++ b/app/services/suspend_account_service.rb
@@ -1,6 +1,42 @@
# frozen_string_literal: true
class SuspendAccountService < BaseService
+ ASSOCIATIONS_ON_SUSPEND = %w(
+ account_pins
+ active_relationships
+ block_relationships
+ blocked_by_relationships
+ conversation_mutes
+ conversations
+ custom_filters
+ domain_blocks
+ favourites
+ follow_requests
+ list_accounts
+ media_attachments
+ mute_relationships
+ muted_by_relationships
+ notifications
+ owned_lists
+ passive_relationships
+ report_notes
+ scheduled_statuses
+ status_pins
+ stream_entries
+ subscriptions
+ ).freeze
+
+ ASSOCIATIONS_ON_DESTROY = %w(
+ reports
+ targeted_moderation_notes
+ targeted_reports
+ ).freeze
+
+ # Suspend an account and remove as much of its data as possible
+ # @param [Account]
+ # @param [Hash] options
+ # @option [Boolean] :including_user Remove the user record as well
+ # @option [Boolean] :destroy Remove the account record instead of suspending
def call(account, **options)
@account = account
@options = options
@@ -8,60 +44,66 @@ class SuspendAccountService < BaseService
purge_user!
purge_profile!
purge_content!
- unsubscribe_push_subscribers!
end
private
def purge_user!
- if @options[:remove_user]
- @account.user&.destroy
+ return if !@account.local? || @account.user.nil?
+
+ if @options[:including_user]
+ @account.user.destroy
else
- @account.user&.disable!
+ @account.user.disable!
end
end
def purge_content!
- if @account.local?
- ActivityPub::DeliveryWorker.push_bulk(delivery_inboxes) do |inbox_url|
- [delete_actor_json, @account.id, inbox_url]
- end
- end
+ distribute_delete_actor! if @account.local?
@account.statuses.reorder(nil).find_in_batches do |statuses|
- BatchedRemoveStatusService.new.call(statuses)
+ BatchedRemoveStatusService.new.call(statuses, skip_side_effects: @options[:destroy])
end
- [
- @account.media_attachments,
- @account.stream_entries,
- @account.notifications,
- @account.favourites,
- @account.active_relationships,
- @account.passive_relationships,
- ].each do |association|
- destroy_all(association)
+ associations_for_destruction.each do |association_name|
+ destroy_all(@account.public_send(association_name))
end
+
+ @account.destroy if @options[:destroy]
end
def purge_profile!
- @account.suspended = true
- @account.display_name = ''
- @account.note = ''
- @account.statuses_count = 0
+ # If the account is going to be destroyed
+ # there is no point wasting time updating
+ # its values first
+
+ return if @options[:destroy]
+
+ @account.silenced = false
+ @account.suspended = true
+ @account.locked = false
+ @account.display_name = ''
+ @account.note = ''
+ @account.fields = {}
+ @account.statuses_count = 0
+ @account.followers_count = 0
+ @account.following_count = 0
+ @account.moved_to_account = nil
@account.avatar.destroy
@account.header.destroy
@account.save!
end
- def unsubscribe_push_subscribers!
- destroy_all(@account.subscriptions)
- end
-
def destroy_all(association)
association.in_batches.destroy_all
end
+ def distribute_delete_actor!
+ ActivityPub::DeliveryWorker.push_bulk(delivery_inboxes) do |inbox_url|
+ [delete_actor_json, @account.id, inbox_url]
+ end
+ end
+
def delete_actor_json
return @delete_actor_json if defined?(@delete_actor_json)
@@ -77,4 +119,12 @@ class SuspendAccountService < BaseService
def delivery_inboxes
Account.inboxes + Relay.enabled.pluck(:inbox_url)
end
+
+ def associations_for_destruction
+ if @options[:destroy]
+ ASSOCIATIONS_ON_SUSPEND + ASSOCIATIONS_ON_DESTROY
+ else
+ ASSOCIATIONS_ON_SUSPEND
+ end
+ end
end
diff --git a/app/services/unblock_service.rb b/app/services/unblock_service.rb
index 869f62d1c..72fc5ab15 100644
--- a/app/services/unblock_service.rb
+++ b/app/services/unblock_service.rb
@@ -20,11 +20,11 @@ class UnblockService < BaseService
end
def build_json(unblock)
- Oj.dump(ActivityPub::LinkedDataSignature.new(ActiveModelSerializers::SerializableResource.new(
+ ActiveModelSerializers::SerializableResource.new(
unblock,
serializer: ActivityPub::UndoBlockSerializer,
adapter: ActivityPub::Adapter
- ).as_json).sign!(unblock.account))
+ ).to_json
end
def build_xml(block)
diff --git a/app/services/unfollow_service.rb b/app/services/unfollow_service.rb
index 73a64929f..03e45912d 100644
--- a/app/services/unfollow_service.rb
+++ b/app/services/unfollow_service.rb
@@ -43,11 +43,11 @@ class UnfollowService < BaseService
end
def build_json(follow)
- Oj.dump(ActivityPub::LinkedDataSignature.new(ActiveModelSerializers::SerializableResource.new(
+ ActiveModelSerializers::SerializableResource.new(
follow,
serializer: ActivityPub::UndoFollowSerializer,
adapter: ActivityPub::Adapter
- ).as_json).sign!(follow.account))
+ ).to_json
end
def build_xml(follow)
diff --git a/app/services/update_account_service.rb b/app/services/update_account_service.rb
index ec69d944a..01756a73d 100644
--- a/app/services/update_account_service.rb
+++ b/app/services/update_account_service.rb
@@ -10,7 +10,11 @@ class UpdateAccountService < BaseService
authorize_all_follow_requests(account) if was_locked && !account.locked
check_links(account)
+ process_hashtags(account)
end
+ rescue Mastodon::DimensionsValidationError => de
+ account.errors.add(:avatar, de.message)
+ false
end
private
@@ -24,4 +28,8 @@ class UpdateAccountService < BaseService
def check_links(account)
VerifyAccountLinksWorker.perform_async(account.id)
end
+
+ def process_hashtags(account)
+ account.tags_as_strings = Extractor.extract_hashtags(account.note)
+ end
end
diff --git a/app/services/verify_link_service.rb b/app/services/verify_link_service.rb
index 9f56249c7..c65578761 100644
--- a/app/services/verify_link_service.rb
+++ b/app/services/verify_link_service.rb
@@ -10,7 +10,6 @@ class VerifyLinkService < BaseService
return unless link_back_present?
field.mark_verified!
- field.account.save!
rescue HTTP::Error, Addressable::URI::InvalidURIError, Mastodon::HostValidationError, Mastodon::LengthValidationError => e
Rails.logger.debug "Error fetching link #{@url}: #{e}"
nil
diff --git a/app/validators/blacklisted_email_validator.rb b/app/validators/blacklisted_email_validator.rb
index 3f203f49a..a2061fdd3 100644
--- a/app/validators/blacklisted_email_validator.rb
+++ b/app/validators/blacklisted_email_validator.rb
@@ -2,31 +2,32 @@
class BlacklistedEmailValidator < ActiveModel::Validator
def validate(user)
- user.errors.add(:email, I18n.t('users.invalid_email')) if blocked_email?(user.email)
+ @email = user.email
+ user.errors.add(:email, I18n.t('users.invalid_email')) if blocked_email?
end
private
- def blocked_email?(value)
- on_blacklist?(value) || not_on_whitelist?(value)
+ def blocked_email?
+ on_blacklist? || not_on_whitelist?
end
- def on_blacklist?(value)
- return true if EmailDomainBlock.block?(value)
+ def on_blacklist?
+ return true if EmailDomainBlock.block?(@email)
return false if Rails.configuration.x.email_domains_blacklist.blank?
domains = Rails.configuration.x.email_domains_blacklist.gsub('.', '\.')
regexp = Regexp.new("@(.+\\.)?(#{domains})", true)
- value =~ regexp
+ @email =~ regexp
end
- def not_on_whitelist?(value)
+ def not_on_whitelist?
return false if Rails.configuration.x.email_domains_whitelist.blank?
domains = Rails.configuration.x.email_domains_whitelist.gsub('.', '\.')
regexp = Regexp.new("@(.+\\.)?(#{domains})$", true)
- value !~ regexp
+ @email !~ regexp
end
end
diff --git a/app/validators/disallowed_hashtags_validator.rb b/app/validators/disallowed_hashtags_validator.rb
index 22c027b0f..ee06b20f6 100644
--- a/app/validators/disallowed_hashtags_validator.rb
+++ b/app/validators/disallowed_hashtags_validator.rb
@@ -4,14 +4,19 @@ class DisallowedHashtagsValidator < ActiveModel::Validator
def validate(status)
return unless status.local? && !status.reblog?
- tags = Extractor.extract_hashtags(status.text)
- tags.keep_if { |tag| disallowed_hashtags.include? tag.downcase }
+ @status = status
+ tags = select_tags
status.errors.add(:text, I18n.t('statuses.disallowed_hashtags', tags: tags.join(', '), count: tags.size)) unless tags.empty?
end
private
+ def select_tags
+ tags = Extractor.extract_hashtags(@status.text)
+ tags.keep_if { |tag| disallowed_hashtags.include? tag.downcase }
+ end
+
def disallowed_hashtags
return @disallowed_hashtags if @disallowed_hashtags
diff --git a/app/validators/email_mx_validator.rb b/app/validators/email_mx_validator.rb
index 8d1e58b38..5b4c684b2 100644
--- a/app/validators/email_mx_validator.rb
+++ b/app/validators/email_mx_validator.rb
@@ -4,7 +4,6 @@ require 'resolv'
class EmailMxValidator < ActiveModel::Validator
def validate(user)
- return if Rails.env.test? || Rails.env.development?
user.errors.add(:email, I18n.t('users.invalid_email')) if invalid_mx?(user.email)
end
@@ -15,13 +14,23 @@ class EmailMxValidator < ActiveModel::Validator
return true if domain.nil?
- records = Resolv::DNS.new.getresources(domain, Resolv::DNS::Resource::IN::MX).to_a.map { |e| e.exchange.to_s }
- records = Resolv::DNS.new.getresources(domain, Resolv::DNS::Resource::IN::A).to_a.map { |e| e.address.to_s } if records.empty?
+ hostnames = []
+ ips = []
- records.empty? || on_blacklist?(records)
+ Resolv::DNS.open do |dns|
+ dns.timeouts = 1
+
+ hostnames = dns.getresources(domain, Resolv::DNS::Resource::IN::MX).to_a.map { |e| e.exchange.to_s }
+
+ ([domain] + hostnames).uniq.each do |hostname|
+ ips.concat(dns.getresources(hostname, Resolv::DNS::Resource::IN::A).to_a.map { |e| e.address.to_s })
+ end
+ end
+
+ ips.empty? || on_blacklist?(hostnames + ips)
end
def on_blacklist?(values)
- EmailDomainBlock.where(domain: values).any?
+ EmailDomainBlock.where(domain: values.uniq).any?
end
end
diff --git a/app/validators/note_length_validator.rb b/app/validators/note_length_validator.rb
new file mode 100644
index 000000000..5ff6df6df
--- /dev/null
+++ b/app/validators/note_length_validator.rb
@@ -0,0 +1,22 @@
+# frozen_string_literal: true
+
+class NoteLengthValidator < ActiveModel::EachValidator
+ def validate_each(record, attribute, value)
+ record.errors.add(attribute, I18n.t('statuses.over_character_limit', max: options[:maximum])) if too_long?(value)
+ end
+
+ private
+
+ def too_long?(value)
+ countable_text(value).mb_chars.grapheme_length > options[:maximum]
+ end
+
+ def countable_text(value)
+ return '' if value.nil?
+
+ value.dup.tap do |new_text|
+ new_text.gsub!(FetchLinkCardService::URL_PATTERN, 'x' * 23)
+ new_text.gsub!(Account::MENTION_RE, '@\2')
+ end
+ end
+end
diff --git a/app/validators/status_length_validator.rb b/app/validators/status_length_validator.rb
index ed5563f64..93bae2fa8 100644
--- a/app/validators/status_length_validator.rb
+++ b/app/validators/status_length_validator.rb
@@ -5,27 +5,29 @@ class StatusLengthValidator < ActiveModel::Validator
def validate(status)
return unless status.local? && !status.reblog?
- status.errors.add(:text, I18n.t('statuses.over_character_limit', max: MAX_CHARS)) if too_long?(status)
+
+ @status = status
+ status.errors.add(:text, I18n.t('statuses.over_character_limit', max: MAX_CHARS)) if too_long?
end
private
- def too_long?(status)
- countable_length(status) > MAX_CHARS
+ def too_long?
+ countable_length > MAX_CHARS
end
- def countable_length(status)
- total_text(status).mb_chars.grapheme_length
+ def countable_length
+ total_text.mb_chars.grapheme_length
end
- def total_text(status)
- [status.spoiler_text, countable_text(status)].join
+ def total_text
+ [@status.spoiler_text, countable_text].join
end
- def countable_text(status)
- return '' if status.text.nil?
+ def countable_text
+ return '' if @status.text.nil?
- status.text.dup.tap do |new_text|
+ @status.text.dup.tap do |new_text|
new_text.gsub!(FetchLinkCardService::URL_PATTERN, 'x' * 23)
new_text.gsub!(Account::MENTION_RE, '@\2')
end
diff --git a/app/validators/unreserved_username_validator.rb b/app/validators/unreserved_username_validator.rb
index c2311a89a..634ceb06e 100644
--- a/app/validators/unreserved_username_validator.rb
+++ b/app/validators/unreserved_username_validator.rb
@@ -2,20 +2,22 @@
class UnreservedUsernameValidator < ActiveModel::Validator
def validate(account)
- return if account.username.nil?
- account.errors.add(:username, I18n.t('accounts.reserved_username')) if reserved_username?(account.username)
+ @username = account.username
+ return if @username.nil?
+
+ account.errors.add(:username, I18n.t('accounts.reserved_username')) if reserved_username?
end
private
- def pam_controlled?(value)
+ def pam_controlled?
return false unless Devise.pam_authentication && Devise.pam_controlled_service
- Rpam2.account(Devise.pam_controlled_service, value).present?
+ Rpam2.account(Devise.pam_controlled_service, @username).present?
end
- def reserved_username?(value)
- return true if pam_controlled?(value)
+ def reserved_username?
+ return true if pam_controlled?
return false unless Setting.reserved_usernames
- Setting.reserved_usernames.include?(value.downcase)
+ Setting.reserved_usernames.include?(@username.downcase)
end
end
diff --git a/app/validators/url_validator.rb b/app/validators/url_validator.rb
index f39560d90..d95a03fbf 100644
--- a/app/validators/url_validator.rb
+++ b/app/validators/url_validator.rb
@@ -8,7 +8,7 @@ class UrlValidator < ActiveModel::EachValidator
private
def compliant?(url)
- parsed_url = Addressable::URI.parse(url).normalize
- !parsed_url.nil? && %w(http https).include?(parsed_url.scheme) && parsed_url.host
+ parsed_url = Addressable::URI.parse(url)
+ parsed_url && %w(http https).include?(parsed_url.scheme) && parsed_url.host
end
end
diff --git a/app/views/accounts/_header.html.haml b/app/views/accounts/_header.html.haml
index 9ceae007d..370e7e470 100644
--- a/app/views/accounts/_header.html.haml
+++ b/app/views/accounts/_header.html.haml
@@ -1,12 +1,9 @@
.public-account-header{:class => ("inactive" if account.moved?)}
.public-account-header__image
- = image_tag account.header.url, class: 'parallax'
+ = image_tag (current_account&.user&.setting_auto_play_gif ? account.header_original_url : account.header_static_url), class: 'parallax'
.public-account-header__bar
= link_to short_account_url(account), class: 'avatar' do
- - if current_account&.user&.setting_auto_play_gif
- = image_tag account.avatar_original_url
- - else
- = image_tag account.avatar_static_url
+ = image_tag (current_account&.user&.setting_auto_play_gif ? account.avatar_original_url : account.avatar_static_url)
.public-account-header__tabs
.public-account-header__tabs__name
%h1
diff --git a/app/views/admin/account_actions/new.html.haml b/app/views/admin/account_actions/new.html.haml
new file mode 100644
index 000000000..97286c8e5
--- /dev/null
+++ b/app/views/admin/account_actions/new.html.haml
@@ -0,0 +1,26 @@
+- content_for :page_title do
+ = t('admin.account_actions.title', acct: @account.acct)
+
+= simple_form_for @account_action, url: admin_account_action_path(@account.id) do |f|
+ = f.input :report_id, as: :hidden
+
+ .fields-group
+ = f.input :type, collection: Admin::AccountAction.types_for_account(@account), include_blank: false, wrapper: :with_block_label, label_method: ->(type) { I18n.t("simple_form.labels.admin_account_action.types.#{type}")}, hint: t('simple_form.hints.admin_account_action.type_html', acct: @account.acct)
+
+ - if @account.local?
+ %hr.spacer/
+
+ .fields-group
+ = f.input :send_email_notification, as: :boolean, wrapper: :with_label
+
+ %hr.spacer/
+
+ - unless @warning_presets.empty?
+ .fields-group
+ = f.input :warning_preset_id, collection: @warning_presets, label_method: :text, 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)
+
+ .actions
+ = f.button :button, t('admin.account_actions.action'), type: :submit
diff --git a/app/views/admin/account_warnings/_account_warning.html.haml b/app/views/admin/account_warnings/_account_warning.html.haml
new file mode 100644
index 000000000..8c9c9679c
--- /dev/null
+++ b/app/views/admin/account_warnings/_account_warning.html.haml
@@ -0,0 +1,6 @@
+.speech-bubble.warning
+ .speech-bubble__bubble
+ = Formatter.instance.linkify(account_warning.text)
+ .speech-bubble__owner
+ = admin_account_link_to account_warning.account
+ %time.formatted{ datetime: account_warning.created_at.iso8601 }= l account_warning.created_at
diff --git a/app/views/admin/accounts/_account.html.haml b/app/views/admin/accounts/_account.html.haml
index c6e63152d..1e1bb1812 100644
--- a/app/views/admin/accounts/_account.html.haml
+++ b/app/views/admin/accounts/_account.html.haml
@@ -1,18 +1,18 @@
%tr
- %td.username
- = account.username
%td
- - unless account.local?
- = link_to account.domain, admin_accounts_path(by_domain: account.domain)
+ = admin_account_link_to(account)
%td
- - if account.local?
- - if account.user.nil?
- = t("admin.accounts.moderation.suspended")
- - else
- = t("admin.accounts.roles.#{account.user.role}")
+ %div{ style: 'margin: -2px 0' }= account_badge(account, all: true)
+ %td
+ - if account.user_current_sign_in_ip
+ %samp= account.user_current_sign_in_ip
- else
- = account.protocol.humanize
+ \-
+ %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
+ - else
+ \-
%td
= table_link_to 'circle', t('admin.accounts.web'), web_path("accounts/#{account.id}")
= table_link_to 'globe', t('admin.accounts.public'), TagManager.instance.url_for(account)
- = table_link_to 'pencil', t('admin.accounts.edit'), admin_account_path(account.id)
diff --git a/app/views/admin/accounts/index.html.haml b/app/views/admin/accounts/index.html.haml
index 4bee73adc..91fddadf8 100644
--- a/app/views/admin/accounts/index.html.haml
+++ b/app/views/admin/accounts/index.html.haml
@@ -5,41 +5,19 @@
.filter-subset
%strong= t('admin.accounts.location.title')
%ul
- %li= filter_link_to t('admin.accounts.location.all'), local: nil, remote: nil
- %li
- - if selected? local: '1', remote: nil
- = filter_link_to t('admin.accounts.location.local'), {local: nil, remote: nil}, {local: '1', remote: nil}
- - else
- = filter_link_to t('admin.accounts.location.local'), local: '1', remote: nil
- %li
- - if selected? remote: '1', local: nil
- = filter_link_to t('admin.accounts.location.remote'), {remote: nil, local: nil}, {remote: '1', local: nil}
- - else
- = filter_link_to t('admin.accounts.location.remote'), remote: '1', local: nil
+ %li= filter_link_to t('admin.accounts.location.local'), remote: nil
+ %li= filter_link_to t('admin.accounts.location.remote'), remote: '1'
.filter-subset
%strong= t('admin.accounts.moderation.title')
%ul
- %li= filter_link_to t('admin.accounts.moderation.all'), silenced: nil, suspended: nil
- %li
- - if selected? silenced: '1'
- = filter_link_to t('admin.accounts.moderation.silenced'), {silenced: nil}, {silenced: '1'}
- - else
- = filter_link_to t('admin.accounts.moderation.silenced'), silenced: '1'
- %li
- - if selected? suspended: '1'
- = filter_link_to t('admin.accounts.moderation.suspended'), {suspended: nil}, {suspended: '1'}
- - else
- = filter_link_to t('admin.accounts.moderation.suspended'), suspended: '1'
+ %li= filter_link_to t('admin.accounts.moderation.active'), silenced: nil, suspended: nil
+ %li= filter_link_to t('admin.accounts.moderation.silenced'), silenced: '1', suspended: nil
+ %li= filter_link_to t('admin.accounts.moderation.suspended'), suspended: '1', silenced: nil
.filter-subset
%strong= t('admin.accounts.role')
%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('admin.accounts.order.title')
- %ul
- %li= filter_link_to t('admin.accounts.order.most_recent'), alphabetic: nil
- %li= filter_link_to t('admin.accounts.order.alphabetic'), alphabetic: '1'
= form_tag admin_accounts_url, method: 'GET', class: 'simple_form' do
.fields-group
@@ -60,8 +38,9 @@
%thead
%tr
%th= t('admin.accounts.username')
- %th= t('admin.accounts.domain')
- %th
+ %th= t('admin.accounts.role')
+ %th= t('admin.accounts.most_recent_ip')
+ %th= t('admin.accounts.most_recent_activity')
%th
%tbody
= render @accounts
diff --git a/app/views/admin/accounts/show.html.haml b/app/views/admin/accounts/show.html.haml
index 17f1f224d..280a834ba 100644
--- a/app/views/admin/accounts/show.html.haml
+++ b/app/views/admin/accounts/show.html.haml
@@ -1,189 +1,185 @@
- content_for :page_title do
= @account.acct
-.table-wrapper
- %table.table.inline-table
- %tbody
- %tr
- %th= t('admin.accounts.username')
- %td= @account.username
- %tr
- %th= t('admin.accounts.domain')
- %td= @account.domain
- %tr
- %th= t('admin.accounts.display_name')
- %td= @account.display_name
+= render 'application/card', account: @account
- %tr
- %th= t('admin.accounts.avatar')
- %th
- = link_to @account.avatar.url(:original) do
- = image_tag @account.avatar.url(:original), alt: '', width: 40, height: 40, class: 'avatar'
- - if @account.local? && @account.avatar?
- = table_link_to 'trash', t('admin.accounts.remove_avatar'), remove_avatar_admin_account_path(@account.id), method: :post, data: { confirm: t('admin.accounts.are_you_sure') } if can?(:remove_avatar, @account)
-
- - if @account.local?
- %tr
- %th= t('admin.accounts.role')
- %td
- - if @account.user.nil?
- = t("admin.accounts.moderation.suspended")
- - else
- = t("admin.accounts.roles.#{@account.user&.role}")
- = table_link_to 'angle-double-up', t('admin.accounts.promote'), promote_admin_account_role_path(@account.id), method: :post, data: { confirm: t('admin.accounts.are_you_sure') } if can?(:promote, @account.user)
- = 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
- = table_link_to 'edit', t('admin.accounts.change_email.label'), admin_account_change_email_path(@account.id) if can?(:change_email, @account.user)
- - if @account.user_unconfirmed_email.present?
- %th= t('admin.accounts.unconfirmed_email')
- %td
- = @account.user_unconfirmed_email
- %tr
- %th= t('admin.accounts.email_status')
- %td
- - if @account.user&.confirmed?
- = t('admin.accounts.confirmed')
- - else
- = t('admin.accounts.confirming')
- = table_link_to 'refresh', t('admin.accounts.resend_confirmation.send'), resend_admin_account_confirmation_path(@account.id), method: :post if can?(:confirm, @account.user)
- %tr
- %th= t('admin.accounts.login_status')
- %td
- - if @account.user&.disabled?
- = t('admin.accounts.disabled')
- = table_link_to 'unlock', t('admin.accounts.enable'), enable_admin_account_path(@account.id), method: :post if can?(:enable, @account.user)
- - else
- = t('admin.accounts.enabled')
- = table_link_to 'lock', t('admin.accounts.disable'), disable_admin_account_path(@account.id), method: :post if can?(:disable, @account.user)
- %tr
- %th= t('admin.accounts.most_recent_ip')
- %td= @account.user_current_sign_in_ip
- %tr
- %th= t('admin.accounts.most_recent_activity')
- %td
- - if @account.user_current_sign_in_at
- %time.formatted{ datetime: @account.user_current_sign_in_at.iso8601, title: l(@account.user_current_sign_in_at) }
- = l @account.user_current_sign_in_at
- - else
- Never
- - else
- %tr
- %th= t('admin.accounts.profile_url')
- %td= link_to @account.url, @account.url
- %tr
- %th= t('admin.accounts.protocol')
- %td= @account.protocol.humanize
-
- %tr
- %th= t('admin.accounts.follows')
- %td= number_to_human @account.following_count
- %tr
- %th= t('admin.accounts.followers')
- %td= number_to_human @account.followers_count
- %tr
- %th= t('admin.accounts.statuses')
- %td= link_to number_to_human(@account.statuses_count), admin_account_statuses_path(@account.id)
- %tr
- %th= t('admin.accounts.media_attachments')
- %td
- = link_to number_to_human(@account.media_attachments.count), admin_account_statuses_path(@account.id, { media: true })
- = surround '(', ')' do
- = number_to_human_size @account.media_attachments.sum('file_file_size')
- %tr
- %th= t('.created_reports')
- %td= link_to pluralize(@account.reports.count, t('.report')), admin_reports_path(account_id: @account.id)
- %tr
- %th= t('.targeted_reports')
- %td= link_to pluralize(@account.targeted_reports.count, t('.report')), admin_reports_path(target_account_id: @account.id)
-
-%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)
- - unless @account.memorial?
- = 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' }
- - if @account.silenced?
- = link_to t('admin.accounts.undo_silenced'), admin_account_silence_path(@account.id), method: :delete, class: 'button' if can?(:unsilence, @account)
- - else
- = link_to t('admin.accounts.silence'), admin_account_silence_path(@account.id), method: :post, class: 'button button--destructive' if can?(:silence, @account)
-
- - if @account.local?
- - unless @account.user_confirmed?
- = link_to t('admin.accounts.confirm'), admin_account_confirmation_path(@account.id), method: :post, class: 'button' if can?(:confirm, @account.user)
-
- - if @account.suspended?
- = link_to t('admin.accounts.undo_suspension'), admin_account_suspension_path(@account.id), method: :delete, class: 'button' if can?(:unsuspend, @account)
- - else
- = link_to t('admin.accounts.perform_full_suspension'), new_admin_account_suspension_path(@account.id), class: 'button button--destructive' if can?(:suspend, @account)
-
-- if !@account.local? && @account.hub_url.present?
- %hr.spacer/
-
- %h3 OStatus
+.dashboard__counters{ style: 'margin-top: 10px' }
+ %div
+ = link_to admin_account_statuses_path(@account.id) do
+ .dashboard__counters__num= number_with_delimiter @account.statuses_count
+ .dashboard__counters__label= t 'admin.accounts.statuses'
+ %div
+ = link_to admin_account_statuses_path(@account.id, { media: true }) do
+ .dashboard__counters__num= number_to_human_size @account.media_attachments.sum('file_file_size')
+ .dashboard__counters__label= t 'admin.accounts.media_attachments'
+ %div
+ = link_to admin_account_followers_path(@account.id) do
+ .dashboard__counters__num= number_with_delimiter @account.local_followers_count
+ .dashboard__counters__label= t 'admin.accounts.followers'
+ %div
+ = link_to admin_reports_path(account_id: @account.id) do
+ .dashboard__counters__num= number_with_delimiter @account.reports.count
+ .dashboard__counters__label= t '.created_reports'
+ %div
+ = link_to admin_reports_path(target_account_id: @account.id) do
+ .dashboard__counters__num= number_with_delimiter @account.targeted_reports.count
+ .dashboard__counters__label= t '.targeted_reports'
+ %div
+ %div
+ .dashboard__counters__text
+ - if @account.local? && @account.user.nil?
+ %span.neutral= t('admin.accounts.deleted')
+ - elsif @account.suspended?
+ %span.red= t('admin.accounts.suspended')
+ - elsif @account.silenced?
+ %span.red= t('admin.accounts.silenced')
+ - elsif @account.local? && @account.user&.disabled?
+ %span.red= t('admin.accounts.disabled')
+ - elsif @account.local? && !@account.user&.confirmed?
+ %span.neutral= t('admin.accounts.confirming')
+ - else
+ %span.neutral= t('admin.accounts.no_limits_imposed')
+ .dashboard__counters__label= t 'admin.accounts.login_status'
+- unless @account.local? && @account.user.nil?
.table-wrapper
%table.table.inline-table
%tbody
- %tr
- %th= t('admin.accounts.feed_url')
- %td= link_to @account.remote_url, @account.remote_url
- %tr
- %th= t('admin.accounts.push_subscription_expires')
- %td
- - if @account.subscribed?
- %time.formatted{ datetime: @account.subscription_expires_at.iso8601, title: l(@account.subscription_expires_at) }
- = l @account.subscription_expires_at
- - else
- = t('admin.accounts.not_subscribed')
- %tr
- %th= t('admin.accounts.salmon_url')
- %td= link_to @account.salmon_url, @account.salmon_url
+ - if @account.local?
+ - if @account.avatar?
+ %tr
+ %th= t('admin.accounts.avatar')
+ %td= table_link_to 'trash', t('admin.accounts.remove_avatar'), remove_avatar_admin_account_path(@account.id), method: :post, data: { confirm: t('admin.accounts.are_you_sure') } if can?(:remove_avatar, @account)
+ %td
+
+ - if @account.header?
+ %tr
+ %th= t('admin.accounts.header')
+ %td= table_link_to 'trash', t('admin.accounts.remove_header'), remove_header_admin_account_path(@account.id), method: :post, data: { confirm: t('admin.accounts.are_you_sure') } if can?(:remove_header, @account)
+ %td
+
+ %tr
+ %th= t('admin.accounts.role')
+ %td= t("admin.accounts.roles.#{@account.user&.role}")
+ %td
+ = table_link_to 'angle-double-up', t('admin.accounts.promote'), promote_admin_account_role_path(@account.id), method: :post, data: { confirm: t('admin.accounts.are_you_sure') } if can?(:promote, @account.user)
+ = 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
+ %td= table_link_to 'edit', t('admin.accounts.change_email.label'), admin_account_change_email_path(@account.id) if can?(:change_email, @account.user)
+
+ - if @account.user_unconfirmed_email.present?
+ %tr
+ %th= t('admin.accounts.unconfirmed_email')
+ %td= @account.user_unconfirmed_email
+ %td
+
+ %tr
+ %th= t('admin.accounts.email_status')
+ %td
+ - if @account.user&.confirmed?
+ = t('admin.accounts.confirmed')
+ - else
+ = t('admin.accounts.confirming')
+ %td= table_link_to 'refresh', t('admin.accounts.resend_confirmation.send'), resend_admin_account_confirmation_path(@account.id), method: :post if can?(:confirm, @account.user)
+
+ %tr
+ %th= t('admin.accounts.login_status')
+ %td
+ - if @account.user&.disabled?
+ = t('admin.accounts.disabled')
+ - else
+ = t('admin.accounts.enabled')
+ %td
+ - if @account.user&.disabled?
+ = table_link_to 'unlock', t('admin.accounts.enable'), enable_admin_account_path(@account.id), method: :post if can?(:enable, @account.user)
+ - else
+ = table_link_to 'lock', t('admin.accounts.disable'), new_admin_account_action_path(@account.id, type: 'disable') if can?(:disable, @account.user)
+
+ %tr
+ %th= t('simple_form.labels.defaults.locale')
+ %td= @account.user_locale
+ %td
+
+ %tr
+ %th= t('admin.accounts.joined')
+ %td
+ %time.formatted{ datetime: @account.created_at.iso8601, title: l(@account.created_at) }= l @account.created_at
+ %td
+
+ %tr
+ %th= t('admin.accounts.most_recent_ip')
+ %td= @account.user_current_sign_in_ip
+ %td
+
+ %tr
+ %th= t('admin.accounts.most_recent_activity')
+ %td
+ - if @account.user_current_sign_in_at
+ %time.formatted{ datetime: @account.user_current_sign_in_at.iso8601, title: l(@account.user_current_sign_in_at) }= l @account.user_current_sign_in_at
+
+ - if @account.user&.invited?
+ %tr
+ %th= t('admin.accounts.invited_by')
+ %td= admin_account_link_to @account.user.invite.user.account
+ %td
+
+ - else
+ %tr
+ %th= t('admin.accounts.inbox_url')
+ %td
+ = @account.inbox_url
+ = fa_icon DeliveryFailureTracker.unavailable?(@account.inbox_url) ? 'times' : 'check'
+ %tr
+ %th= t('admin.accounts.shared_inbox_url')
+ %td
+ = @account.shared_inbox_url
+ = fa_icon DeliveryFailureTracker.unavailable?(@account.shared_inbox_url) ? 'times' : 'check'
%div{ style: 'overflow: hidden' }
%div{ style: 'float: right' }
- = link_to @account.subscribed? ? t('admin.accounts.resubscribe') : t('admin.accounts.subscribe'), subscribe_admin_account_path(@account.id), method: :post, class: 'button' if can?(:subscribe, @account)
- - if @account.subscribed?
- = link_to t('admin.accounts.unsubscribe'), unsubscribe_admin_account_path(@account.id), method: :post, class: 'button negative' if can?(:unsubscribe, @account)
+ - 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)
+ - unless @account.memorial?
+ = 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' }
+ - if @account.local?
+ = link_to t('admin.accounts.warn'), new_admin_account_action_path(@account.id, type: 'none'), class: 'button' if can?(:warn, @account)
+ - if @account.silenced?
+ = link_to t('admin.accounts.undo_silenced'), unsilence_admin_account_path(@account.id), method: :post, class: 'button' if can?(:unsilence, @account)
+ - else
+ = link_to t('admin.accounts.silence'), new_admin_account_action_path(@account.id, type: 'silence'), class: 'button button--destructive' if can?(:silence, @account)
+
+ - if @account.local?
+ - unless @account.user_confirmed?
+ = link_to t('admin.accounts.confirm'), admin_account_confirmation_path(@account.id), method: :post, class: 'button' if can?(:confirm, @account.user)
+
+ - if @account.suspended?
+ = link_to t('admin.accounts.undo_suspension'), unsuspend_admin_account_path(@account.id), method: :post, class: 'button' if can?(:unsuspend, @account)
+ - else
+ = 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)
-- if !@account.local? && @account.inbox_url.present?
%hr.spacer/
- %h3 ActivityPub
+ - unless @warnings.empty?
+ = render @warnings
- .table-wrapper
- %table.table.inline-table
- %tbody
- %tr
- %th= t('admin.accounts.inbox_url')
- %td= link_to @account.inbox_url, @account.inbox_url
- %tr
- %th= t('admin.accounts.outbox_url')
- %td= link_to @account.outbox_url, @account.outbox_url
- %tr
- %th= t('admin.accounts.shared_inbox_url')
- %td= link_to @account.shared_inbox_url, @account.shared_inbox_url
- %tr
- %th= t('admin.accounts.followers_url')
- %td= link_to @account.followers_url, @account.followers_url
+ %hr.spacer/
-%hr.spacer/
+ = render @moderation_notes
-= render @moderation_notes
+ = simple_form_for @account_moderation_note, url: admin_account_moderation_notes_path do |f|
+ = render 'shared/error_messages', object: @account_moderation_note
-= simple_form_for @account_moderation_note, url: admin_account_moderation_notes_path do |f|
- = render 'shared/error_messages', object: @account_moderation_note
+ = f.input :content, placeholder: t('admin.reports.notes.placeholder'), rows: 6
+ = f.hidden_field :target_account_id
- = f.input :content, placeholder: t('admin.reports.notes.placeholder'), rows: 6
- = f.hidden_field :target_account_id
-
- .actions
- = f.button :button, t('admin.account_moderation_notes.create'), type: :submit
+ .actions
+ = f.button :button, t('admin.account_moderation_notes.create'), type: :submit
diff --git a/app/views/admin/dashboard/index.html.haml b/app/views/admin/dashboard/index.html.haml
index 1996eef4d..fa3d70e9e 100644
--- a/app/views/admin/dashboard/index.html.haml
+++ b/app/views/admin/dashboard/index.html.haml
@@ -57,6 +57,12 @@
%span.pull-right.positive-hint= fa_icon 'check fw'
- else
%span.pull-right.negative-hint= fa_icon 'times fw'
+ %li
+ = link_to t('admin.dashboard.feature_profile_directory'), edit_admin_settings_path
+ - if @profile_directory
+ %span.pull-right.positive-hint= fa_icon 'check fw'
+ - else
+ %span.pull-right.negative-hint= fa_icon 'times fw'
%li
= link_to t('admin.dashboard.feature_relay'), admin_relays_path
- if @relay_enabled
diff --git a/app/views/admin/domain_blocks/_domain_block.html.haml b/app/views/admin/domain_blocks/_domain_block.html.haml
deleted file mode 100644
index 7bfea3574..000000000
--- a/app/views/admin/domain_blocks/_domain_block.html.haml
+++ /dev/null
@@ -1,13 +0,0 @@
-%tr
- %td
- %samp= domain_block.domain
- %td.severity
- = t("admin.domain_blocks.severities.#{domain_block.severity}")
- %td.reject_media
- - if domain_block.reject_media? || domain_block.suspend?
- %i.fa.fa-check
- %td.reject_reports
- - if domain_block.reject_reports? || domain_block.suspend?
- %i.fa.fa-check
- %td
- = table_link_to 'undo', t('admin.domain_blocks.undo'), admin_domain_block_path(domain_block)
diff --git a/app/views/admin/domain_blocks/index.html.haml b/app/views/admin/domain_blocks/index.html.haml
deleted file mode 100644
index 4c5221c42..000000000
--- a/app/views/admin/domain_blocks/index.html.haml
+++ /dev/null
@@ -1,17 +0,0 @@
-- content_for :page_title do
- = t('admin.domain_blocks.title')
-
-.table-wrapper
- %table.table
- %thead
- %tr
- %th= t('admin.domain_blocks.domain')
- %th= t('admin.domain_blocks.severity')
- %th= t('admin.domain_blocks.reject_media')
- %th= t('admin.domain_blocks.reject_reports')
- %th
- %tbody
- = render @domain_blocks
-
-= paginate @domain_blocks
-= link_to t('admin.domain_blocks.add_new'), new_admin_domain_block_path, class: 'button'
diff --git a/app/views/admin/followers/index.html.haml b/app/views/admin/followers/index.html.haml
new file mode 100644
index 000000000..25f1f290f
--- /dev/null
+++ b/app/views/admin/followers/index.html.haml
@@ -0,0 +1,28 @@
+- content_for :page_title do
+ = t('admin.followers.title', acct: @account.acct)
+
+.filters
+ .filter-subset
+ %strong= t('admin.accounts.location.title')
+ %ul
+ %li= link_to t('admin.accounts.location.local'), admin_account_followers_path(@account.id), class: 'selected'
+ .back-link{ style: 'flex: 1 1 auto; text-align: right' }
+ = link_to admin_account_path(@account.id) do
+ = fa_icon 'chevron-left fw'
+ = t('admin.followers.back_to_account')
+
+%hr.spacer/
+
+.table-wrapper
+ %table.table
+ %thead
+ %tr
+ %th= t('admin.accounts.username')
+ %th= t('admin.accounts.role')
+ %th= t('admin.accounts.most_recent_ip')
+ %th= t('admin.accounts.most_recent_activity')
+ %th
+ %tbody
+ = render partial: 'admin/accounts/account', collection: @followers
+
+= paginate @followers
diff --git a/app/views/admin/instances/_instance.html.haml b/app/views/admin/instances/_instance.html.haml
deleted file mode 100644
index e36ebae47..000000000
--- a/app/views/admin/instances/_instance.html.haml
+++ /dev/null
@@ -1,7 +0,0 @@
-%tr
- %td
- = link_to instance.domain, admin_accounts_path(by_domain: instance.domain)
- %td.count
- = instance.accounts_count
- %td
- = table_link_to 'paper-plane-o', t('admin.accounts.resubscribe'), resubscribe_admin_instances_url(by_domain: instance.domain), method: :post, data: { confirm: t('admin.accounts.are_you_sure') }
diff --git a/app/views/admin/instances/index.html.haml b/app/views/admin/instances/index.html.haml
index 3314ce077..ce35b5db4 100644
--- a/app/views/admin/instances/index.html.haml
+++ b/app/views/admin/instances/index.html.haml
@@ -1,23 +1,39 @@
- content_for :page_title do
= t('admin.instances.title')
-= form_tag admin_instances_url, method: 'GET', class: 'simple_form' do
- .fields-group
- - %i(domain_name).each do |key|
- .input.string.optional
- = text_field_tag key, params[key], class: 'string optional', placeholder: I18n.t("admin.instances.#{key}")
+.filters
+ .filter-subset
+ %strong= t('admin.instances.moderation.title')
+ %ul
+ %li= filter_link_to t('admin.instances.moderation.all'), limited: nil
+ %li= filter_link_to t('admin.instances.moderation.limited'), limited: '1'
- .actions
- %button= t('admin.instances.search')
- = link_to t('admin.instances.reset'), admin_instances_path, class: 'button negative'
+ %div{ style: 'flex: 1 1 auto; text-align: right' }
+ = link_to t('admin.domain_blocks.add_new'), new_admin_domain_block_path, class: 'button'
-.table-wrapper
- %table.table
- %thead
- %tr
- %th= t('admin.instances.domain_name')
- %th= t('admin.instances.account_count')
- %tbody
- = render @instances
+%hr.spacer/
+
+- @instances.each do |instance|
+ .directory__tag
+ = link_to admin_instance_path(instance) do
+ %h4
+ = instance.domain
+ %small
+ = t('admin.instances.known_accounts', count: instance.accounts_count)
+
+ - if instance.domain_block
+ - if !instance.domain_block.noop?
+ •
+ = t("admin.domain_blocks.severity.#{instance.domain_block.severity}")
+ - if instance.domain_block.reject_media?
+ •
+ = t('admin.domain_blocks.rejecting_media')
+ - if instance.domain_block.reject_reports?
+ •
+ = t('admin.domain_blocks.rejecting_reports')
+
+ .avatar-stack
+ - instance.cached_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'
= paginate paginated_instances
diff --git a/app/views/admin/instances/show.html.haml b/app/views/admin/instances/show.html.haml
new file mode 100644
index 000000000..c7992a490
--- /dev/null
+++ b/app/views/admin/instances/show.html.haml
@@ -0,0 +1,44 @@
+- content_for :page_title do
+ = @instance.domain
+
+.dashboard__counters
+ %div
+ %div
+ .dashboard__counters__num= number_with_delimiter @following_count
+ .dashboard__counters__label= t 'admin.instances.total_followed_by_them'
+ %div
+ %div
+ .dashboard__counters__num= number_with_delimiter @followers_count
+ .dashboard__counters__label= t 'admin.instances.total_followed_by_us'
+ %div
+ %div
+ .dashboard__counters__num= number_to_human_size @media_storage
+ .dashboard__counters__label= t 'admin.instances.total_storage'
+ %div
+ %div
+ .dashboard__counters__num= number_with_delimiter @blocks_count
+ .dashboard__counters__label= t 'admin.instances.total_blocked_by_us'
+ %div
+ %div
+ .dashboard__counters__num= number_with_delimiter @reports_count
+ .dashboard__counters__label= t 'admin.instances.total_reported'
+ %div
+ %div
+ .dashboard__counters__num
+ - if @available
+ = fa_icon 'check'
+ - else
+ = fa_icon 'times'
+ .dashboard__counters__label= t 'admin.instances.delivery_available'
+
+%hr.spacer/
+
+%div{ style: 'overflow: hidden' }
+ %div{ style: 'float: left' }
+ = link_to t('admin.accounts.title'), admin_accounts_path(remote: '1', by_domain: @instance.domain), class: 'button'
+
+ %div{ style: 'float: right' }
+ - if @domain_block
+ = link_to t('admin.domain_blocks.undo'), admin_domain_block_path(@domain_block), class: 'button'
+ - else
+ = link_to t('admin.domain_blocks.add_new'), new_admin_domain_block_path(_domain: @instance.domain), class: 'button'
diff --git a/app/views/admin/reports/show.html.haml b/app/views/admin/reports/show.html.haml
index 3588d151d..863dada9e 100644
--- a/app/views/admin/reports/show.html.haml
+++ b/app/views/admin/reports/show.html.haml
@@ -8,13 +8,14 @@
- if @report.unresolved?
%div{ style: 'float: right' }
- if @report.target_account.local?
- = link_to t('admin.accounts.disable'), admin_report_path(@report, outcome: 'disable'), method: :put, class: 'button button--destructive'
- = link_to t('admin.accounts.silence'), admin_report_path(@report, outcome: 'silence'), method: :put, class: 'button button--destructive'
- = link_to t('admin.accounts.perform_full_suspension'), new_admin_account_suspension_path(@report.target_account_id, report_id: @report.id), class: 'button button--destructive'
+ = 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'
+ = link_to t('admin.accounts.silence'), new_admin_account_action_path(@report.target_account_id, type: 'silence', report_id: @report.id), class: 'button button--destructive'
+ = link_to t('admin.accounts.perform_full_suspension'), new_admin_account_action_path(@report.target_account_id, type: 'suspend', report_id: @report.id), class: 'button button--destructive'
%div{ style: 'float: left' }
- = link_to t('admin.reports.mark_as_resolved'), admin_report_path(@report, outcome: 'resolve'), method: :put, class: 'button'
+ = link_to t('admin.reports.mark_as_resolved'), resolve_admin_report_path(@report), method: :post, class: 'button'
- else
- = link_to t('admin.reports.mark_as_unresolved'), admin_report_path(@report, outcome: 'reopen'), method: :put, class: 'button'
+ = link_to t('admin.reports.mark_as_unresolved'), reopen_admin_report_path(@report), method: :post, class: 'button'
%hr.spacer
@@ -67,10 +68,10 @@
= admin_account_link_to @report.assigned_account
%td
- if @report.assigned_account != current_user.account
- = table_link_to 'user', t('admin.reports.assign_to_self'), admin_report_path(@report, outcome: 'assign_to_self'), method: :put
+ = table_link_to 'user', t('admin.reports.assign_to_self'), assign_to_self_admin_report_path(@report), method: :post
%td
- if !@report.assigned_account.nil?
- = table_link_to 'trash', t('admin.reports.unassign'), admin_report_path(@report, outcome: 'unassign'), method: :put
+ = table_link_to 'trash', t('admin.reports.unassign'), unassign_admin_report_path(@report), method: :post
%hr.spacer
@@ -104,7 +105,7 @@
- @report_notes.each do |item|
- if item.is_a?(Admin::ActionLog)
= render partial: 'action_log', locals: { action_log: item }
- - elsif item.is_a?(ReportNote)
+ - else
= render item
= simple_form_for @report_note, url: admin_report_notes_path do |f|
diff --git a/app/views/admin/settings/edit.html.haml b/app/views/admin/settings/edit.html.haml
index 04b1a6754..7afa9ec37 100644
--- a/app/views/admin/settings/edit.html.haml
+++ b/app/views/admin/settings/edit.html.haml
@@ -62,6 +62,9 @@
.fields-group
= f.input :preview_sensitive_media, as: :boolean, wrapper: :with_label, label: t('admin.settings.preview_sensitive_media.title'), hint: t('admin.settings.preview_sensitive_media.desc_html')
+ .fields-group
+ = f.input :profile_directory, as: :boolean, wrapper: :with_label, label: t('admin.settings.profile_directory.title'), hint: t('admin.settings.profile_directory.desc_html')
+
%hr.spacer/
.fields-group
diff --git a/app/views/admin/statuses/index.html.haml b/app/views/admin/statuses/index.html.haml
index 880a24f76..dd3c79815 100644
--- a/app/views/admin/statuses/index.html.haml
+++ b/app/views/admin/statuses/index.html.haml
@@ -14,7 +14,7 @@
%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' }
= link_to admin_account_path(@account.id) do
- %i.fa.fa-chevron-left.fa-fw
+ = fa_icon 'chevron-left fw'
= t('admin.statuses.back_to_account')
%hr.spacer/
diff --git a/app/views/admin/statuses/show.html.haml b/app/views/admin/statuses/show.html.haml
new file mode 100644
index 000000000..a7a392272
--- /dev/null
+++ b/app/views/admin/statuses/show.html.haml
@@ -0,0 +1,27 @@
+- content_for :page_title do
+ = t('admin.statuses.title')
+ \-
+ = "@#{@account.acct}"
+
+.filters
+ .back-link{ style: 'flex: 1 1 auto; text-align: right' }
+ = link_to admin_account_path(@account.id) do
+ %i.fa.fa-chevron-left.fa-fw
+ = t('admin.statuses.back_to_account')
+
+%hr.spacer/
+
+= form_for(@form, url: admin_account_statuses_path(@account.id)) do |f|
+ = hidden_field_tag :page, params[:page]
+ = hidden_field_tag :media, params[:media]
+
+ .batch-table
+ .batch-table__toolbar
+ %label.batch-table__toolbar__select.batch-checkbox-all
+ = check_box_tag :batch_checkbox_all, nil, false
+ .batch-table__toolbar__actions
+ = f.button safe_join([fa_icon('eye-slash'), t('admin.statuses.batch.nsfw_on')]), name: :nsfw_on, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') }
+ = f.button safe_join([fa_icon('eye'), t('admin.statuses.batch.nsfw_off')]), name: :nsfw_off, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') }
+ = f.button safe_join([fa_icon('trash'), t('admin.statuses.batch.delete')]), name: :delete, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') }
+ .batch-table__body
+ = render partial: 'admin/reports/status', collection: @statuses, locals: { f: f }
diff --git a/app/views/admin/suspensions/new.html.haml b/app/views/admin/suspensions/new.html.haml
deleted file mode 100644
index f03ecacc3..000000000
--- a/app/views/admin/suspensions/new.html.haml
+++ /dev/null
@@ -1,25 +0,0 @@
-- content_for :page_title do
- = t('admin.suspensions.title', acct: @account.acct)
-
-= simple_form_for @suspension, url: admin_account_suspension_path(@account.id), method: :post do |f|
- %p.hint= t('admin.suspensions.warning_html')
-
- .fields-group
- %ul
- %li.negative-hint
- = number_to_human @account.statuses_count, strip_insignificant_zeros: true
- = t('accounts.posts', count: @account.statuses_count)
- %li.negative-hint
- = number_to_human @account.following_count, strip_insignificant_zeros: true
- = t('accounts.following', count: @account.following_count)
- %li.negative-hint
- = number_to_human @account.followers_count, strip_insignificant_zeros: true
- = t('accounts.followers', count: @account.followers_count)
-
- %p.hint= t('admin.suspensions.hint_html', value: content_tag(:code, @account.acct))
-
- = f.input :acct
- = f.input_field :report_id, as: :hidden
-
- .actions
- = f.button :button, t('admin.suspensions.proceed'), type: :submit, class: 'negative'
diff --git a/app/views/admin/tags/_tag.html.haml b/app/views/admin/tags/_tag.html.haml
new file mode 100644
index 000000000..961b83f93
--- /dev/null
+++ b/app/views/admin/tags/_tag.html.haml
@@ -0,0 +1,12 @@
+%tr
+ %td
+ = link_to explore_hashtag_path(tag) do
+ = fa_icon 'hashtag'
+ = tag.name
+ %td
+ = t('directories.people', count: tag.accounts_count)
+ %td
+ - if tag.hidden?
+ = table_link_to 'eye', t('admin.tags.unhide'), unhide_admin_tag_path(tag.id, **@filter_params), method: :post
+ - else
+ = table_link_to 'eye-slash', t('admin.tags.hide'), hide_admin_tag_path(tag.id, **@filter_params), method: :post
diff --git a/app/views/admin/tags/index.html.haml b/app/views/admin/tags/index.html.haml
new file mode 100644
index 000000000..4ba395860
--- /dev/null
+++ b/app/views/admin/tags/index.html.haml
@@ -0,0 +1,19 @@
+- content_for :page_title do
+ = t('admin.tags.title')
+
+.filters
+ .filter-subset
+ %strong= t('admin.reports.status')
+ %ul
+ %li= filter_link_to t('admin.tags.visible'), hidden: nil
+ %li= filter_link_to t('admin.tags.hidden'), hidden: '1'
+
+.table-wrapper
+ %table.table
+ %thead
+ %tr
+ %th= t('admin.tags.name')
+ %th= t('admin.tags.accounts')
+ %th
+ %tbody
+ = render @tags
diff --git a/app/views/admin/warning_presets/edit.html.haml b/app/views/admin/warning_presets/edit.html.haml
new file mode 100644
index 000000000..9522746cd
--- /dev/null
+++ b/app/views/admin/warning_presets/edit.html.haml
@@ -0,0 +1,11 @@
+- content_for :page_title do
+ = t('admin.warning_presets.edit_preset')
+
+= 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 :text, wrapper: :with_block_label
+
+ .actions
+ = f.button :button, t('generic.save_changes'), type: :submit
diff --git a/app/views/admin/warning_presets/index.html.haml b/app/views/admin/warning_presets/index.html.haml
new file mode 100644
index 000000000..45913ef73
--- /dev/null
+++ b/app/views/admin/warning_presets/index.html.haml
@@ -0,0 +1,30 @@
+- content_for :page_title do
+ = t('admin.warning_presets.title')
+
+- if can? :create, :account_warning_preset
+ = simple_form_for @warning_preset, url: admin_warning_presets_path do |f|
+ = render 'shared/error_messages', object: @warning_preset
+
+ .fields-group
+ = f.input :text, wrapper: :with_block_label
+
+ .actions
+ = f.button :button, t('admin.warning_presets.add_new'), type: :submit
+
+ %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') }
diff --git a/app/views/application/_card.html.haml b/app/views/application/_card.html.haml
index 9cf8f8ff2..e6059b035 100644
--- a/app/views/application/_card.html.haml
+++ b/app/views/application/_card.html.haml
@@ -9,6 +9,7 @@
= 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/edit.html.haml b/app/views/auth/registrations/edit.html.haml
index 7fc08a23b..694461fdf 100644
--- a/app/views/auth/registrations/edit.html.haml
+++ b/app/views/auth/registrations/edit.html.haml
@@ -9,13 +9,14 @@
= f.input :email, wrapper: :with_label, input_html: { 'aria-label' => t('simple_form.labels.defaults.email') }, required: true, hint: false
.fields-group
- = f.input :password, wrapper: :with_label, input_html: { 'aria-label' => t('simple_form.labels.defaults.new_password'), :autocomplete => 'off' }, hint: false
+ = f.input :current_password, wrapper: :with_label, input_html: { 'aria-label' => t('simple_form.labels.defaults.current_password'), :autocomplete => 'off' }, required: true
+
+ .fields-group
+ = f.input :password, wrapper: :with_label, label: t('simple_form.labels.defaults.new_password'), input_html: { 'aria-label' => t('simple_form.labels.defaults.new_password'), :autocomplete => 'off' }, hint: false
.fields-group
= f.input :password_confirmation, wrapper: :with_label, label: t('simple_form.labels.defaults.confirm_new_password'), input_html: { 'aria-label' => t('simple_form.labels.defaults.confirm_new_password'), :autocomplete => 'off' }
- .fields-group
- = f.input :current_password, wrapper: :with_label, input_html: { 'aria-label' => t('simple_form.labels.defaults.current_password'), :autocomplete => 'off' }, required: true
.actions
= f.button :button, t('generic.save_changes'), type: :submit
diff --git a/app/views/directories/index.html.haml b/app/views/directories/index.html.haml
new file mode 100644
index 000000000..88706def7
--- /dev/null
+++ b/app/views/directories/index.html.haml
@@ -0,0 +1,57 @@
+- content_for :page_title do
+ = t('directories.explore_mastodon', title: site_title)
+
+- content_for :header_tags do
+ %meta{ name: 'description', content: t('directories.explanation') }
+
+ = opengraph 'og:site_name', t('about.hosted_on', domain: site_hostname)
+ = opengraph 'og:type', 'website'
+ = opengraph 'og:title', t('directories.explore_mastodon', title: site_title)
+ = opengraph 'og:description', t('directories.explanation')
+ = opengraph 'og:image', File.join(root_url, 'android-chrome-192x192.png')
+
+.page-header
+ %h1= t('directories.explore_mastodon', title: site_title)
+ %p= t('directories.explanation')
+
+.grid
+ .column-0
+ - if @accounts.empty?
+ = nothing_here
+ - else
+ .directory
+ %table.accounts-table
+ %tbody
+ - @accounts.each do |account|
+ %tr
+ %td= account_link_to account
+ %td.accounts-table__count.optional
+ = number_to_human account.statuses_count, strip_insignificant_zeros: true
+ %small= t('accounts.posts', count: account.statuses_count).downcase
+ %td.accounts-table__count.optional
+ = number_to_human account.followers_count, strip_insignificant_zeros: true
+ %small= t('accounts.followers', count: account.followers_count).downcase
+ %td.accounts-table__count
+ - if account.last_status_at.present?
+ %time.time-ago{ datetime: account.last_status_at.iso8601, title: l(account.last_status_at) }= l account.last_status_at
+ - else
+ \-
+ %small= t('accounts.last_active')
+
+ = paginate @accounts
+
+ .column-1
+ - if @tags.empty?
+ .nothing-here.nothing-here--flexible
+ - else
+ - @tags.each do |tag|
+ .directory__tag{ class: tag.id == @tag&.id ? 'active' : nil }
+ = link_to explore_hashtag_path(tag) do
+ %h4
+ = fa_icon 'hashtag'
+ = tag.name
+ %small= t('directories.people', count: tag.accounts_count)
+
+ .avatar-stack
+ - tag.cached_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'
diff --git a/app/views/layouts/public.html.haml b/app/views/layouts/public.html.haml
index e17c777d0..caccd5bb6 100644
--- a/app/views/layouts/public.html.haml
+++ b/app/views/layouts/public.html.haml
@@ -8,6 +8,11 @@
.nav-left
= link_to root_url, class: 'brand' do
= image_tag asset_pack_path('logo_full.svg'), alt: 'Mastodon'
+
+ - if Setting.profile_directory
+ = link_to t('directories.directory'), explore_path, class: 'nav-link optional'
+ = link_to t('about.about_this'), about_more_path, class: 'nav-link optional'
+ = link_to t('about.apps'), 'https://joinmastodon.org/apps', class: 'nav-link optional'
.nav-center
.nav-right
- if user_signed_in?
diff --git a/app/views/notification_mailer/digest.html.haml b/app/views/notification_mailer/digest.html.haml
index 10e44f8dd..a94ace228 100644
--- a/app/views/notification_mailer/digest.html.haml
+++ b/app/views/notification_mailer/digest.html.haml
@@ -14,7 +14,7 @@
%tr
%td.column-cell.text-center.padded
%h1= t 'notification_mailer.digest.title'
- %p.lead= t('notification_mailer.digest.body', since: l(@since.to_date, format: :short), instance: site_hostname)
+ %p.lead= t('notification_mailer.digest.body', since: l((@me.user_current_sign_in_at || @since).to_date, format: :short), instance: site_hostname)
%table.button{ align: 'center', cellspacing: 0, cellpadding: 0 }
%tbody
%tr
diff --git a/app/views/notification_mailer/digest.text.erb b/app/views/notification_mailer/digest.text.erb
index e0d1f9b8b..b2c85a9e3 100644
--- a/app/views/notification_mailer/digest.text.erb
+++ b/app/views/notification_mailer/digest.text.erb
@@ -1,6 +1,6 @@
<%= raw t('application_mailer.salutation', name: display_name(@me)) %>
-<%= raw t('notification_mailer.digest.body', since: l(@since), instance: root_url) %>
+<%= raw t('notification_mailer.digest.body', since: l(@me.user_current_sign_in_at || @since), instance: root_url) %>
<% @notifications.each do |notification| %>
* <%= raw t('notification_mailer.digest.mention', name: notification.from_account.acct) %>
diff --git a/app/views/remote_follow/new.html.haml b/app/views/remote_follow/new.html.haml
index 9b679015f..5cf6977ba 100644
--- a/app/views/remote_follow/new.html.haml
+++ b/app/views/remote_follow/new.html.haml
@@ -16,4 +16,6 @@
.actions
= f.button :button, t('remote_follow.proceed'), type: :submit
- %p.hint.subtle-hint= t('remote_follow.no_account_html', sign_up_path: open_registrations? ? new_user_registration_path : 'https://joinmastodon.org/#getting-started')
+ %p.hint.subtle-hint
+ = t('remote_follow.reason_html', instance: site_hostname)
+ = t('remote_follow.no_account_html', sign_up_path: open_registrations? ? new_user_registration_path : 'https://joinmastodon.org/#getting-started')
diff --git a/app/views/remote_interaction/new.html.haml b/app/views/remote_interaction/new.html.haml
index 7357546b6..a0b106814 100644
--- a/app/views/remote_interaction/new.html.haml
+++ b/app/views/remote_interaction/new.html.haml
@@ -1,6 +1,6 @@
.form-container
.follow-prompt
- %h2= t('remote_interaction.prompt')
+ %h2= t("remote_interaction.#{@interaction_type}.prompt")
.public-layout
.activity-stream.activity-stream--highlighted
@@ -9,9 +9,13 @@
= simple_form_for @remote_follow, as: :remote_follow, url: remote_interaction_path(@status) do |f|
= render 'shared/error_messages', object: @remote_follow
+ = hidden_field_tag :type, @interaction_type
+
= f.input :acct, placeholder: t('remote_follow.acct'), input_html: { autocapitalize: 'none', autocorrect: 'off' }
.actions
- = f.button :button, t('remote_interaction.proceed'), type: :submit
+ = f.button :button, t("remote_interaction.#{@interaction_type}.proceed"), type: :submit
- %p.hint.subtle-hint= t('remote_follow.no_account_html', sign_up_path: open_registrations? ? new_user_registration_path : 'https://joinmastodon.org/#getting-started')
+ %p.hint.subtle-hint
+ = t('remote_follow.reason_html', instance: site_hostname)
+ = t('remote_follow.no_account_html', sign_up_path: open_registrations? ? new_user_registration_path : 'https://joinmastodon.org/#getting-started')
diff --git a/app/views/settings/exports/show.html.haml b/app/views/settings/exports/show.html.haml
index 6c030b1ab..b13cea976 100644
--- a/app/views/settings/exports/show.html.haml
+++ b/app/views/settings/exports/show.html.haml
@@ -16,6 +16,10 @@
%th= t('exports.follows')
%td= number_with_delimiter @export.total_follows
%td= table_link_to 'download', t('exports.csv'), settings_exports_follows_path(format: :csv)
+ %tr
+ %th= t('exports.lists')
+ %td= number_with_delimiter @export.total_lists
+ %td= table_link_to 'download', t('exports.csv'), settings_exports_lists_path(format: :csv)
%tr
%th= t('accounts.followers', count: @export.total_followers)
%td= number_with_delimiter @export.total_followers
@@ -28,6 +32,10 @@
%th= t('exports.mutes')
%td= number_with_delimiter @export.total_mutes
%td= table_link_to 'download', t('exports.csv'), settings_exports_mutes_path(format: :csv)
+ %tr
+ %th= t('exports.domain_blocks')
+ %td= number_with_delimiter @export.total_domain_blocks
+ %td= table_link_to 'download', t('exports.csv'), settings_exports_domain_blocks_path(format: :csv)
%p.muted-hint= t('exports.archive_takeout.hint_html')
diff --git a/app/views/settings/preferences/show.html.haml b/app/views/settings/preferences/show.html.haml
index a245065e8..3abc999dc 100644
--- a/app/views/settings/preferences/show.html.haml
+++ b/app/views/settings/preferences/show.html.haml
@@ -47,6 +47,9 @@
= f.input :setting_boost_modal, as: :boolean, wrapper: :with_label
= f.input :setting_delete_modal, as: :boolean, wrapper: :with_label
+ .fields-group
+ = f.input :setting_aggregate_reblogs, as: :boolean, wrapper: :with_label
+
.fields-group
= f.input :setting_auto_play_gif, as: :boolean, wrapper: :with_label
= f.input :setting_expand_spoilers, as: :boolean, wrapper: :with_label
diff --git a/app/views/settings/profiles/show.html.haml b/app/views/settings/profiles/show.html.haml
index f5c50144b..eb232dc57 100644
--- a/app/views/settings/profiles/show.html.haml
+++ b/app/views/settings/profiles/show.html.haml
@@ -14,10 +14,10 @@
= render 'application/card', account: @account
.fields-row__column.fields-group.fields-row__column-6
- = 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 :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 :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))
+
%hr.spacer/
.fields-group
@@ -26,6 +26,10 @@
.fields-group
= f.input :bot, as: :boolean, wrapper: :with_label, hint: t('simple_form.hints.defaults.bot')
+ - if Setting.profile_directory
+ .fields-group
+ = f.input :discoverable, as: :boolean, wrapper: :with_label, hint: t('simple_form.hints.defaults.discoverable_html', min_followers: Account::MIN_FOLLOWERS_DISCOVERY, path: explore_path)
+
%hr.spacer/
.fields-row
diff --git a/app/views/stream_entries/_detailed_status.html.haml b/app/views/stream_entries/_detailed_status.html.haml
index 5a7b99261..f4a32b3cf 100644
--- a/app/views/stream_entries/_detailed_status.html.haml
+++ b/app/views/stream_entries/_detailed_status.html.haml
@@ -28,8 +28,8 @@
= react_component :video, src: video.file.url(:original), preview: video.file.url(:small), sensitive: !current_account&.user&.show_all_media? && status.sensitive? || current_account&.user&.hide_all_media?, width: 670, height: 380, detailed: true, inline: true, alt: video.description
- else
= react_component :media_gallery, height: 380, sensitive: !current_account&.user&.show_all_media? && status.sensitive? || current_account&.user&.hide_all_media?, standalone: true, 'autoPlayGif': current_account&.user&.setting_auto_play_gif || autoplay, 'reduceMotion': current_account&.user&.setting_reduce_motion, media: status.media_attachments.map { |a| ActiveModelSerializers::SerializableResource.new(a, serializer: REST::MediaAttachmentSerializer).as_json }
- - elsif status.preview_cards.first
- = react_component :card, 'maxDescription': 160, card: ActiveModelSerializers::SerializableResource.new(status.preview_cards.first, serializer: REST::PreviewCardSerializer).as_json
+ - elsif status.preview_card
+ = react_component :card, 'maxDescription': 160, card: ActiveModelSerializers::SerializableResource.new(status.preview_card, serializer: REST::PreviewCardSerializer).as_json
.detailed-status__meta
%data.dt-published{ value: status.created_at.to_time.iso8601 }
@@ -43,7 +43,7 @@
- else
= link_to status.application.name, status.application.website, class: 'detailed-status__application', target: '_blank', rel: 'noopener'
·
- = link_to remote_interaction_path(status), class: 'modal-button detailed-status__link' do
+ = link_to remote_interaction_path(status, type: :reply), class: 'modal-button detailed-status__link' do
= fa_icon('reply')
%span.detailed-status__reblogs>= number_to_human status.replies_count, strip_insignificant_zeros: true
= " "
@@ -55,12 +55,12 @@
%span.detailed-status__link<
= fa_icon('lock')
- else
- = link_to remote_interaction_path(status), class: 'modal-button detailed-status__link' do
+ = link_to remote_interaction_path(status, type: :reblog), class: 'modal-button detailed-status__link' do
= fa_icon('retweet')
%span.detailed-status__reblogs>= number_to_human status.reblogs_count, strip_insignificant_zeros: true
= " "
·
- = link_to remote_interaction_path(status), class: 'modal-button detailed-status__link' do
+ = link_to remote_interaction_path(status, type: :favourite), class: 'modal-button detailed-status__link' do
= fa_icon('star')
%span.detailed-status__favorites>= number_to_human status.favourites_count, strip_insignificant_zeros: true
= " "
diff --git a/app/views/stream_entries/_simple_status.html.haml b/app/views/stream_entries/_simple_status.html.haml
index b57206e88..6947b3d24 100644
--- a/app/views/stream_entries/_simple_status.html.haml
+++ b/app/views/stream_entries/_simple_status.html.haml
@@ -26,26 +26,28 @@
%a.status__content__spoiler-link{ href: '#' }= t('statuses.show_more')
.e-content{ lang: status.language, style: "display: #{!current_account&.user&.setting_expand_spoilers && status.spoiler_text? ? 'none' : 'block'}; direction: #{rtl_status?(status) ? 'rtl' : 'ltr'}" }= Formatter.instance.format(status, custom_emojify: true, autoplay: autoplay)
- - unless status.media_attachments.empty?
+ - if !status.media_attachments.empty?
- if status.media_attachments.first.video?
- video = status.media_attachments.first
= react_component :video, src: video.file.url(:original), preview: video.file.url(:small), sensitive: !current_account&.user&.show_all_media? && status.sensitive? || current_account&.user&.hide_all_media?, width: 610, height: 343, inline: true, alt: video.description
- else
= react_component :media_gallery, height: 343, sensitive: !current_account&.user&.show_all_media? && status.sensitive? || current_account&.user&.hide_all_media?, 'autoPlayGif': current_account&.user&.setting_auto_play_gif || autoplay, media: status.media_attachments.map { |a| ActiveModelSerializers::SerializableResource.new(a, serializer: REST::MediaAttachmentSerializer).as_json }
+ - elsif status.preview_card
+ = react_component :card, 'maxDescription': 160, card: ActiveModelSerializers::SerializableResource.new(status.preview_card, serializer: REST::PreviewCardSerializer).as_json
.status__action-bar
.status__action-bar__counter
- = link_to remote_interaction_path(status), 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', style: 'font-size: 18px; width: 23.1429px; height: 23.1429px; line-height: 23.15px;' do
= fa_icon 'reply fw'
.status__action-bar__counter__label= obscured_counter status.replies_count
- = link_to remote_interaction_path(status), 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', style: 'font-size: 18px; width: 23.1429px; height: 23.1429px; line-height: 23.15px;' do
- if status.public_visibility? || status.unlisted_visibility?
= fa_icon 'retweet fw'
- elsif status.private_visibility?
= fa_icon 'lock fw'
- else
= fa_icon 'envelope fw'
- = link_to remote_interaction_path(status), 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', style: 'font-size: 18px; width: 23.1429px; height: 23.1429px; line-height: 23.15px;' 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/user_mailer/confirmation_instructions.html.haml b/app/views/user_mailer/confirmation_instructions.html.haml
index 1f088a16f..f75f7529a 100644
--- a/app/views/user_mailer/confirmation_instructions.html.haml
+++ b/app/views/user_mailer/confirmation_instructions.html.haml
@@ -55,8 +55,12 @@
%tbody
%tr
%td.button-primary
- = link_to confirmation_url(@resource, confirmation_token: @token) do
- %span= t 'devise.mailer.confirmation_instructions.action'
+ - if @resource.created_by_application
+ = link_to confirmation_url(@resource, confirmation_token: @token, redirect_to_app: 'true') do
+ %span= t 'devise.mailer.confirmation_instructions.action_with_app', app: @resource.created_by_application.name
+ - else
+ = link_to confirmation_url(@resource, confirmation_token: @token) do
+ %span= t 'devise.mailer.confirmation_instructions.action'
%table.email-table{ cellspacing: 0, cellpadding: 0 }
%tbody
diff --git a/app/views/user_mailer/confirmation_instructions.text.erb b/app/views/user_mailer/confirmation_instructions.text.erb
index e01eecb27..65b4626c6 100644
--- a/app/views/user_mailer/confirmation_instructions.text.erb
+++ b/app/views/user_mailer/confirmation_instructions.text.erb
@@ -4,7 +4,7 @@
<%= t 'devise.mailer.confirmation_instructions.explanation', host: site_hostname %>
-=> <%= confirmation_url(@resource, confirmation_token: @token) %>
+=> <%= confirmation_url(@resource, confirmation_token: @token, redirect_to_app: @resource.created_by_application ? 'true' : nil) %>
<%= strip_tags(t('devise.mailer.confirmation_instructions.extra_html', terms_path: about_more_url, policy_path: terms_url)) %>
diff --git a/app/views/user_mailer/warning.html.haml b/app/views/user_mailer/warning.html.haml
new file mode 100644
index 000000000..c5e1f5a28
--- /dev/null
+++ b/app/views/user_mailer/warning.html.haml
@@ -0,0 +1,63 @@
+%table.email-table{ cellspacing: 0, cellpadding: 0 }
+ %tbody
+ %tr
+ %td.email-body
+ .email-container
+ %table.content-section{ cellspacing: 0, cellpadding: 0 }
+ %tbody
+ %tr
+ %td.content-cell.hero
+ .email-row
+ .col-6
+ %table.column{ cellspacing: 0, cellpadding: 0 }
+ %tbody
+ %tr
+ %td.column-cell.text-center.padded
+ %table.hero-icon.alert-icon{ align: 'center', cellspacing: 0, cellpadding: 0 }
+ %tbody
+ %tr
+ %td
+ = image_tag full_pack_url('icon_warning.png'), alt: ''
+
+ %h1= t "user_mailer.warning.title.#{@warning.action}"
+
+%table.email-table{ cellspacing: 0, cellpadding: 0 }
+ %tbody
+ %tr
+ %td.email-body
+ .email-container
+ %table.content-section{ cellspacing: 0, cellpadding: 0 }
+ %tbody
+ %tr
+ %td.content-cell.content-start
+ .email-row
+ .col-6
+ %table.column{ cellspacing: 0, cellpadding: 0 }
+ %tbody
+ %tr
+ %td.column-cell.text-center
+ - unless @warning.none_action?
+ %p= t "user_mailer.warning.explanation.#{@warning.action}"
+
+ - unless @warning.text.blank?
+ = Formatter.instance.linkify(@warning.text)
+
+%table.email-table{ cellspacing: 0, cellpadding: 0 }
+ %tbody
+ %tr
+ %td.email-body
+ .email-container
+ %table.content-section{ cellspacing: 0, cellpadding: 0 }
+ %tbody
+ %tr
+ %td.content-cell
+ %table.column{ cellspacing: 0, cellpadding: 0 }
+ %tbody
+ %tr
+ %td.column-cell.button-cell
+ %table.button{ align: 'center', cellspacing: 0, cellpadding: 0 }
+ %tbody
+ %tr
+ %td.button-primary
+ = link_to about_more_url do
+ %span= t 'user_mailer.warning.review_server_policies'
diff --git a/app/views/user_mailer/warning.text.erb b/app/views/user_mailer/warning.text.erb
new file mode 100644
index 000000000..b4f2402cb
--- /dev/null
+++ b/app/views/user_mailer/warning.text.erb
@@ -0,0 +1,9 @@
+<%= t "user_mailer.warning.title.#{@warning.action}" %>
+
+===
+
+<% unless @warning.none_action? %>
+<%= t "user_mailer.warning.explanation.#{@warning.action}" %>
+
+<% end %>
+<%= @warning.text %>
diff --git a/app/views/user_mailer/welcome.html.haml b/app/views/user_mailer/welcome.html.haml
index d734da67d..4a5788bf6 100644
--- a/app/views/user_mailer/welcome.html.haml
+++ b/app/views/user_mailer/welcome.html.haml
@@ -136,8 +136,6 @@
%ul
%li
%span= t 'user_mailer.welcome.tip_mobile_webapp'
- %li
- %span= t 'user_mailer.welcome.tip_bridge_html', bridge_url: 'https://bridge.joinmastodon.org'
%li
%span= t 'user_mailer.welcome.tip_following'
%li
diff --git a/app/views/user_mailer/welcome.text.erb b/app/views/user_mailer/welcome.text.erb
index 5bd0cab2a..e310d7ca6 100644
--- a/app/views/user_mailer/welcome.text.erb
+++ b/app/views/user_mailer/welcome.text.erb
@@ -2,7 +2,7 @@
===
-<%= t 'user_mailer.welcome.full_handle' %> (<%= "@#{@resource.account.username}@#{@instance}" %>)
+<%= t 'user_mailer.welcome.full_handle' %> (<%= "@#{@resource.account.local_username_and_domain}" %>)
<%= t 'user_mailer.welcome.full_handle_hint', instance: @instance %>
---
@@ -24,7 +24,6 @@
<%= t 'user_mailer.welcome.tips' %>
* <%= t 'user_mailer.welcome.tip_mobile_webapp' %>
-* <%= strip_tags(t('user_mailer.welcome.tip_bridge_html')) %> (https://bridge.joinmastodon.org)
* <%= t 'user_mailer.welcome.tip_following' %>
* <%= t 'user_mailer.welcome.tip_local_timeline', instance: @instance %>
* <%= t 'user_mailer.welcome.tip_federated_timeline' %>
diff --git a/app/workers/activitypub/distribution_worker.rb b/app/workers/activitypub/distribution_worker.rb
index 17c1ef7ff..d83f01700 100644
--- a/app/workers/activitypub/distribution_worker.rb
+++ b/app/workers/activitypub/distribution_worker.rb
@@ -12,7 +12,7 @@ class ActivityPub::DistributionWorker
return if skip_distribution?
ActivityPub::DeliveryWorker.push_bulk(inboxes) do |inbox_url|
- [signed_payload, @account.id, inbox_url]
+ [payload, @account.id, inbox_url]
end
relay! if relayable?
@@ -31,24 +31,35 @@ class ActivityPub::DistributionWorker
end
def inboxes
- @inboxes ||= @account.followers.inboxes
+ # Deliver the status to all followers.
+ # If the status is a reply to another local status, also forward it to that
+ # status' authors' followers.
+ @inboxes ||= if @status.reply? && @status.thread.account.local? && @status.distributable?
+ @account.followers.or(@status.thread.account.followers).inboxes
+ else
+ @account.followers.inboxes
+ end
end
def signed_payload
- @signed_payload ||= Oj.dump(ActivityPub::LinkedDataSignature.new(payload).sign!(@account))
+ Oj.dump(ActivityPub::LinkedDataSignature.new(unsigned_payload).sign!(@account))
end
- def payload
- @payload ||= ActiveModelSerializers::SerializableResource.new(
+ def unsigned_payload
+ ActiveModelSerializers::SerializableResource.new(
@status,
serializer: ActivityPub::ActivitySerializer,
adapter: ActivityPub::Adapter
).as_json
end
+ def payload
+ @payload ||= @status.distributable? ? signed_payload : Oj.dump(unsigned_payload)
+ end
+
def relay!
ActivityPub::DeliveryWorker.push_bulk(Relay.enabled.pluck(:inbox_url)) do |inbox_url|
- [signed_payload, @account.id, inbox_url]
+ [payload, @account.id, inbox_url]
end
end
end
diff --git a/app/workers/activitypub/reply_distribution_worker.rb b/app/workers/activitypub/reply_distribution_worker.rb
index c0ed3a1f4..d8fea6c4e 100644
--- a/app/workers/activitypub/reply_distribution_worker.rb
+++ b/app/workers/activitypub/reply_distribution_worker.rb
@@ -1,5 +1,8 @@
# frozen_string_literal: true
+# Obsolete but kept around to make sure existing jobs do not fail after upgrade.
+# Should be removed in a subsequent release.
+
class ActivityPub::ReplyDistributionWorker
include Sidekiq::Worker
@@ -12,7 +15,7 @@ class ActivityPub::ReplyDistributionWorker
return unless @account.present? && @status.distributable?
ActivityPub::DeliveryWorker.push_bulk(inboxes) do |inbox_url|
- [signed_payload, @status.account_id, inbox_url]
+ [payload, @status.account_id, inbox_url]
end
rescue ActiveRecord::RecordNotFound
true
@@ -25,14 +28,18 @@ class ActivityPub::ReplyDistributionWorker
end
def signed_payload
- @signed_payload ||= Oj.dump(ActivityPub::LinkedDataSignature.new(payload).sign!(@status.account))
+ Oj.dump(ActivityPub::LinkedDataSignature.new(unsigned_payload).sign!(@status.account))
end
- def payload
- @payload ||= ActiveModelSerializers::SerializableResource.new(
+ def unsigned_payload
+ ActiveModelSerializers::SerializableResource.new(
@status,
serializer: ActivityPub::ActivitySerializer,
adapter: ActivityPub::Adapter
).as_json
end
+
+ def payload
+ @payload ||= @status.distributable? ? signed_payload : Oj.dump(unsigned_payload)
+ end
end
diff --git a/app/workers/admin/suspension_worker.rb b/app/workers/admin/suspension_worker.rb
index e41465ccc..ae8b24d8c 100644
--- a/app/workers/admin/suspension_worker.rb
+++ b/app/workers/admin/suspension_worker.rb
@@ -6,6 +6,6 @@ class Admin::SuspensionWorker
sidekiq_options queue: 'pull'
def perform(account_id, remove_user = false)
- SuspendAccountService.new.call(Account.find(account_id), remove_user: remove_user)
+ SuspendAccountService.new.call(Account.find(account_id), including_user: remove_user)
end
end
diff --git a/app/workers/publish_scheduled_status_worker.rb b/app/workers/publish_scheduled_status_worker.rb
new file mode 100644
index 000000000..641fcc61c
--- /dev/null
+++ b/app/workers/publish_scheduled_status_worker.rb
@@ -0,0 +1,24 @@
+# frozen_string_literal: true
+
+class PublishScheduledStatusWorker
+ include Sidekiq::Worker
+
+ def perform(scheduled_status_id)
+ scheduled_status = ScheduledStatus.find(scheduled_status_id)
+ scheduled_status.destroy!
+
+ PostStatusService.new.call(
+ scheduled_status.account,
+ options_with_objects(scheduled_status.params.with_indifferent_access)
+ )
+ rescue ActiveRecord::RecordNotFound, ActiveRecord::RecordInvalid
+ true
+ end
+
+ def options_with_objects(options)
+ options.tap do |options_hash|
+ options_hash[:application] = Doorkeeper::Application.find(options_hash.delete(:application_id)) if options[:application_id]
+ options_hash[:thread] = Status.find(options_hash.delete(:in_reply_to_id)) if options_hash[:in_reply_to_id]
+ end
+ end
+end
diff --git a/app/workers/scheduler/email_scheduler.rb b/app/workers/scheduler/email_scheduler.rb
index 24ec89b29..1eeeee412 100644
--- a/app/workers/scheduler/email_scheduler.rb
+++ b/app/workers/scheduler/email_scheduler.rb
@@ -5,6 +5,9 @@ class Scheduler::EmailScheduler
sidekiq_options unique: :until_executed, retry: 0
+ FREQUENCY = 7.days.freeze
+ SIGN_IN_OFFSET = 1.day.freeze
+
def perform
eligible_users.reorder(nil).find_each do |user|
next unless user.allows_digest_emails?
@@ -15,11 +18,8 @@ class Scheduler::EmailScheduler
private
def eligible_users
- User.confirmed
- .joins(:account)
- .where(accounts: { silenced: false, suspended: false })
- .where(disabled: false)
- .where('current_sign_in_at < ?', 20.days.ago)
- .where('last_emailed_at IS NULL OR last_emailed_at < ?', 20.days.ago)
+ User.emailable
+ .where('current_sign_in_at < ?', (FREQUENCY + SIGN_IN_OFFSET).ago)
+ .where('last_emailed_at IS NULL OR last_emailed_at < ?', FREQUENCY.ago)
end
end
diff --git a/app/workers/scheduler/scheduled_statuses_scheduler.rb b/app/workers/scheduler/scheduled_statuses_scheduler.rb
new file mode 100644
index 000000000..1772a246b
--- /dev/null
+++ b/app/workers/scheduler/scheduled_statuses_scheduler.rb
@@ -0,0 +1,19 @@
+# frozen_string_literal: true
+
+class Scheduler::ScheduledStatusesScheduler
+ include Sidekiq::Worker
+
+ sidekiq_options unique: :until_executed, retry: 0
+
+ def perform
+ due_statuses.find_each do |scheduled_status|
+ PublishScheduledStatusWorker.perform_at(scheduled_status.scheduled_at, scheduled_status.id)
+ end
+ end
+
+ private
+
+ def due_statuses
+ ScheduledStatus.where('scheduled_at <= ?', Time.now.utc + PostStatusService::MIN_SCHEDULE_OFFSET)
+ end
+end
diff --git a/app/workers/unfollow_follow_worker.rb b/app/workers/unfollow_follow_worker.rb
new file mode 100644
index 000000000..50d3bf034
--- /dev/null
+++ b/app/workers/unfollow_follow_worker.rb
@@ -0,0 +1,18 @@
+# frozen_string_literal: true
+
+class UnfollowFollowWorker
+ include Sidekiq::Worker
+
+ sidekiq_options queue: 'pull'
+
+ def perform(follower_account_id, old_target_account_id, new_target_account_id)
+ follower_account = Account.find(follower_account_id)
+ old_target_account = Account.find(old_target_account_id)
+ new_target_account = Account.find(new_target_account_id)
+
+ FollowService.new.call(follower_account, new_target_account)
+ UnfollowService.new.call(follower_account, old_target_account)
+ rescue ActiveRecord::RecordNotFound, Mastodon::NotPermittedError
+ true
+ end
+end
diff --git a/app/workers/web/push_notification_worker.rb b/app/workers/web/push_notification_worker.rb
index 4a40e5c8b..8e8a35973 100644
--- a/app/workers/web/push_notification_worker.rb
+++ b/app/workers/web/push_notification_worker.rb
@@ -10,8 +10,8 @@ class Web::PushNotificationWorker
notification = Notification.find(notification_id)
subscription.push(notification) unless notification.activity.nil?
- rescue Webpush::InvalidSubscription, Webpush::ExpiredSubscription
- subscription.destroy!
+ rescue Webpush::ResponseError => e
+ subscription.destroy! if (400..499).cover?(e.response.code.to_i)
rescue ActiveRecord::RecordNotFound
true
end
diff --git a/config/boot.rb b/config/boot.rb
index beb45a5ee..f3e36203a 100644
--- a/config/boot.rb
+++ b/config/boot.rb
@@ -4,7 +4,7 @@ require 'bundler/setup' # Set up gems listed in the Gemfile.
require 'bootsnap' # Speed up boot time by caching expensive operations.
Bootsnap.setup(
- cache_dir: 'tmp/cache',
+ cache_dir: File.expand_path('../tmp/cache', __dir__),
development_mode: ENV.fetch('RAILS_ENV', 'development') == 'development',
load_path_cache: true,
autoload_paths_cache: true,
diff --git a/config/brakeman.ignore b/config/brakeman.ignore
index e5a5c16b4..58fb243da 100644
--- a/config/brakeman.ignore
+++ b/config/brakeman.ignore
@@ -7,7 +7,7 @@
"check_name": "SQL",
"message": "Possible SQL injection",
"file": "app/models/report.rb",
- "line": 86,
+ "line": 90,
"link": "https://brakemanscanner.org/docs/warning_types/sql_injection/",
"code": "Admin::ActionLog.from(\"(#{[Admin::ActionLog.where(:target_type => \"Report\", :target_id => id, :created_at => ((created_at..updated_at))).unscope(:order), Admin::ActionLog.where(:target_type => \"Account\", :target_id => target_account_id, :created_at => ((created_at..updated_at))).unscope(:order), Admin::ActionLog.where(:target_type => \"Status\", :target_id => status_ids, :created_at => ((created_at..updated_at))).unscope(:order)].map do\n \"(#{query.to_sql})\"\n end.join(\" UNION ALL \")}) AS admin_action_logs\")",
"render_path": null,
@@ -39,6 +39,26 @@
"confidence": "Weak",
"note": ""
},
+ {
+ "warning_type": "SQL Injection",
+ "warning_code": 0,
+ "fingerprint": "19df3740b8d02a9fe0eb52c939b4b87d3a2a591162a6adfa8d64e9c26aeebe6d",
+ "check_name": "SQL",
+ "message": "Possible SQL injection",
+ "file": "app/models/status.rb",
+ "line": 84,
+ "link": "https://brakemanscanner.org/docs/warning_types/sql_injection/",
+ "code": "result.joins(\"INNER JOIN statuses_tags t#{id} ON t#{id}.status_id = statuses.id AND t#{id}.tag_id = #{id}\")",
+ "render_path": null,
+ "location": {
+ "type": "method",
+ "class": "Status",
+ "method": null
+ },
+ "user_input": "id",
+ "confidence": "Weak",
+ "note": ""
+ },
{
"warning_type": "Cross-Site Scripting",
"warning_code": 4,
@@ -174,6 +194,26 @@
"confidence": "Weak",
"note": ""
},
+ {
+ "warning_type": "SQL Injection",
+ "warning_code": 0,
+ "fingerprint": "6f075c1484908e3ec9bed21ab7cf3c7866be8da3881485d1c82e13093aefcbd7",
+ "check_name": "SQL",
+ "message": "Possible SQL injection",
+ "file": "app/models/status.rb",
+ "line": 89,
+ "link": "https://brakemanscanner.org/docs/warning_types/sql_injection/",
+ "code": "result.joins(\"LEFT OUTER JOIN statuses_tags t#{id} ON t#{id}.status_id = statuses.id AND t#{id}.tag_id = #{id}\")",
+ "render_path": null,
+ "location": {
+ "type": "method",
+ "class": "Status",
+ "method": null
+ },
+ "user_input": "id",
+ "confidence": "Weak",
+ "note": ""
+ },
{
"warning_type": "Cross-Site Scripting",
"warning_code": 4,
@@ -310,25 +350,6 @@
"confidence": "High",
"note": ""
},
- {
- "warning_type": "Dynamic Render Path",
- "warning_code": 15,
- "fingerprint": "c5d6945d63264af106d49367228d206aa2f176699ecdce2b98fac101bc6a96cf",
- "check_name": "Render",
- "message": "Render path contains parameter value",
- "file": "app/views/admin/reports/index.html.haml",
- "line": 22,
- "link": "https://brakemanscanner.org/docs/warning_types/dynamic_render_path/",
- "code": "render(action => filtered_reports.page(params[:page]), {})",
- "render_path": [{"type":"controller","class":"Admin::ReportsController","method":"index","line":10,"file":"app/controllers/admin/reports_controller.rb"}],
- "location": {
- "type": "template",
- "template": "admin/reports/index"
- },
- "user_input": "params[:page]",
- "confidence": "Weak",
- "note": ""
- },
{
"warning_type": "Cross-Site Scripting",
"warning_code": 4,
@@ -355,7 +376,7 @@
"check_name": "PermitAttributes",
"message": "Potentially dangerous key allowed for mass assignment",
"file": "app/controllers/api/v1/reports_controller.rb",
- "line": 42,
+ "line": 37,
"link": "https://brakemanscanner.org/docs/warning_types/mass_assignment/",
"code": "params.permit(:account_id, :comment, :forward, :status_ids => ([]))",
"render_path": null,
@@ -388,6 +409,6 @@
"note": ""
}
],
- "updated": "2018-08-30 21:55:10 +0200",
+ "updated": "2018-10-20 23:24:45 +1300",
"brakeman_version": "4.2.1"
}
diff --git a/config/initializers/cors.rb b/config/initializers/cors.rb
index 36d3663cb..55f8c9c91 100644
--- a/config/initializers/cors.rb
+++ b/config/initializers/cors.rb
@@ -17,6 +17,10 @@ Rails.application.config.middleware.insert_before 0, Rack::Cors do
headers: :any,
methods: [:get],
credentials: false
+ resource '/users/:username',
+ headers: :any,
+ methods: [:get],
+ credentials: false
resource '/api/*',
headers: :any,
methods: [:post, :put, :delete, :get, :patch, :options],
diff --git a/config/initializers/delivery_job.rb b/config/initializers/delivery_job.rb
new file mode 100644
index 000000000..cc2927272
--- /dev/null
+++ b/config/initializers/delivery_job.rb
@@ -0,0 +1,3 @@
+ActionMailer::DeliveryJob.class_eval do
+ discard_on ActiveJob::DeserializationError
+end
diff --git a/config/initializers/paperclip.rb b/config/initializers/paperclip.rb
index df0205879..4bbf8b827 100644
--- a/config/initializers/paperclip.rb
+++ b/config/initializers/paperclip.rb
@@ -25,7 +25,7 @@ if ENV['S3_ENABLED'] == 'true'
s3_protocol: s3_protocol,
s3_host_name: s3_hostname,
s3_headers: {
- 'Cache-Control' => 'max-age=315576000',
+ 'Cache-Control' => 'public, max-age=315576000, immutable',
},
s3_permissions: ENV.fetch('S3_PERMISSION') { 'public-read' },
s3_region: s3_region,
diff --git a/config/initializers/rack_attack.rb b/config/initializers/rack_attack.rb
index 8756b8fbf..35302e37b 100644
--- a/config/initializers/rack_attack.rb
+++ b/config/initializers/rack_attack.rb
@@ -57,6 +57,10 @@ class Rack::Attack
req.authenticated_user_id if req.post? && req.path.start_with?('/api/v1/media')
end
+ throttle('throttle_api_sign_up', limit: 5, period: 30.minutes) do |req|
+ req.ip if req.post? && req.path == '/api/v1/accounts'
+ end
+
throttle('protected_paths', limit: 25, period: 5.minutes) do |req|
req.ip if req.post? && req.path =~ PROTECTED_PATHS_REGEX
end
diff --git a/config/locales/activerecord.ast.yml b/config/locales/activerecord.ast.yml
index 6e32cbc2f..de95817c1 100644
--- a/config/locales/activerecord.ast.yml
+++ b/config/locales/activerecord.ast.yml
@@ -1,2 +1,9 @@
---
-ast: {}
+ast:
+ activerecord:
+ errors:
+ models:
+ account:
+ attributes:
+ username:
+ invalid: namái lletres, númberos y guiones baxos
diff --git a/config/locales/ar.yml b/config/locales/ar.yml
index 095b1f584..07bcfbf12 100644
--- a/config/locales/ar.yml
+++ b/config/locales/ar.yml
@@ -30,18 +30,37 @@ ar:
other_instances: خوادم أخرى
privacy_policy: سياسة الخصوصية
source_code: الشفرة المصدرية
- status_count_after: منشورات
+ status_count_after:
+ few: منشورات
+ many: منشورات
+ one: منشور
+ other: منشورات
+ two: منشورات
+ zero: منشورات
status_count_before: نشروا
terms: شروط الخدمة
- user_count_after: مستخدِمين
+ user_count_after:
+ few: مستخدمين
+ many: مستخدمين
+ one: مستخدم
+ other: مستخدمين
+ two: مستخدمين
+ zero: مستخدمين
user_count_before: يستضيف
what_is_mastodon: ما هو ماستدون ؟
accounts:
choices_html: 'توصيات %{name} :'
follow: إتبع
- followers: مُتابِعون
+ followers:
+ few: متابِعون
+ many: متابِعون
+ one: متابِع
+ other: متابِعون
+ two: متابِعون
+ zero: متابِعون
following: مُتابَع
joined: انضم·ت في %{date}
+ last_active: آخر نشاط
link_verified_on: تم التحقق مِن مالك هذا الرابط بتاريخ %{date}
media: الوسائط
moved_html: "%{name} إنتقلَ إلى %{new_profile_link} :"
@@ -51,7 +70,13 @@ ar:
people_who_follow: الأشخاص الذين يتبعون %{name}
pin_errors:
following: يجب أن تكون مِن متابعي حساب الشخص الذي تريد إبرازه
- posts: تبويقات
+ posts:
+ few: تبويقات
+ many: تبويقات
+ one: تبويق
+ other: تبويقات
+ two: تبويقات
+ zero: تبويقات
posts_tab_heading: تبويقات
posts_with_replies: التبويقات و الردود
reserved_username: إسم المستخدم محجوز
@@ -61,6 +86,8 @@ ar:
moderator: مُشرِف
unfollow: إلغاء المتابعة
admin:
+ account_actions:
+ action: تنفيذ الاجراء
account_moderation_notes:
create: إترك ملاحظة
created_msg: تم إنشاء ملاحظة الإشراف بنجاح !
@@ -82,7 +109,7 @@ ar:
confirming: التأكد
demote: إنزال الرُتبة الوظيفية
disable: تعطيل
- disable_two_factor_authentication: تعطيل 2FA
+ disable_two_factor_authentication: تعطيل المصادقة بخطوتين
disabled: معطَّل
display_name: عرض الإسم
domain: النطاق
@@ -95,6 +122,7 @@ ar:
followers: المتابِعون
followers_url: عنوان رابط المتابِعين
follows: يتابع
+ header: الرأسية
inbox_url: رابط صندوق الوارد
ip: عنوان الإيبي
location:
@@ -104,8 +132,9 @@ ar:
title: الموقع
login_status: وضع الدخول
media_attachments: الوسائط المرفقة
- memorialize: تحول إلى صفحة للذاكرة
+ memorialize: تحويل الحساب إلى صفحة ذكرى
moderation:
+ active: نشِط
all: الكل
silenced: تم كتمه
suspended: مُجَمَّد
@@ -115,12 +144,8 @@ ar:
most_recent_ip: أحدث عنوان إيبي
no_limits_imposed: مِن دون حدود مشروطة
not_subscribed: غير مشترك
- order:
- alphabetic: أبجديًا
- most_recent: الأحدث
- title: الترتيب
outbox_url: رابط صندوق الصادر
- perform_full_suspension: تعطيل
+ perform_full_suspension: تعليق الحساب
profile_url: رابط الملف الشخصي
promote: ترقية
protocol: البروتوكول
@@ -128,14 +153,15 @@ ar:
push_subscription_expires: انتهاء الاشتراك ”PuSH“
redownload: تحديث الصورة الرمزية
remove_avatar: حذف الصورة الرمزية
+ remove_header: حذف الرأسية
resend_confirmation:
already_confirmed: هذا المستخدم مؤكد بالفعل
send: أعد إرسال رسالة البريد الالكتروني الخاصة بالتأكيد
success: تم إرسال رسالة التأكيد بنجاح!
reset: إعادة التعيين
reset_password: إعادة ضبط كلمة السر
- resubscribe: اشترك مرة أخرى
- role: التصريحات
+ resubscribe: إعادة الإشتراك
+ role: الصلاحيات
roles:
admin: مدير
moderator: مشرف
@@ -146,9 +172,8 @@ ar:
shared_inbox_url: رابط الصندوق المُشترَك للبريد الوارد
show:
created_reports: البلاغات التي أنشأها هذا الحساب
- report: التقرير
- targeted_reports: التقريرات التي أُنشِأت ضد هذا الحساب
- silence: سكتهم
+ targeted_reports: الشكاوي التي أُنشِأت ضد هذا الحساب
+ silence: كتم
silenced: تم كتمه
statuses: المنشورات
subscribe: اشترك
@@ -181,9 +206,9 @@ ar:
memorialize_account: لقد قام %{name} بتحويل حساب %{target} إلى صفحة تذكارية
promote_user: "%{name} قام بترقية المستخدم %{target}"
remove_avatar_user: تمت إزالة %{name} الصورة الرمزية %{target}
- reopen_report: تمت إعادة فتح التقرير %{name} %{target}
+ reopen_report: تمت إعادة فتح الشكوى %{name} %{target}
reset_password_user: "%{name} لقد قام بإعادة تعيين الكلمة السرية الخاصة بـ %{target}"
- resolve_report: قام %{name} بحل التقرير %{target}
+ resolve_report: قام %{name} بحل الشكوى %{target}
silence_account: لقد قام %{name} بكتم حساب %{target}
suspend_account: لقد قام %{name} بتعليق حساب %{target}
unassigned_report: "%{name} تقرير غير معتمد %{target}"
@@ -223,11 +248,12 @@ ar:
config: الإعداد
feature_deletions: الحسابات المحذوفة
feature_invites: روابط الدعوات
+ feature_profile_directory: دليل الحسابات
feature_registrations: التسجيلات
feature_relay: المُرحّل الفديرالي
features: الميّزات
hidden_service: الفيديرالية مع الخدمات الخفية
- open_reports: فتح التقريرات
+ open_reports: فتح الشكاوي
recent_users: أحدث المستخدِمين
search: البحث النصي الكامل
single_user_mode: وضع المستخدِم الأوحد
@@ -256,19 +282,19 @@ ar:
reject_media: رفض ملفات الوسائط
reject_media_hint: يزيل ملفات الوسائط المخزنة محليًا ويرفض تنزيل أي ملفات في المستقبل. غير ذي صلة للتعليق
reject_reports: رفض التقارير
- severities:
- noop: لا شيء
- silence: إخفاء أو كتم
- suspend: تعليق
- severity: الشدة
show:
- affected_accounts: "%{count} حسابات معنية في قاعدة البيانات"
+ affected_accounts:
+ few: "%{count} حسابات معنية في قاعدة البيانات"
+ many: "%{count} حسابات معنية في قاعدة البيانات"
+ one: حساب واحد معني في قاعدة البيانات
+ other: "%{count} حسابات معنية في قاعدة البيانات"
+ two: حسابات معنية في قاعدة البيانات
+ zero: حسابات معنية في قاعدة البيانات
retroactive:
silence: إلغاء الكتم عن كافة الحسابات المتواجدة على هذا النطاق
suspend: إلغاء التعليق المفروض على كافة حسابات هذا النطاق
title: رفع حظر النطاق عن %{domain}
undo: إلغاء
- title: حظر النطاقات
undo: إلغاء
email_domain_blocks:
add_new: إضافة
@@ -280,11 +306,9 @@ ar:
create: إضافة نطاق
title: إضافة نطاق بريد جديد إلى اللائحة السوداء
title: القائمة السوداء للبريد الإلكتروني
+ followers:
+ back_to_account: العودة إلى الحساب
instances:
- account_count: الحسابات المعروفة
- domain_name: النطاق
- reset: إعادة تعيين
- search: البحث
title: مثيلات الخوادم المعروفة
invites:
deactivate_all: تعطيلها كافة
@@ -309,10 +333,8 @@ ar:
status: الحالة
title: المُرحّلات
report_notes:
- created_msg: |-
- 41/5000
- تم إنشاء ملاحظة التقرير بنجاح!
- destroyed_msg: تم حذف ملاحظة التقرير بنجاح!
+ created_msg: تم إنشاء ملاحظة الشكوى بنجاح!
+ destroyed_msg: تم حذف ملاحظة الشكوى بنجاح!
reports:
account:
note: ملحوظة
@@ -324,7 +346,7 @@ ar:
comment:
none: لا شيء
created_at: ذكرت
- mark_as_resolved: إعتبار التقرير كمحلول
+ mark_as_resolved: إعتبار الشكوى كمحلولة
mark_as_unresolved: علام كغير محلولة
notes:
create: اضف ملاحظة
@@ -332,14 +354,14 @@ ar:
create_and_unresolve: إعادة فتح مع ملاحظة
delete: حذف
placeholder: قم بوصف الإجراءات التي تم اتخاذها أو أي تحديثات أخرى ذات علاقة …
- reopen: إعادة فتح التقرير
- report: 'التقرير #%{id}'
+ reopen: إعادة فتح الشكوى
+ report: 'الشكوى #%{id}'
reported_account: حساب مُبلّغ عنه
reported_by: أبلغ عنه من طرف
resolved: معالجة
resolved_msg: تم حل تقرير بنجاح!
status: الحالة
- title: التقارير
+ title: الشكاوي
unassign: إلغاء تعيين
unresolved: غير معالجة
updated_at: محدث
@@ -365,6 +387,9 @@ ar:
preview_sensitive_media:
desc_html: روابط المُعَاينة على مواقع الويب الأخرى ستقوم بعرض صُوَر مصغّرة حتى و إن كانت الوسائط حساسة
title: إظهار الصور الحساسة في مُعاينات أوبن غراف
+ profile_directory:
+ desc_html: السماح للمستخدمين الكشف عن حساباتهم
+ title: تفعيل سجل الملفات الشخصية
registrations:
closed_message:
desc_html: يتم عرضه على الصفحة الرئيسية عندما يتم غلق تسجيل الحسابات الجديدة. يمكنكم إستخدام علامات الأيتش تي أم أل HTML
@@ -408,15 +433,15 @@ ar:
back_to_account: العودة إلى صفحة الحساب
batch:
delete: حذف
- nsfw_off: ضع علامة انها غير حساسة
- nsfw_on: ضع علامة انها حساسة
+ nsfw_off: تعيينه كمنشور غير حساس
+ nsfw_on: تعيينه كمنشور حساس
failed_to_execute: خطأ في التفعيل
media:
title: الوسائط
- no_media: لا يوجد وسائط
+ no_media: لا تحتوي على وسائط
no_status_selected: لم يطرأ أي تغيير على أي منشور بما أنه لم يتم اختيار أي واحد
title: منشورات الحساب
- with_media: بالوسائط
+ with_media: تحتوي على وسائط
subscriptions:
callback_url: عاود الاتصال بالعنوان
confirmed: مؤكَّد
@@ -424,12 +449,21 @@ ar:
last_delivery: آخر إيداع
title: WebSub
topic: الموضوع
- suspensions:
- bad_acct_msg: قيمة التأكيد غير متطابقة. متأكد مِن أنك بصدد تعليق الحساب الصحيح؟
- hint_html: 'لتأكيد إجراء تعليق الحساب، يُرجى إدخال %{value} في الحقل التالي:'
- proceed: مواصلة
- title: تعليق الحساب %{acct}
+ tags:
+ accounts: الحسابات
+ hidden: المخفية
+ hide: الإخفاء عن سجل الحسابات
+ name: الوسم
+ title: الوسوم
+ unhide: إظهاره في سجل حسابات المستخدمين
+ visible: ظاهر
title: الإدارة
+ warning_presets:
+ add_new: إضافة واحد جديد
+ delete: حذف
+ edit: تعديل
+ edit_preset: تعديل نموذج التحذير
+ title: إدارة نماذج التحذير
admin_mailer:
new_report:
body: قام %{reporter} بالإبلاغ عن %{target}
@@ -505,6 +539,17 @@ ar:
proceed: حذف حساب
success_msg: تم حذف حسابك بنجاح
warning_title: توافر المحتوى المنشور و المبعثَر
+ directories:
+ directory: سِجلّ الحسابات
+ explanation: استكشف مستخدِمين آخرين حسب المواضيع التي تهمهم
+ explore_mastodon: استكشف %{title}
+ people:
+ few: "%{count} شخص"
+ many: "%{count} شخص"
+ one: "%{count} شخص"
+ other: "%{count} شخص"
+ two: "%{count} شخص"
+ zero: "%{count} شخص"
errors:
'403': ليس لك الصلاحيات الكافية لعرض هذه الصفحة.
'404': إنّ الصفحة التي تبحث عنها لا وجود لها أصلا.
@@ -563,7 +608,13 @@ ar:
changes_saved_msg: تم حفظ التعديلات بنجاح !
copy: نسخ
save_changes: حفظ التغييرات
- validation_errors: هناك شيء ليس على ما يُرام! يُرجى معاينة الأخطاء الـ %{count} التالية
+ validation_errors:
+ few: هناك شيء ما ليس على ما يرام! يُرجى مراجعة الأخطاء الـ %{count} أدناه
+ many: هناك شيء ما ليس على ما يرام! يُرجى مراجعة الأخطاء الـ %{count} أدناه
+ one: هناك شيء ما ليس على ما يرام! يُرجى مراجعة الخطأ أدناه
+ other: هناك شيء ما ليس على ما يرام! يُرجى مراجعة الأخطاء الـ %{count} أدناه
+ two: هناك شيء ما ليس على ما يرام! يُرجى مراجعة الأخطاء الـ %{count} أدناه
+ zero: هناك شيء ما ليس على ما يرام! يُرجى مراجعة الأخطاء الـ %{count} أدناه
imports:
preface: بإمكانك استيراد بيانات قد قُمتَ بتصديرها مِن مثيل خادوم آخَر، كقوائم المستخدِمين الذين كنتَ تتابِعهم أو قُمتَ بحظرهم.
success: تم تحميل بياناتك بنجاح وسيتم معالجتها في الوقت المناسب
@@ -586,12 +637,18 @@ ar:
expires_in_prompt: أبدا
generate: توليد
invited_by: 'تمت دعوتك من طرف :'
- max_uses: "%{count} استخدامات"
+ max_uses:
+ few: "%{count} استخدامات"
+ many: "%{count} استخدامات"
+ one: استخدام واحد
+ other: "%{count} استخدامات"
+ two: استخدامات
+ zero: استخدامات
max_uses_prompt: بلا حدود
prompt: توليد و مشاركة روابط للسماح للآخَرين بالنفاذ إلى مثيل الخادوم هذا
table:
expires_at: تنتهي مدة صلاحيتها في
- uses: يستخدِم
+ uses: عدد الاستخدامات
title: دعوة أشخاص
lists:
errors:
@@ -613,7 +670,13 @@ ar:
body: هذا هو مُلَخَّص الرسائل التي فاتتك وذلك منذ آخر زيارة لك في %{since}
mention: "%{name} أشار إليك في :"
new_followers_summary: رائع، لقد قام بمتابعتك %{count} مُتابِعون جُدد أثناء فترة غيابك عن ماستدون !
- subject: "%{count} إشعارات جديدة منذ آخر زيارة لك إلى \U0001F418"
+ subject:
+ few: "%{count} إشعارات جديدة منذ آخر زيارة لك إلى \U0001F418"
+ many: "%{count} إشعارات جديدة منذ آخر زيارة لك إلى \U0001F418"
+ one: "إشعار واحد منذ آخر زيارة لك لـ \U0001F418"
+ other: "%{count} إشعارات جديدة منذ آخر زيارة لك إلى \U0001F418"
+ two: "إشعارات جديدة منذ آخر زيارة لك إلى \U0001F418"
+ zero: "إشعارات جديدة منذ آخر زيارة لك إلى \U0001F418"
title: أثناء فترة غيابك …
favourite:
body: 'أُعجب %{name} بمنشورك :'
@@ -644,8 +707,8 @@ ar:
units:
billion: B
million: M
- quadrillion: Q
- thousand: K
+ quadrillion: كواد
+ thousand: ألف
trillion: T
unit: ''
pagination:
@@ -665,9 +728,6 @@ ar:
no_account_html: أليس عندك حساب بعدُ ؟ يُمْكنك التسجيل مِن هنا
proceed: أكمل المتابعة
prompt: 'إنك بصدد متابعة :'
- remote_interaction:
- proceed: إبدأ التفاعل
- prompt: 'تريد التفاعُل مع هذا التبويق:'
remote_unfollow:
error: خطأ
title: العنوان
@@ -731,11 +791,29 @@ ar:
statuses:
attached:
description: 'مُرفَق : %{attached}'
- image: "%{count} صُوَر"
- video: "%{count} فيديوهات"
+ image:
+ few: "%{count} صور"
+ many: "%{count} صور"
+ one: صورة %{count}
+ other: "%{count} صور"
+ two: صور
+ zero: صور
+ video:
+ few: "%{count} فيديوهات"
+ many: "%{count} فيديوهات"
+ one: فيديو %{count}
+ other: "%{count} فيديوهات"
+ two: فيديوهات
+ zero: فيديوهات
boosted_from_html: تم إعادة ترقيته مِن %{acct_link}
content_warning: 'تحذير عن المحتوى : %{warning}'
- disallowed_hashtags: 'يحتوي على أحد الوسوم الممنوعة: %{tags}'
+ disallowed_hashtags:
+ few: 'يحتوي على وسوم غير مسموح بها: %{tags}'
+ many: 'يحتوي على وسوم غير مسموح بها: %{tags}'
+ one: 'يحتوي على وسم غير مسموح به: %{tags}'
+ other: 'يحتوي على وسوم غير مسموح بها: %{tags}'
+ two: 'يحتوي على وسوم غير مسموح بها: %{tags}'
+ zero: 'يحتوي على وسوم غير مسموح بها: %{tags}'
language_detection: اكتشاف اللغة تلقائيا
open_in_web: إفتح في الويب
over_character_limit: تم تجاوز حد الـ %{max} حرف المسموح بها
@@ -788,6 +866,14 @@ ar:
explanation: لقد قمت بطلب نسخة كاملة لحسابك على ماستدون. إنها متوفرة الآن للتنزيل !
subject: نسخة بيانات حسابك جاهزة للتنزيل
title: المغادرة بأرشيف الحساب
+ warning:
+ review_server_policies: مراجعة شروط السيرفر
+ subject:
+ disable: تم تجميد حسابك %{acct}
+ title:
+ disable: الحساب مُجمَّد
+ none: تحذير
+ suspend: الحساب مُعلَّق
welcome:
edit_profile_action: تهيئة الملف الشخصي
edit_profile_step: يُمكنك·كي تخصيص ملفك الشخصي عن طريق تحميل صورة رمزية ورأسية و بتعديل إسمك·كي العلني وأكثر. و إن أردت·تي معاينة المتابِعين و المتابعات الجُدد قبيل السماح لهم·ن بمتابَعتك فيمكنك·كي تأمين حسابك·كي.
@@ -800,7 +886,6 @@ ar:
full_handle_hint: هذا هو ما يجب تقديمه لأصدقائك قصد أن يكون بإمكانهم متابَعتك أو مُراسَلتك حتى و إن كانت حساباتهم على خوادم أخرى.
review_preferences_action: تعديل التفضيلات
subject: أهلًا بك على ماستدون
- tip_bridge_html: إن كنت قادما مِن تويتر، باستطاعتك العثور على أصدقائك على ماستدون باستخدام تطبيق الجسر بشرط أن يكون أصدقاؤك قد سجلوا حساباتهم على الجسر مِن قبل، و إلّا فلن تنجح العملية !
tip_federated_timeline: الخيط الزمني الفديرالي هو بمثابة شبه نظرة شاملة على شبكة ماستدون. غير أنه لا يشمل إلا على الأشخاص المتابَعين مِن طرف جيرانك و جاراتك، لذا فهذا الخيط لا يعكس كافة الشبكة برُمّتها.
tip_following: أنت تتبع تلقائيا مديري و مديرات الخادم. للعثور على أشخاص مميزين أو قد تهمك حساباتهم بإمكانك الإطلاع على الخيوط المحلية و كذا الفدرالية.
tip_local_timeline: الخيط الزمني المحلي هو بمثابة نظرة سريعة على الأشخاص المتواجدين على %{instance} يمكن اعتبارهم كجيرانك وجاراتك الأقرب إليك!
diff --git a/config/locales/ast.yml b/config/locales/ast.yml
index f787e98f8..78ad796a0 100644
--- a/config/locales/ast.yml
+++ b/config/locales/ast.yml
@@ -22,12 +22,16 @@ ast:
learn_more: Deprendi más
source_code: Códigu fonte
status_count_after: estaos
+ status_count_before: Que crearon
terms: Términos del serviciu
- user_count_after: usuarios
+ user_count_after:
+ one: usuariu
+ other: usuarios
+ user_count_before: Ye'l llar de
what_is_mastodon: "¿Qué ye Mastodon?"
accounts:
followers:
- one: Siguidor
+ one: Xente que te sigue
other: Siguidores
joined: Xunióse en %{date}
moved_html: "%{name} mudóse a %{new_profile_link}:"
@@ -35,6 +39,11 @@ ast:
nothing_here: "¡Equí nun hai nada!"
people_followed_by: Persones a les que sigue %{name}
people_who_follow: Persones que siguen a %{name}
+ posts:
+ one: Toot
+ other: Toots
+ posts_tab_heading: Toots
+ posts_with_replies: Toots y rempuestes
reserved_username: El nome d'usuariu ta acutáu
roles:
bot: Robó
@@ -87,14 +96,14 @@ ast:
email_domain_blocks:
domain: Dominiu
instances:
- account_count: Cuentes conocíes
- domain_name: Dominiu
title: Instancies conocíes
invites:
filter:
available: Disponible
expired: Caducó
title: Invitaciones
+ relays:
+ save_and_enable: Guardar y activar
reports:
are_you_sure: "¿De xuru?"
status: Estáu
@@ -110,8 +119,6 @@ ast:
failed_to_execute: Fallu al executar
subscriptions:
title: WebSub
- suspensions:
- warning_html: 'El suspender esta cuenta va desaniciar de mou irreversible los sos datos qu''inclúin:'
title: Alministración
admin_mailer:
new_report:
@@ -122,15 +129,19 @@ ast:
invalid_url: La URL apurrida nun ye válida
warning: Ten curiáu con estos datos, ¡enxamás nun los compartas con naide!
auth:
- agreement_html: Aniciando sesión aceutes siguir les regles de la instancia y los nuesos términos del serviciu.
+ agreement_html: Faciendo clic en «Aniciar sesión» aceutes siguir les regles de la instancia y los nuesos términos del serviciu.
change_password: Contraseña
+ delete_account: Desaniciu de la cuenta
delete_account_html: Si deseyes desaniciar la to cuenta, pues siguir equí. Va pidísete la confirmación.
forgot_password: "¿Escaeciesti la contraseña?"
login: Aniciar sesión
+ migrate_account: Mudase a otra cuenta
+ migrate_account_html: Si deseyes redirixir esta cuenta a otra, pues configuralo equí.
providers:
cas: CAS
saml: SAML
register: Rexistrase
+ register_elsewhere: Rexistrase n'otru sirvidor
security: Seguranza
authorize_follow:
already_following: Yá tas siguiendo a esta cuenta
@@ -147,6 +158,10 @@ ast:
deletes:
bad_password_msg: "¡Bon intentu, crackers! Contraseña incorreuta"
confirm_password: Introduz la contraseña pa verificar la to identidá
+ directories:
+ people:
+ one: "%{count} persona"
+ other: "%{count} persones"
errors:
'403': Nun tienes permisu pa ver esta páxina.
'404': La páxina que tabes guetando nun esiste.
@@ -159,16 +174,38 @@ ast:
archive_takeout:
date: Data
hint_html: Pues solicitar un archivu colos tos toots y ficheros xubíos. Los datos esportaos van tar nel formatu ActivityPub, llexible pa cualesquier software que seya compatible. Pues solicitar un archivu cada 7 díes.
+ request: Solicitar l'archivu
size: Tamañu
+ blocks: Xente que bloquiesti
csv: CSV
+ follows: Xente que sigues
+ mutes: Xente que silenciesti
filters:
contexts:
+ notifications: Avisos
public: Llinies temporales públiques
thread: Conversaciones
+ index:
+ title: Peñeres
+ new:
+ title: Amestar una peñera nueva
followers:
domain: Dominiu
followers_count: Númberu de siguidores
+ purge: Desaniciar de los siguidores
+ generic:
+ changes_saved_msg: "¡Los cambeos guardáronse con ésitu!"
+ save_changes: Guardar cambeos
+ imports:
+ preface: Pues importar los datos qu'esportares dende otra instancia, como por exemplu la llista de persones que bloquiares o tubieres siguiendo.
+ types:
+ blocking: Llista de xente bloquiao
+ following: Llista de siguidores
+ muting: Llista de xente silenciao
+ upload: Xubir
invites:
+ delete: Desactivar
+ expired: Caducó
expires_in:
'1800': 30 minutos
'21600': 6 hores
@@ -182,6 +219,7 @@ ast:
one: 1 usu
other: "%{count} usos"
table:
+ expires_at: Data de caducidá
uses: Usos
lists:
errors:
@@ -192,6 +230,7 @@ ast:
too_many: Nun puen axuntase más de 4 ficheros
migrations:
acct: nome_usuariu@dominiu de la cuenta nueva
+ proceed: Guardar
notification_mailer:
digest:
body: Equí hai un resume de los mensaxes que nun viesti dende la última visita'l %{since}
@@ -208,6 +247,10 @@ ast:
body: "%{name} mentóte en:"
subject: "%{name} mentóte"
title: Mención nueva
+ reblog:
+ body: "%{name} compartió'l to estáu:"
+ subject: "%{name} compartió'l to estáu"
+ title: Compartición nueva de toot
number:
human:
decimal_units:
@@ -216,15 +259,13 @@ ast:
next: Siguiente
preferences:
languages: Llingües
+ publishing: Espublización
web: Web
remote_follow:
acct: Introduz el nome_usuariu@dominiu dende'l que lo quies facer
no_account_html: "¿Nun tienes una cuenta? Pues rexistrate equí"
proceed: Siguir
prompt: 'Vas siguir a:'
- remote_interaction:
- proceed: Interactuar
- prompt: 'Quies interactuar con esti toot:'
remote_unfollow:
error: Fallu
sessions:
@@ -267,6 +308,9 @@ ast:
authorized_apps: Aplicaciones autorizaes
back: Volver a Mastodon
edit_profile: Edición del perfil
+ export: Esportación de datos
+ followers: Siguidores autorizaos
+ import: Importación
notifications: Avisos
preferences: Preferencies
settings: Axustes
@@ -279,13 +323,19 @@ ast:
video:
one: "%{count} videu"
other: "%{count} vídeos"
+ boosted_from_html: Compartióse'l toot dende %{acct_link}
+ language_detection: Deteutala automáticamente
pin_errors:
limit: Yá fixesti'l númberu máxiumu de toots
+ ownership: Nun pue fixase'l toot d'otra persona
+ private: Nun puen fixase los toots que nun seyan públicos
+ reblog: Nun pue fixase un toot compartíu
show_more: Amosar más
title: "%{name}: «%{quote}»"
visibilities:
private: Namái siguidores
stream_entries:
+ reblogged: compartióse
sensitive_content: Conteníu sensible
themes:
default: Mastodon
@@ -298,6 +348,7 @@ ast:
lost_recovery_codes: Los códigos de recuperación permítente recuperar l'accesu a la cuenta si pierdes el teléfonu. Si tamién pierdes esos códigos, pues xeneralos de nueves equí. Los códigos de recuperación vieyos van invalidase.
manual_instructions: 'Si nun pues escaniar el códigu QR y precises introducilu a mano, equí ta''l secretu en testu planu:'
recovery_codes: Códigos de recuperación
+ recovery_codes_regenerated: Los códigos de recuperación rexeneráronse con ésitu
user_mailer:
welcome:
full_handle_hint: Esto ye lo que-yos diríes a los collacios pa que puean unviate mensaxes o siguite dende otra instancia.
@@ -306,3 +357,5 @@ ast:
users:
invalid_email: La direición de corréu nun ye válida
seamless_external_login: Aniciesti sesión pente un serviciu esternu, polo que los axustes de la contraseña y corréu nun tán disponibles.
+ verification:
+ verification: Verificación
diff --git a/config/locales/bg.yml b/config/locales/bg.yml
index 91c6dfb61..4de5b1e22 100644
--- a/config/locales/bg.yml
+++ b/config/locales/bg.yml
@@ -75,7 +75,7 @@ bg:
too_many: Не мога да прикача повече от 4 файла
notification_mailer:
digest:
- body: 'Ето кратко резюме на нещата, които се случиха от последното ти посещение на %{since}:'
+ body: Ето кратко резюме на нещата, които се случиха от последното ти посещение на %{since}
mention: "%{name} те спомена в:"
new_followers_summary:
one: Имаш един нов последовател! Ура!
diff --git a/config/locales/ca.yml b/config/locales/ca.yml
index b74d7a00b..b9a6a7b64 100644
--- a/config/locales/ca.yml
+++ b/config/locales/ca.yml
@@ -48,6 +48,7 @@ ca:
other: Seguidors
following: Seguint
joined: Unit des de %{date}
+ last_active: darrer actiu
link_verified_on: La propietat d'aquest enllaç s'ha verificat el %{date}
media: Mèdia
moved_html: "%{name} s'ha mogut a %{new_profile_link}:"
@@ -69,6 +70,9 @@ ca:
moderator: Moderador
unfollow: Deixa de seguir
admin:
+ account_actions:
+ action: Realitzar acció
+ title: Fer l'acció de moderació a %{acct}
account_moderation_notes:
create: Crea nota
created_msg: La nota de moderació s'ha creat correctament!
@@ -101,8 +105,10 @@ ca:
enabled: Habilitat
feed_url: URL del canal
followers: Seguidors
+ followers_local: "(%{local} locals)"
followers_url: URL dels seguidors
follows: Segueix
+ header: Capçalera
inbox_url: URL de la safata d'entrada
ip: IP
location:
@@ -114,6 +120,7 @@ ca:
media_attachments: Adjunts multimèdia
memorialize: Converteix-lo en memorial
moderation:
+ active: Actiu
all: Tot
silenced: Silenciat
suspended: Suspès
@@ -123,10 +130,6 @@ ca:
most_recent_ip: IP més recent
no_limits_imposed: Sense límits imposats
not_subscribed: No subscrit
- order:
- alphabetic: Alfabètic
- most_recent: Més recent
- title: Ordre
outbox_url: URL de la bústia de sortida
perform_full_suspension: Suspèn
profile_url: URL del perfil
@@ -136,6 +139,7 @@ ca:
push_subscription_expires: La subscripció PuSH expira
redownload: Actualitza l'avatar
remove_avatar: Eliminar avatar
+ remove_header: Treu la capçalera
resend_confirmation:
already_confirmed: Este usuario ya está confirmado
send: Reenviar el correu electrònic de confirmació
@@ -154,7 +158,6 @@ ca:
shared_inbox_url: URL de la safata d'entrada compartida
show:
created_reports: Informes creats per aquest compte
- report: informe
targeted_reports: Informes realitzats sobre aquest compte
silence: Silenci
silenced: Silenciat
@@ -173,6 +176,7 @@ ca:
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}"
confirm_user: "%{name} ha confirmat l'adreça de correu electrònic de l'usuari %{target}"
+ create_account_warning: "%{name} ha enviat un avís a %{target}"
create_custom_emoji: "%{name} ha pujat un nou emoji %{target}"
create_domain_block: "%{name} ha blocat el domini %{target}"
create_email_domain_block: "%{name} ha afegit a la llista negra el domini del correu electrònic %{target}"
@@ -231,6 +235,7 @@ ca:
config: Configuració
feature_deletions: Supressions del compte
feature_invites: Enllaços de convits
+ feature_profile_directory: Directori de perfils
feature_registrations: Registres
feature_relay: Relay de la Federació
features: Característiques
@@ -265,11 +270,6 @@ ca:
reject_media_hint: Elimina els fitxers multimèdia emmagatzemats localment i impedeix baixar-ne cap en el futur. Irrellevant en les suspensions
reject_reports: Rebutja informes
reject_reports_hint: Ignora tots els informes procedents d'aquest domini. No és rellevant per a les suspensions
- severities:
- noop: Cap
- silence: Silenci
- suspend: Suspensió
- severity: Severitat
show:
affected_accounts:
one: Un compte afectat en la base de dades
@@ -279,7 +279,6 @@ ca:
suspend: Desfés la suspensió de tots els comptes d'aquest domini
title: Desfés el bloqueig de domini de %{domain}
undo: Desfés
- title: Bloquejos de domini
undo: Desfés
email_domain_blocks:
add_new: Afegeix
@@ -291,11 +290,10 @@ ca:
create: Afegeix un domini
title: Nova adreça de correu en la llista negra
title: Llista negra de correus electrònics
+ followers:
+ back_to_account: Tornar al compte
+ title: Seguidors de %{acct}
instances:
- account_count: Comptes coneguts
- domain_name: Domini
- reset: Restableix
- search: Cerca
title: Instàncies conegudes
invites:
deactivate_all: Desactiva-ho tot
@@ -378,6 +376,9 @@ ca:
preview_sensitive_media:
desc_html: Les visualitzacions prèvies d'enllaços d'altres llocs web mostraran una miniatura encara que els mitjans de comunicació estiguin marcats com a sensibles
title: Mostra els mitjans sensibles a les previsualitzacions d'OpenGraph
+ profile_directory:
+ desc_html: Permet als usuaris ser descoberts
+ title: Habilita el directori de perfils
registrations:
closed_message:
desc_html: Apareix en la primera pàgina quan es tanquen els registres. Pots utilitzar etiquetes HTML
@@ -437,13 +438,21 @@ ca:
last_delivery: Últim lliurament
title: WebSub
topic: Tema
- suspensions:
- bad_acct_msg: El valor de confirmació no s'ha trobat. Estàs suspenen el compte correcte?
- hint_html: 'Per confirmar la suspensió del compte, introdueix %{value} al camp següent:'
- proceed: Procedeix
- title: Suspèn %{acct}
- warning_html: 'Suspenen aquest compte esborrarà irreversiblement les dades del compte, incloent:'
+ tags:
+ accounts: Comptes
+ hidden: Amagat
+ hide: Ocult del directori
+ name: Etiqueta
+ title: Etiquetes
+ unhide: Mostra en el directori
+ visible: Visible
title: Administració
+ warning_presets:
+ add_new: Afegir nou
+ delete: Esborra
+ edit: Edita
+ edit_preset: Edita l'avís predeterminat
+ title: Gestiona les configuracions predefinides dels avisos
admin_mailer:
new_report:
body: "%{reporter} ha informat de %{target}"
@@ -521,6 +530,13 @@ ca:
success_msg: El compte s'ha eliminat correctament
warning_html: Només és garantida l'eliminació d'aquesta particular instància. El contingut que s'ha compartit àmpliament deixa petjades. Els servidors fora de línia i els que ja no estan subscrits no actualitzaran les seves bases de dades.
warning_title: Disponibilitat de contingut disseminat
+ directories:
+ directory: Directori de perfils
+ explanation: Descobreix usuaris segons els seus interessos
+ explore_mastodon: Explora %{title}
+ people:
+ one: "%{count} persona"
+ other: "%{count} gent"
errors:
'403': No tens permís per a veure aquesta pàgina.
'404': La pàgina que estàs cercant no existeix.
@@ -662,7 +678,7 @@ ca:
title: Menció nova
reblog:
body: "%{name} ha impulsat el teu estat:"
- subject: "%{name} ha retootejat el teu estat"
+ subject: "%{name} ha impulsat el teu estat"
title: Nou impuls
number:
human:
@@ -692,9 +708,6 @@ ca:
no_account_html: No tens cap compte? Pots registrar-te aquí
proceed: Comença a seguir
prompt: 'Seguiràs a:'
- remote_interaction:
- proceed: Procedeix a interactuar
- prompt: 'Vols interactuar amb aquest toot:'
remote_unfollow:
error: Error
title: Títol
@@ -903,6 +916,22 @@ ca:
explanation: Has sol·licitat una copia completa del teu compte Mastodon. Ara ja està a punt per descàrrega!
subject: El teu arxiu està preparat per a descàrrega
title: Recollida del arxiu
+ warning:
+ explanation:
+ disable: Mentre el teu compte estigui congelat les dades romandran intactes però no pots dur a terme cap acció fins que no estigui desbloquejat.
+ silence: Mentre el teu compte estigui limitat només les persones que ja et segueixen veuen les teves dades en aquest servidor i pots ser exclòs de diverses llistes públiques. No obstant això, d'altres encara poden seguir-te manualment.
+ suspend: El teu compte s'ha suspès i tots els teus toots i fitxers multimèdia penjats s'han eliminat irreversiblement d'aquest servidor i dels servidors on tenies seguidors.
+ review_server_policies: Revisa les polítiques del servidor
+ subject:
+ disable: S'ha congelat el teu compte %{acct}
+ none: Avís per a %{acct}
+ silence: El teu compte %{acct} ha estat limitat
+ suspend: S'ha suspès el teu compte %{acct}
+ title:
+ disable: Compte congelat
+ none: Avís
+ silence: Compte limitat
+ suspend: Compte suspès
welcome:
edit_profile_action: Configurar perfil
edit_profile_step: Pots personalitzar el teu perfil penjant un avatar, un encapçalament, canviant el teu nom de visualització i molt més. Si prefereixes revisar els seguidors nous abans de que et puguin seguir, pots blocar el teu compte.
@@ -914,7 +943,6 @@ ca:
review_preferences_action: Canviar preferències
review_preferences_step: Assegura't d'establir les teves preferències, com ara els correus electrònics que vols rebre o el nivell de privadesa per defecte que t'agradaria que tinguin les teves entrades. Si no tens malaltia de moviment, pots optar per habilitar la reproducció automàtica de GIF.
subject: Benvingut/da a Mastodon
- tip_bridge_html: Si vens de Twitter, pots trobar els teus amics a Mastodon mitjançant l'aplicació bridge . Només funciona si també ells usen aquesta aplicació pont!
tip_federated_timeline: La línia de temps federada és el cabal principal de la xarxa Mastodon. Però només inclou les persones a les quals els teus veïns estan subscrits, de manera que no està complet.
tip_following: Per defecte segueixes als administradors del servidor. Per trobar més persones interessants, consulta les línies de temps local i federada.
tip_local_timeline: La línia de temps local és la vista del flux de publicacions dels usuaris de %{instance}. Aquests usuaris són els teus veïns més propers!
diff --git a/config/locales/co.yml b/config/locales/co.yml
index 9306c6c33..c2de9e4c6 100644
--- a/config/locales/co.yml
+++ b/config/locales/co.yml
@@ -48,6 +48,7 @@ co:
other: Abbunati
following: Abbunamenti
joined: Quì dapoi %{date}
+ last_active: ultima attività
link_verified_on: A pruprietà d'issu ligame hè stata verificata u %{date}
media: Media
moved_html: "%{name} hà cambiatu di contu, avà hè nant’à %{new_profile_link}:"
@@ -69,6 +70,9 @@ co:
moderator: Muderatore
unfollow: Ùn siguità più
admin:
+ account_actions:
+ action: Realizà un'azzione
+ title: Realizà un'azzione di muderazione nant'à %{acct}
account_moderation_notes:
create: Creà
created_msg: Nota di muderazione creata!
@@ -101,8 +105,10 @@ co:
enabled: Attivatu
feed_url: URL di u flussu
followers: Abbunati
+ followers_local: "(%{local} lucali)"
followers_url: URL di l’abbunati
follows: Abbunamenti
+ header: Intistatura
inbox_url: URL di l’inbox
ip: IP
location:
@@ -114,6 +120,7 @@ co:
media_attachments: Media aghjunti
memorialize: Trasfurmà in mimuriale
moderation:
+ active: Attivu
all: Tutti
silenced: Silenzati
suspended: Suspesi
@@ -123,10 +130,6 @@ co:
most_recent_ip: IP più ricente
no_limits_imposed: Nisuna limita imposta
not_subscribed: Micca abbunatu
- order:
- alphabetic: Alfabeticu
- most_recent: Più ricente
- title: Urdine
outbox_url: URL di l’outbox
perform_full_suspension: Suspende
profile_url: URL di u prufile
@@ -136,6 +139,7 @@ co:
push_subscription_expires: Spirata di l’abbunamentu PuSH
redownload: Mette à ghjornu i ritratti
remove_avatar: Toglie l’avatar
+ remove_header: Toglie l'intistatura
resend_confirmation:
already_confirmed: St’utilizatore hè digià cunfirmatu
send: Rimandà un’e-mail di cunfirmazione
@@ -154,7 +158,6 @@ co:
shared_inbox_url: URL di l’inbox spartuta
show:
created_reports: Signalamenti creati da stu contu
- report: Signalamentu
targeted_reports: Signalamenti creati contr’à stu contu
silence: Silenzà
silenced: Silenzatu
@@ -173,6 +176,7 @@ co:
assigned_to_self_report: "%{name} s’hè assignatu u signalamentu %{target}"
change_email_user: "%{name} hà cambiatu l’indirizzu e-mail di %{target}"
confirm_user: "%{name} hà cunfirmatu l’indirizzu e-mail di %{target}"
+ create_account_warning: "%{name} hà mandatu un'avertimentu à %{target}"
create_custom_emoji: "%{name} hà caricatu una nov’emoji %{target}"
create_domain_block: "%{name} hà bluccatu u duminiu %{target}"
create_email_domain_block: "%{name} hà messu u duminiu e-mail %{target} nant’a lista nera"
@@ -231,6 +235,7 @@ co:
config: Cunfigurazione
feature_deletions: Sguassamenti di conti
feature_invites: Ligami d'invitazione
+ feature_profile_directory: Annuariu di i prufili
feature_registrations: Arregistramenti
feature_relay: Ripetitore di federazione
features: Funziunalità
@@ -256,7 +261,7 @@ co:
create: Creà un blucchime
hint: U blucchime di duminiu ùn impedirà micca a creazione di conti indè a database, mà metudi di muderazione specifiche saranu applicati.
severity:
- desc_html: CùSilenzà, solu l’abbunati di u contu viderenu i so missaghji. Suspende sguassarà tutti i cuntenuti è dati di u contu. Utilizate Nisuna s’è voi vulete solu righjittà fugliali media.
+ desc_html: Cù Silenzà, solu l’abbunati di u contu viderenu i so missaghji. Suspende sguassarà tutti i cuntenuti è dati di u contu. Utilizate Nisuna s’è voi vulete solu righjittà fugliali media.
noop: Nisuna
silence: Silenzà
suspend: Suspende
@@ -265,11 +270,6 @@ co:
reject_media_hint: Sguassa tutti i media caricati è ricusa caricamenti futuri. Inutile per una suspensione
reject_reports: Righjittà i rapporti
reject_reports_hint: Ignurà tutti i signalamenti chì venenu d'issu duminiu. Senz'oghjettu pè e suspensione
- severities:
- noop: Nisuna
- silence: Silenzà
- suspend: Suspende
- severity: Severità
show:
affected_accounts:
one: Un contu tuccatu indè a database
@@ -279,7 +279,6 @@ co:
suspend: Ùn suspende più i conti nant’à stu duminiu
title: Ùn bluccà più u duminiu %{domain}
undo: Annullà
- title: Blucchimi di duminiu
undo: Annullà
email_domain_blocks:
add_new: Aghjustà
@@ -291,11 +290,10 @@ co:
create: Creà un blucchime
title: Nova iscrizzione nant’a lista nera e-mail
title: Lista nera e-mail
+ followers:
+ back_to_account: Rivene à u Contu
+ title: Abbunati à %{acct}
instances:
- account_count: Conti cunnisciuti
- domain_name: Duminiu
- reset: Riinizializà
- search: Cercà
title: Istanze cunnisciute
invites:
deactivate_all: Disattivà tuttu
@@ -378,6 +376,9 @@ co:
preview_sensitive_media:
desc_html: E priviste di i ligami nant'à l'altri siti mustreranu una vignetta ancu s'ellu hè marcatu cum'è sensibile u media
title: Vede media sensibili in e viste OpenGraph
+ profile_directory:
+ desc_html: Auturizà a scuperta di l'utilizatori
+ title: Attivà l'annuariu di i prufili
registrations:
closed_message:
desc_html: Affissatu nant’a pagina d’accolta quandu l’arregistramenti sò chjosi. Pudete fà usu di u furmattu HTML
@@ -437,13 +438,21 @@ co:
last_delivery: Ultima arricata
title: WebSub
topic: Sughjettu
- suspensions:
- bad_acct_msg: U valore di cunfirmazione ùn era micca curretta. Site sicuru·a di suspende u bonu contu?
- hint_html: 'Per cunfirmà a suspensione di u contu, entrate %{value} quì sottu:'
- proceed: Cuntinuà
- title: Suspende %{acct}
- warning_html: 'A suspensione di u contu sguasserà di manera irreversibile i so dati, cum''è:'
+ tags:
+ accounts: Conti
+ hidden: Piattatu
+ hide: Piattà di l'annuariu
+ name: Hashtag
+ title: Hashtag
+ unhide: Mustrà in l'annuariu
+ visible: Visibile
title: Amministrazione
+ warning_presets:
+ add_new: Aghjustà nova
+ delete: Sguassà
+ edit: Cambià
+ edit_preset: Cambià a preselezzione d'avertimentu
+ title: Amministrà e preselezzione d'avertimentu
admin_mailer:
new_report:
body: "%{reporter} hà palisatu %{target}"
@@ -521,6 +530,13 @@ co:
success_msg: U vostru contu hè statu sguassatu
warning_html: Pudete esse sicuru·a solu chì u cuntenutu sarà sguassatu di st’istanza. S’ellu hè statu spartutu in altrò, sarà forse sempre quallà.
warning_title: Dispunibilità di i cuntenuti sparsi
+ directories:
+ directory: Annuariu di i prufili
+ explanation: Scopre utilizatori à partesi di i so centri d'interessu
+ explore_mastodon: Scopre à %{title}
+ people:
+ one: "%{count} persona"
+ other: "%{count} persone"
errors:
'403': Ùn site micca auturizatu·a à vede sta pagina.
'404': Sta pagina ùn esiste micca.
@@ -692,9 +708,6 @@ co:
no_account_html: Ùn avete micca un contu? Pudete arregistravi quì
proceed: Cuntinuà per siguità
prompt: 'Avete da siguità:'
- remote_interaction:
- proceed: Cunfirmà l'interazzione
- prompt: 'Vulete interagisce cù u statutu:'
remote_unfollow:
error: Errore
title: Titulu
@@ -789,7 +802,7 @@ co:
unlisted_long: Tuttu u mondu pò vede, mà micca indè e linee pubbliche
stream_entries:
pinned: Statutu puntarulatu
- reblogged: spartutu
+ reblogged: hà spartutu
sensitive_content: Cuntenutu sensibile
terms:
body_html: |
@@ -903,6 +916,22 @@ co:
explanation: Avete dumandatu un’archiviu cumpletu di u vostru contu Mastodon. Avà hè prontu per scaricà!
subject: U vostru archiviu hè prontu à scaricà
title: Archiviu prontu
+ warning:
+ explanation:
+ disable: Quandu u vostru contu hè ghjacciatu, i vostri dati stannu intatti, mà ùn pudete fà nunda fin'à ch'ellu sia sbluccatu.
+ silence: Quandu u vostru contu hè limitatu, solu quelli chì sò digià abbunati à u vostru contu viderenu i vostri statuti nant'à quessu servore, è puderete esse esclusu·a di parechje liste pubbliche. Però, altri conti puderenu sempre seguitavi.
+ suspend: U vostru contu hè statu suspesu, è tutti i vo statuti è fugliali media caricati sò stati sguassati di manera irreversibile di stu servore, è di i servori induve aviate abbunati.
+ review_server_policies: Leghje e pulitiche di u servore
+ subject:
+ disable: U vostru contu %{acct} hè statu ghjacciatu
+ none: Avertimentu pè %{acct}
+ silence: U vostru contu %{acct} hè statu limitatu
+ suspend: U vostru contu %{acct} hè statu suspesu
+ title:
+ disable: Contu ghjacciatu
+ none: Avertimentu
+ silence: Contu limitatu
+ suspend: Contu suspesu
welcome:
edit_profile_action: Cunfigurazione di u prufile
edit_profile_step: Pudete persunalizà u vostru prufile cù un ritrattu di prufile o di cuprendula, un nome pubblicu persunalizatu, etc. Pudete ancu rende u contu privatu per duvè cunfirmà ogni dumanda d’abbunamentu.
@@ -914,7 +943,6 @@ co:
review_preferences_action: Mudificà e priferenze
review_preferences_step: Quì pudete adattà u cumpurtamentu di Mastodon à e vostre priferenze, cum’è l’email che vulete riceve, u nivellu di cunfidenzialità predefinitu di i vostri statuti, o u cumpurtamentu di i GIF animati.
subject: Benvenutu·a nant’à Mastodon
- tip_bridge_html: S’è voi venite di Twitter, pudete truvà i vostri amichi da quallà chì sò nant’à Mastodon cù a bridge app. Mà ùn marchja chè s’elli l’anu ancu usata!
tip_federated_timeline: A linea pubblica glubale mostra i statuti da altre istanze nant’a rete Mastodon, mà ùn hè micca cumpleta perchè ci sò soli i conti à quelli sò abbunati membri di a vostr’istanza.
tip_following: Site digià abbunatu·a à l’amministratori di u vostru servore. Per truvà d’altre parsone da siguità, pudete pruvà e linee pubbliche.
tip_local_timeline: A linea pubblica lucale ghjè una vista crunulogica di i statuti di a ghjente nant’à %{instance}. Quessi sò i vostri cunvicini!
diff --git a/config/locales/cs.yml b/config/locales/cs.yml
index 05f65653b..8f3143fc6 100644
--- a/config/locales/cs.yml
+++ b/config/locales/cs.yml
@@ -30,28 +30,41 @@ cs:
other_instances: Seznam instancí
privacy_policy: Zásady soukromí
source_code: Zdrojový kód
- status_count_after: příspěvků
+ status_count_after:
+ few: příspěvky
+ one: příspěvek
+ other: příspěvků
status_count_before: Kteří napsali
terms: Podmínky používání
- user_count_after: uživatelů
+ user_count_after:
+ few: uživatelů
+ one: uživatele
+ other: uživatelů
user_count_before: Domov
what_is_mastodon: Co je Mastodon?
accounts:
choices_html: 'Volby uživatele %{name}:'
follow: Sledovat
- followers: Sledovatelé
- following: Sledovaní
+ followers:
+ few: Sledovatelé
+ one: Sledovatel
+ other: Sledovatelů
+ following: Sledovaných
joined: Připojil/a se v %{date}
+ last_active: naposledy aktivní
link_verified_on: Vlastnictví tohoto odkazu bylo zkontrolováno %{date}
media: Média
moved_html: 'Účet %{name} byl přesunut na %{new_profile_link}:'
network_hidden: Tato informace není k dispozici
nothing_here: Tady nic není!
- people_followed_by: Lidé, které %{name} sleduje
+ people_followed_by: Lidé, které sleduje %{name}
people_who_follow: Lidé, kteří sledují uživatele %{name}
pin_errors:
following: Musíte již sledovat osobu, kterou chcete podpořit
- posts: Tooty
+ posts:
+ few: Tooty
+ one: Toot
+ other: Tootů
posts_tab_heading: Tooty
posts_with_replies: Tooty a odpovědi
reserved_username: Toto uživatelské jméno je rezervováno
@@ -61,6 +74,9 @@ cs:
moderator: Moderátor
unfollow: Přestat sledovat
admin:
+ account_actions:
+ action: Vykonat akci
+ title: Vykonat moderační akci pro účet %{acct}
account_moderation_notes:
create: Zanechat poznámku
created_msg: Poznámka moderátora byla úspěšně vytvořena!
@@ -93,8 +109,10 @@ cs:
enabled: Povoleno
feed_url: URL proudu
followers: Sledovatelé
+ followers_local: "(%{local} místních)"
followers_url: URL sledovatelů
- follows: Sleduje
+ follows: Sledovaní
+ header: Hlavička
inbox_url: URL přijatých zpráv
ip: IP
location:
@@ -106,21 +124,18 @@ cs:
media_attachments: Mediální přílohy
memorialize: Změnit na „in memoriam“
moderation:
+ active: Aktivní
all: Vše
silenced: Utišen/a
- suspended: Suspendován/a
+ suspended: Pozastaven/a
title: Moderace
moderation_notes: Moderační poznámky
most_recent_activity: Nejnovější aktivita
most_recent_ip: Nejnovější IP
no_limits_imposed: Nejsou nastavena žádná omezení
not_subscribed: Neodebírá
- order:
- alphabetic: Abecedně
- most_recent: Nejnovější
- title: Pořadí
outbox_url: URL odchozích zpráv
- perform_full_suspension: Suspendovat
+ perform_full_suspension: Pozastavit
profile_url: URL profilu
promote: Povýšit
protocol: Protokol
@@ -128,6 +143,7 @@ cs:
push_subscription_expires: Odebírání PuSH expiruje
redownload: Obnovit avatar
remove_avatar: Odstranit avatar
+ remove_header: Odstranit hlavičku
resend_confirmation:
already_confirmed: Tento uživatel je již potvrzen
send: Znovu odeslat potvrzovací e-mail
@@ -145,18 +161,17 @@ cs:
search: Hledat
shared_inbox_url: URL sdílené schránky
show:
- created_reports: Nahlášení vytvořené z tohoto účtu
- report: nahlášení
- targeted_reports: Nahlášení vytvořena o tomto účtu
+ created_reports: Nahlášení vytvořená z tohoto účtu
+ targeted_reports: Nahlášení vytvořená o tomto účtu
silence: Utišit
silenced: Utišen/a
statuses: Příspěvky
subscribe: Odebírat
- suspended: Suspendován/a
+ suspended: Pozastaven/a
title: Účty
unconfirmed_email: Nepotvrzený e-mail
undo_silenced: Zrušit utišení
- undo_suspension: Zrušit suspenzaci
+ undo_suspension: Zrušit pozastavení
unsubscribe: Přestat odebírat
username: Uživatelské jméno
web: Web
@@ -165,6 +180,7 @@ cs:
assigned_to_self_report: "%{name} přidělil/a hlášení %{target} sobě"
change_email_user: "%{name} změnil/a e-mailovou adresu uživatele %{target}"
confirm_user: "%{name} potvrdil/a e-mailovou adresu uživatele %{target}"
+ create_account_warning: "%{name} poslal/a varování uživateli %{target}"
create_custom_emoji: "%{name} nahrál/a nové emoji %{target}"
create_domain_block: "%{name} zablokoval/a doménu %{target}"
create_email_domain_block: "%{name} přidal/a e-mailovou doménu %{target} na černou listinu"
@@ -185,10 +201,10 @@ cs:
reset_password_user: "%{name} resetoval/a heslo uživatele %{target}"
resolve_report: "%{name} vyřešil/a nahlášení %{target}"
silence_account: "%{name} utišil/a účet uživatele %{target}"
- suspend_account: "%{name} suspendoval/a účet uživatele %{target}"
+ suspend_account: "%{name} pozastavil/a účet uživatele %{target}"
unassigned_report: "%{name} odebral/a nahlášení %{target}"
unsilence_account: "%{name} odtišil/a účet uživatele %{target}"
- unsuspend_account: "%{name} zrušil/a suspenzaci účtu uživatele %{target}"
+ unsuspend_account: "%{name} zrušil/a pozastavení účtu uživatele %{target}"
update_custom_emoji: "%{name} aktualizoval/a emoji %{target}"
update_status: "%{name} aktualizoval/a příspěvek uživatele %{target}"
deleted_status: "(smazaný příspěvek)"
@@ -222,7 +238,8 @@ cs:
backlog: opožděné úlohy
config: Konfigurace
feature_deletions: Smazání účtů
- feature_invites: Pozvánky
+ feature_invites: Odkazy pozvánek
+ feature_profile_directory: Adresář profilů
feature_registrations: Registrace
feature_relay: Federovací most
features: Vlastnosti
@@ -248,28 +265,25 @@ cs:
create: Vytvořit blokaci
hint: Blokace domény nezakáže vytváření účtových záznamů v databázi, ale bude na tyto účty zpětně a automaticky aplikovat specifické metody moderace.
severity:
- desc_html: Funkce Utišit zneviditelní příspěvky z účtu komukoliv, kdo jej nesleduje. Funkce Suspendovat odstraní všechen obsah, média a profilová data účtu. Pro pouhé odmítnutí mediálních souborů použijte funkci Žádné.
+ desc_html: Funkce Utišit zneviditelní příspěvky z účtu komukoliv, kdo jej nesleduje. Funkce Pozastavit odstraní všechen obsah, média a profilová data účtu. Pro pouhé odmítnutí mediálních souborů použijte funkci Žádné.
noop: Žádné
silence: Utišit
- suspend: Suspendovat
+ suspend: Pozastavit
title: Nová doménová blokace
reject_media: Odmítat mediální soubory
- reject_media_hint: Odstraní lokálně uložené soubory a odmítne jejich stažení v budoucnosti. Irelevantní pro suspenzace
+ reject_media_hint: Odstraní lokálně uložené soubory a odmítne jejich stažení v budoucnosti. Nepodstatné pro pozastavení
reject_reports: Odmítnout nahlášení
reject_reports_hint: Ignorovat všechna nahlášení pocházející z této domény. Nepodstatné pro suspenzace
- severities:
- noop: Žádné
- silence: Utišit
- suspend: Suspendovat
- severity: Přísnost
show:
- affected_accounts: "%{count} účtů v databázi byl ovlivněn"
+ affected_accounts:
+ few: "%{count} účty v databázi byly ovlivněny"
+ one: Jeden účet v databázi byl ovlivněn
+ other: "%{count} účtů v databázi bylo ovlivněno"
retroactive:
silence: Odtišit všechny existující účty z této domény
- suspend: Zrušit suspenzaci všech existujících účtů z této domény
+ suspend: Zrušit pozastavení všech existujících účtů z této domény
title: Zrušit blokaci domény %{domain}
undo: Odvolat
- title: Doménové blokace
undo: Odvolat
email_domain_blocks:
add_new: Přidat nový
@@ -281,11 +295,10 @@ cs:
create: Přidat doménu
title: Nový e-mail pro zablokování
title: Černá listina e-mailů
+ followers:
+ back_to_account: Zpět na účet
+ title: Sledovatelé uživatele %{acct}
instances:
- account_count: Známé účty
- domain_name: Doména
- reset: Resetovat
- search: Hledat
title: Známé instance
invites:
deactivate_all: Deaktivovat vše
@@ -349,7 +362,7 @@ cs:
title: Publikovat hromadné statistiky o uživatelské aktivitě
bootstrap_timeline_accounts:
desc_html: Je-li uživatelskch jmen více, oddělujte je čárkami. Lze zadat pouze místní a odemknuté účty. Je-li tohle prázdné, jsou výchozí hodnotou všichni místní administrátoři.
- title: Výchozí sledování pro nové uživatele
+ title: Výchozí sledovaní pro nové uživatele
contact_information:
email: Pracovní e-mail
username: Uživatelské jméno kontaktu
@@ -368,6 +381,9 @@ cs:
preview_sensitive_media:
desc_html: Náhledy odkazů na jiných stránkách budou zobrazeny i pokud jsou media označena jako citlivá
title: Zobrazovat v náhledech OpenGraph i citlivá média
+ profile_directory:
+ desc_html: Dovolit uživatelům být objevitelní
+ title: Povolit adresář profilů
registrations:
closed_message:
desc_html: Zobrazí se na hlavní stránce, jsou-li registrace uzavřeny. Můžete použít i HTML značky
@@ -379,7 +395,7 @@ cs:
disabled: Nikdo
title: Povolit pozvánky od
open:
- desc_html: Povolit každému vytvořit si účet
+ desc_html: Dovolit každému vytvořit si účet
title: Zpřístupnit registraci
show_known_fediverse_at_about_page:
desc_html: Je-li toto zapnuto, zobrazí se v náhledu tooty ze všech známých serverů na fediverse. Jinak budou zobrazeny pouze místní tooty.
@@ -427,13 +443,21 @@ cs:
last_delivery: Poslední doručení
title: WebSub
topic: Téma
- suspensions:
- bad_acct_msg: Hodnota pro potvrzení neodpovídá. Suspendujete správný účet?
- hint_html: 'Pro potvrzení suspenzace účtu prosím zadejte do pole níže %{value}:'
- proceed: Pokračovat
- title: Suspendovat účet %{acct}
- warning_html: 'Suspenzace tohoto účtu nenávratně smaže z tohoto účtu data, včetně:'
+ tags:
+ accounts: Účty
+ hidden: Skryté
+ hide: Skrýt z adresáře
+ name: Hashtag
+ title: Hashtagy
+ unhide: Zobrazit v adresáři
+ visible: Viditelné
title: Administrace
+ warning_presets:
+ add_new: Přidat nové
+ delete: Smazat
+ edit: Upravit
+ edit_preset: Upravit přednastavení pro varování
+ title: Spravovat přednastavení pro varování
admin_mailer:
new_report:
body: "%{reporter} nahlásil/a uživatele %{target}"
@@ -482,7 +506,7 @@ cs:
already_following: Tento účet již sledujete
error: Při hledání vzdáleného účtu bohužel nastala chyba
follow: Sledovat
- follow_request: 'Poslal/a jste žádost o sledování uživateli:'
+ follow_request: 'Poslal/a jste požadavek o sledování uživateli:'
following: 'Podařilo se! Nyní sledujete uživatele:'
post_follow:
close: Nebo můžete toto okno klidně zavřít.
@@ -506,11 +530,19 @@ cs:
deletes:
bad_password_msg: Dobrý pokus, hackeři! Nesprávné heslo
confirm_password: Zadejte svoje současné heslo pro ověření vaší identity
- description_html: Tímto trvale a nenávratně odstraníte obsah z vašeho účtu a deaktivuje ho. Vaše uživatelské jméno zůstane rezervované pro zabránění budoucím napodobováním.
+ description_html: Tímto trvale a nenávratně odstraníte obsah z vašeho účtu a deaktivujete ho. Vaše uživatelské jméno zůstane rezervované pro zabránění budoucím napodobováním.
proceed: Odstranit účet
success_msg: Váš účet byl úspěšně odstraněn
warning_html: Pouze vymazání obsahu z této konkrétní instance je zaručeno. Obsah, který byl široce sdílen, po sobě pravděpodobně zanechá stopy. U offline serverů a serverů, které vaše aktualizace již neodebírají, nebudou databáze aktualizovány.
warning_title: Dostupnost rozšířeného obsahu
+ directories:
+ directory: Adresář profilů
+ explanation: Objevujte uživatele podle jejich zájmů
+ explore_mastodon: Prozkoumejte %{title}
+ people:
+ few: "%{count} lidé"
+ one: "%{count} člověk"
+ other: "%{count} lidí"
errors:
'403': Nemáte povolení zobrazit tuto stránku.
'404': Stránka, kterou hledáte, neexistuje.
@@ -535,7 +567,7 @@ cs:
csv: CSV
follows: Sledujete
mutes: Ignorujete
- storage: Úložisko médií
+ storage: Paměť médií
filters:
contexts:
home: Domovská časová osa
@@ -558,7 +590,10 @@ cs:
followers_count: Počet sledovatelů
lock_link: Zamkněte svůj účet
purge: Odstranit ze sledovatelů
- success: V průběhu utišování sledovatelů z %{count} domén...
+ success:
+ few: V průběhu blokování sledovatelů ze %{count} domén...
+ one: V průběhu blokování sledovatelů z jedné domény...
+ other: V průběhu blokování sledovatelů z %{count} domén...
true_privacy_html: Berte prosím na vědomí, že skutečného soukromí se dá dosáhnout pouze za pomoci end-to-end šifrování.
unlocked_warning_html: Kdokoliv vás může sledovat a okamžitě vidět vaše soukromé příspěvky. %{lock_link}, abyste mohl/a zkontrolovat a odmítnout sledovatele.
unlocked_warning_title: Váš účet není zamknutý
@@ -570,7 +605,10 @@ cs:
changes_saved_msg: Změny byly úspěšně uloženy!
copy: Kopírovat
save_changes: Uložit změny
- validation_errors: Něco ještě není úplně v pořádku! Prosím zkontrolujte %{count} chyb níže
+ validation_errors:
+ few: Něco ještě není úplně v pořádku! Prosím zkontrolujte %{count} chyby níže
+ one: Něco ještě není úplně v pořádku! Prosím zkontrolujte chybu níže
+ other: Něco ještě není úplně v pořádku! Prosím zkontrolujte %{count} chyb níže
imports:
preface: Můžete importovat data, která jste exportoval/a z jiné instance, jako například seznam lidí, které sledujete či blokujete.
success: Vaše data byla úspěšně nahrána a nyní budou zpracována v daný čas
@@ -593,7 +631,10 @@ cs:
expires_in_prompt: Nikdy
generate: Vygenerovat
invited_by: 'Byl/a jste pozván/a uživatelem:'
- max_uses: "%{count} použití"
+ max_uses:
+ few: "%{count} použití"
+ one: 1 použití
+ other: "%{count} použití"
max_uses_prompt: Bez limitu
prompt: Vygenerujte a sdílejte s ostatními odkazy a umožněte jim přístup na tuto instanci
table:
@@ -619,8 +660,14 @@ cs:
action: Zobrazit všechna oznámení
body: Zde najdete stručný souhrn zpráv, které jste zmeškal/a od vaší poslední návštěvy %{since}
mention: "%{name} vás zmínil/a v:"
- new_followers_summary: Navíc jste získal/a %{count} nových sledovatelů, zatímco jste byl/a pryč! Hurá!
- subject: "%{count} nových oznámení od vaší poslední návštěvy \U0001F418"
+ new_followers_summary:
+ few: Navíc jste získal/a %{count} nové sledovatele, zatímco jste byl/a pryč! Hurá!
+ one: Navíc jste získal/a jednoho nového sledovatele, zatímco jste byl/a pryč! Hurá!
+ other: Navíc jste získal/a %{count} nových sledovatelů, zatímco jste byl/a pryč! Úžasné!
+ subject:
+ few: "%{count} nová oznámení od vaší poslední návštěvy \U0001F418"
+ one: "1 nové oznámení od vaší poslední návštěvy \U0001F418"
+ other: "%{count} nových oznámení od vaší poslední návštěvy \U0001F418"
title: Ve vaší nepřítomnosti...
favourite:
body: 'Váš příspěvek si oblíbil/a %{name}:'
@@ -631,10 +678,10 @@ cs:
subject: "%{name} vás nyní sleduje"
title: Nový sledovatel
follow_request:
- action: Spravovat žádosti o sledování
- body: "%{name} žádá o povolení vás následovat"
+ action: Spravovat požadavky o sledování
+ body: "%{name} požádal/a o povolení vás sledovat"
subject: 'Čekající sledovatel: %{name}'
- title: Nová žádost o sledování
+ title: Nový požadavek o sledování
mention:
action: Odpovědět
body: 'Byl/a jste zmíněn/a uživatelem %{name} v:'
@@ -656,7 +703,7 @@ cs:
trillion: bil
pagination:
newer: Novější
- next: Starší
+ next: Další
older: Starší
prev: Před
truncate: "…"
@@ -671,9 +718,6 @@ cs:
no_account_html: Ještě nemáte účet? Můžete se registrovat zde
proceed: Pokračovat ke sledování
prompt: 'Budete sledovat:'
- remote_interaction:
- proceed: Pokračovat k interakci
- prompt: 'Chcete interagovat s tímto tootem:'
remote_unfollow:
error: Chyba
title: Nadpis
@@ -737,11 +781,20 @@ cs:
statuses:
attached:
description: 'Přiloženo: %{attached}'
- image: "%{count} obrázků"
- video: "%{count} videí"
+ image:
+ few: "%{count} obrázky"
+ one: "%{count} obrázek"
+ other: "%{count} obrázků"
+ video:
+ few: "%{count} videa"
+ one: "%{count} video"
+ other: "%{count} videí"
boosted_from_html: Boostnuto z %{acct_link}
content_warning: 'Varování o obsahu: %{warning}'
- disallowed_hashtags: 'obsahuje nepovolené hashtagy: %{tags}'
+ disallowed_hashtags:
+ few: 'obsahoval nepovolené hashtagy: %{tags}'
+ one: 'obsahoval nepovolený hashtag: %{tags}'
+ other: 'obsahoval nepovolené hashtagy: %{tags}'
language_detection: Zjistit jazyk automaticky
open_in_web: Otevřít na webu
over_character_limit: limit %{max} znaků byl překročen
@@ -772,7 +825,7 @@ cs:
Základní informace o účtu: Pokud se na tomto serveru zaregistrujete, můžeme vás požádat o zadání uživatelského jména, e-mailové adresy a hesla. Můžete také zadat dodatečné profilové informace, jako například zobrazované jméno a krátký životopis, a nahrát si profilovou fotografii a hlavičkový obrázek. Uživatelské i zobrazované jméno, životopis, profilová fotografie a hlavičkový obrázek jsou vždy uvedeny veřejně.
Příspěvky, sledovatelé a další veřejné informace: Seznam lidí, které sledujete, je uveden veřejně, totéž platí i pro vaše sledovatele. Když sem nahrajete zprávu, bude uloženo datum a čas, společně s aplikací, ze které jste zprávu odeslali. Zprávy mohou obsahovat mediální přílohy, jako jsou obrázky a videa. Veřejné a neuvedené příspěvky jsou dostupné veřejně. Pokud na vašem profilu uvedete příspěvek, je to také veřejně dostupná informace. Vaše příspěvky jsou doručeny vašim sledovatelům, což v některých případech znamená, že budou doručeny na různé servery, na kterých budou ukládány kopie. Pokud příspěvky smažete, bude tohle taktéž doručeno vašim sledovatelům. Akce znovusdílení nebo oblíbení jiného příspěvku je vždy veřejná.
-
Příspěvky přímé a pouze pro sledovatele: Všechny příspěvky jsou uloženy a zpracovány na serveru. Příspěvky pouze pro sledovatele jsou doručeny vašim sledovatelům a uživateům v nich zmíněných a přímé příspěvky jsou doručeny pouze uživatelům v nich zmíněných. V některých případech tohle znamená, že budou doručeny na různé servery, na kterých budou ukládány kopie. Snažíme se omezit přístup k těmto příspěvkům pouze na autorizované uživatele, ovšem jiné servery tak nemusejí učinit. Proto je důležité posoudit servery, ke kterým vaši sledovatelé patří. V nastavení si můžete zapnout volbu pro manuální schvalování či odmítnutí nových sledovatelů. Prosím mějte na paměti, že operátoři tohoto serveru a kteréhokoliv přijímacího serveru mohou tyto zprávy vidět a příjemci mohou vytvořit jejich snímek, zkopírovat je, nebo je jinak sdílet. Nesdílejte přes Mastodon jakékoliv nebezpečné informace.
+
Příspěvky přímé a pouze pro sledovatele: Všechny příspěvky jsou uloženy a zpracovány na serveru. Příspěvky pouze pro sledovatele jsou doručeny vašim sledovatelům a uživatelům v nich zmíněným a přímé příspěvky jsou doručeny pouze uživatelům v nich zmíněným. V některých případech tohle znamená, že budou doručeny na různé servery, na kterých budou ukládány kopie. Snažíme se omezit přístup k těmto příspěvkům pouze na autorizované uživatele, ovšem jiné servery tak nemusejí učinit. Proto je důležité posoudit servery, ke kterým vaši sledovatelé patří. V nastavení si můžete zapnout volbu pro manuální schvalování či odmítnutí nových sledovatelů. Prosím mějte na paměti, že operátoři tohoto serveru a kteréhokoliv přijímacího serveru mohou tyto zprávy vidět a příjemci mohou vytvořit jejich snímek, zkopírovat je, nebo je jinak sdílet. Nesdílejte přes Mastodon jakékoliv nebezpečné informace.
IP adresy a další metadata: Když se přihlásíte, zaznamenáváme IP adresu, ze které se přihlašujete, jakožto i název vašeho webového prohlížeče. Všechny vaše webové relace jsou v nastavení přístupné k vašemu posouzení a odvolání. Nejpozdější IP adresa použita je uložena maximálně do 12 měsíců. Můžeme také uchovávat serverové záznamy, které obsahují IP adresy každého požadavku odeslaného na náš server.
@@ -865,7 +918,7 @@ cs:
generate_recovery_codes: Vygenerovat záložní kódy
instructions_html: "Naskenujte tento QR kód Google Authenticatorem nebo jinou TOTP aplikací na vašem telefonu. Od teď bude tato aplikace generovat tokeny, které budete muset zadat při přihlášení."
lost_recovery_codes: Záložní kódy vám dovolí dostat se k vašemu účtu, pokud ztratíte telefon. Ztratíte-li záložní kódy, můžete je zde znovu vygenerovat. Vaše staré záložní kódy budou zneplatněny.
- manual_instructions: 'Nemůžete-li oskenovat QR kód a je potřebovat ho zadat ručně, zde je tajemství v prostém textu:'
+ manual_instructions: 'Nemůžete-li oskenovat QR kód a je potřeba ho zadat ručně, zde je tajemství v prostém textu:'
recovery_codes: Záložní kódy pro obnovu
recovery_codes_regenerated: Záložní kódy byly úspěšně znovu vygenerované
recovery_instructions_html: Ztratíte-li někdy přístup k vašemu telefonu, můžete k získání přístupu k účtu použít jeden ze záložních kódů. Uchovávejte tyto kódy v bezpečí. Můžete si je například vytisknout a uložit je mezi jiné důležité dokumenty.
@@ -876,6 +929,22 @@ cs:
explanation: Vyžádal/a jste si úplnou zálohu svého účtu Mastodon. Nyní je připravena ke stažení!
subject: Váš archiv je připraven ke stažení
title: Stažení archivu
+ warning:
+ explanation:
+ disable: Zatímco je váš účet zmražen, zůstávají data vašeho účtu nedotčená, ale nemůžete vykonávat žádné akce, dokud nebude odemčen.
+ silence: Zatímco je váš účet omezen, mohou vaše tooty na tomto serveru vidět pouze lidé, kteří váš již sledují, a můžete být vyloučen/a z různých veřejných výpisů. Ostatní vás však pořád mohou manuálně sledovat.
+ suspend: Váš účet byl pozastaven a všechny vaše tooty a vaše nahrané mediální soubory byly nenávratně odstraněny z tohoto serveru a serverů, na kterých jste měl/a sledovatele.
+ review_server_policies: Posoudit politiku serveru
+ subject:
+ disable: Váš účet %{acct} byl zmražen
+ none: Varování pro uživatele %{acct}
+ silence: Váš účet %{acct} byl omezen
+ suspend: Váš účet %{acct} byl pozastaven
+ title:
+ disable: Účet zmražen
+ none: Varování
+ silence: Účet omezen
+ suspend: Účet pozastaven
welcome:
edit_profile_action: Nastavit profil
edit_profile_step: Můžete si přizpůsobit svůj profil nahráním avataru a obrázku na hlavičce, změnou zobrazovaného jména a dalších. Chcete-li posoudit nové sledovatele předtím, než vás mohou sledovat, můžete svůj účet uzamknout.
@@ -887,7 +956,6 @@ cs:
review_preferences_action: Změnit nastavení
review_preferences_step: Nezapomeňte si nastavit své volby, například jaké e-maily chcete přijímat či jak soukromé mají být vaše příspěvky ve výchozím stavu. Nemáte-li epilepsii, můžete si nastavit automatické přehrávání obrázků GIF.
subject: Vítejte na Mastodonu
- tip_bridge_html: Pokud přicházíte z Twitteru, můžete najít vaše přátele na Mastodonu pomocí mostové aplikace. Funguje ovšem pouze, pokud ji oni také někdy použili!
tip_federated_timeline: Federovaná časová osa je náhled celé sítě Mastodon. Zahrnuje ovšem pouze lidi, které sledují vaši sousedé, takže není úplná.
tip_following: Administrátora/y serveru sledujete automaticky. Chcete-li najít další zajímavé lidi, podívejte se na místní a federované časové osy.
tip_local_timeline: Místní časová osa je náhled lidí na %{instance}. Toto jsou vaši nejbližší sousedé!
diff --git a/config/locales/cy.yml b/config/locales/cy.yml
index a4df28b61..40cb1cac0 100644
--- a/config/locales/cy.yml
+++ b/config/locales/cy.yml
@@ -115,10 +115,6 @@ cy:
most_recent_ip: IP diweddaraf
no_limits_imposed: Dim terfynau wedi'i gosod
not_subscribed: Heb danysgrifio
- order:
- alphabetic: Allfabetig
- most_recent: Diweddaraf
- title: Trefnu
outbox_url: Allflwch URL
perform_full_suspension: Atal
profile_url: URL proffil
@@ -146,7 +142,6 @@ cy:
shared_inbox_url: URL Mewnflwch wedi ei rannu
show:
created_reports: Adroddiadau a grewyd gan y cyfri hwn
- report: adrodd
targeted_reports: Adroddiadau am y cyfri hwn
silence: Tawelu
silenced: Tawelwyd
@@ -257,11 +252,6 @@ cy:
reject_media_hint: Dileu dogfennau cyfryngau wedi eu cadw yn lleol ac yn gwrthod i lawrlwytho unrhyw rai yn y dyfodol. Amherthnasol i ataliadau
reject_reports: Gwrthod adroddiadau
reject_reports_hint: Anwybyddu'r holl adroddiadau sy'n dod o'r parth hwn. Amherthnasol i ataliadau
- severities:
- noop: Dim
- silence: Tawelu
- suspend: Atal
- severity: Difrifoldeb
show:
affected_accounts: "%{count} o gyfrifoedd yn y bas data wedi eu hefeithio"
retroactive:
@@ -269,7 +259,6 @@ cy:
suspend: Dad-atal pob cyfrif o'r parth hwn sy'n bodoli
title: Dadwneud blocio parth ar gyfer %{domain}
undo: Dadwneud
- title: Blociau parth
undo: Dadwneud
email_domain_blocks:
add_new: Ychwanegu
@@ -282,10 +271,6 @@ cy:
title: Cofnod newydd yng nghosbrestr e-byst
title: Cosbrestr e-bost
instances:
- account_count: Cyfrifau hysbys
- domain_name: Parth
- reset: Ailosod
- search: Chwilio
title: Achosion hysbys
invites:
deactivate_all: Diffodd pob un
@@ -427,12 +412,6 @@ cy:
last_delivery: Danfoniad diwethaf
title: WebSub
topic: Pwnc
- suspensions:
- bad_acct_msg: Nid yw'r gwerthoedd cadarnhau yn cyfateb. Ydych chi'n atal y cyfrif cywir?
- hint_html: 'I gadarnhau atal y cyfrif, mewnbynwch %{value} yn y maes isod:'
- proceed: Parhau
- title: Atal %{acct}
- warning_html: 'Mi fydd atal y cyfrif hwn yn dileu data am byth o''r cyfrif hwn, gan gynnwys:'
title: Gweinyddiaeth
admin_mailer:
new_report:
@@ -671,9 +650,6 @@ cy:
no_account_html: Heb gyfrif? Mae modd i chi gofrestru yma
proceed: Ymlaen i ddilyn
prompt: 'Yr ydych am ddilyn:'
- remote_interaction:
- proceed: Ymlaen i ryngweithio
- prompt: 'Rydych eisiau rhyngweithio a''r tŵt hwn:'
remote_unfollow:
error: Gwall
title: Teitl
@@ -762,7 +738,7 @@ cy:
unlisted_long: Gall pawb weld, ond heb ei restru ar ffrydiau cyhoeddus
stream_entries:
pinned: Tŵt wedi'i binio
- reblogged: bŵstiwyd
+ reblogged: hybwyd
sensitive_content: Cynnwys sensitif
terms:
body_html: |
@@ -887,7 +863,6 @@ cy:
review_preferences_action: Newid dewisiadau
review_preferences_step: Gwnewch yn siŵr i chi osod eich dewisiadau, megis pa e-byst hoffech eu derbyn, neu ba lefel preifatrwydd hoffech eich tŵtiau ragosod i. Os nad oes gennych salwch symud, gallwch ddewis i ganiatau chwarae GIFs yn awtomatig.
subject: Croeso i Mastodon
- tip_bridge_html: Os ydych yn dod o Twitter, mae modd i chi ganfod eich ffrindiau ar Mastodon drwy ddefnyddio'r 1ap pontio2. Mae hyn ond yn gweithio os ydynt hwythau yn defnyddio'r ap pontio hefyd!
tip_federated_timeline: Mae'r ffrwd ffederasiwn yn olwg firehose o'r rhwydwaith Mastodon. Ond mae ond yn cynnwys y bobl mae eich cymdogion wedi ymrestru iddynt, felly nid yw'n gyflawn.
tip_following: Rydych yn dilyn goruwchwyliwr eich gweinydd yn ddiofyn. I ganfod pobl mwy diddorol, edrychwch ar y ffrydiau lleol a'r rhai wedi ei ffedereiddio.
tip_local_timeline: Mae'r ffrwd leol yn olwg firehose o bobl ar %{instance}. Dyma eich cymdogion agosaf!
diff --git a/config/locales/da.yml b/config/locales/da.yml
index d9ce9d55d..ca4ff32da 100644
--- a/config/locales/da.yml
+++ b/config/locales/da.yml
@@ -69,6 +69,8 @@ da:
moderator: Moderator
unfollow: Følg ikke længere
admin:
+ account_actions:
+ action: Udfør handling
account_moderation_notes:
create: Læg en note
created_msg: Moderator notat succesfuldt oprettet!
@@ -122,10 +124,6 @@ da:
most_recent_activity: Seneste aktivitet
most_recent_ip: Senest IP
not_subscribed: Ikke abonneret
- order:
- alphabetic: Alfabetisk
- most_recent: Seneste
- title: Rækkefølge
outbox_url: Link til udgående
perform_full_suspension: Udeluk
profile_url: Link til profil
@@ -153,7 +151,6 @@ da:
shared_inbox_url: Link til delt indbakke
show:
created_reports: Anmeldelser oprettet af denne konto
- report: anmeld
targeted_reports: Anmeldelser fra denne konto
silence: Dæmp
silenced: Dæmpet
@@ -262,11 +259,6 @@ da:
reject_media: Afvis medie filer
reject_media_hint: Fjerner lokalt lagrede multimedie filer og nægter at hente nogen i fremtiden. Irrelevant for udelukkelser
reject_reports: Afvis anmeldelser
- severities:
- noop: Ingen
- silence: Dæmp
- suspend: Udeluk
- severity: Alvorlighed
show:
affected_accounts:
one: En konto i databasen påvirket
@@ -276,7 +268,6 @@ da:
suspend: Fjern udelukkelsen af alle eksisterende konti fra dette domæne
title: Annuller domæne blokeringen for domænet %{domain}
undo: Fortryd
- title: Domæne blokeringer
undo: Fortryd
email_domain_blocks:
add_new: Tilføj ny
@@ -288,11 +279,9 @@ da:
create: Tilføj domæne
title: Ny email blokade opslag
title: Email sortliste
+ followers:
+ back_to_account: Tilbage til konto
instances:
- account_count: Kendte konti
- domain_name: Domæne
- reset: Nulstil
- search: Søg
title: Kendte instanser
invites:
deactivate_all: Deaktiver alle
@@ -304,8 +293,13 @@ da:
title: Invitationer
relays:
add_new: Tilføj nyt relay
+ delete: Slet
description_html: Et federation relay er en mellemleds server der udveksler store mængder af offentlige trut mellem servere der abonnerer på og offentliggør til det. Det kan hjælpe små og mellemstore servere opdage indhold fra fediverset, hvilket der ellers ville kræve at lokale brugere manuelt følger andre folk på fjerne servere.
+ disable: Deaktiver
+ disabled: Deaktiveret
+ enable: Aktiver
enable_hint: Når dette er aktiveret, vil serveren abonnere på alle offentlige trut fra dette relay, og vil begynde at sende offentlige trut fra denne server dertil.
+ enabled: Aktiveret
inbox_url: Link til relay
pending: Venter på godkendelse fra relæet
save_and_enable: Gem og aktiver
@@ -426,12 +420,9 @@ da:
last_delivery: Sidste levering
title: Websub
topic: Emne
- suspensions:
- bad_acct_msg: Bekræftelsværdien stemte ikke overens. Er du ved at udelukke den rigtige konto?
- hint_html: 'For at bekræfte udelukkelsen af kontoen, indtast venligst %{value} i nedenstående felt:'
- proceed: Fortsæt
- title: Udeluk %{acct}
- warning_html: 'Udelukkelse af denne konto vil uigenkaldeligt slette al data fra denne konto, hvilket indebærer:'
+ tags:
+ accounts: Kontoer
+ hidden: Skjult
title: Administration
admin_mailer:
new_report:
@@ -569,6 +560,7 @@ da:
resources: Ressourcer
generic:
changes_saved_msg: Ændringerne blev gemt!
+ copy: Kopier
save_changes: Gem ændringer
validation_errors:
one: Der er noget der ikke er helt som det bør være! Tag lige et kig på følgende fejl forneden
@@ -680,9 +672,6 @@ da:
no_account_html: Har du ikke en konto? Du kan oprette dig her
proceed: Fortsæt for at følge
prompt: 'Du er ved at følge:'
- remote_interaction:
- proceed: Fortsæt for at interagere
- prompt: 'Du ønsker at interagere med dette trut:'
remote_unfollow:
error: Fejl
title: Titel
@@ -822,7 +811,6 @@ da:
review_preferences_action: Ændre præferencer
review_preferences_step: Vær sikker på at sætte dine præferencer, så som hvilke emails du kunne tænke dig at modtage, eller hvilket niveau af privatliv der skal være standard for dine opslag. Hvis du kunne tænke dig ikke at blive køresyg, kan du vælge at aktivere automatisk afspilning af GIFfer.
subject: Velkommen til Mastodon
- tip_bridge_html: Hvis du kommer fra Twitter, kan du finde dine venner på Mastodon ved at bruge bridge appen. Den virker dog kun hvis de også bruger bridge appen!
tip_federated_timeline: Den delte tidslinje er et brandslange agtigt indblik over Mastodon netværket. Men det inkluderer kun folk dine naboer abonnerer på, så den er ikke fuldendt.
tip_following: Du følger som standard administratoren(e) for den server du er på. For at finde flere folk, tjek både den lokale og fælles tidslinje.
tip_local_timeline: Den lokale tidslinje er et have af folk i %{instance}. Disse er dine umiddelbare naboer!
diff --git a/config/locales/de.yml b/config/locales/de.yml
index 587b9dfc9..12ff54aa8 100644
--- a/config/locales/de.yml
+++ b/config/locales/de.yml
@@ -16,12 +16,12 @@ de:
Ein guter Platz für Regeln
Die erweiterte Beschreibung wurde noch nicht aufgesetzt.
features:
- humane_approach_body: Mastodon hat von den Fehlern anderer Netzwerke gelernt und wurde mit dem Augenmerk darauf entwickelt, den Missbrauch sozialer Medien zu bekämpfen.
+ humane_approach_body: Aus den Fehlern anderer Netzwerke lernend, zielt Mastodon darauf ab, mit ethischen Design-Entscheidungen den Missbrauch sozialer Medien zu verhindern.
humane_approach_title: Ein menschlicherer Ansatz
not_a_product_body: Mastodon ist kein kommerzielles Netzwerk. Keine Werbung, kein Abgraben deiner Daten, keine geschlossene Plattform. Es gibt keine Zentrale.
not_a_product_title: Du bist ein Mensch und keine Ware
- real_conversation_body: Mit 500 Zeichen pro Beitrag und der Ermöglichung präziser Inhalts- und Bilderwarnungen kannst du dich so ausdrücken, wie du es möchtest.
- real_conversation_title: Für das echte Gespräch gemacht
+ real_conversation_body: Mit 500 Zeichen pro Beitrag und Features wie Inhalts- und Bilderwarnungen kannst du dich so ausdrücken, wie du es möchtest.
+ real_conversation_title: Geschaffen für echte Gespräche
within_reach_body: Verschiedene Apps für iOS, Android und andere Plattformen erlauben dir, dank unseres blühenden API-Ökosystems, dich von überall auf dem Laufenden zu halten.
within_reach_title: Immer für dich da
generic_description: "%{domain} ist ein Server im Netzwerk"
@@ -48,6 +48,7 @@ de:
other: Follower
following: Folgt
joined: Beigetreten am %{date}
+ last_active: zuletzt aktiv
link_verified_on: Besitz des Links wurde überprüft am %{date}
media: Medien
moved_html: "%{name} ist auf %{new_profile_link} umgezogen:"
@@ -69,6 +70,9 @@ de:
moderator: Moderator
unfollow: Entfolgen
admin:
+ account_actions:
+ action: Aktion ausführen
+ title: Moderationsaktion auf %{acct} ausführen
account_moderation_notes:
create: Notiz erstellen
created_msg: Moderationsnotiz erfolgreich erstellt!
@@ -101,8 +105,10 @@ de:
enabled: Freigegeben
feed_url: Feed-URL
followers: Folger
+ followers_local: "(%{local} lokal)"
followers_url: URL des Folgenden
follows: Folgt
+ header: Header
inbox_url: Posteingangs-URL
ip: IP-Adresse
location:
@@ -114,6 +120,7 @@ de:
media_attachments: Medienanhänge
memorialize: In Gedenkmal verwandeln
moderation:
+ active: Aktiv
all: Alle
silenced: Stummgeschaltet
suspended: Gesperrt
@@ -123,10 +130,6 @@ de:
most_recent_ip: Letzte IP-Adresse
no_limits_imposed: Keine Limits eingesetzt
not_subscribed: Nicht abonniert
- order:
- alphabetic: Alphabetisch
- most_recent: Neueste
- title: Sortierung
outbox_url: Postausgangs-URL
perform_full_suspension: Sperren
profile_url: Profil-URL
@@ -136,6 +139,7 @@ de:
push_subscription_expires: PuSH-Abonnement läuft aus
redownload: Avatar neu laden
remove_avatar: Profilbild entfernen
+ remove_header: Header entfernen
resend_confirmation:
already_confirmed: Diese:r Benutzer:in wurde bereits bestätigt
send: Bestätigungsmail erneut senden
@@ -154,7 +158,6 @@ de:
shared_inbox_url: Geteilter Posteingang URL
show:
created_reports: Meldungen durch dieses Konto
- report: Meldung
targeted_reports: Meldungen über dieses Konto
silence: Stummschalten
silenced: Stummgeschaltet
@@ -173,6 +176,7 @@ de:
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"
confirm_user: "%{name} hat die E-Mail-Adresse von %{target} bestätigt"
+ create_account_warning: "%{name} hat eine Warnung an %{target} gesendet"
create_custom_emoji: "%{name} hat neues Emoji %{target} hochgeladen"
create_domain_block: "%{name} hat die Domain %{target} blockiert"
create_email_domain_block: "%{name} hat die E-Mail-Domain %{target} geblacklistet"
@@ -231,6 +235,7 @@ de:
config: Konfiguration
feature_deletions: Kontolöschung
feature_invites: Einladungslinks
+ feature_profile_directory: Profilverzeichnis
feature_registrations: Registrierung
feature_relay: Föderations-Relay
features: Eigenschaften
@@ -265,11 +270,6 @@ de:
reject_media_hint: Entfernt lokal gespeicherte Mediendateien und verhindert deren künftiges Herunterladen. Für Sperren irrelevant
reject_reports: Meldungen ablehnen
reject_reports_hint: Ignoriere alle Meldungen von dieser Domain. Irrelevant für Sperrungen
- severities:
- noop: Kein
- silence: Stummschaltung
- suspend: Sperren
- severity: Schweregrad
show:
affected_accounts:
one: Ein Konto in der Datenbank betroffen
@@ -279,7 +279,6 @@ de:
suspend: Alle existierenden Konten dieser Domain entsperren
title: Domain-Blockade für %{domain} zurücknehmen
undo: Zurücknehmen
- title: Domain-Blockaden
undo: Zurücknehmen
email_domain_blocks:
add_new: Neue hinzufügen
@@ -291,11 +290,10 @@ de:
create: Blockade erstellen
title: Neue E-Mail-Domain-Blockade
title: E-Mail-Domain-Blockade
+ followers:
+ back_to_account: Zurück zum Account
+ title: "%{acct}'s Follower"
instances:
- account_count: Bekannte Konten
- domain_name: Domain
- reset: Zurücksetzen
- search: Suchen
title: Bekannte Instanzen
invites:
deactivate_all: Alle deaktivieren
@@ -378,6 +376,9 @@ de:
preview_sensitive_media:
desc_html: Linkvorschauen auf anderen Webseiten werden ein Vorschaubild anzeigen, obwohl die Medien als heikel gekennzeichnet sind
title: Heikle Medien in OpenGraph-Vorschauen anzeigen
+ profile_directory:
+ desc_html: Erlaube Benutzer auffindbar zu sein
+ title: Aktiviere Profilverzeichnis
registrations:
closed_message:
desc_html: Wird auf der Frontseite angezeigt, wenn die Registrierung geschlossen ist. Du kannst HTML-Tags benutzen
@@ -437,13 +438,21 @@ de:
last_delivery: Letzte Zustellung
title: WebSub
topic: Thema
- suspensions:
- bad_acct_msg: Der Bestätigungswert stimmt nicht überein. Sperrst du das richtige Benutzerkonto?
- hint_html: 'Um die Sperrung des Benutzerkontos zu genehmigen tippe %{value} in das Feld unten ein:'
- proceed: Fortfahren
- title: "%{acct} sperren"
- warning_html: 'Die Sperrung des Benutzerkontos wird unwiederrufliche Schäden hervorrufen und alle Daten löschen, die folgendes beinhalten:'
+ tags:
+ accounts: Konten
+ hidden: Versteckt
+ hide: Vor Verzeichnis verstecken
+ name: Hashtag
+ title: Hashtags
+ unhide: Zeige in Verzeichnis
+ visible: Sichtbar
title: Administration
+ warning_presets:
+ add_new: Neu hinzufügen
+ delete: Löschen
+ edit: Bearbeiten
+ edit_preset: Warnungsvorlage bearbeiten
+ title: Warnungsvorlagen verwalten
admin_mailer:
new_report:
body: "%{reporter} hat %{target} gemeldet"
@@ -521,6 +530,13 @@ de:
success_msg: Dein Konto wurde erfolgreich gelöscht
warning_html: Wir können nur dafür garantieren, dass die Inhalte auf dieser einen Instanz gelöscht werden. Bei Inhalten, die weit verbreitet wurden, ist es wahrscheinlich, dass Spuren bleiben werden. Server, die offline sind oder keine Benachrichtigungen von deinem Konto mehr empfangen, werden ihre Datenbanken nicht bereinigen.
warning_title: Verfügbarkeit verstreuter Inhalte
+ directories:
+ directory: Profilverzeichnis
+ explanation: Entdecke Benutzer basierend auf deren Interessen
+ explore_mastodon: Entdecke %{title}
+ people:
+ one: "%{count} Person"
+ other: "%{count} Leute"
errors:
'403': Dir fehlt die Befugnis, diese Seite sehen zu können.
'404': Diese Seite existiert nicht.
@@ -692,9 +708,6 @@ de:
no_account_html: Noch keinen Account? Du kannst dich hier anmelden
proceed: Weiter
prompt: 'Du wirst dieser Person folgen:'
- remote_interaction:
- proceed: Fortfahren zum Interagieren
- prompt: 'Du wirst mit diesem Beitrag interagieren:'
remote_unfollow:
error: Fehler
title: Titel
@@ -819,7 +832,7 @@ de:
Wie beschützen wir deine Informationen?
-
Wir implementieren eine Reihe von Sicherheitsmaßnahmen, um die Sicherheit deiner persönlichen Information sicherzustellen, wenn du persönliche Informationen eingibst, übermittelst oder auf sie zugreifst. Neben anderen Dingen, wird sowohl deine Browsersitzung, als auch der Datenverkehr zischen deinen Anwendungen und der Programmierschnittstelle (API) mit SSL gesichert, dein Passwort wird mit einem starken Einwegalgorithmus gehasht. Du kannst Zwei-Faktor-Authentifizierung aktivieren, um den Zugriff auf dein Konto zusätzlich abzusichern.
+
Wir implementieren eine Reihe von Sicherheitsmaßnahmen, um die Sicherheit deiner persönlichen Information sicherzustellen, wenn du persönliche Informationen eingibst, übermittelst oder auf sie zugreifst. Neben anderen Dingen, wird sowohl deine Browsersitzung, als auch der Datenverkehr zwischen deinen Anwendungen und der Programmierschnittstelle (API) mit SSL gesichert, dein Passwort wird mit einem starken Einwegalgorithmus gehasht. Du kannst Zwei-Faktor-Authentifizierung aktivieren, um den Zugriff auf dein Konto zusätzlich abzusichern.
@@ -834,7 +847,7 @@ de:
Du kannst ein Archiv deines Inhalts anfordern und herunterladen, inkludierend deiner Beiträge, Medienanhänge, Profilbilder und Headerbilder.
-
Du kannst dein Konto unwiderruflich jederzeit löschen.
+
Du kannst dein Konto jederzeit unwiderruflich löschen.
@@ -868,9 +881,9 @@ de:
Änderung an unserer Datenschutzerklärung
-
Wenn wir uns entscheiden, Änderungen an unserer Datenschutzerklärung vorzunehmen, werden wird diese Änderungen auf dieser Seite bekannt geben.
+
Wenn wir uns entscheiden, Änderungen an unserer Datenschutzerklärung vorzunehmen, werden wird diese Änderungen auf dieser Seite bekannt gegeben.
-
Dies ist eine Übersetzung, Irrtümer und Übersetzungsfehler vorbehalten. Im Zweifelsfall gilt die englische Originalversion
+
Dies ist eine Übersetzung, Irrtümer und Übersetzungsfehler vorbehalten. Im Zweifelsfall gilt die englische Originalversion.
Dieses Dokument ist CC-BY-SA. Es wurde zuletzt aktualisiert am 7. März 2018.
@@ -905,6 +918,22 @@ de:
explanation: Du hast ein vollständiges Backup von deinem Mastodon-Account angefragt. Es kann jetzt heruntergeladen werden!
subject: Dein Archiv ist bereit zum Download
title: Archiv-Download
+ warning:
+ explanation:
+ disable: Solange dein Account eingefroren ist sind deine Benutzerdaten intakt, aber du kannst nichts tun bis dein Account entsperrt wurde.
+ silence: Solange dein Account limitiert ist können nur Leute, die dir bereits folgen deine Beiträge auf dem Server sehen und es könnte sein, dass du von verschiedenen öffentlichen Listungen ausgeschlossen wirst. Andererseits können andere dir manuell folgen.
+ suspend: Dein Account wurde gesperrt und alle deine Beiträge und hochgeladenen Medien wurden unwiderruflich vom Server und anderen Servern wo du Follower hattest gelöscht.
+ review_server_policies: Serverrichtlinien ansehen
+ subject:
+ disable: Dein Account %{acct} wurde eingefroren
+ none: Warnung für %{acct}
+ silence: Dein Account %{acct} wurde limitiert
+ suspend: Dein Account %{acct} wurde gesperrt
+ title:
+ disable: Account eingefroren
+ none: Warnung
+ silence: Account limitiert
+ suspend: Account gesperrt
welcome:
edit_profile_action: Profil einstellen
edit_profile_step: Du kannst dein Profil anpassen, indem du einen Avatar oder ein Titelbild hochlädst oder deinen Anzeigenamen änderst und mehr. Wenn du deine Follower vorher überprüfen möchtest, bevor sie dir folgen können, dann kannst du dein Profil sperren.
@@ -916,7 +945,6 @@ de:
review_preferences_action: Einstellungen ändern
review_preferences_step: Stelle sicher, dass du deine Einstellungen einstellst, wie zum Beispiel welche E-Mails du gerne erhalten möchtest oder was für Privatsphäreneinstellungen voreingestellt werden sollten. Wenn dir beim Ansehen von GIFs nicht schwindelig wird, dann kannst du auch das automatische Abspielen dieser aktivieren.
subject: Willkommen bei Mastodon
- tip_bridge_html: Wenn du gerade von Twitter kommst, dann kannst du deine Freunde auf Mastodon mithilfe der Bridge-App finden. Es funktioniert aber auch nur, wenn diese die Bridge-App vorher verwendet haben!
tip_federated_timeline: Die föderierte Zeitleiste ist die sehr große Ansicht vom Mastodon-Netzwerk. Sie enthält aber auch nur Leute, denen du und deine Nachbarn folgen, sie ist also nicht komplett.
tip_following: Du folgst standardmäßig deinen Server-Admin(s). Um mehr interessante Leute zu finden, kannst du die lokale oder öffentliche Zeitleiste durchsuchen.
tip_local_timeline: Die lokale Zeitleiste ist eine Ansicht aller Leute auf %{instance}. Diese sind deine Nachbarn!
diff --git a/config/locales/devise.ar.yml b/config/locales/devise.ar.yml
index 4d80176c6..927eeee5a 100644
--- a/config/locales/devise.ar.yml
+++ b/config/locales/devise.ar.yml
@@ -18,6 +18,7 @@ ar:
mailer:
confirmation_instructions:
action: للتحقق من عنوان البريد الإلكتروني
+ action_with_app: تأكيد ثم العودة إلى %{app}
explanation: لقد قمت بإنشاء حساب على %{host} بواسطة عنوان البريد الإلكتروني الحالي. إنك على بعد خطوات قليلة من تفعليه. إن لم تكن من طلب ذلك، يرجى ألّا تولي إهتماما بهذه الرسالة.
extra_html: ندعوك إلى الإطلاع على القواعد الخاصة بمثيل الخادوم هذا and و شروط الخدمة الخاصة بنا.
subject: 'ماستدون : تعليمات التأكيد لمثيل الخادوم %{instance}'
@@ -77,4 +78,10 @@ ar:
expired: إنتهت مدة صلاحيته، الرجاء طلب واحد جديد
not_found: لا يوجد
not_locked: ليس مقفلاً
- not_saved: "%{count} أخطاء منعت %{resource} مِن القيام بالإحتفاظ :"
+ not_saved:
+ few: "%{count} أخطاء منعت هذا %{resource} من الحفظ:"
+ many: "%{count} أخطاء منعت هذا %{resource} من الحفظ:"
+ one: 'خطأ واحد منع هذا %{resource} من الحفظ:'
+ other: "%{count} أخطاء منعت هذا %{resource} من الحفظ:"
+ two: 'أخطاء منعت هذا %{resource} من الحفظ:'
+ zero: 'أخطاء منعت هذا %{resource} من الحفظ:'
diff --git a/config/locales/devise.ast.yml b/config/locales/devise.ast.yml
index 6e32cbc2f..49b0c8daf 100644
--- a/config/locales/devise.ast.yml
+++ b/config/locales/devise.ast.yml
@@ -1,2 +1,30 @@
---
-ast: {}
+ast:
+ devise:
+ failure:
+ already_authenticated: Yá aniciesti sesión.
+ inactive: Entá nun s'activó la cuenta.
+ last_attempt: Tienes un intentu más enantes de bloquiar la cuenta.
+ locked: La cuenta ta bloquiada.
+ timeout: La sesión caducó. Volvi aniciar sesión pa siguir, por favor.
+ unauthenticated: Precises aniciar sesión o rexistrate enantes de siguir.
+ mailer:
+ confirmation_instructions:
+ explanation: Creesti una cuenta en %{host} con esta direición de corréu. Tas a un clic d'activala. Si nun fuisti tu, inora esti corréu.
+ email_changed:
+ title: Direición de corréu nueva
+ reset_password_instructions:
+ explanation: Solicitesti una contraseña nueva pa la cuenta.
+ extra: Si nun solicitesti esto, inora esti corréu. La contraseña nun va camudar hasta que nun accedas al enllaz d'enriba y crees una nueva.
+ registrations:
+ signed_up: "¡Afáyate! Rexistréstite con ésitu."
+ signed_up_but_unconfirmed: Unvióse un mensaxe de confirmación a la direición de corréu. Sigui l'enllaz p'activar la cuenta. Comprueba la carpeta Puxarra si nun recibiesti esti corréu, por favor.
+ updated: La cuenta anovóse con ésitu.
+ unlocks:
+ send_instructions: Nunos minutos vas recibir un corréu coles instrucciones pa cómo desbloquiar la cuenta. Comprueba la carpeta Puxarra si nun lu recibiesti.
+ send_paranoid_instructions: Si esiste la cuenta, nun momentu vas recibir un corréu coles instrucciones pa cómo desbloquiala. Comprueba la carpeta Puxarra si nun recibiesti esti corréu.
+ unlocked: La cuenta desbloquióse con ésitu. Anicia sesión pa siguir, por favor.
+ errors:
+ messages:
+ already_confirmed: yá se confirmó, volvi aniciar sesión
+ not_found: nun s'alcontró
diff --git a/config/locales/devise.ca.yml b/config/locales/devise.ca.yml
index 4c17f3378..c41a218e1 100644
--- a/config/locales/devise.ca.yml
+++ b/config/locales/devise.ca.yml
@@ -18,6 +18,7 @@ ca:
mailer:
confirmation_instructions:
action: Verifica l'adreça de correu
+ action_with_app: Confirma i torna a %{app}
explanation: Has creat un compte a %{host} amb aquesta adreça de correu electrònic. Estàs a un sol clic de l'activació. Si no fos així, ignora aquest correu electrònic.
extra_html: Si us plau consulta també les regles de la instància i les nostres condicions de servei.
subject: 'Mastodon: Instruccions de confirmació %{instance}'
diff --git a/config/locales/devise.co.yml b/config/locales/devise.co.yml
index 2471f857b..108a4ef11 100644
--- a/config/locales/devise.co.yml
+++ b/config/locales/devise.co.yml
@@ -18,6 +18,7 @@ co:
mailer:
confirmation_instructions:
action: Verificà l’indirizzu email
+ action_with_app: Cunfirmà è rivene à %{app}
explanation: Avete creatu un contu nant’à %{host} cù st’indirizzu email. Pudete attivallu cù un clic, o ignurà quessu missaghji s’ellu un era micca voi.
extra_html: Pensate à leghje e regule di l’istanza è i termini d’usu.
subject: 'Mastodon: Istruzzione di cunfirmazione per %{instance}'
@@ -55,7 +56,7 @@ co:
updated: A vostra chjave d’accessu hè stata cambiata, è site cunnettatu·a.
updated_not_active: A vostra chjave d’accessu hè stata cambiata.
registrations:
- destroyed: U vostru contu hè statu sguassatu. Avvedeci!
+ destroyed: Avvedeci! U vostru contu hè statu sguassatu. Speremu di vi rivede da prestu.
signed_up: Benvinutu! Site cunnettatu·a.
signed_up_but_inactive: Site arregistratu·a, mà ùn pudete micca cunnettavi perchè u vostru contu deve esse attivatu.
signed_up_but_locked: Site arregistratu·a, mà ùn pudete micca cunnettavi perchè u vostru contu hè chjosu.
diff --git a/config/locales/devise.cs.yml b/config/locales/devise.cs.yml
index 4268dc0ad..850ff1fe8 100644
--- a/config/locales/devise.cs.yml
+++ b/config/locales/devise.cs.yml
@@ -18,6 +18,7 @@ cs:
mailer:
confirmation_instructions:
action: Potvrdit e-mailovou adresu
+ action_with_app: Potvrdit a navrátit se do %{app}
explanation: S touto e-mailovou adresou jste si vytvořil/a účet na %{host}. K jeho aktivaci vám zbývá jedno kliknutí. Pokud jste to nebyl/a vy, ignorujte této e-mail.
extra_html: Prosím podívejte se také na pravidla této instance a naše podmínky používání.
subject: 'Mastodon: Potvrzovací instrukce pro %{instance}'
@@ -46,7 +47,7 @@ cs:
unlock_instructions:
subject: 'Mastodon: Instrukce pro odemčení účtu'
omniauth_callbacks:
- failure: Nelze vás ověřit z %{kind}, protože "%{reason}".
+ failure: Nelze vás ověřit z %{kind}, protože „%{reason}“.
success: Úspěšně ověřeno z účtu %{kind}.
passwords:
no_token: Tuto stránku nemůžete navštívit, pokud nepřicházíte z e-mailu pro obnovu hesla. Pokud jste z něj přišel/la, ujistěte se, že jste použil/a celé URL z e-mailu.
@@ -77,4 +78,7 @@ cs:
expired: vypršel, prosím vyžádejte si nový
not_found: nenalezen
not_locked: nebyl uzamčen
- not_saved: "%{count} chyb zabránila uložení tohoto %{resource}:"
+ not_saved:
+ few: "%{count} chyby zabránily uložení tohoto %{resource}:"
+ one: '1 chyba zabránila uložení tohoto %{resource}:'
+ other: "%{count} chyb zabránilo uložení tohoto %{resource}:"
diff --git a/config/locales/devise.da.yml b/config/locales/devise.da.yml
index b201b7ca8..56ae5183b 100644
--- a/config/locales/devise.da.yml
+++ b/config/locales/devise.da.yml
@@ -18,6 +18,7 @@ da:
mailer:
confirmation_instructions:
action: Bekræft email adresse
+ action_with_app: Bekræft og vend tilbage til %{app}
explanation: Du har oprettet en konto på %{host} med denne email adresse. Du er et klik fra at aktivere din konto. Hvis du ikke har oprettet dig, ignorer venligst denne email.
extra_html: Tjek også reglerne for instansen og vores betingelser.
subject: 'Mastodon: Bekræftelses instrukser for %{instance}'
diff --git a/config/locales/devise.de.yml b/config/locales/devise.de.yml
index 0d33af6f1..fc41c9db5 100644
--- a/config/locales/devise.de.yml
+++ b/config/locales/devise.de.yml
@@ -18,6 +18,7 @@ de:
mailer:
confirmation_instructions:
action: E-Mail-Adresse verifizieren
+ action_with_app: Bestätigen und zu %{app} zurückkehren
explanation: Du hast einen Account auf %{host} mit dieser E-Mail-Adresse erstellt. Du bist nun einen Klick entfernt vor der Aktivierung. Wenn du das nicht warst, kannst du diese E-Mail ignorieren.
extra_html: Bitte lies auch die Regeln dieser Instanz und unsere Nutzungsbedingungen.
subject: 'Mastodon: Bestätigung deines Kontos bei %{instance}'
diff --git a/config/locales/devise.el.yml b/config/locales/devise.el.yml
index 523d1fb88..e9725d96b 100644
--- a/config/locales/devise.el.yml
+++ b/config/locales/devise.el.yml
@@ -18,6 +18,7 @@ el:
mailer:
confirmation_instructions:
action: Επιβεβαίωσε διεύθυνση email
+ action_with_app: Επιβεβαίωση και επιστροφή στο %{app}
explanation: Δημιούργησες έναν λογαριασμό στο %{host} με αυτή τη διεύθυνση email. Με ένα κλικ θα τον ενεργοποιήσεις. Αν δεν το έκανες εσύ, παρακαλούμε αγνόησε αυτό το email.
extra_html: Παρακαλούμε να διαβάσεις του κανόνες αυτού του κόμβου και τους όρους χρήσης της υπηρεσίας μας.
subject: 'Mastodon: Οδηγίες επιβεβαίωσης για %{instance}'
diff --git a/config/locales/devise.en.yml b/config/locales/devise.en.yml
index 20938e47b..bd0642b25 100644
--- a/config/locales/devise.en.yml
+++ b/config/locales/devise.en.yml
@@ -18,6 +18,7 @@ en:
mailer:
confirmation_instructions:
action: Verify email address
+ action_with_app: Confirm and return to %{app}
explanation: You have created an account on %{host} with this email address. You are one click away from activating it. If this wasn't you, please ignore this email.
extra_html: Please also check out the rules of the instance and our terms of service.
subject: 'Mastodon: Confirmation instructions for %{instance}'
diff --git a/config/locales/devise.eu.yml b/config/locales/devise.eu.yml
index 8905822a7..9893f5ba3 100644
--- a/config/locales/devise.eu.yml
+++ b/config/locales/devise.eu.yml
@@ -18,6 +18,7 @@ eu:
mailer:
confirmation_instructions:
action: Baieztatu e-mail helbidea
+ action_with_app: Berretsi eta itzuli %{app} aplikaziora
explanation: Kontu bat sortu duzu %{host} ostalarian e-mail helbide honekin. Aktibatzeko klik bat falta zaizu. Ez baduzu zuk sortu, ez egin ezer e-mail honekin.
extra_html: Egiaztatu instantziaren arauak eta zerbitzuaren erabilera baldintzak.
subject: 'Mastodon: %{instance} instantziaren argibideak baieztapenerako'
diff --git a/config/locales/devise.fr.yml b/config/locales/devise.fr.yml
index b6c9e5bd8..718b4056e 100644
--- a/config/locales/devise.fr.yml
+++ b/config/locales/devise.fr.yml
@@ -8,7 +8,7 @@ fr:
failure:
already_authenticated: Vous êtes déjà connecté⋅e.
inactive: Votre compte n’est pas encore activé.
- invalid: "%{authentication_keys} incorrect."
+ invalid: "%{authentication_keys} invalide."
last_attempt: Vous avez droit à une tentative avant que votre compte ne soit verrouillé.
locked: Votre compte est verrouillé.
not_found_in_database: "%{authentication_keys} invalide."
@@ -18,6 +18,7 @@ fr:
mailer:
confirmation_instructions:
action: Vérifier l’adresse courriel
+ action_with_app: Confirmer et retourner à %{app}
explanation: Vous avez créé un compte sur %{host} avec cette adresse courriel. Vous êtes à un clic de l’activer. Si ce n’était pas vous, veuillez ignorer ce courriel.
extra_html: Merci de consultez également les règles de l’instance et nos conditions d’utilisation.
subject: Merci de confirmer votre inscription sur %{instance}
diff --git a/config/locales/devise.gl.yml b/config/locales/devise.gl.yml
index a8fe6a2a5..9f60747a6 100644
--- a/config/locales/devise.gl.yml
+++ b/config/locales/devise.gl.yml
@@ -18,6 +18,7 @@ gl:
mailer:
confirmation_instructions:
action: Validar enderezo de correo-e
+ action_with_app: Confirmar e voltar a %{app}
explanation: Creou unha conta en %{host} con este enderezo de correo. Está a punto de activalo, si non foi vostede quen fixo a petición, por favor ignore este correo.
extra_html: Por favor, lea tamén as normas da instancia e os termos do servizo.
subject: 'Mastodon: Instruccións de confirmación para %{instance}'
diff --git a/config/locales/devise.hr.yml b/config/locales/devise.hr.yml
index 276d26cad..2a859054a 100644
--- a/config/locales/devise.hr.yml
+++ b/config/locales/devise.hr.yml
@@ -8,7 +8,7 @@ hr:
invalid: Nevaljan %{authentication_keys} ili lozinka.
last_attempt: Imaš još jedan pokušaj prije no što ti se račun zaključa.
locked: Tvoj račun je zaključan.
- not_found_in_database: Nevaljani %{authentication_keys} ili lozinka.
+ not_found_in_database: Nevaljan %{authentication_keys} ili lozinka.
send_instructions: Primit ćeš email sa uputama kako potvrditi svoju email adresu za nekoliko minuta.
send_paranoid_instructions: Ako tvoja email adresa postoji u našoj bazi podataka, primit ćeš email sa uputama kako ju potvrditi za nekoliko minuta.
timeout: Tvoja sesija je istekla. Molimo te, prijavi se ponovo kako bi nastavio.
diff --git a/config/locales/devise.it.yml b/config/locales/devise.it.yml
index 0c5d8963c..30266e46b 100644
--- a/config/locales/devise.it.yml
+++ b/config/locales/devise.it.yml
@@ -18,6 +18,7 @@ it:
mailer:
confirmation_instructions:
action: Verifica indirizzo email
+ action_with_app: Conferma e torna a %{app}
explanation: Hai creato un account su %{host} con questo indirizzo email. Sei lonatno solo un clic dall'attivarlo. Se non sei stato tu, per favore ignora questa email.
extra_html: Per favore controllale regole dell'istanza e i nostri termini di servizio.
subject: 'Mastodon: Istruzioni di conferma per %{instance}'
diff --git a/config/locales/devise.ja.yml b/config/locales/devise.ja.yml
index 9df0c7332..cae76d493 100644
--- a/config/locales/devise.ja.yml
+++ b/config/locales/devise.ja.yml
@@ -18,6 +18,7 @@ ja:
mailer:
confirmation_instructions:
action: メールアドレスの確認
+ action_with_app: 確認し %{app} に戻る
explanation: このメールアドレスで%{host}にアカウントを作成しました。有効にするまであと一歩です。もし心当たりがない場合、申し訳ありませんがこのメールを無視してください。
extra_html: また インスタンスのルール と 利用規約 もお読みください。
subject: 'Mastodon: メールアドレスの確認 %{instance}'
diff --git a/config/locales/devise.nl.yml b/config/locales/devise.nl.yml
index 637b1e731..a768d3c1d 100644
--- a/config/locales/devise.nl.yml
+++ b/config/locales/devise.nl.yml
@@ -8,17 +8,18 @@ nl:
failure:
already_authenticated: Je bent al ingelogd.
inactive: Jouw account is nog niet geactiveerd.
- invalid: Ongeldig %{authentication_keys}.
+ invalid: "%{authentication_keys} of wachtwoord ongeldig."
invalid_token: Ongeldige bevestigingscode.
last_attempt: Je hebt nog één poging over voordat jouw account wordt opgeschort.
locked: Jouw account is opgeschort.
- not_found_in_database: Ongeldig %{authentication_keys}.
+ not_found_in_database: "%{authentication_keys} of wachtwoord ongeldig."
timeout: Jouw sessie is verlopen, log opnieuw in.
unauthenticated: Je dient in te loggen of te registreren.
unconfirmed: Je dient eerst jouw account te bevestigen.
mailer:
confirmation_instructions:
action: E-mailadres verifiëren
+ action_with_app: Bevestigen en naar %{app} teruggaan
explanation: Je hebt een account op %{host} aangemaakt en met één klik kun je deze activeren. Wanneer jij dit account niet hebt aangemaakt, mag je deze e-mail negeren.
extra_html: Bekijk ook de regels van de Mastodonserver en onze gebruiksvoorwaarden.
subject: 'Mastodon: E-mail bevestigen voor %{instance}'
@@ -47,8 +48,8 @@ nl:
unlock_instructions:
subject: 'Mastodon: Instructies om opschorten account ongedaan te maken'
omniauth_callbacks:
- failure: Kon je niet aanmelden met jouw %{kind} account, omdat "%{reason}".
- success: Successvol aangemeld met jouw %{kind} account.
+ failure: Kon je niet inloggen met jouw %{kind} account, omdat "%{reason}".
+ success: Succesvol met jouw %{kind} account ingelogd.
passwords:
no_token: Je kunt deze pagina niet benaderen zonder dat je een e-mail om je wachtwoord opnieuw in te stellen hebt ontvangen.
send_instructions: Je ontvangt via e-mail instructies hoe je jouw wachtwoord opnieuw moet instellen. Kijk tussen je spam wanneer niks werd ontvangen.
diff --git a/config/locales/devise.oc.yml b/config/locales/devise.oc.yml
index 16633e233..99809b858 100644
--- a/config/locales/devise.oc.yml
+++ b/config/locales/devise.oc.yml
@@ -18,6 +18,7 @@ oc:
mailer:
confirmation_instructions:
action: Verificar l’adreça de corrièl
+ action_with_app: Confirmar e tornar a %{app}
explanation: Venètz de crear un compte sus %{host} amb aquesta adreça de corrièl. Vos manca pas qu’un clic per l’activar. S’èra pas vosautre mercés de far pas cas a aqueste messatge.
extra_html: Pensatz tanben de gaitar las règlas de l’instància e nòstres tèrmes e condicions d’utilizacion.
subject: 'Mastodon : consignas de confirmacion per %{instance}'
@@ -50,8 +51,8 @@ oc:
success: Sètz ben autentificat dempuèi lo compte %{kind}.
passwords:
no_token: Podètz pas accedir a aquesta pagina sens venir d’un corriel de reïnicializacion de senhal. S’es lo cas, mercés de verificar qu’avètz ben utilizat l’URL donada de manièra complèta.
- send_instructions: Recebretz un corrièl amb las consignas per reĩnicializar vòstre senhal dins una estona. Mercés de verificar tanben vòstre dorsièr de corrièls indesirables.
- send_paranoid_instructions: Se vòstra adreça de corrièl existís dins nòstra basa de donadas, recebretz un ligam per reĩnicializar vòstre senhal dins una estona. Mercés de verificar tanben vòstre dorsièr de corrièls indesirables.
+ send_instructions: Recebretz un corrièl amb las consignas per reïnicializar vòstre senhal dins una estona. Mercés de verificar tanben vòstre dorsièr de corrièls indesirables.
+ send_paranoid_instructions: Se vòstra adreça de corrièl existís dins nòstra basa de donadas, recebretz un ligam per reïnicializar vòstre senhal dins una estona. Mercés de verificar tanben vòstre dorsièr de corrièls indesirables.
updated: Vòstre senhal es ben estat cambiat. Sètz ara connectat.
updated_not_active: Vòstre senhal es ben estat cambiat.
registrations:
diff --git a/config/locales/devise.pt-BR.yml b/config/locales/devise.pt-BR.yml
index 051329c20..ede004892 100644
--- a/config/locales/devise.pt-BR.yml
+++ b/config/locales/devise.pt-BR.yml
@@ -18,6 +18,7 @@ pt-BR:
mailer:
confirmation_instructions:
action: Verificar 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.
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}'
diff --git a/config/locales/devise.ru.yml b/config/locales/devise.ru.yml
index f80f7ad05..2186066c9 100644
--- a/config/locales/devise.ru.yml
+++ b/config/locales/devise.ru.yml
@@ -24,7 +24,7 @@ ru:
title: Подтвердите e-mail адрес
email_changed:
explanation: 'E-mail адрес Вашей учётной записи будет изменён на:'
- extra: Если Вы не меняли адрес e-mail, возможно кто-то получил доступ к Вашей учётной записи. Пожалуйста, срочно смените пароль или свяжитесь с администратором узла, если у Вас нет доступа к учётной записи
+ extra: Если Вы не меняли адрес e-mail, возможно кто-то получил доступ к Вашей учётной записи. Пожалуйста, срочно смените пароль или свяжитесь с администратором узла, если у Вас нет доступа к учётной записи.
subject: 'Mastodon: Адрес e-mail изменён'
title: Новый адрес e-mail
password_change:
diff --git a/config/locales/devise.sk.yml b/config/locales/devise.sk.yml
index a32fbe03b..73deb35b4 100644
--- a/config/locales/devise.sk.yml
+++ b/config/locales/devise.sk.yml
@@ -18,6 +18,7 @@ sk:
mailer:
confirmation_instructions:
action: Potvŕď emailovú adresu
+ action_with_app: Potvrď a vráť sa na %{app}
explanation: S touto emailovou adresou si si vytvoril/a účet na %{host}. Si iba jeden klik od jeho aktivácie. Pokiaľ si to ale nebol/a ty, prosím ignoruj tento email.
extra_html: Prosím pozri sa aj na pravidlá tohto servera, a naše užívaťeľské podiemky.
subject: 'Mastodon: Potvrdzovacie inštrukcie pre %{instance}'
@@ -29,7 +30,7 @@ sk:
title: Nová emailová adresa
password_change:
explanation: Heslo k tvojmu účtu bolo zmenené.
- extra: Pokiaľ si nezmenil/a svoje heslo, je pravdepodobné že niekto iný získal prístup k tvojmu účtu. Naliehavo preto prosím zmeň svoje heslo, alebo kontaktuj administrátora tohto serveru pokiaľ si vymknutý/á zo svojho účtu.
+ extra: Ak si heslo nezmenil/a, je pravdepodobné že niekto iný získal prístup k tvojmu účtu. Naliehavo preto prosím zmeň svoje heslo, alebo kontaktuj administrátora tohto serveru pokiaľ si vymknutý/á zo svojho účtu.
subject: 'Mastodon: Heslo bolo zmenené'
title: Heslo bolo zmenené
reconfirmation_instructions:
diff --git a/config/locales/devise.uk.yml b/config/locales/devise.uk.yml
index 149fc6ce5..6ec01b3d7 100644
--- a/config/locales/devise.uk.yml
+++ b/config/locales/devise.uk.yml
@@ -11,7 +11,7 @@ uk:
invalid: Неправильний %{authentication_keys} або пароль.
last_attempt: У вас є остання спроба, після якої вхід буде заблокований.
locked: Ваш акаунт заблокований.
- not_found_in_database: Неправильні %{authentication_keys} або пароль.
+ not_found_in_database: Неправильний %{authentication_keys} або пароль.
timeout: Ваша сесія вичерпана. Будь ласка, зайдіть знову, щоб продовжити.
unauthenticated: Для продовження Вам потрібно увійти або зареєструватися.
unconfirmed: Для продовження Вам потрібно підтвердити Вашу поштову скриньку.
diff --git a/config/locales/devise.zh-TW.yml b/config/locales/devise.zh-TW.yml
index 6dec562e1..abbe45942 100644
--- a/config/locales/devise.zh-TW.yml
+++ b/config/locales/devise.zh-TW.yml
@@ -77,4 +77,6 @@ zh-TW:
expired: 已經過期,請重新申請
not_found: 找不到
not_locked: 並未被鎖定
- not_saved: "%{count} 個錯誤使 %{resource} 無法被儲存︰"
+ not_saved:
+ one: 有 1 個錯誤讓此 %{resource} 無法儲存:
+ other: 有 %{count} 個錯誤讓此 %{resource} 無法儲存:
diff --git a/config/locales/doorkeeper.ast.yml b/config/locales/doorkeeper.ast.yml
index 6e32cbc2f..ce88af797 100644
--- a/config/locales/doorkeeper.ast.yml
+++ b/config/locales/doorkeeper.ast.yml
@@ -1,2 +1,72 @@
---
-ast: {}
+ast:
+ activerecord:
+ attributes:
+ doorkeeper/application:
+ name: Nome de l'aplicación
+ website: Sitiu web de l'aplicación
+ errors:
+ models:
+ doorkeeper/application:
+ attributes:
+ redirect_uri:
+ invalid_uri: ha ser una URI válida.
+ relative_uri: ha ser una URI absoluta.
+ doorkeeper:
+ applications:
+ buttons:
+ cancel: Encaboxar
+ destroy: Destruyir
+ edit: Editar
+ submit: Unviar
+ index:
+ name: Nome
+ show:
+ actions: Aiciones
+ title: 'Aplicación: %{name}'
+ authorizations:
+ error:
+ title: Asocedió un fallu
+ new:
+ able_to: Va ser a
+ prompt: L'aplicación %{client_name} solicitó l'accesu a la to cuenta
+ show:
+ title: Copia esti códigu d'autorización y apégalu na aplicación.
+ authorized_applications:
+ buttons:
+ revoke: Revocar
+ index:
+ date_format: "%H:%M:%S %d-%m-%Y"
+ title: Les aplicaciones qu'autoricesti
+ errors:
+ messages:
+ invalid_token:
+ expired: Caducó'l pase d'accesu
+ revoked: Revocóse'l pase d'accesu
+ unknown: El pase d'accesu nun ye válidu
+ unauthorized_client: El veceru nun ta autorizáu pa facer esta solicitú usando esti métodu.
+ unsupported_response_type: El sirvidor d'autorización nun sofita esta triba de rempuesta.
+ layouts:
+ admin:
+ nav:
+ applications: Aplicaciones
+ oauth2_provider: Fornidor d'OAuth2
+ scopes:
+ read:accounts: ver información de cuentes
+ read:blocks: ver quién bloquies
+ read:filters: ver les tos peñeres
+ read:follows: ver quién sigues
+ read:lists: ver les tos llistes
+ read:mutes: ver quién silencies
+ read:notifications: ver los tos avisos
+ read:statuses: ver tolos estaos
+ write: modificar los datos de la to cuenta
+ write:accounts: modificar el to perfil
+ write:blocks: bloquiar cuentes y dominios
+ write:filters: crear peñeres
+ write:follows: siguir a xente
+ write:lists: crear llistes
+ write:media: xubir ficheros de medios
+ write:mutes: silenciar xente y conversaciones
+ write:notifications: llimpiar los tos avisos
+ write:statuses: espublizar estaos
diff --git a/config/locales/el.yml b/config/locales/el.yml
index 8f718a849..71acb47ea 100644
--- a/config/locales/el.yml
+++ b/config/locales/el.yml
@@ -4,7 +4,7 @@ el:
about_hashtag_html: Αυτά είναι κάποια από τα δημόσια τουτ σημειωμένα με #%{hashtag}. Μπορείς να αλληλεπιδράσεις με αυτά αν έχεις λογαριασμό οπουδήποτε στο fediverse.
about_mastodon_html: Το Mastodon είναι ένα κοινωνικό δίκτυο που βασίζεται σε ανοιχτά δικτυακά πρωτόκολλα και ελεύθερο λογισμικό ανοιχτού κώδικα. Είναι αποκεντρωμένο όπως το e-mail.
about_this: Σχετικά
- administered_by: 'Διαχειρίζεται από:'
+ administered_by: 'Διαχειριστής:'
api: API
apps: Εφαρμογές κινητών
closed_registrations: Αυτή τη στιγμή οι εγγραφές σε αυτό τον κόμβο είναι κλειστές. Αλλά! Μπορείς να βρεις έναν άλλο κόμβο για να ανοίξεις λογαριασμό και να έχεις πρόσβαση από εκεί στο ίδιο ακριβώς δίκτυο.
@@ -19,7 +19,7 @@ el:
humane_approach_body: Μαθαίνοντας από τις αποτυχίες άλλων δικτύων, το Mastodon στοχεύει να κάνει σχεδιαστικά ηθικές επιλογές για να καταπολεμήσει την κακόβουλη χρήση των κοινωνικών δικτύων.
humane_approach_title: Μια πιο ανθρώπινη προσέγγιση
not_a_product_body: Το Mastodon δεν είναι ένα εμπορικό δίκτυο. Δεν έχει διαφημίσεις, δεν έχει εξόρυξη δεδομένων, δεν έχει περιφραγμένους κήπους. Δεν υπάρχει κεντρικό σημείο ελέγχου.
- not_a_product_title: Είσαι ένας άνθρωπος, όχι κάποιο προϊόν
+ not_a_product_title: Είσαι άνθρωπος, όχι προϊόν
real_conversation_body: Με 500 χαρακτήρες στη διάθεσή σου και υποστήριξη για λεπτομερή έλεγχο και προειδοποιήσεις πολυμέσων, μπορείς να εκφραστείς με τον τρόπο που θέλεις.
real_conversation_title: Φτιαγμένο για αληθινή συζήτηση
within_reach_body: Οι πολλαπλές εφαρμογές για το iOS, το Android και τις υπόλοιπες πλατφόρμες, χάρη σε ένα φιλικό προς τους προγραμματιστές οικοσύστημα API, σου επιτρέπουν να κρατάς επαφή με τους φίλους και τις φίλες σου οπουδήποτε.
@@ -48,6 +48,7 @@ el:
other: Ακόλουθοι
following: Ακολουθεί
joined: Εγγράφηκε στις %{date}
+ last_active: τελευταία ενεργός/ή
link_verified_on: Η κυριότητα αυτού του συνδέσμου ελέγχθηκε στις %{date}
media: Πολυμέσα
moved_html: 'Ο/Η %{name} μετακόμισε στο %{new_profile_link}:'
@@ -69,6 +70,9 @@ el:
moderator: Μεσολαβητής
unfollow: Διακοπή παρακολούθησης
admin:
+ account_actions:
+ action: Εκτέλεση ενέργειας
+ title: Εκτέλεση ενέργειας διαχείρισης στο %{acct}
account_moderation_notes:
create: Άφησε σημείωση
created_msg: Επιτυχής δημιουργία σημειώματος μεσολάβησης!
@@ -101,8 +105,10 @@ el:
enabled: Ενεργοποιημένο
feed_url: URL ροής
followers: Ακόλουθοι
+ followers_local: "(%{local} τοπικοί)"
followers_url: URL ακολούθων
follows: Ακολουθεί
+ header: Επικεφαλίδα
inbox_url: URL εισερχομένων
ip: IP
location:
@@ -114,6 +120,7 @@ el:
media_attachments: Συνημμένα πολυμέσα
memorialize: Μετατροπή σε νεκρολογία
moderation:
+ active: Ενεργός/ή
all: Όλα
silenced: Αποσιωπημένα
suspended: Σε αναστολή
@@ -123,12 +130,8 @@ el:
most_recent_ip: Πιο πρόσφατη IP
no_limits_imposed: Χωρίς όρια
not_subscribed: Άνευ συνδρομής
- order:
- alphabetic: Αλφαβητικά
- most_recent: Πιο πρόσφατα
- title: Ταξινόμηση
outbox_url: URL εξερχομένων
- perform_full_suspension: Κάνε πλήρη αναστολή
+ perform_full_suspension: Αναστολή
profile_url: URL προφίλ
promote: Προβίβασε
protocol: Πρωτόκολλο
@@ -136,6 +139,7 @@ el:
push_subscription_expires: Η εγγραφή PuSH λήγει
redownload: Ανανέωση αβατάρ
remove_avatar: Απομακρυσμένο αβατάρ
+ remove_header: Αφαίρεση επικεφαλίδας
resend_confirmation:
already_confirmed: Ήδη επιβεβαιωμένος χρήστης
send: Επανάληψη αποστολής email επιβεβαίωσης
@@ -154,7 +158,6 @@ el:
shared_inbox_url: URL κοινόχρηστων εισερχομένων
show:
created_reports: Αναφορές από αυτόν το λογαριασμό
- report: καταγγελία
targeted_reports: Αναφορές για αυτόν το λογαριασμό
silence: Αποσιώπησε
silenced: Αποσιωπημένοι
@@ -173,6 +176,7 @@ el:
assigned_to_self_report: Ο/Η %{name} ανάθεσε την καταγγελία %{target} στον εαυτό του/της
change_email_user: Ο/Η %{name} άλλαξε τη διεύθυνση email του χρήστη %{target}
confirm_user: Ο/Η %{name} επιβεβαίωσε τη διεύθυνση email του χρήστη %{target}
+ create_account_warning: Ο/Η %{name} έστειλε προειδοποίηση προς %{target}
create_custom_emoji: Ο/Η %{name} ανέβασε νέο emoji %{target}
create_domain_block: Ο/Η %{name} μπλόκαρε τον τομέα %{target}
create_email_domain_block: Ο/Η %{name} έβαλε τον τομέα email %{target} σε μαύρη λίστα
@@ -224,13 +228,14 @@ el:
title: Προσαρμοσμένα emoji
unlisted: Μη καταχωρημένα
update_failed_msg: Αδυναμία ενημέρωσης του emoji
- updated_msg: Επιτυχής ενημέρωση του Emoji!
+ updated_msg: Επιτυχής ενημέρωση του emoji!
upload: Ανέβασμα
dashboard:
backlog: χρονοκαθυστερημένες εργασίες
config: Διαμόρφωση
feature_deletions: Διαγραφή λογαριασμών
feature_invites: Σύνδεσμοι προσκλήσεων
+ feature_profile_directory: Κατάλογος χρηστών
feature_registrations: Εγγραφές
feature_relay: Ανταποκριτής ομοσπονδίας
features: Λειτουργίες
@@ -265,11 +270,6 @@ el:
reject_media_hint: Αφαιρεί τα τοπικά αποθηκευμένα αρχεία πολυμέσων και αποτρέπει τη λήψη άλλων στο μέλλον. Δεν έχει σημασία για τις αναστολές
reject_reports: Απόρριψη καταγγελιών
reject_reports_hint: Αγνόηση όσων καταγγελιών προέρχονται από αυτό τον τομέα. Δεν σχετίζεται με τις παύσεις
- severities:
- noop: Κανένα
- silence: Αποσιώπηση
- suspend: Αναστολή
- severity: Αυστηρότητα
show:
affected_accounts:
one: Επηρεάζεται ένας λογαριασμός στη βάση δεδομένων
@@ -279,7 +279,6 @@ el:
suspend: Αναίρεση αναστολής όλων των λογαριασμών του τομέα
title: Αναίρεση αποκλεισμού για τον τομέα %{domain}
undo: Αναίρεση
- title: Αποκλεισμένοι τομείς
undo: Αναίρεση
email_domain_blocks:
add_new: Πρόσθεση νέου
@@ -291,11 +290,10 @@ el:
create: Πρόσθεση τομέα
title: Νέα εγγραφή email στη μαύρη λίστα
title: Μαύρη λίστα email
+ followers:
+ back_to_account: Επιστροφή στον λογαριασμό
+ title: Ακόλουθοι του/της %{acct}
instances:
- account_count: Γνωστοί λογαριασμοί
- domain_name: Τομέας
- reset: Επαναφορά
- search: Αναζήτηση
title: Γνωστοί κόμβοι
invites:
deactivate_all: Απενεργοποίηση όλων
@@ -333,14 +331,14 @@ el:
assigned: Αρμόδιος συντονιστής
comment:
none: Κανένα
- created_at: Αναφέρθηκε
+ created_at: Καταγγέλθηκε
mark_as_resolved: Σημειωμένο ως επιλυμένο
mark_as_unresolved: Σημειωμένο ως ανεπίλυτο
notes:
create: Πρόσθεσε σημείωση
create_and_resolve: Επίλυσε με σημείωση
create_and_unresolve: Ξανάνοιξε με σημείωση
- delete: Διέγραψε
+ delete: Διαγραφή
placeholder: Περιέγραψε τις ενέργειες που έγιναν, ή οποιαδήποτε άλλη ενημέρωση...
reopen: Ξανάνοιξε την καταγγελία
report: 'Καταγγελία #%{id}'
@@ -378,6 +376,9 @@ el:
preview_sensitive_media:
desc_html: Οι προεπισκοπήσεις συνδέσμων σε τρίτους ιστότοπους θα είναι ορατές ακόμα κι όταν το πολυμέσο έχει σημειωθεί ως ευαίσθητο
title: Εμφάνιση ευαίσθητων πολυμέσων στις προεπισκοπήσεις OpenGraph
+ profile_directory:
+ desc_html: Να επιτρέπεται ο εντοπισμός των χρηστών
+ title: Ενεργοποίηση του καταλόγου χρηστών
registrations:
closed_message:
desc_html: Εμφανίζεται στην εισαγωγική σελίδα όταν οι εγγραφές είναι κλειστές. Μπορείς να χρησιμοποιήσεις HTML tags
@@ -437,13 +438,21 @@ el:
last_delivery: Τελευταία παράδοση
title: WebSub
topic: Θέμα
- suspensions:
- bad_acct_msg: Η τιμή επιβεβαίωσης δεν ταιριάζει. Σίγουρα αναστέλλεις το σωστό λογαριασμό;
- hint_html: 'Για να επιβεβαιώσεις την αναστολή του λογαριασμού, γράψε %{value} στο ακόλουθο πεδίο:'
- proceed: Συνέχεια
- title: Αναστολή %{acct}
- warning_html: 'Αναστέλλοντας αυτό το λογαριασμό θα διαγραφούν αμετάκλητα δεδομένα του, μεταξύ των οποίων:'
+ tags:
+ accounts: Λογαριασμοί
+ hidden: Κρυμμένες
+ hide: Απόκρυψη από κατάλογο
+ name: Ταμπέλα
+ title: Ταμπέλες
+ unhide: Εμφάνιση σε κατάλογο
+ visible: Εμφανείς
title: Διαχείριση
+ warning_presets:
+ add_new: Πρόσθεση νέου
+ delete: Διαγραφή
+ edit: Ενημέρωση
+ edit_preset: Ενημέρωση προκαθορισμένης προειδοποίησης
+ title: Διαχείριση προκαθορισμένων προειδοποιήσεων
admin_mailer:
new_report:
body: Ο/Η %{reporter} κατήγγειλε τον/την %{target}
@@ -465,7 +474,7 @@ el:
warning: Μεγάλη προσοχή με αυτά τα στοιχεία. Μην τα μοιραστείς ποτέ με κανέναν!
your_token: Το διακριτικό πρόσβασής σου (access token)
auth:
- agreement_html: Με την εγγραφή σου, συμφωνείς να ακολουθείς τους κανόνες αυτού του κόμβου και τους όρους χρήσης του.
+ agreement_html: Επιλέγοντας το "Εγγραφή", συμφωνείς πως δέχεσαι τους κανόνες αυτού του κόμβου και τους όρους χρήσης του.
change_password: Συνθηματικό
confirm_email: Επιβεβαίωση email
delete_account: Διαγραφή email
@@ -502,7 +511,7 @@ el:
datetime:
distance_in_words:
about_x_hours: "%{count}ω"
- about_x_months: "%{count}μη"
+ about_x_months: "%{count}μ"
about_x_years: "%{count}ε"
almost_x_years: "%{count}ε"
half_a_minute: Μόλις τώρα
@@ -521,6 +530,13 @@ el:
success_msg: Ο λογαριασμός σου διαγράφηκε με επιτυχία
warning_html: Μόνο η διαγραφή περιεχομένου από αυτό τον συγκεκριμένο κόμβο είναι εγγυημένη. Το περιεχόμενο που έχει διαμοιραστεί ευρέως είναι πιθανό να αφήσει ίχνη. Όσοι διακομιστές είναι εκτός σύνδεσης και όσοι έχουν διακόψει τη λήψη των ενημερώσεων του κόμβου σου, δε θα ενημερώσουν τις βάσεις δεδομένων τους.
warning_title: Διαθεσιμότητα ήδη διανεμημένου περιεχομένου
+ directories:
+ directory: Κατάλογος λογαριασμών
+ explanation: Βρες χρήστες βάσει των ενδιαφερόντων τους
+ explore_mastodon: Εξερεύνησε %{title}
+ people:
+ one: "%{count} άτομο"
+ other: "%{count} άτομα"
errors:
'403': Δεν έχεις δικαίωμα πρόσβασης σε αυτή τη σελίδα.
'404': Η σελίδα που ψάχνεις δεν υπάρχει.
@@ -691,9 +707,6 @@ el:
no_account_html: Δεν έχεις λογαριασμό; Μπορείς να γραφτείς εδώ
proceed: Συνέχισε για να ακολουθήσεις
prompt: 'Θα ακολουθήσεις:'
- remote_interaction:
- proceed: Συνέχισε για να αλληλεπιδράσεις
- prompt: 'Θέλεις να αλληλεπιδράσεις με αυτό το τουτ:'
remote_unfollow:
error: Σφάλμα
title: Τίτλος
@@ -902,6 +915,22 @@ el:
explanation: Ζήτησες ένα εφεδρικό αντίγραφο του λογαριασμού σου στο Mastodon. Είναι έτοιμο για κατέβασμα!
subject: Το εφεδρικό αντίγραφό σου είναι έτοιμο για κατέβασμα
title: Λήψη εφεδρικού αρχείου
+ warning:
+ explanation:
+ disable: Όσο ο λογαριασμός σου είναι παγωμένος, τα στοιχεία του παραμένουν άθικτα αλλά δεν μπορείς να κανείς καμία ενέργεια μέχρι να ξεκλειδωθείς.
+ silence: Όσο ο λογαριασμός σου είναι περιορισμένος, μόνο όσοι σε ακολουθούν ήδη θα βλέπουν τα τουτ σου σε αυτό τον κόμβο ενώ μπορεί να εξαιρεθείς από διάφορες δημόσιες απαριθμήσεις. Πάντως, θα μπορούν να σε ακολουθήσουν χειροκίνητα.
+ suspend: Ο λογαριασμός σου αναστάλθηκε μόνιμα, όλα τα τουτ και τα ανεβασμένα πολυμέσα σου διαγράφηκαν αμετάκλητα από αυτόν τον κόμβο και σε όσους άλλους είχες ακόλουθους.
+ review_server_policies: Αναθεώρηση πολιτικής του κόμβου
+ subject:
+ disable: Ο λογαριασμός σου %{acct} έχει παγώσει
+ none: Προειδοποίηση προς %{acct}
+ silence: Ο λογαριασμός σου %{acct} έχει περιοριστεί
+ suspend: Ο λογαριασμός σου %{acct} έχει ανασταλεί
+ title:
+ disable: Παγωμένος λογαριασμός
+ none: Προειδοποίηση
+ silence: Περιορισμένος λογαριασμός
+ suspend: Ανασταλμένος λογαριασμός
welcome:
edit_profile_action: Στήσιμο προφίλ
edit_profile_step: Μπορείς να προσαρμόσεις το προφίλ σου ανεβάζοντας μια εικόνα εμφάνισης & επικεφαλίδας, αλλάζοντας το εμφανιζόμενο όνομά σου και άλλα. Αν θες να ελέγχεις τους νέου σου ακόλουθους πριν αυτοί σε ακολουθήσουν, μπορείς να κλειδώσεις το λογαριασμό σου.
@@ -913,7 +942,6 @@ el:
review_preferences_action: Αλλαγή προτιμήσεων
review_preferences_step: Σιγουρέψου πως έχεις ορίσει τις προτιμήσεις σου, όπως το ποια email θέλεις να λαμβάνεις, ή ποιο επίπεδο ιδιωτικότητας θέλεις να έχουν οι δημοσιεύσεις σου. Αν δεν σε πιάνει ναυτία, μπορείς να ενεργοποιήσεις την αυτόματη αναπαραγωγή των GIF.
subject: Καλώς ήρθες στο Mastodon
- tip_bridge_html: Αν έχεις έρθει από το Twitter, μπορείς να βρεις τους φίλους και τις φίλες σου στο Mastodon χρησιμοποιώντας την βοηθητική εφαρμογή. Υπόψιν πως δουλεύει μόνο αν την έχουν χρησιμοποιήσει και εκείνοι!
tip_federated_timeline: Η ομοσπονδιακή ροή είναι μια όψη πραγματικού χρόνου στο δίκτυο του Mastodon. Παρόλα αυτά, περιλαμβάνει μόνο όσους ακολουθούν οι γείτονές σου, άρα δεν είναι πλήρης.
tip_following: Ακολουθείς το διαχειριστή του διακομιστή σου αυτόματα. Για να βρεις περισσότερους ενδιαφέροντες ανθρώπους, έλεγξε την τοπική και την ομοσπονδιακή ροή.
tip_local_timeline: Η τοπική ροή είναι η όψη πραγματικού χρόνου των ανθρώπων στον κόμβο %{instance}. Αυτοί είναι οι άμεσοι γείτονές σου!
@@ -928,5 +956,5 @@ el:
seamless_external_login: Επειδή έχεις συνδεθεί μέσω τρίτης υπηρεσίας, οι ρυθμίσεις συνθηματικού και email δεν είναι διαθέσιμες.
signed_in_as: 'Έχεις συνδεθεί ως:'
verification:
- explanation_html: 'Μπορείς να πιστοποιήσεις τον εαυτό σου ως ιδιοκτήτη των συνδέσμων που εμφανίζεις στα μεταδεδομένα του προφίλ σου. Για να συμβεί αυτό, ο συνδεδεμένος ιστότοπος πρέπει να περιέχει ένα σύνδεσμο που να επιστρέφει προς το προφίλ σου στο Mastodon. Ο σύνδεσμος επιστροφής πρέπει περιέχει την ιδιότητα (attribute) rel="me". Το κείμενο κειμένου δεν έχει σημασία. Για παράδειγμα:'
+ explanation_html: 'Μπορείς να πιστοποιήσεις τον εαυτό σου ως ιδιοκτήτη των συνδέσμων που εμφανίζεις στα μεταδεδομένα του προφίλ σου. Για να συμβεί αυτό, ο συνδεδεμένος ιστότοπος πρέπει να περιέχει ένα σύνδεσμο που να επιστρέφει προς το προφίλ σου στο Mastodon. Ο σύνδεσμος επιστροφής πρέπει περιέχει την ιδιότητα (attribute) rel="me". Το περιεχόμενο του κειμένου δεν έχει σημασία. Για παράδειγμα:'
verification: Πιστοποίηση
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 47f285b52..9f57f8620 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -48,6 +48,7 @@ en:
other: Followers
following: Following
joined: Joined %{date}
+ last_active: last active
link_verified_on: Ownership of this link was checked on %{date}
media: Media
moved_html: "%{name} has moved to %{new_profile_link}:"
@@ -69,6 +70,9 @@ en:
moderator: Mod
unfollow: Unfollow
admin:
+ account_actions:
+ action: Perform action
+ title: Perform moderation action on %{acct}
account_moderation_notes:
create: Leave note
created_msg: Moderation note successfully created!
@@ -80,14 +84,15 @@ en:
by_domain: Domain
change_email:
changed_msg: Account email successfully changed!
- current_email: Current Email
- label: Change Email
- new_email: New Email
- submit: Change Email
- title: Change Email for %{username}
+ current_email: Current email
+ label: Change email
+ new_email: New email
+ submit: Change email
+ title: Change email for %{username}
confirm: Confirm
confirmed: Confirmed
confirming: Confirming
+ deleted: Deleted
demote: Demote
disable: Disable
disable_two_factor_authentication: Disable 2FA
@@ -95,16 +100,19 @@ en:
display_name: Display name
domain: Domain
edit: Edit
- email: E-mail
- email_status: E-mail Status
+ email: Email
+ email_status: Email status
enable: Enable
enabled: Enabled
feed_url: Feed URL
followers: Followers
followers_url: Followers URL
follows: Follows
+ header: Header
inbox_url: Inbox URL
+ invited_by: Invited by
ip: IP
+ joined: Joined
location:
all: All
local: Local
@@ -114,6 +122,7 @@ en:
media_attachments: Media attachments
memorialize: Turn into memoriam
moderation:
+ active: Active
all: All
silenced: Silenced
suspended: Suspended
@@ -123,10 +132,6 @@ en:
most_recent_ip: Most recent IP
no_limits_imposed: No limits imposed
not_subscribed: Not subscribed
- order:
- alphabetic: Alphabetic
- most_recent: Most recent
- title: Order
outbox_url: Outbox URL
perform_full_suspension: Suspend
profile_url: Profile URL
@@ -134,8 +139,9 @@ en:
protocol: Protocol
public: Public
push_subscription_expires: PuSH subscription expires
- redownload: Refresh avatar
+ redownload: Refresh profile
remove_avatar: Remove avatar
+ remove_header: Remove header
resend_confirmation:
already_confirmed: This user is already confirmed
send: Resend confirmation email
@@ -151,28 +157,29 @@ en:
user: User
salmon_url: Salmon URL
search: Search
- shared_inbox_url: Shared Inbox URL
+ shared_inbox_url: Shared inbox URL
show:
- created_reports: Reports created by this account
- report: report
- targeted_reports: Reports made about this account
+ created_reports: Made reports
+ targeted_reports: Reported by others
silence: Silence
silenced: Silenced
statuses: Statuses
subscribe: Subscribe
suspended: Suspended
title: Accounts
- unconfirmed_email: Unconfirmed E-mail
+ unconfirmed_email: Unconfirmed email
undo_silenced: Undo silence
undo_suspension: Undo suspension
unsubscribe: Unsubscribe
username: Username
+ warn: Warn
web: Web
action_logs:
actions:
assigned_to_self_report: "%{name} assigned report %{target} to themselves"
change_email_user: "%{name} changed the e-mail address of user %{target}"
confirm_user: "%{name} confirmed e-mail address of user %{target}"
+ create_account_warning: "%{name} sent a warning to %{target}"
create_custom_emoji: "%{name} uploaded new emoji %{target}"
create_domain_block: "%{name} blocked domain %{target}"
create_email_domain_block: "%{name} blacklisted e-mail domain %{target}"
@@ -231,6 +238,7 @@ en:
config: Configuration
feature_deletions: Account deletions
feature_invites: Invite links
+ feature_profile_directory: Profile directory
feature_registrations: Registrations
feature_relay: Federation relay
features: Features
@@ -248,7 +256,7 @@ en:
week_users_active: active this week
week_users_new: users this week
domain_blocks:
- add_new: Add new
+ add_new: Add new domain block
created_msg: Domain block is now being processed
destroyed_msg: Domain block has been undone
domain: Domain
@@ -265,11 +273,11 @@ en:
reject_media_hint: Removes locally stored media files and refuses to download any in the future. Irrelevant for suspensions
reject_reports: Reject reports
reject_reports_hint: Ignore all reports coming from this domain. Irrelevant for suspensions
- severities:
- noop: None
- silence: Silence
- suspend: Suspend
- severity: Severity
+ rejecting_media: rejecting media files
+ rejecting_reports: rejecting reports
+ severity:
+ silence: silenced
+ suspend: suspended
show:
affected_accounts:
one: One account in the database affected
@@ -279,8 +287,7 @@ en:
suspend: Unsuspend all existing accounts from this domain
title: Undo domain block for %{domain}
undo: Undo
- title: Domain blocks
- undo: Undo
+ undo: Undo domain block
email_domain_blocks:
add_new: Add new
created_msg: Successfully added e-mail domain to blacklist
@@ -291,12 +298,24 @@ en:
create: Add domain
title: New e-mail blacklist entry
title: E-mail blacklist
+ followers:
+ back_to_account: Back To Account
+ title: "%{acct}'s Followers"
instances:
- account_count: Known accounts
- domain_name: Domain
- reset: Reset
- search: Search
- title: Known instances
+ delivery_available: Delivery is available
+ known_accounts:
+ one: "%{count} known account"
+ other: "%{count} known accounts"
+ moderation:
+ all: All
+ limited: Limited
+ title: Moderation
+ title: Federation
+ total_blocked_by_us: Blocked by us
+ total_followed_by_them: Followed by them
+ total_followed_by_us: Followed by us
+ total_reported: Reports about them
+ total_storage: Media attachments
invites:
deactivate_all: Deactivate all
filter:
@@ -378,6 +397,9 @@ en:
preview_sensitive_media:
desc_html: Link previews on other websites will display a thumbnail even if the media is marked as sensitive
title: Show sensitive media in OpenGraph previews
+ profile_directory:
+ desc_html: Allow users to be discoverable
+ title: Enable profile directory
registrations:
closed_message:
desc_html: Displayed on frontpage when registrations are closed. You can use HTML tags
@@ -437,13 +459,21 @@ en:
last_delivery: Last delivery
title: WebSub
topic: Topic
- suspensions:
- bad_acct_msg: The confirmation value didn't match up. Are you suspending the right account?
- hint_html: 'To confirm the suspension of the account, please enter %{value} into the field below:'
- proceed: Proceed
- title: Suspend %{acct}
- warning_html: 'Suspending this account will irreversibly delete data from this account, which includes:'
+ tags:
+ accounts: Accounts
+ hidden: Hidden
+ hide: Hide from directory
+ name: Hashtag
+ title: Hashtags
+ unhide: Show in directory
+ visible: Visible
title: Administration
+ warning_presets:
+ add_new: Add new
+ delete: Delete
+ edit: Edit
+ edit_preset: Edit warning preset
+ title: Manage warning presets
admin_mailer:
new_report:
body: "%{reporter} has reported %{target}"
@@ -521,6 +551,13 @@ en:
success_msg: Your account was successfully deleted
warning_html: Only deletion of content from this particular instance is guaranteed. Content that has been widely shared is likely to leave traces. Offline servers and servers that have unsubscribed from your updates will not update their databases.
warning_title: Disseminated content availability
+ directories:
+ directory: Profile directory
+ explanation: Discover users based on their interests
+ explore_mastodon: Explore %{title}
+ people:
+ one: "%{count} person"
+ other: "%{count} people"
errors:
'403': You don't have permission to view this page.
'404': The page you were looking for doesn't exist.
@@ -543,7 +580,9 @@ en:
size: Size
blocks: You block
csv: CSV
+ domain_blocks: Domain blocks
follows: You follow
+ lists: Lists
mutes: You mute
storage: Media storage
filters:
@@ -692,13 +731,25 @@ en:
no_account_html: Don't have an account? You can sign up here
proceed: Proceed to follow
prompt: 'You are going to follow:'
+ reason_html: "Why is this step necessary?%{instance} might not be the server where you are registered, so we need to redirect you to your home server first."
remote_interaction:
- proceed: Proceed to interact
- prompt: 'You want to interact with this toot:'
+ favourite:
+ proceed: Proceed to favourite
+ prompt: 'You want to favourite this toot:'
+ reblog:
+ proceed: Proceed to boost
+ prompt: 'You want to boost this toot:'
+ reply:
+ proceed: Proceed to reply
+ prompt: 'You want to reply to this toot:'
remote_unfollow:
error: Error
title: Title
unfollowed: Unfollowed
+ scheduled_statuses:
+ over_daily_limit: You have exceeded the limit of %{limit} scheduled toots for that day
+ over_total_limit: You have exceeded the limit of %{limit} scheduled toots
+ too_soon: The scheduled date must be in the future
sessions:
activity: Last activity
browser: Browser
@@ -904,6 +955,22 @@ en:
explanation: You requested a full backup of your Mastodon account. It's now ready for download!
subject: Your archive is ready for download
title: Archive takeout
+ warning:
+ explanation:
+ disable: While your account is frozen, your account data remains intact, but you cannot perform any actions until it is unlocked.
+ silence: While your account is limited, only people who are already following you will see your toots on this server, and you may be excluded from various public listings. However, others may still manually follow you.
+ suspend: Your account has been suspended, and all of your toots and your uploaded media files have been irreversibly removed from this server, and servers where you had followers.
+ review_server_policies: Review server policies
+ subject:
+ disable: Your account %{acct} has been frozen
+ none: Warning for %{acct}
+ silence: Your account %{acct} has been limited
+ suspend: Your account %{acct} has been suspended
+ title:
+ disable: Account frozen
+ none: Warning
+ silence: Account limited
+ suspend: Account suspended
welcome:
edit_profile_action: Setup profile
edit_profile_step: You can customize your profile by uploading an avatar, header, changing your display name and more. If you’d like to review new followers before they’re allowed to follow you, you can lock your account.
@@ -915,7 +982,6 @@ en:
review_preferences_action: Change preferences
review_preferences_step: Make sure to set your preferences, such as which emails you'd like to receive, or what privacy level you’d like your posts to default to. If you don’t have motion sickness, you could choose to enable GIF autoplay.
subject: Welcome to Mastodon
- tip_bridge_html: If you are coming from Twitter, you can find your friends on Mastodon by using the bridge app. It only works if they also used the bridge app though!
tip_federated_timeline: The federated timeline is a firehose view of the Mastodon network. But it only includes people your neighbours are subscribed to, so it's not complete.
tip_following: You follow your server's admin(s) by default. To find more interesting people, check the local and federated timelines.
tip_local_timeline: The local timeline is a firehose view of people on %{instance}. These are your immediate neighbours!
diff --git a/config/locales/eo.yml b/config/locales/eo.yml
index 72628a944..b7dd7ca8b 100644
--- a/config/locales/eo.yml
+++ b/config/locales/eo.yml
@@ -30,18 +30,26 @@ eo:
other_instances: Listo de nodoj
privacy_policy: Privateca politiko
source_code: Fontkodo
- status_count_after: mesaĝoj
+ status_count_after:
+ one: mesaĝo
+ other: mesaĝoj
status_count_before: Kie skribiĝis
terms: Uzkondiĉoj
- user_count_after: uzantoj
+ user_count_after:
+ one: uzanto
+ other: uzantoj
user_count_before: Hejmo de
what_is_mastodon: Kio estas Mastodon?
accounts:
choices_html: 'Proponoj de %{name}:'
follow: Sekvi
- followers: Sekvantoj
+ followers:
+ one: Sekvanto
+ other: Sekvantoj
following: Sekvatoj
joined: Aliĝis je %{date}
+ last_active: laste aktiva
+ link_verified_on: Proprieto de ĉi tiu ligilo estis kontrolita je %{date}
media: Aŭdovidaĵoj
moved_html: "%{name} moviĝis al %{new_profile_link}:"
network_hidden: Tiu informo ne estas disponebla
@@ -50,7 +58,10 @@ eo:
people_who_follow: Sekvantoj de %{name}
pin_errors:
following: Vi devas sekvi la homon, kiun vi volas proponi
- posts: Mesaĝoj
+ posts:
+ one: Mesaĝo
+ other: Mesaĝoj
+ posts_tab_heading: Mesaĝoj
posts_with_replies: Mesaĝoj kaj respondoj
reserved_username: La uzantnomo estas rezervita
roles:
@@ -104,6 +115,7 @@ eo:
media_attachments: Ligitaj aŭdovidaĵoj
memorialize: Ŝanĝi al memoro
moderation:
+ active: Aktiva
all: Ĉio
silenced: Silentigitaj
suspended: Haltigitaj
@@ -111,13 +123,10 @@ eo:
moderation_notes: Kontrolaj notoj
most_recent_activity: Lasta ago
most_recent_ip: Lasta IP
+ no_limits_imposed: Neniu limito trudita
not_subscribed: Ne abonita
- order:
- alphabetic: Laŭalfabete
- most_recent: Plej lastatempa
- title: Ordo
outbox_url: Elira URL
- perform_full_suspension: Tute haltigi
+ perform_full_suspension: Haltigi
profile_url: Profila URL
promote: Plirangigi
protocol: Protokolo
@@ -143,11 +152,12 @@ eo:
shared_inbox_url: URL de kunhavigita leterkesto
show:
created_reports: Signaloj kreitaj de ĉi tiu konto
- report: signalo
targeted_reports: Signaloj kreitaj de ĉi tiu konto
silence: Kaŝi
+ silenced: Silentigita
statuses: Mesaĝoj
subscribe: Aboni
+ suspended: Haltigita
title: Kontoj
unconfirmed_email: Nekonfirmita retadreso
undo_silenced: Malfari kaŝon
@@ -164,6 +174,7 @@ eo:
create_domain_block: "%{name} blokis domajnon %{target}"
create_email_domain_block: "%{name} metis en nigran liston domajnon %{target}"
demote_user: "%{name} degradis uzanton %{target}"
+ destroy_custom_emoji: "%{name} neniigis la emoĝion %{target}"
destroy_domain_block: "%{name} malblokis domajnon %{target}"
destroy_email_domain_block: "%{name} metis en blankan liston domajnon %{target}"
destroy_status: "%{name} forigis mesaĝojn de %{target}"
@@ -217,6 +228,7 @@ eo:
config: Agordado
feature_deletions: Forigo de kontoj
feature_invites: Invitaj ligiloj
+ feature_profile_directory: Profilujo
feature_registrations: Registriĝoj
feature_relay: Federacia ripetilo
features: Funkcioj
@@ -249,11 +261,6 @@ eo:
title: Nova domajna blokado
reject_media: Malakcepti aŭdovidajn dosierojn
reject_media_hint: Forigas aŭdovidaĵojn loke konservitajn kaj rifuzas alŝuti ajnan estonte. Senzorge pri haltigoj
- severities:
- noop: Nenio
- silence: Kaŝi
- suspend: Haltigi
- severity: Severeco
show:
affected_accounts:
one: Unu konto en la datumbazo esta influita
@@ -263,7 +270,6 @@ eo:
suspend: Malhaltigi ĉiujn kontojn, kiuj ekzistas en ĉi tiu domajno
title: Malfari domajnan blokadon por %{domain}
undo: Malfari
- title: Domajnaj blokadoj
undo: Malfari
email_domain_blocks:
add_new: Aldoni novan
@@ -276,10 +282,6 @@ eo:
title: Nova blokado de retadresa domajno
title: Nigra listo de retadresaj domajnoj
instances:
- account_count: Konataj kontoj
- domain_name: Domajno
- reset: Restarigi
- search: Serĉi
title: Konataj nodoj
invites:
deactivate_all: Malaktivigi ĉion
@@ -291,9 +293,15 @@ eo:
title: Invitoj
relays:
add_new: Aldoni novan ripetilon
+ delete: Forigi
description_html: "Fratara ripetilo estas survoja servilo, kiu interŝanĝas grandan kvanton de publikaj mesaĝoj inter serviloj, kiuj abonas kaj publikigas al ĝi. Ĝi povas helpi etajn kaj mezgrandajn servilojn malkovri enhavon de la fediverse, kio normale postulus al lokaj uzantoj mane sekvi homojn de foraj serviloj."
+ disable: Malebligi
+ disabled: Malebligita
+ enable: Ebligi
enable_hint: Post ebligo, via servilo abonos ĉiujn publikajn mesaĝojn de tiu ripetilo, kaj komencos sendi publikajn mesaĝojn de la servilo al ĝi.
+ enabled: Malebligita
inbox_url: URL de la ripetilo
+ save_and_enable: Konservi kaj ebligi
setup: Agordi konekton al ripetilo
status: Stato
title: Ripetiloj
@@ -340,6 +348,9 @@ eo:
contact_information:
email: Publika retadreso
username: Kontakta uzantnomo
+ custom_css:
+ desc_html: Ŝanĝi la aspekton per CSS ŝargita en ĉiu pago
+ title: Propra CSS
hero:
desc_html: Montrata en la ĉefpaĝo. Almenaŭ 600x100px rekomendita. Kiam ne agordita, la bildeto de la nodo estos uzata
title: Kapbildo
@@ -349,6 +360,9 @@ eo:
preview_sensitive_media:
desc_html: Antaŭvido de ligiloj en aliaj retejoj montros bildeton eĉ se la aŭdovidaĵo estas markita kiel tikla
title: Montri tiklajn aŭdovidaĵojn en la antaŭvidoj de OpenGraph
+ profile_directory:
+ desc_html: Permesi al uzantoj esti troveblaj
+ title: Ebligi la profilujon
registrations:
closed_message:
desc_html: Montrita sur la hejma paĝo kiam registriĝoj estas fermitaj. Vi povas uzi HTML-etikedojn
@@ -408,6 +422,12 @@ eo:
last_delivery: Lasta livero
title: WebSub
topic: Temo
+ tags:
+ hide: Kaŝi de la profilujo
+ name: Kradvorto
+ title: Kradvortoj
+ unhide: Montri en la profilujo
+ visible: Videbla
title: Administrado
admin_mailer:
new_report:
@@ -430,7 +450,7 @@ eo:
warning: Estu tre atenta kun ĉi tiu datumo. Neniam diskonigu ĝin al iu ajn!
your_token: Via alira ĵetono
auth:
- agreement_html: Per registriĝo, vi konsentas kun la reguloj de nia nodo kaj niaj uzkondiĉoj.
+ agreement_html: Klakante “Registriĝi” sube, vi konsentas kun la reguloj de la nodo kaj niaj uzkondiĉoj.
change_password: Pasvorto
confirm_email: Konfirmi retadreson
delete_account: Forigi konton
@@ -486,6 +506,13 @@ eo:
success_msg: Via konto estis sukcese forigita
warning_html: La forigo de la enhavo estas certa nur por ĉi tiu aparta nodo. Enhavo, kiu estis disvastigita verŝajne lasos spurojn. Eksterretaj serviloj kaj serviloj, kiuj ne abonas viajn ĝisdatigojn ne ĝisdatigos siajn datumbazojn.
warning_title: Disponebleco de disvastigita enhavo
+ directories:
+ directory: Profilujo
+ explanation: Malkovru uzantojn per iliaj interesoj
+ explore_mastodon: Esplori %{title}
+ people:
+ one: "%{count} personoj"
+ other: "%{count} personoj"
errors:
'403': Vi ne havas la rajton por vidi ĉi tiun paĝon.
'404': La paĝo, kiun vi serĉas, ne ekzistas.
@@ -547,6 +574,7 @@ eo:
resources: Rimedoj
generic:
changes_saved_msg: Ŝanĝoj sukcese konservitaj!
+ copy: Kopii
save_changes: Konservi ŝanĝojn
validation_errors:
one: Io mise okazis! Bonvolu konsulti la suban erar-raporton
@@ -658,9 +686,6 @@ eo:
no_account_html: Ĉu vi ne havas konton? Vi povas registriĝi tie
proceed: Daŭrigi por eksekvi
prompt: 'Vi eksekvos:'
- remote_interaction:
- proceed: Efektivigi la interagon
- prompt: 'Vi volas interagi kun ĉi tiu mesaĝo:'
remote_unfollow:
error: Eraro
title: Titolo
@@ -766,6 +791,7 @@ eo:
time:
formats:
default: "%Y-%m-%d %H:%M"
+ month: "%b %Y"
two_factor_authentication:
code_hint: Enmetu la kodon kreitan de via aŭtentiga aplikaĵo por konfirmi
description_html: Se vi ebligas dufaktoran aŭtentigon, vi bezonos vian poŝtelefonon por ensaluti, ĉar ĝi kreos nombrojn, kiujn vi devos enmeti.
@@ -798,7 +824,6 @@ eo:
review_preferences_action: Ŝanĝi preferojn
review_preferences_step: Estu certa ke vi agordis viajn preferojn, kiel kiujn retmesaĝojn vi ŝatus ricevi, aŭ kiun dekomencan privatecan nivelon vi ŝatus ke viaj mesaĝoj havu. Se tio ne ĝenas vin, vi povas ebligi aŭtomatan ekigon de GIF-oj.
subject: Bonvenon en Mastodon
- tip_bridge_html: Se vi venas de Twitter, vi povas trovi viajn amikojn en Mastodon per uzo de la ponta aplikaĵo. Tamen, tio funkcias nur se ankaŭ ili uzis la pontan aplikaĵon!
tip_federated_timeline: La fratara tempolinio estas antaŭvido de la reto de Mastodon. Sed ĝi enhavas nur homojn, kiuj estas sekvataj de aliaj homoj de via nodo, do ĝi ne estas kompleta.
tip_following: Vi dekomence sekvas la administrantojn de via servilo. Por trovi pli da interesaj homoj, rigardu la lokan kaj frataran tempoliniojn.
tip_local_timeline: La loka tempolinio estas antaŭvido de la homoj en %{instance}. Ĉi tiuj estas viaj apudaj najbaroj!
@@ -806,8 +831,11 @@ eo:
tips: Konsiloj
title: Bonvenon, %{name}!
users:
+ follow_limit_reached: Vi ne povas sekvi pli da %{limit} homojn
invalid_email: La retadreso estas nevalida
invalid_otp_token: Nevalida kodo de dufaktora aŭtentigo
otp_lost_help_html: Se vi perdas aliron al ambaŭ, vi povas kontakti %{email}
seamless_external_login: Vi estas ensalutinta per ekstera servo, do pasvortaj kaj retadresaj agordoj ne estas disponeblaj.
signed_in_as: 'Ensalutinta kiel:'
+ verification:
+ verification: Kontrolo
diff --git a/config/locales/es.yml b/config/locales/es.yml
index f7531161c..b221989e8 100644
--- a/config/locales/es.yml
+++ b/config/locales/es.yml
@@ -123,10 +123,6 @@ es:
most_recent_ip: IP más reciente
no_limits_imposed: Sin límites impuestos
not_subscribed: No se está suscrito
- order:
- alphabetic: Alfabético
- most_recent: Más reciente
- title: Orden
outbox_url: URL de bandeja de salida
perform_full_suspension: Suspender
profile_url: URL del perfil
@@ -154,7 +150,6 @@ es:
shared_inbox_url: URL de bandeja compartida
show:
created_reports: Reportes hechos por esta cuenta
- report: reportar
targeted_reports: Reportes hechos sobre esta cuenta
silence: Silenciar
silenced: Silenciado
@@ -265,11 +260,6 @@ es:
reject_media_hint: Remueve localmente archivos multimedia almacenados para descargar cualquiera en el futuro. Irrelevante para suspensiones
reject_reports: Rechazar informes
reject_reports_hint: Ignore todos los reportes de este dominio. Irrelevante para suspensiones
- severities:
- noop: Ninguno
- silence: Silenciar
- suspend: Suspender
- severity: Severidad
show:
affected_accounts:
one: Una cuenta en la base de datos afectada
@@ -279,7 +269,6 @@ es:
suspend: Des-suspender todas las cuentas existentes de este dominio
title: Deshacer bloque de dominio para %{domain}
undo: Deshacer
- title: Bloques de Dominio
undo: Deshacer
email_domain_blocks:
add_new: Añadir nuevo
@@ -292,10 +281,6 @@ es:
title: Nueva entrada en la lista negra de correo
title: Lista negra de correo
instances:
- account_count: Cuentas conocidas
- domain_name: Dominio
- reset: Reiniciar
- search: Buscar
title: Instancias conocidas
invites:
deactivate_all: Desactivar todos
@@ -437,12 +422,6 @@ es:
last_delivery: Última entrega
title: WebSub
topic: Tópico
- suspensions:
- bad_acct_msg: El valor de confirmación no cuadra. ¿Estás suspendiendo la cuenta correcta?
- hint_html: 'Para confirmar las suspensión de la cuenta, por favor introduce %{value} en el campo de abajo:'
- proceed: Proceder
- title: Suspender %{acct}
- warning_html: 'Suspender esta cuenta borrará irreversiblemente los datos de stra cuenta que incluyen:'
title: Administración
admin_mailer:
new_report:
@@ -692,9 +671,6 @@ es:
no_account_html: "¿No tienes una cuenta? Puedes registrarte aqui"
proceed: Proceder a seguir
prompt: 'Vas a seguir a:'
- remote_interaction:
- proceed: Proceder para interactuar
- prompt: 'Quieres interactuar con este toot:'
remote_unfollow:
error: Error
title: Título
@@ -833,7 +809,6 @@ es:
review_preferences_action: Cambiar preferencias
review_preferences_step: Asegúrate de poner tus preferencias, como que correos te gustaría recibir, o que nivel de privacidad te gustaría que tus publicaciones tengan por defecto. Si no tienes mareos, podrías elegir habilitar la reproducción automática de "GIFs".
subject: Bienvenido a Mastodon
- tip_bridge_html: Si esta viniendo desde Twitter, puedes encontrar a tus amigos en Mastodon usando la aplicación puente. Aunque solo funciona si ellos también usaron la aplicación puente!
tip_federated_timeline: La línea de tiempo federada es una vista de la red de Mastodon. Pero solo incluye gente que tus vecinos están siguiendo, así que no está completa.
tip_following: Sigues a tus administradores de servidor por defecto. Para encontrar más gente interesante, revisa las lineas de tiempo local y federada.
tip_local_timeline: La linea de tiempo local is una vista de la gente en %{instance}. Estos son tus vecinos inmediatos!
diff --git a/config/locales/eu.yml b/config/locales/eu.yml
index 206b439b0..73a60e771 100644
--- a/config/locales/eu.yml
+++ b/config/locales/eu.yml
@@ -48,6 +48,7 @@ eu:
other: jarraitzaile
following: Jarraitzen
joined: "%{date}(e)an elkartua"
+ last_active: azkenekoz aktiboa
link_verified_on: 'Esteka honen jabetzaren egiaztaketa data: %{date}'
media: Multimedia
moved_html: "%{name} hona lekualdatu da %{new_profile_link}:"
@@ -69,6 +70,9 @@ eu:
moderator: Moderatzailea
unfollow: Utzi jarraitzeari
admin:
+ account_actions:
+ action: Burutu ekintza
+ title: Burutu moderazio ekintza %{acct} kontuan
account_moderation_notes:
create: Sortu oharra
created_msg: Moderazio oharra ongi sortu da!
@@ -101,8 +105,10 @@ eu:
enabled: Gaituta
feed_url: Jarioaren URL-a
followers: Jarraitzaileak
+ followers_local: "(%{local} lokala)"
followers_url: Jarraitzaileen URL-a
follows: Jarraitzen du
+ header: Goiburua
inbox_url: Sarrera ontziaren URL-a
ip: IP
location:
@@ -114,6 +120,7 @@ eu:
media_attachments: Multimedia eranskinak
memorialize: Bihurtu memoriala
moderation:
+ active: Aktiboa
all: Denak
silenced: Isilarazita
suspended: Kanporatua
@@ -123,10 +130,6 @@ eu:
most_recent_ip: Azken IP-a
no_limits_imposed: Ez da mugarik ezarri
not_subscribed: Harpidetu gabe
- order:
- alphabetic: Alfabetikoa
- most_recent: Azkena
- title: Ordena
outbox_url: Irteera ontziaren URL-a
perform_full_suspension: Kanporatu
profile_url: Profilaren URL-a
@@ -136,6 +139,7 @@ eu:
push_subscription_expires: Push harpidetzaren iraugitzea
redownload: Freskatu abatarra
remove_avatar: Kendu abatarra
+ remove_header: Kendu goiburua
resend_confirmation:
already_confirmed: Erabiltzaile hau berretsita dago
send: Birbidali baieztapen e-maila
@@ -154,7 +158,6 @@ eu:
shared_inbox_url: Partekatutako sarrera ontziaren URL-a
show:
created_reports: Kontu honek sortutako txostenak
- report: salatu
targeted_reports: Kontu honek egindako salaketak
silence: Isilarazi
silenced: Isilarazita
@@ -173,6 +176,7 @@ eu:
assigned_to_self_report: "%{name}(e)k %{target} salaketa bere buruari esleitu dio"
change_email_user: "%{name}(e)k %{target}(r)en e-mail helbidea aldatu du"
confirm_user: "%{name}(e)k %{target}(r)en e-mail helbidea berretsi du"
+ create_account_warning: "%{name}-k abisua bidali dio %{target}-ri"
create_custom_emoji: "%{name}(e)k emoji berria kargatu du %{target}"
create_domain_block: "%{name}(e)k %{target} domeinua blokeatu du"
create_email_domain_block: "%{name}(e)k %{target} e-mail helbideen domeinua zerrenda beltzean sartu du"
@@ -231,6 +235,7 @@ eu:
config: Konfigurazioa
feature_deletions: Kontu ezabaketak
feature_invites: Gonbidapen estekak
+ feature_profile_directory: Profil-direktorioa
feature_registrations: Izen emateak
feature_relay: Federazio haria
features: Ezaugarriak
@@ -265,11 +270,6 @@ eu:
reject_media_hint: Lokalki gordetako multimedia fitxategiak ezabatzen ditu eta etorkizunean fitxategi berriak deskargatzeari uko egingo dio. Ez du garrantzirik kanporaketetan
reject_reports: Errefusatu salaketak
reject_reports_hint: Ezikusi domeinu honetatik jasotako salaketak. Kanporatzeentzako garrantzirik gabekoa
- severities:
- noop: Bat ere ez
- silence: Isilarazi
- suspend: Kanporatu
- severity: Larritasuna
show:
affected_accounts:
one: Datu-baseko kontu bati eragiten dio
@@ -279,7 +279,6 @@ eu:
suspend: Kendu kanporatzeko agindua domeinu honetako kontu guztiei
title: Desegin %{domain} domeinuko blokeoa
undo: Desegin
- title: Domeinuen blokeoak
undo: Desegin
email_domain_blocks:
add_new: Gehitu berria
@@ -291,11 +290,10 @@ eu:
create: Gehitu domeinua
title: Sarrera berria e-mail zerrenda beltzean
title: E-mail zerrenda beltza
+ followers:
+ back_to_account: Itzuli kontura
+ title: "%{acct} kontuaren jarraitzaileak"
instances:
- account_count: Kontu ezagunak
- domain_name: Domeinua
- reset: Berrezarri
- search: Bilatu
title: Instantzia ezagunak
invites:
deactivate_all: Desgaitu guztiak
@@ -378,6 +376,9 @@ eu:
preview_sensitive_media:
desc_html: Beste webguneetako esteken aurrebistak iruditxoa izango du multimedia hunkigarri gisa markatzen bada ere
title: Erakutsi multimedia hunkigarria OpenGraph aurrebistetan
+ profile_directory:
+ desc_html: Baimendu erabiltzaileak aurkigarriak izatea
+ title: Gaitu profil-direktorioa
registrations:
closed_message:
desc_html: Azaleko orrian bistaratua izen ematea ixten denean. HTML etiketak erabili ditzakezu
@@ -437,13 +438,21 @@ eu:
last_delivery: Azken bidalketa
title: WebSub
topic: Mintzagaia
- suspensions:
- bad_acct_msg: Berrespen balioa ez dator bat. Dagokion kontua kanporatzen ari zara?
- hint_html: 'Kontuaren kanporatzea berresteko, sartu %{value} beheko eremuan:'
- proceed: Jarraitu
- title: Kanporatu %{acct}
- warning_html: 'Kontu hau kanporatzeak behin betiko ezabatuko ditu kontu honetako datuak, hauek barne:'
+ tags:
+ accounts: Kontuak
+ hidden: Ezkutatuta
+ hide: Ezkutatu direktoriotik
+ name: Traola
+ title: Traolak
+ unhide: Erakutsi direktorioan
+ visible: Ikusgai
title: Administrazioa
+ warning_presets:
+ add_new: Gehitu berria
+ delete: Ezabatu
+ edit: Editatu
+ edit_preset: Editatu abisu aurre-ezarpena
+ title: Kudeatu abisu aurre-ezarpenak
admin_mailer:
new_report:
body: "%{reporter}(e)k %{target} salatu du"
@@ -521,6 +530,13 @@ eu:
success_msg: Zure kontua ongi ezabatu da
warning_html: Instantzia honetako edukiak ezabatzea besterik ezin da bermatu. Asko partekatu den edukiaren arrastoak geratzea izan liteke. Deskonektatuta dauden zerbitzariak edo zure eguneraketetatik harpidetza kendu duten zerbitzariek ez dituzte beraien datu-baseak eguneratuko.
warning_title: Sakabanatutako edukiaren eskuragarritasuna
+ directories:
+ directory: Profilen direktorioa
+ explanation: Deskubritu erabiltzaileak interesen arabera
+ explore_mastodon: Esploratu %{title}
+ people:
+ one: pertsona %{count}
+ other: "%{count} pertsona"
errors:
'403': Ez duzu orri hau ikusteko baimenik.
'404': Bilatu duzun orria ez da existitzen.
@@ -692,9 +708,6 @@ eu:
no_account_html: Ez duzu konturik? Izena eman dezakezu
proceed: Ekin jarraitzeari
prompt: 'Hau jarraituko duzu:'
- remote_interaction:
- proceed: Jarraitu interakziora
- prompt: 'Toot honekin interakzioa nahi duzu:'
remote_unfollow:
error: Errorea
title: Izenburua
@@ -790,7 +803,7 @@ eu:
stream_entries:
pinned: Finkatutako toot-a
reblogged: "(r)en bultzada"
- sensitive_content: Eduki hunkigarria
+ sensitive_content: 'Kontuz: Eduki hunkigarria'
terms:
body_html: |
Pribatutasun politika
@@ -903,6 +916,19 @@ eu:
explanation: Zure Mastodon kontuaren babes-kopia osoa eskatu duzu. Deskargatzeko prest dago!
subject: Zure artxiboa deskargatzeko prest dago
title: Artxiboa jasotzea
+ 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.
+ review_server_policies: Berrikusi zerbitzariko politikak
+ subject:
+ disable: Zure %{acct} kontua izoztu da
+ none: "%{acct} konturako abisua"
+ silence: Zure %{acct} kontua murriztu da
+ title:
+ disable: Kontu izoztua
+ none: Abisua
+ silence: Kontu murriztua
welcome:
edit_profile_action: Ezarri profila
edit_profile_step: Pertsonalizatu profila abatar bat igoz, goiburu bat, zure pantaila-izena aldatuz eta gehiago. Jarraitzaile berriak onartu aurretik gainbegiratu nahi badituzu, kontua giltzaperatu dezakezu.
@@ -914,7 +940,6 @@ eu:
review_preferences_action: Aldatu hobespenak
review_preferences_step: Ziurtatu hobespenak ezartzen dituzula, jaso nahi dituzu e-mail mezuak, lehenetsitako pribatutasuna mezu berrietarako. Mareatzen ez bazaitu GIF-ak automatikoki abiatzea ezarri dezakezu ere.
subject: Ongi etorri Mastodon-era
- tip_bridge_html: Twitter-etik bazatoz, Mastodon-en lagunak aurkitu ditzakezu zubi aplikazioa erabiliz. Beraiek ere zubi aplikazioa erabili badute dabil besterik ez!
tip_federated_timeline: Federatutako denbora-lerroan Mastodon sarearen trafikoa ikusten da. Baina zure instantziako auzokideak jarraitutakoak besterik ez daude hor, ez da osoa.
tip_following: Lehenetsita zerbitzariko administratzailea jarraitzen duzu. Jende interesgarri gehiago aurkitzeko, egiaztatu denbora-lerro lokala eta federatua.
tip_local_timeline: Denbora-lerro lokalean %{instance} instantziako trafikoa ikusten da. Hauek zure instantziako auzokideak dira!
diff --git a/config/locales/fa.yml b/config/locales/fa.yml
index 4209a2c00..e7dd86025 100644
--- a/config/locales/fa.yml
+++ b/config/locales/fa.yml
@@ -123,10 +123,6 @@ fa:
most_recent_ip: آخرین IP ها
no_limits_imposed: بدون محدودیت
not_subscribed: عضو نیست
- order:
- alphabetic: الفبایی
- most_recent: تازهترینها
- title: ترتیب
outbox_url: نشانی صندوق خروجی
perform_full_suspension: تعلیق
profile_url: نشانی نمایه
@@ -154,7 +150,6 @@ fa:
shared_inbox_url: نشانی صندوق ورودی مشترک
show:
created_reports: گزارشها از طرف این حساب
- report: گزارش
targeted_reports: گزارشها دربارهٔ این حساب
silence: بیصدا
silenced: بیصداشده
@@ -265,11 +260,6 @@ fa:
reject_media_hint: تصویرهای ذخیرهشده در اینجا را پاک میکند و جلوی دریافت تصویرها را در آینده میگیرد. بیتأثیر برای معلقشدهها
reject_reports: نپذیرفتن گزارشها
reject_reports_hint: گزارشهایی را که از این دامین میآید نادیده میگیرد. بیتأثیر برای معلقشدهها
- severities:
- noop: هیچ
- silence: بیصداکردن
- suspend: معلقکردن
- severity: شدت
show:
affected_accounts:
one: روی یک حساب در پایگاه داده تأثیر گذاشت
@@ -279,7 +269,6 @@ fa:
suspend: معلقشدن همهٔ حسابهای این دامین را لغو کن
title: واگردانی مسدودسازی دامنه برای %{domain}
undo: واگردانی
- title: دامینهای مسدودشده
undo: واگردانی
email_domain_blocks:
add_new: افزودن تازه
@@ -292,10 +281,6 @@ fa:
title: مسدودسازی دامین ایمیل تازه
title: مسدودسازی دامینهای ایمیل
instances:
- account_count: حسابهای شناختهشده
- domain_name: دامین
- reset: بازنشانی
- search: جستجو
title: سرورهای شناختهشده
invites:
deactivate_all: غیرفعالکردن همه
@@ -437,12 +422,6 @@ fa:
last_delivery: آخرین ارسال
title: WebSub
topic: موضوع
- suspensions:
- bad_acct_msg: محتوایی که برای تأیید وارد کردید منطبق نبود. آیا دارید حساب درستی را معلق میکنید؟
- hint_html: 'برای تأیید معلقکردن حساب، لطفاً در کادر زیر %{value} را وارد کنید:'
- proceed: ادامه
- title: معلقکردن %{acct}
- warning_html: 'معلقکردن این حساب برای همیشه دادههایش را پاک میکند. دادههایی شامل:'
title: مدیریت سرور
admin_mailer:
new_report:
@@ -692,9 +671,6 @@ fa:
no_account_html: هنوز عضو نیستید؟ اینجا میتوانید حساب باز کنید
proceed: درخواست پیگیری
prompt: 'شما قرار است این حساب را پیگیری کنید:'
- remote_interaction:
- proceed: ادامهٔ برهمکنش
- prompt: 'شما میخواهید دربارهٔ این بوق کاری کنید:'
remote_unfollow:
error: خطا
title: عنوان
@@ -833,7 +809,6 @@ fa:
review_preferences_action: تغییر ترجیحات
review_preferences_step: با رفتن به صفحهٔ ترجیحات میتوانید چیزهای گوناگونی را تنظیم کنید. مثلاً این که چه ایمیلهای آگاهسازیای به شما فرستاده شود، یا حریم خصوصی پیشفرض نوشتههایتان چه باشد. اگر بیماری سفر (حالت تهوع بر اثر دیدن اجسام متحرک) ندارید، میتوانید پخش خودکار ویدیوها را فعال کنید.
subject: به ماستدون خوش آمدید
- tip_bridge_html: اگر پیش از این کاربر توییتر بودید، میتوانید دوستان توییتری خود را که در ماستدون هستند به کمک bridge app پیدا کنید. البته این فقط وقتی کار میکند که آنها هم این اپ را به کار برده باشند!
tip_federated_timeline: "«فهرست نوشتههای همهجا» نمایی از کل شبکهٔ بزرگ ماستدون به شما میدهد. البته این فهرست فقط افردای را نشان میدهد که همسروریهای شما آنها را پیگیری میکنند، و بنابراین ممکن است کامل نباشد."
tip_following: شما به طور پیشفرض مدیر(های) سرور خود را پی میگیرید. برای یافتن افراد جالب دیگر، فهرست «نوشتههای محلی» و «نوشتههای همهجا» را ببینید.
tip_local_timeline: فهرست نوشتههای محلی نمایی کلی از کاربران روی %{instance} را ارائه میدهد. اینها همسایههای شما هستند!
@@ -848,5 +823,5 @@ fa:
seamless_external_login: شما با یک سرویس خارج از مجموعه وارد شدهاید، به همین دلیل تنظیمات ایمیل و رمز برای شما در دسترس نیست.
signed_in_as: 'واردشده به نام:'
verification:
- explanation_html: 'شما میتوانید خود را به عنوان مالک صفحهای که در نمایهتان به آن پیوند دادهاید تأیید کنید. برای این کار، صفحهای که به آن پیوند دادهاید، خودش باید پیوندی به نمایهٔ ماستدون شما داشته باشد. پیوند در آن صفحه باید عبارت rel="me" را به عنوان attribute در خود داشته باشد. محتوای متن پیوند اهمتی ندارد. یک نمونه از چنین پیوندی:'
+ explanation_html: 'شما میتوانید خود را به عنوان مالک صفحهای که در نمایهتان به آن پیوند دادهاید تأیید کنید. برای این کار، صفحهای که به آن پیوند دادهاید، خودش باید پیوندی به نمایهٔ ماستدون شما داشته باشد. پیوند در آن صفحه باید عبارت rel="me" را به عنوان attribute در خود داشته باشد. محتوای متن پیوند اهمتی ندارد. یک نمونه از چنین پیوندی:'
verification: تأیید
diff --git a/config/locales/fi.yml b/config/locales/fi.yml
index c90490212..e7b8b18ae 100644
--- a/config/locales/fi.yml
+++ b/config/locales/fi.yml
@@ -102,10 +102,6 @@ fi:
most_recent_activity: Viimeisin toiminta
most_recent_ip: Viimeisin IP
not_subscribed: Ei tilaaja
- order:
- alphabetic: Aakkosjärjestys
- most_recent: Uusin
- title: Järjestys
outbox_url: Lähtevän postilaatikon osoite
perform_full_suspension: Siirrä kokonaan jäähylle
profile_url: Profiilin osoite
@@ -133,7 +129,6 @@ fi:
shared_inbox_url: Jaetun saapuvan postilaatikon osoite
show:
created_reports: Tämän tilin luomat raportit
- report: raportti
targeted_reports: Tästä tilistä tehdyt raportit
silence: Hiljennä
statuses: Tilat
@@ -216,11 +211,6 @@ fi:
title: Uusi verkkotunnuksen esto
reject_media: Hylkää mediatiedostot
reject_media_hint: Poistaa paikallisesti tallennetut mediatiedostot eikä lataa niitä enää jatkossa. Ei merkitystä jäähyn kohdalla
- severities:
- noop: Ei mitään
- silence: Hiljennys
- suspend: Jäähy
- severity: Vakavuus
show:
affected_accounts:
one: Vaikuttaa yhteen tiliin tietokannassa
@@ -230,7 +220,6 @@ fi:
suspend: Peru kaikkien tässä verkkotunnuksessa jo olemassa olevien tilien jäähy
title: Peru verkkotunnuksen %{domain} esto
undo: Peru
- title: Verkkotunnusten estot
undo: Peru
email_domain_blocks:
add_new: Lisää uusi
@@ -243,10 +232,6 @@ fi:
title: Uusi sähköpostiestolistan merkintä
title: Sähköpostiestolista
instances:
- account_count: Tiedossa olevat tilit
- domain_name: Verkkotunnus
- reset: Palauta
- search: Hae
title: Tiedossa olevat instanssit
invites:
filter:
@@ -713,7 +698,6 @@ fi:
review_preferences_action: Muuta asetuksia
review_preferences_step: Käy tarkistamassa, että asetukset ovat haluamallasi tavalla. Voit valita, missä tilanteissa haluat saada sähköpostia, mikä on julkaisujesi oletusnäkyvyys jne. Jos et saa helposti pahoinvointia, voit valita, että GIF-animaatiot toistetaan automaattisesti.
subject: Tervetuloa Mastodoniin
- tip_bridge_html: Jos tulet Twitteristä, voit etsiä ystäviäsi Mastodonista siltasovelluksen avulla. Se kuitenkin löytää heidät vain, jos hekin käyttävät sitä!
tip_federated_timeline: Yleinen aikajana näyttää sisältöä koko Mastodon-verkostosta. Siinä näkyvät kuitenkin vain ne henkilöt, joita oman instanssisi käyttäjät seuraavat. Siinä ei siis näytetä aivan kaikkea.
tip_following: Oletusarvoisesti seuraat oman palvelimesi ylläpitäjiä. Etsi lisää kiinnostavia ihmisiä paikalliselta ja yleiseltä aikajanalta.
tip_local_timeline: Paikallinen aikajana näyttää instanssin %{instance} käyttäjien julkaisut. He ovat naapureitasi!
diff --git a/config/locales/fr.yml b/config/locales/fr.yml
index e3128b569..d0c7289c8 100644
--- a/config/locales/fr.yml
+++ b/config/locales/fr.yml
@@ -48,6 +48,7 @@ fr:
other: Abonné⋅e⋅s
following: Abonnements
joined: Inscrit·e en %{date}
+ last_active: actif dernièrement
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} :"
@@ -69,6 +70,9 @@ fr:
moderator: Modérateur·trice
unfollow: Ne plus suivre
admin:
+ account_actions:
+ action: Effectuer une action
+ title: Effectuer une action de modération sur %{acct}
account_moderation_notes:
create: Laisser un commentaire
created_msg: Note de modération créée avec succès !
@@ -101,8 +105,10 @@ fr:
enabled: Activé
feed_url: URL du flux
followers: Abonné⋅e⋅s
+ followers_local: "(%{local} local)"
followers_url: URL des abonné·e·s
follows: Abonnements
+ header: Entête
inbox_url: URL d’entrée
ip: Adresse IP
location:
@@ -114,6 +120,7 @@ fr:
media_attachments: Fichiers médias
memorialize: Convertir en mémorial
moderation:
+ active: Actif
all: Tous
silenced: Masqués
suspended: Suspendus
@@ -123,10 +130,6 @@ fr:
most_recent_ip: Adresse IP la plus récente
no_limits_imposed: Aucune limite imposée
not_subscribed: Non abonné
- order:
- alphabetic: Alphabétique
- most_recent: Plus récent
- title: Tri
outbox_url: URL de sortie
perform_full_suspension: Suspendre
profile_url: URL du profil
@@ -136,6 +139,7 @@ fr:
push_subscription_expires: Expiration de l’abonnement PuSH
redownload: Rafraîchir les avatars
remove_avatar: Supprimer l’avatar
+ remove_header: Supprimer l'entête
resend_confirmation:
already_confirmed: Cet·te utilisateur·ice est déjà confirmé·e
send: Renvoyer un courriel de confirmation
@@ -154,7 +158,6 @@ fr:
shared_inbox_url: URL de la boite de réception partagée
show:
created_reports: Signalements créés par ce compte
- report: signalement
targeted_reports: Signalements créés visant ce compte
silence: Masquer
silenced: Silencié
@@ -173,6 +176,7 @@ fr:
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}"
+ create_account_warning: "%{name} a envoyé une attention à %{target}"
create_custom_emoji: "%{name} a importé de nouveaux émojis %{target}"
create_domain_block: "%{name} a bloqué le domaine %{target}"
create_email_domain_block: "%{name} a mis le domaine du courriel %{target} sur liste noire"
@@ -191,7 +195,7 @@ fr:
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}"
- resolve_report: "%{name} a résolu la dénonciation de %{target}"
+ resolve_report: "%{name} a résolu le signalement %{target}"
silence_account: "%{name} a mis le compte %{target} en mode silence"
suspend_account: "%{name} a suspendu le compte %{target}"
unassigned_report: "%{name} a désassigné le signalement %{target}"
@@ -231,6 +235,7 @@ fr:
config: Configuration
feature_deletions: Suppressions de comptes
feature_invites: Liens d’invitation
+ feature_profile_directory: Annuaire des profils
feature_registrations: Inscriptions
feature_relay: Relais de fédération
features: Fonctionnalités
@@ -265,11 +270,6 @@ fr:
reject_media_hint: Supprime localement les fichiers média stockés et refuse d’en télécharger ultérieurement. Ne concerne pas les suspensions
reject_reports: Rapports de rejet
reject_reports_hint: Ignorez tous les rapports provenant de ce domaine. Sans objet pour les suspensions
- severities:
- noop: Aucune
- silence: Masquer
- suspend: Suspendre
- severity: Séverité
show:
affected_accounts:
one: Un compte affecté dans la base de données
@@ -279,7 +279,6 @@ fr:
suspend: Annuler la suspension sur tous les comptes existants pour ce domaine
title: Annuler le blocage de domaine pour %{domain}
undo: Annuler
- title: Blocage de domaines
undo: Annuler
email_domain_blocks:
add_new: Ajouter
@@ -291,11 +290,10 @@ fr:
create: Créer le blocage
title: Nouveau blocage de domaine de courriel
title: Blocage de domaines de courriel
+ followers:
+ back_to_account: Retour au compte
+ title: Abonné⋅e⋅s de %{acct}
instances:
- account_count: Comptes connus
- domain_name: Domaine
- reset: Réinitialiser
- search: Rechercher
title: Instances connues
invites:
deactivate_all: Tout désactiver
@@ -378,6 +376,9 @@ fr:
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
+ profile_directory:
+ desc_html: Permettre aux utilisateurs d'être découverts
+ title: Activer l'annuaire des profils
registrations:
closed_message:
desc_html: Affiché sur la page d’accueil lorsque les inscriptions sont fermées Vous pouvez utiliser des balises HTML
@@ -437,13 +438,21 @@ fr:
last_delivery: Dernière livraison
title: WebSub
topic: Sujet
- suspensions:
- bad_acct_msg: La valeur de confirmation n'a pas correspondu. Êtes-vous certain de suspendre le bon compte ?
- hint_html: 'Pour confirmer la suspension du compte, veuillez entrer %{value} dans le champ ci-dessous :'
- proceed: Traité
- title: Suspension de %{acct}
- warning_html: 'Suspendre ce compte effacera irréversiblement les données de ce compte, ce qui inclut :'
+ tags:
+ accounts: Comptes
+ hidden: Masqué
+ hide: Masquer dans l'annuaire
+ name: Hashtag
+ title: Hashtags
+ unhide: Afficher dans l'annuaire
+ visible: Visible
title: Administration
+ warning_presets:
+ add_new: Ajouter un nouveau
+ delete: Effacer
+ edit: Éditer
+ edit_preset: Éditer la présélection d'attention
+ title: Gérer les présélections d'attention
admin_mailer:
new_report:
body: "%{reporter} a signalé %{target}"
@@ -521,6 +530,13 @@ fr:
success_msg: Votre compte a été supprimé avec succès
warning_html: Seule la suppression du contenu depuis cette instance est garantie. Le contenu qui a été partagé est susceptible de laisser des traces. Les serveurs hors-ligne ainsi que ceux n’étant plus abonnés à vos publications ne mettront pas leur base de données à jour.
warning_title: Disponibilité du contenu disséminé
+ directories:
+ directory: Annuaire des profils
+ explanation: Découvrir des utilisateurs en se basant sur leurs centres d'intérêt
+ explore_mastodon: Explorer %{title}
+ people:
+ one: "%{count} personne"
+ other: "%{count} personne"
errors:
'403': Vous n’avez pas accès à cette page.
'404': La page que vous recherchez n’existe pas.
@@ -692,9 +708,6 @@ fr:
no_account_html: Vous n’avez pas de compte ? Vous pouvez vous inscrire ici
proceed: Confirmer l’abonnement
prompt: 'Vous allez suivre :'
- remote_interaction:
- proceed: Confirmer l’interaction
- prompt: 'Vous désirez interagir avec ce pouet :'
remote_unfollow:
error: Erreur
title: Titre
@@ -903,6 +916,22 @@ fr:
explanation: Vous avez demandé une sauvegarde complète de votre compte Mastodon. Elle est maintenant prête à être téléchargée !
subject: Votre archive est prête à être téléchargée
title: Récupération de l’archive
+ 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.
+ review_server_policies: Passer en revue les politiques du serveur
+ subject:
+ disable: Votre compte %{acct} a été gelé
+ none: Avertissement pour %{acct}
+ silence: Votre compte %{acct} a été limité
+ suspend: Votre compte %{acct} a été suspendu
+ title:
+ disable: Compte gelé
+ none: Avertissement
+ silence: Compte limité
+ suspend: Compte suspendu
welcome:
edit_profile_action: Configuration du profil
edit_profile_step: Vous pouvez personnaliser votre profil en téléchargeant un avatar, une image d’en-tête, en changeant votre pseudo et plus encore. Si vous souhaitez examiner les nouveaux·lles abonné·e·s avant qu’il·elle·s ne soient autorisé·e·s à vous suivre, vous pouvez verrouiller votre compte.
@@ -914,7 +943,6 @@ fr:
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.
subject: Bienvenue sur Mastodon
- tip_bridge_html: Si vous venez de Twitter, vous pouvez retrouver vos ami·e·s sur Mastodon en utilisant l’application de mise en relation. Cela ne fonctionne que s’il·elle·s ont aussi utilisé cette application !
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.
tip_local_timeline: Le fil public local est une vue des personnes sur %{instance}. Ce sont vos voisines et voisins immédiats !
diff --git a/config/locales/gl.yml b/config/locales/gl.yml
index b9b9a37ad..df5f04bae 100644
--- a/config/locales/gl.yml
+++ b/config/locales/gl.yml
@@ -48,6 +48,7 @@ gl:
other: Seguidoras
following: Seguindo
joined: Uneuse %{date}
+ last_active: última actividade
link_verified_on: A propiedade de esta ligazón foi comprobada en %{date}
media: Medios
moved_html: "%{name} mudouse a %{new_profile_link}:"
@@ -69,6 +70,9 @@ gl:
moderator: Mod
unfollow: Deixar de seguir
admin:
+ account_actions:
+ action: Realizar acción
+ title: Realizar acción de moderación sobre %{acct}
account_moderation_notes:
create: Deixar nota
created_msg: Nota a moderación creada con éxito!
@@ -101,8 +105,10 @@ gl:
enabled: Habilitado
feed_url: URL fonte
followers: Seguidoras
+ followers_local: "(local %{local})"
followers_url: URL das seguidoras
follows: Segue
+ header: Cabeceira
inbox_url: URL da Caixa de entrada
ip: IP
location:
@@ -114,6 +120,7 @@ gl:
media_attachments: Anexos de medios
memorialize: Convertir a lembranza
moderation:
+ active: Activa
all: Todo
silenced: Acalado
suspended: Suspendido
@@ -123,10 +130,6 @@ gl:
most_recent_ip: IP máis recente
no_limits_imposed: Sen límites impostos
not_subscribed: Non suscrita
- order:
- alphabetic: Alfabética
- most_recent: Máis recente
- title: Orde
outbox_url: URL caixa de saída
perform_full_suspension: Suspender
profile_url: URL do perfil
@@ -136,6 +139,7 @@ gl:
push_subscription_expires: A suscrición PuSH caduca
redownload: Actualizar avatar
remove_avatar: Eliminar avatar
+ remove_header: Eliminar cabeceira
resend_confirmation:
already_confirmed: Este usuario ya está confirmado
send: Reenviar el correo electrónico de confirmación
@@ -154,7 +158,6 @@ gl:
shared_inbox_url: URL da caixa de entrada compartida
show:
created_reports: Informes creados por esta conta
- report: informar
targeted_reports: Informes feitos sobre esta conta
silence: Acalar
silenced: Acalada
@@ -173,6 +176,7 @@ gl:
assigned_to_self_report: "%{name} asignou o informe %{target} a ela misma"
change_email_user: "%{name} cambiou o enderezo de correo-e da usuaria %{target}"
confirm_user: "%{name} comfirmou o enderezo de correo da usuaria %{target}"
+ create_account_warning: "%{name} enviou un aviso sobre %{target}"
create_custom_emoji: "%{name} subeu un novo emoji %{target}"
create_domain_block: "%{name} bloqueou o dominio %{target}"
create_email_domain_block: "%{name} engadeu a lista negra o dominio de correo %{target}"
@@ -217,20 +221,21 @@ gl:
image_hint: PNG ate 50KB
listed: Listado
new:
- title: Engadir novo emoji personalizado
+ title: Engadir novo emoji persoalizado
overwrite: Sobrescribir
shortcode: Código corto
shortcode_hint: Cando menos 2 caracteres, só caracteres alfanuméricos e subliñados
- title: Emojis personalizados
+ title: Emojis persoalizados
unlisted: Non listado
update_failed_msg: Non se puido actualizar ese emoji
updated_msg: Actualizouse correctamente o emoji!
upload: Subir
dashboard:
- backlog: backlogged jobs
+ backlog: traballos respaldados
config: Axustes
feature_deletions: Borrado de contas
feature_invites: Ligazóns de convite
+ feature_profile_directory: Directorio do perfil
feature_registrations: Rexistros
feature_relay: Repetidores de federación
features: Características
@@ -265,11 +270,6 @@ gl:
reject_media_hint: Eliminar ficheiros de medios almacenados localmente e rexeita descargalos no futuro. Irrelevante para as suspensións
reject_reports: Rexeitar informes
reject_reports_hint: Ignorar todos os informes procedentes de este dominio. Irrelevante para as suspensións
- severities:
- noop: Ningún
- silence: Silenciar
- suspend: Suspender
- severity: Severidade
show:
affected_accounts:
one: Afectoulle a unha conta na base de datos
@@ -279,7 +279,6 @@ gl:
suspend: Non suspender todas as contas existentes de este dominio
title: Desfacer o bloqueo de dominio para %{domain}
undo: Desfacer
- title: Bloqueos de domino
undo: Desfacer
email_domain_blocks:
add_new: Engadir novo
@@ -291,11 +290,10 @@ gl:
create: Engadir dominio
title: Nova entrada la lista negra de e-mail
title: Lista negra de E-mail
+ followers:
+ back_to_account: Voltar a Conta
+ title: Seguidoras de %{acct}
instances:
- account_count: Contas coñecidas
- domain_name: Dominio
- reset: Restablecer
- search: Buscar
title: Instancias coñecidas
invites:
deactivate_all: Desactivar todo
@@ -365,7 +363,7 @@ gl:
username: Nome de usuaria de contacto
custom_css:
desc_html: Modificar o aspecto con CSS cargado en cada páxina
- title: CSS personalizado
+ title: CSS persoalizado
hero:
desc_html: Mostrado na portada. Recoméndase 600x100px como mínimo. Si non se establece, mostrará a imaxe por omisión da instancia
title: Imáxe Heróe
@@ -378,6 +376,9 @@ gl:
preview_sensitive_media:
desc_html: A vista previa de ligazóns de outros sitios web mostrará unha imaxe incluso si os medios están marcados como sensibles
title: Mostrar medios sensibles con vista previa OpenGraph
+ profile_directory:
+ desc_html: Permitir que as usuarias poidan ser descubertas
+ 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
@@ -402,13 +403,13 @@ gl:
title: Descrición da instancia
site_description_extended:
desc_html: Un bo lugar para o seu código de conducta, regras, guías e outras cousas que distingan a súa instancia. Pode utilizar etiquetas HTML
- title: Información extendida da personalización
+ title: Información extendida da persoalización
site_short_description:
desc_html: Mostrado na barra lateral e nas etiquetas meta. Describe o que é Mastodon e que fai especial a este servidor nun só parágrafo. Si está baldeiro, mostrará a descrición da instancia.
title: Descrición curta da instancia
site_terms:
desc_html: Pode escribir a súa propia política de intimidade, termos de servizo ou aclaracións legais. Pode utilizar etiquetas HTML
- title: Termos de servizo personalizados
+ title: Termos de servizo persoalizados
site_title: Nome da instancia
thumbnail:
desc_html: Utilizado para vistas previsas vía OpenGraph e API. Recoméndase 1200x630px
@@ -437,13 +438,21 @@ gl:
last_delivery: Última entrega
title: WebSub
topic: Asunto
- suspensions:
- bad_acct_msg: O valor de confirmación non é coincidente. Está a suspender a conta correcta?
- hint_html: 'Para confirmar a suspensión da conta introduza %{value} no campo inferior:'
- proceed: Proceder
- title: Suspender %{acct}
- warning_html: 'Ao suspender esta conta eliminará de xeito irreversible os datos de esta conta, que inclúe:'
+ tags:
+ accounts: Contas
+ hidden: Ocultas
+ hide: Ocultar do directorio
+ name: Etiqueta
+ title: Etiquetas
+ unhide: Mostrar en directorio
+ visible: Visible
title: Administración
+ warning_presets:
+ add_new: Engadir novo
+ delete: Eliminar
+ edit: Editar
+ edit_preset: Editar aviso preestablecido
+ title: Xestionar avisos preestablecidos
admin_mailer:
new_report:
body: "%{reporter} informou sobre %{target}"
@@ -521,6 +530,13 @@ gl:
success_msg: A súa conta eliminouse correctamente
warning_html: Só se garantiza a eliminación de contido de esta instancia. O contido que foi compartido con outras instancias é probable que deixe rastros. O servidores fora de liña e servidores que se desuscribiron das súas actualizacións non actualizarán as súas bases de datos.
warning_title: Dispoñibilidade do contido espallado
+ directories:
+ directory: Directorio de perfil
+ explanation: Descubra usuarias según o seu interese
+ explore_mastodon: Explorar %{title}
+ people:
+ one: "%{count} persoa"
+ other: "%{count} persoas"
errors:
'403': Non ten permiso para ver esta páxina.
'404': A páxina que está a buscar non existe.
@@ -692,9 +708,6 @@ gl:
no_account_html: Non ten unha conta? Pode rexistrarse aquí
proceed: Proceda para seguir
prompt: 'Vostede vai seguir:'
- remote_interaction:
- proceed: Proceda para interactuar
- prompt: 'Vostede quere interactuar con este toot:'
remote_unfollow:
error: Fallo
title: Título
@@ -810,7 +823,7 @@ gl:
Toda a información que recollemos podería ser utilizada dos seguintes xeitos:
-
Para proporcionar a funcionabiliade básica de Mastodon. Só pode interactuar co contido de outra xente e publicar o seu propio contido si está conectada. Por exemplo, podería seguir outra xente e ver as súas publicacións combinadas nunha liña temporal inicial personalizada.
+
Para proporcionar a funcionabiliade básica de Mastodon. Só pode interactuar co contido de outra xente e publicar o seu propio contido si está conectada. Por exemplo, podería seguir outra xente e ver as súas publicacións combinadas nunha liña temporal inicial persoalizada.
Para axudar a moderar a comunidade, por exemplo comparando o seu enderezo IP con outros coñecidos para evitar esquivar os rexeitamentos ou outras infraccións.
O endero de correo electrónico que nos proporciona podería ser utilizado para enviarlle información, notificacións sobre outra xente que interactúa cos seus contidos ou lle envía mensaxes, e para respostar a consultas, e/ou outras cuestións ou peticións.
@@ -819,7 +832,7 @@ gl:
Cómo proxetemos os seus datos?
-
Implementamos varias medidas de seguridade para protexer os seus datos personais cando introduce, envía ou accede a súa información personal. Entre outras medidas, a súa sesión de navegación, así como o tráfico entre os seus aplicativos e o API están aseguradas mediante SSL, e o seu contrasinal está camuflado utilizando un algoritmo potente de unha sóa vía. Pode habilitar a autenticación de doble factor para protexer o acceso a súa conta aínda máis.
+
Implementamos varias medidas de seguridade para protexer os seus datos personais cando introduce, envía ou accede a súa información persoal. Entre outras medidas, a súa sesión de navegación, así como o tráfico entre os seus aplicativos e o API están aseguradas mediante SSL, e o seu contrasinal está camuflado utilizando un algoritmo potente de unha sóa vía. Pode habilitar a autenticación de doble factor para protexer o acceso a súa conta aínda máis.
@@ -903,9 +916,25 @@ gl:
explanation: Solicitou un respaldo completo da súa conta de Mastodon. Xa está listo para descargar!
subject: O seu ficheiro xa está listo para descargar
title: Leve o ficheiro
+ warning:
+ explanation:
+ disable: Cando a súa conta está conxelada, os datos permanecen intactos, pero non pode levar a fin accións ate que se desbloquea.
+ silence: Mentras a conta está limitada, só a xente que actualmente a segue verá os seus toots en este servidor, e vostede podería estar excluída de varias listas públicas. Porén, outras persoas poderíana seguila de xeito manual.
+ suspend: A súa conta foi suspendida, e todos os seus toots e medios subidos foron eliminados de este servidor de xeito irreversible, e dos servidores onde tivese seguidoras.
+ review_server_policies: Revisar políticas do servidor
+ subject:
+ disable: A súa conta %{acct} foi conxelada
+ none: Aviso para %{acct}
+ silence: A súa conta %{acct} foi limitada
+ suspend: A súa conta %{acct} foi suspendida
+ title:
+ disable: Conta conxelada
+ none: Aviso
+ silence: Conta limitada
+ suspend: Conta suspendida
welcome:
edit_profile_action: Configurar perfil
- edit_profile_step: Vostede pode personalizar o seu perfil subindo un avatar, cabeceira, cambiar o seu nome público e aínda máis. Si restrinxe a súa conta pode revisar a conta das personas que solicitan seguilas antes de permitirlles o acceso aos seus toots.
+ edit_profile_step: Vostede pode persoalizar o seu perfil subindo un avatar, cabeceira, cambiar o seu nome público e aínda máis. Si restrinxe a súa conta pode revisar a conta das personas que solicitan seguilas antes de permitirlles o acceso aos seus 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.'
@@ -914,7 +943,6 @@ gl:
review_preferences_action: Cambiar preferencias
review_preferences_step: Lembre establecer as preferencias, tales como qué correos-e lle querería recibir, ou o nivel de intimidade por omisión para as súas mensaxes. Se non lle molestan as imaxes con movemento, pode escoller que os GIF se reproduzan automáticamente.
subject: Benvida a Mastodon
- tip_bridge_html: Si chega desde a Twitter, pode atopar aos seus amigos en Mastodon utilizando o aplicativo ponte. Só funciona si eles tamén utilizan o aplicativo ponte!
tip_federated_timeline: A liña temporal federada é unha visión ampla da rede Mastodon. Pero so inclúe xente a que segue xente que vostede segue, así que non é completa.
tip_following: Por omisión vostede segue ao Admin do seu servidor. Para atopar máis xente interesante, mire nas liñas temporais local e federada.
tip_local_timeline: A liña temporal local é unha ollada xeral sobre a xente en %{instance}. Son as súas veciñas máis próximas!
diff --git a/config/locales/he.yml b/config/locales/he.yml
index 79b1ed822..bc92ed908 100644
--- a/config/locales/he.yml
+++ b/config/locales/he.yml
@@ -95,10 +95,6 @@ he:
most_recent_activity: פעילות עדכנית
most_recent_ip: כתובות אחרונות
not_subscribed: לא רשום
- order:
- alphabetic: אלפביתי
- most_recent: עדכני
- title: סידור
outbox_url: כתובת תיבת דואר יוצא
perform_full_suspension: ביצוע השעייה מלאה
profile_url: כתובת פרופיל
@@ -124,7 +120,6 @@ he:
shared_inbox_url: תיבה משותפת לדואר נכנס
show:
created_reports: דיווחים מאת חשבון זה
- report: דו"ח
targeted_reports: דיווחים נגד חשבון זה
silence: השתקה
statuses: הודעות
@@ -161,10 +156,6 @@ he:
title: חסימת שרת חדשה
reject_media: חסימת קבצי מדיה
reject_media_hint: מסירה קבצי מדיה השמורים מקומית ומונעת מהורדת קבצים נוספים בעתיד. לא רלוונטי להשעיות
- severities:
- silence: השתקה
- suspend: השעייה
- severity: חוּמרה
show:
affected_accounts:
one: חשבון אחד במסד הנתונים מושפע
@@ -174,11 +165,8 @@ he:
suspend: הסרת השעייה מכל החשבונות על שרת זה
title: ביטול חסימת שרת עבור %{domain}
undo: ביטול
- title: חסימת שרתים
undo: ביטול
instances:
- account_count: חשבונות מוכרים
- domain_name: שם מתחם
title: שרתים מוכרים
reports:
are_you_sure: 100% על בטוח?
@@ -297,7 +285,7 @@ he:
too_many: לא ניתן להוסיף יותר מארבעה קבצים
notification_mailer:
digest:
- body: 'להלן סיכום זריז של הדברים שקרו על מאז ביקורך האחרון ב-%{since}:'
+ body: להלן סיכום זריז של הדברים שקרו על מאז ביקורך האחרון ב-%{since}
mention: "%{name} פנה אליך ב:"
new_followers_summary:
one: נוסף לך עוקב! סחתיין!
diff --git a/config/locales/hi.yml b/config/locales/hi.yml
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/config/locales/hi.yml
@@ -0,0 +1 @@
+{}
diff --git a/config/locales/hr.yml b/config/locales/hr.yml
index 729206a98..38971833c 100644
--- a/config/locales/hr.yml
+++ b/config/locales/hr.yml
@@ -72,7 +72,7 @@ hr:
upload: Upload
notification_mailer:
digest:
- body: 'Ovo je kratak sažetak propuštenog od tvog prošlog posjeta %{since}:'
+ body: Ovo je kratak sažetak propuštenog od tvog prošlog posjeta %{since}
mention: "%{name} te je spomenuo:"
new_followers_summary: Imaš %{count} novih sljedbenika! Prekrašno!
subject: "%{count} novih notifikacija od tvog prošlog posjeta \U0001F418"
diff --git a/config/locales/hu.yml b/config/locales/hu.yml
index faa52fabc..79363b9ee 100644
--- a/config/locales/hu.yml
+++ b/config/locales/hu.yml
@@ -92,10 +92,6 @@ hu:
most_recent_activity: Legutóbbi tevékenységek
most_recent_ip: Legutóbbi IP-cím
not_subscribed: Nincs feliratkozás
- order:
- alphabetic: Alfabetikus
- most_recent: Legutóbbi
- title: Rendezés
outbox_url: Kimenő üzenetek URL
perform_full_suspension: Teljes felfüggesztés
profile_url: Profil URL
@@ -122,7 +118,6 @@ hu:
shared_inbox_url: Bejövő üzenetek URL keresése
show:
created_reports: Ezen fiók által létrehozott jelentések
- report: jelentés
targeted_reports: Jelentések ezzel a fiókkal kapcsolatban
silence: Némítás
statuses: Tülkök
@@ -200,11 +195,6 @@ hu:
title: Új domain-tiltás
reject_media: Médiafájlok elutasítása
reject_media_hint: Eltávolítja a helyben tárolt médiafájlokat és a továbbiakban letiltja az új médiafájlok letöltését. Felfüggesztett fiókok esetében irreleváns opció
- severities:
- noop: Egyik sem
- silence: Némítás
- suspend: Felfüggesztés
- severity: Súlyosság
show:
affected_accounts:
one: Összesen egy fiók érintett az adatbázisban
@@ -214,7 +204,6 @@ hu:
suspend: Minden felhasználó felfüggesztésének feloldása ezen a domainen
title: "%{domain} domain tiltásának feloldása"
undo: Visszavonás
- title: Tiltott domainek
undo: Visszavonás
email_domain_blocks:
add_new: Új hozzáadása
@@ -227,10 +216,6 @@ hu:
title: Új e-mail feketelista bejegyzés
title: E-mail feketelista
instances:
- account_count: Nyilvántartott fiókok
- domain_name: Domain
- reset: Visszaállítás
- search: Keresés
title: Nyilvántartott instanciák
invites:
filter:
@@ -635,7 +620,6 @@ hu:
review_preferences_action: Beállítások módosítása
review_preferences_step: Tekintsd át beállításaidat, például hogy milyen értesítéseket kérsz emailben vagy hogy alapértelmezettként mi legyen a tülkjeid adatvédelmi beállítása. Ha nem vagy szédülős alkat, azt is engedélyezheted, hogy automatikusan lejátsszuk a GIF-eket.
subject: Üdvözöl a Mastodon
- tip_bridge_html: Ha a Twitterről érkezel, használhatod alkalmazásunkat, amellyel megtalálhatod Twitteres barátaidat a Mastodonon. Az alkalmazás csak azon barátaidat tudja megtalálni, akik maguk is használták azt!
tip_federated_timeline: A nyilvános időfolyam a Mastodon ütőere, ahol minden tülk összefolyik. Nem teljes ugyan, mert csak azokat az emberek fogod látni, akiket instanciád többi felhasználója követ.
tip_following: Alapértelmezettként instanciád adminisztrátorait követed. Látogasd meg a helyi és a nyilvános időfolyamot, hogy más érdekes emberekre is rátalálj.
tip_local_timeline: A helyi időfolyam a saját instanciád (%{instance}) ütőere. Ezek a kedves emberek itt mind a szomszédaid!
diff --git a/config/locales/id.yml b/config/locales/id.yml
index 38b08a257..ae38b3f7d 100644
--- a/config/locales/id.yml
+++ b/config/locales/id.yml
@@ -50,10 +50,6 @@ id:
most_recent_activity: Aktivitas terbaru
most_recent_ip: IP terbaru
not_subscribed: Tidak berlangganan
- order:
- alphabetic: Alfabetik
- most_recent: Terbaru
- title: Urutan
perform_full_suspension: Lakukan suspen penuh
profile_url: URL profil
public: Publik
@@ -66,7 +62,6 @@ id:
salmon_url: URL Salmon
show:
created_reports: Laporan yang dibuat oleh akun ini
- report: laporan
targeted_reports: Laporan yang dibuat tentang akun ini
silence: Diam
statuses: Status
@@ -90,10 +85,6 @@ id:
title: Pemblokiran domain baru
reject_media: Tolak berkas media
reject_media_hint: Hapus file media yang tersimpan dan menolak semua unduhan nantinya. Tidak terpengaruh dengan suspen
- severities:
- silence: Diamkan
- suspend: Suspen
- severity: Keparahan
show:
affected_accounts:
one: Satu akun di dalam database terpengaruh
@@ -103,10 +94,7 @@ id:
suspend: Hapus suspen terhadap akun pada domain ini
title: Hapus pemblokiran domain %{domain}
undo: Undo
- title: Pemblokiran Domain
instances:
- account_count: Akun yang diketahui
- domain_name: Domain
title: Server yang diketahui
reports:
comment:
@@ -221,7 +209,7 @@ id:
too_many: Tidak dapat melampirkan lebih dari 4 file
notification_mailer:
digest:
- body: 'Ini adalah ringkasan singkat yang anda lewatkan pada sejak kunjungan terakhir anda pada %{since}:'
+ body: Ini adalah ringkasan singkat yang anda lewatkan pada sejak kunjungan terakhir anda pada %{since}
mention: "%{name} menyebut anda di:"
new_followers_summary:
one: Anda mendapatkan satu pengikut baru! Hore!
diff --git a/config/locales/io.yml b/config/locales/io.yml
index 0c1e6520b..73c981a98 100644
--- a/config/locales/io.yml
+++ b/config/locales/io.yml
@@ -44,10 +44,6 @@ io:
most_recent_activity: Most recent activity
most_recent_ip: Most recent IP
not_subscribed: Not subscribed
- order:
- alphabetic: Alphabetic
- most_recent: Most recent
- title: Order
perform_full_suspension: Perform full suspension
profile_url: Profile URL
public: Public
@@ -56,7 +52,6 @@ io:
salmon_url: Salmon URL
show:
created_reports: Reports created by this account
- report: report
targeted_reports: Reports made about this account
silence: Silence
statuses: Statuses
@@ -80,10 +75,6 @@ io:
title: New domain block
reject_media: Reject media files
reject_media_hint: Removes locally stored media files and refuses to download any in the future. Irrelevant for suspensions
- severities:
- silence: Silence
- suspend: Suspend
- severity: Severity
show:
affected_accounts:
one: One account in the database affected
@@ -93,11 +84,8 @@ io:
suspend: Unsuspend all existing accounts from this domain
title: Undo domain block for %{domain}
undo: Undo
- title: Domain Blocks
undo: Undo
instances:
- account_count: Known accounts
- domain_name: Domain
title: Known Instances
reports:
comment:
@@ -201,7 +189,7 @@ io:
too_many: Cannot attach more than 4 files
notification_mailer:
digest:
- body: 'Yen mikra rezumo di to, depos ke tu laste vizitis en %{since}:'
+ body: Yen mikra rezumo di to, depos ke tu laste vizitis en %{since}
mention: "%{name} mencionis tu en:"
new_followers_summary:
one: Tu obtenis nova sequanto! Yey!
diff --git a/config/locales/it.yml b/config/locales/it.yml
index 4fffded5f..339dadaf4 100644
--- a/config/locales/it.yml
+++ b/config/locales/it.yml
@@ -123,10 +123,6 @@ it:
most_recent_ip: IP più recenti
no_limits_imposed: Nessun limite imposto
not_subscribed: Non sottoscritto
- order:
- alphabetic: Alfabetico
- most_recent: Più recente
- title: Ordine
outbox_url: URL outbox
perform_full_suspension: Sospendi
profile_url: URL profilo
@@ -154,7 +150,6 @@ it:
shared_inbox_url: URL Inbox Condiviso
show:
created_reports: Rapporti creati da questo account
- report: segnala
targeted_reports: Rapporti che riguardano questo account
silence: Silenzia
silenced: Silenziato
@@ -265,11 +260,6 @@ it:
reject_media_hint: Rimuovi i file media salvati in locale e blocca i download futuri. Irrilevante per le sospensioni
reject_reports: Respingi rapporti
reject_reports_hint: Ignora tutti i rapporti provenienti da questo dominio. Irrilevante per sospensioni
- severities:
- noop: Nessuno
- silence: Silenzia
- suspend: Sospendi
- severity: Severità
show:
affected_accounts:
one: Interessato un solo account nel database
@@ -279,7 +269,6 @@ it:
suspend: Annulla la sospensione di tutti gli account esistenti da questo dominio
title: Annulla il blocco del dominio per %{domain}
undo: Annulla
- title: Blocchi dominio
undo: Annulla
email_domain_blocks:
add_new: Aggiungi nuovo
@@ -292,10 +281,6 @@ it:
title: Nuova voce della lista nera delle email
title: Lista nera email
instances:
- account_count: Accounts conosciuti
- domain_name: Dominio
- reset: Reimposta
- search: Cerca
title: Istanze conosciute
invites:
deactivate_all: Disattiva tutto
@@ -433,12 +418,6 @@ it:
confirmed: Confermato
expires_in: Scade in
topic: Argomento
- suspensions:
- bad_acct_msg: Il valore di conferma non corrisponde. Stai sospendendo l'account giusto?
- hint_html: 'Per confermare la sospensione dell''account, inserisci %{value} nel campo qui sotto:'
- proceed: Continua
- title: Sospendi %{acct}
- warning_html: 'La sospensione dell''account comporta la cancellazione irreversibile dei suoi dati, che comprendono:'
title: Amministrazione
application_mailer:
notification_preferences: Cambia preferenze email
@@ -671,9 +650,6 @@ it:
no_account_html: Non hai un account? Puoi iscriverti qui
proceed: Conferma
prompt: 'Stai per seguire:'
- remote_interaction:
- proceed: Continua per interagire
- prompt: 'Vuoi interagire con questo toot:'
remote_unfollow:
error: Errore
title: Titolo
@@ -796,7 +772,6 @@ it:
review_preferences_action: Cambia preferenze
review_preferences_step: Dovresti impostare le tue preferenze, ad esempio quali email vuoi ricevere oppure il livello predefinito di privacy per i tuoi post. Se le immagini in movimento non ti danno fastidio, puoi abilitare l'animazione automatica delle GIF.
subject: Benvenuto/a su Mastodon
- tip_bridge_html: Se vieni da Twitter, puoi trovare i tuoi amici su Mastodon usando laapp bridge. Ma funziona solo se anche loro la usano!
tip_federated_timeline: La timeline federata visualizza uno dopo l'altro i messaggi pubblicati su Mastodon. Ma comprende solo gli utenti seguiti dai tuoi vicini, quindi non è completa.
tip_following: Per impostazione predefinita, segui l'amministratore/i del tuo server. Per trovare utenti più interessanti, dà un'occhiata alle timeline locale e federata.
tip_local_timeline: La timeline locale visualizza uno dopo l'altro i messaggi degli utenti di %{instance}. Questi sono i tuoi vicini!
diff --git a/config/locales/ja.yml b/config/locales/ja.yml
index 90ff66acb..f8b249c08 100644
--- a/config/locales/ja.yml
+++ b/config/locales/ja.yml
@@ -48,6 +48,7 @@ ja:
other: フォロワー
following: フォロー中
joined: "%{date} に登録"
+ last_active: 最後の活動
link_verified_on: このリンクの所有権は %{date} に確認されました
media: メディア
moved_html: "%{name} さんは引っ越しました %{new_profile_link}:"
@@ -69,6 +70,9 @@ ja:
moderator: Mod
unfollow: フォロー解除
admin:
+ account_actions:
+ action: アクションを実行
+ title: "%{acct}さんに対してアクションを実行"
account_moderation_notes:
create: 書き込む
created_msg: モデレーションメモを書き込みました!
@@ -101,8 +105,10 @@ ja:
enabled: 有効
feed_url: フィードURL
followers: フォロワー数
+ followers_local: "(%{local} ローカル)"
followers_url: Followers URL
follows: フォロー数
+ header: ヘッダー
inbox_url: Inbox URL
ip: IP
location:
@@ -114,21 +120,18 @@ ja:
media_attachments: 添付されたメディア
memorialize: 追悼アカウント化
moderation:
+ active: アクティブ
all: すべて
- silenced: サイレンス中
- suspended: 停止中
+ silenced: サイレンス済み
+ suspended: 停止済み
title: モデレーション
moderation_notes: モデレーションメモ
most_recent_activity: 直近の活動
most_recent_ip: 直近のIP
no_limits_imposed: 制限なし
not_subscribed: 購読していない
- order:
- alphabetic: アルファベット順
- most_recent: 直近の活動順
- title: 順序
outbox_url: Outbox URL
- perform_full_suspension: 完全に活動停止させる
+ perform_full_suspension: 活動を完全に停止させる
profile_url: プロフィールURL
promote: 昇格
protocol: プロトコル
@@ -136,6 +139,7 @@ ja:
push_subscription_expires: PuSH購読期限
redownload: アバターの更新
remove_avatar: アイコンを削除
+ remove_header: ヘッダーを削除
resend_confirmation:
already_confirmed: メールアドレスは確認済みです
send: 確認メールを再送
@@ -154,7 +158,6 @@ ja:
shared_inbox_url: Shared Inbox URL
show:
created_reports: このアカウントで作られたレポート
- report: レポート
targeted_reports: このアカウントについてのレポート
silence: サイレンス
silenced: サイレンス済み
@@ -173,6 +176,7 @@ ja:
assigned_to_self_report: "%{name} さんがレポート %{target} を自身の担当に割り当てました"
change_email_user: "%{name} さんが %{target} さんのメールアドレスを変更しました"
confirm_user: "%{name} さんが %{target} さんのメールアドレスを確認済みにしました"
+ create_account_warning: "%{name} さんが %{target} さんに警告メールを送信しました"
create_custom_emoji: "%{name} さんがカスタム絵文字 %{target} を追加しました"
create_domain_block: "%{name} さんがドメイン %{target} をブロックしました"
create_email_domain_block: "%{name} さんがドメイン %{target} をメールアドレス用ブラックリストに追加しました"
@@ -231,6 +235,7 @@ ja:
config: 構成
feature_deletions: アカウント削除
feature_invites: 招待リンク
+ feature_profile_directory: ディレクトリ
feature_registrations: 新規登録
feature_relay: 連合リレー
features: 機能
@@ -256,7 +261,7 @@ ja:
create: ブロックを作成
hint: ドメインブロックはデータベース中のアカウント項目の作成を妨げませんが、遡って自動的に指定されたモデレーションをそれらのアカウントに適用します。
severity:
- desc_html: "サイレンスはアカウントのトゥートをフォローしていない人から隠します。停止はそのアカウントのコンテンツ、メディア、プロフィールデータをすべて削除します。メディアファイルの拒否はなしを使います。"
+ desc_html: "サイレンスはアカウントのトゥートをフォローしていない人から隠します。停止はそのアカウントのコンテンツ、メディア、プロフィールデータをすべて削除します。メディアファイルを拒否したいだけの場合はなしを使います。"
noop: なし
silence: サイレンス
suspend: 停止
@@ -264,12 +269,7 @@ ja:
reject_media: メディアファイルを拒否
reject_media_hint: ローカルに保存されたメディアファイルを削除し、今後のダウンロードを拒否します。停止とは無関係です
reject_reports: レポートを拒否
- reject_reports_hint: このドメインからのすべてのレポートを無視します。停止とは無関係です
- severities:
- noop: なし
- silence: サイレンス
- suspend: 停止
- severity: 深刻度
+ reject_reports_hint: このドメインからのレポートをすべて無視します。停止とは無関係です
show:
affected_accounts:
one: データベース中の一つのアカウントに影響します
@@ -279,7 +279,6 @@ ja:
suspend: このドメインからの存在するすべてのアカウントの停止を戻す
title: "%{domain}のドメインブロックを戻す"
undo: 元に戻す
- title: ドメインブロック
undo: 元に戻す
email_domain_blocks:
add_new: 新規追加
@@ -291,11 +290,10 @@ ja:
create: ドメインを追加
title: メールアドレス用ブラックリスト新規追加
title: メールブラックリスト
+ followers:
+ back_to_account: 戻る
+ title: "%{acct}さんのフォロワー"
instances:
- account_count: 既知のアカウント数
- domain_name: ドメイン名
- reset: リセット
- search: 検索
title: 既知のインスタンス
invites:
deactivate_all: すべて無効化
@@ -378,6 +376,9 @@ ja:
preview_sensitive_media:
desc_html: 他のウェブサイトにリンクを貼った際、メディアが閲覧注意としてマークされていてもサムネイルが表示されます
title: OpenGraphによるプレビューで閲覧注意のメディアも表示する
+ profile_directory:
+ desc_html: ユーザーが見つかりやすくできるようになります
+ title: ディレクトリを有効にする
registrations:
closed_message:
desc_html: 新規登録を停止しているときにフロントページに表示されます。HTMLタグが使えます
@@ -437,13 +438,21 @@ ja:
last_delivery: 最終配送
title: WebSub
topic: トピック
- suspensions:
- bad_acct_msg: 値が一致しませんでした。停止しようとしているアカウントに間違いはありませんか?
- hint_html: 'アカウントの停止を確認するには、以下のフィールドに %{value} と入力してください:'
- proceed: 完全に活動停止させる
- title: "%{acct} を停止"
- warning_html: 'このアカウントを停止すると、このアカウントから次のようなデータが不可逆的に削除されます:'
+ tags:
+ accounts: アカウント
+ hidden: 非表示
+ hide: ディレクトリから隠す
+ name: ハッシュタグ
+ title: ハッシュタグ
+ unhide: ディレクトリに表示する
+ visible: 表示
title: 管理
+ warning_presets:
+ add_new: 追加
+ delete: 削除
+ edit: 編集
+ edit_preset: プリセット警告文を編集
+ title: プリセット警告文を管理
admin_mailer:
new_report:
body: "%{reporter} が %{target} を通報しました"
@@ -521,6 +530,13 @@ ja:
success_msg: アカウントは正常に削除されました
warning_html: 削除が保証されるのはこのインスタンス上のコンテンツのみです。他のインスタンス等、外部に広く共有されたコンテンツについては痕跡が残ることがあります。また、現在接続できないサーバーや、あなたの更新を受け取らなくなったサーバーに対しては、削除は反映されません。
warning_title: 共有されたコンテンツについて
+ directories:
+ directory: ディレクトリ
+ explanation: 興味のある人を見つけよう
+ explore_mastodon: "%{title}を探索"
+ people:
+ one: "%{count} 人"
+ other: "%{count} 人"
errors:
'403': このページを表示する権限がありません。
'404': お探しのページは見つかりませんでした。
@@ -691,9 +707,6 @@ ja:
no_account_html: アカウントをお持ちではないですか?こちらからサインアップできます
proceed: フォローする
prompt: 'フォローしようとしています:'
- remote_interaction:
- proceed: 進む
- prompt: 'このトゥートに返信しようとしています:'
remote_unfollow:
error: エラー
title: タイトル
@@ -902,6 +915,22 @@ ja:
explanation: Mastodonアカウントのアーカイブを受け付けました。今すぐダウンロードできます!
subject: アーカイブの準備ができました
title: アーカイブの取り出し
+ warning:
+ explanation:
+ disable: アカウントが凍結されている間、データはそのまま残りますが、凍結が解除されるまでは何の操作もできません。
+ silence: あなたのアカウントは制限されていますが、あなたをフォローしているユーザーのみ、このサーバー上の投稿を見ることができます。そしてあなたは様々な公開リストから除外されるかもしれません。ただし、他のユーザーは手動であなたをフォローすることができます。
+ suspend: あなたのアカウントは停止されています。あなたの投稿とアップロードされたメディアファイルは、このサーバーとあなたのフォロワーが参加していたサーバーから完全に削除されました。
+ review_server_policies: サーバーのポリシーを確認
+ subject:
+ disable: あなたのアカウント %{acct} は凍結されています
+ none: "%{acct} に対する警告"
+ silence: あなたのアカウント %{acct} はサイレンスにされています
+ suspend: あなたのアカウント %{acct} は停止されています
+ title:
+ disable: アカウントが凍結されました
+ none: 警告
+ silence: アカウントがサイレンスにされました
+ suspend: アカウントが停止されました
welcome:
edit_profile_action: プロフィールを設定
edit_profile_step: アバター画像やヘッダー画像をアップロードしたり、表示名やその他プロフィールを変更しカスタマイズすることができます。新しいフォロワーからのフォローを許可する前に検討したい場合、アカウントを承認制にすることができます。
@@ -913,7 +942,6 @@ ja:
review_preferences_action: 設定の変更
review_preferences_step: 受け取りたいメールや投稿の公開範囲などの設定を必ず行ってください。不快でないならアニメーション GIF の自動再生を有効にすることもできます。
subject: Mastodon へようこそ
- tip_bridge_html: もし Twitter から来られたのであれば、bridge app を使用することで Mastodon での友達のアカウントを探すこともできます。ただし bridge app を使用したことのある相手に限ります!
tip_federated_timeline: 連合タイムラインは Mastodon ネットワークの流れを見られるものです。ただしあなたと同じインスタンスの人がフォローしている人だけが含まれるので、それが全てではありません。
tip_following: 標準では自動でインスタンスの管理者をフォローしています。もっと興味のある人たちを見つけるには、ローカルタイムラインと連合タイムラインを確認してください。
tip_local_timeline: ローカルタイムラインは %{instance} にいる人々の流れを見られるものです。彼らはあなたと同じインスタンスにいる隣人のようなものです!
diff --git a/config/locales/ka.yml b/config/locales/ka.yml
index 1b74405d2..056942ecd 100644
--- a/config/locales/ka.yml
+++ b/config/locales/ka.yml
@@ -112,10 +112,6 @@ ka:
most_recent_activity: უახლესი აქტივობა
most_recent_ip: უახლესი აი-პი
not_subscribed: გამოუწერელი
- order:
- alphabetic: ანბანური
- most_recent: უახლესი
- title: წესრიგი
outbox_url: აუთბოქსის ურლ
perform_full_suspension: მოახდინეთ სრული შეჩერება
profile_url: პროფილის ურლ
@@ -143,7 +139,6 @@ ka:
shared_inbox_url: გაზიარებული ინბოქსის ურლ
show:
created_reports: ამ ანგარიშის მიერ შექმნილი რეპორტები
- report: რეპორტი
targeted_reports: ამ ანგარიშზე მიღებული რეპორტები
silence: სიჩუმე
statuses: სტატუსები
@@ -249,11 +244,6 @@ ka:
title: ახალი დომენის ბლოკი
reject_media: მედია ფაილების უარყოფა
reject_media_hint: შლის ლოკალურად შენახულ მედია ფაილებს და უარყოფს სამომავლო გადმოტვირთებს. შეუსაბამო შეჩერებებისთვის
- severities:
- noop: არც ერთი
- silence: გაჩუმება
- suspend: შეჩერება
- severity: სიმძიმე
show:
affected_accounts:
one: გავლენა იქონია მონაცემთა ბაზაში ერთ ანგარიშზე
@@ -263,7 +253,6 @@ ka:
suspend: ამ დომენში ყველა არსებულ ანგარიშზე შეჩერების მოშორება
title: უკუაქციეთ დომენის ბლოკი %{domain} დომენზე
undo: უკუქცევა
- title: დომენის ბლოკები
undo: უკუქცევა
email_domain_blocks:
add_new: ახლის დამატება
@@ -276,10 +265,6 @@ ka:
title: ელ-ფოსტის ახალი შენატანი შავ სიაში
title: ელ-ფოსტის შავი სია
instances:
- account_count: ცნობილი ანგარიშები
- domain_name: დომენი
- reset: გადატვირთვა
- search: ძებნა
title: ცნობილი ინსტანციები
invites:
deactivate_all: ყველას დეაქტივაცია
@@ -656,9 +641,6 @@ ka:
no_account_html: არ გაქვთ ანგარიში? შეგიძლიათ დარეგისტრირდეთ აქ
proceed: გააგრძელეთ გასაყოლად
prompt: 'თქვენ გაჰყვებით:'
- remote_interaction:
- proceed: გააგრძელეთ ურთიერთქმედება
- prompt: 'თქვენ გსურთ ურთიერთქმედება ამ ტუტთან:'
remote_unfollow:
error: შეცდომა
title: სათაური
@@ -878,7 +860,6 @@ ka:
review_preferences_action: შეცვალეთ პრეფერენსიები
review_preferences_step: დარწმუნდით რომ აყენებთ თქვენს პრეფერენსიებს, მაგალითად რა ელ-ფოსტის წერილების მიღება გსურთ, ან კონფიდენციალურობის რა დონე გსურთ ჰქონდეთ თქვენს პოსტებს საწყისად. თუ არ გაღიზიანებთ მოძრაობა, შეგიძლიათ ჩართოთ გიფის ავტო-დაკვრა.
subject: კეთილი იყოს თქვენი მობრძანება მასტოდონში
- tip_bridge_html: თუ მოდიხართ ტვიტერიდან, შეგიძლიათ იპოვოთ მეგობრები მასტოდონში ხიდის აპლიკაციით. თუმცა, ეს მუშაობს მხოლოდ მაშინ თუ მათაც მოიხმარეს ხიდის აპლიკაცია!
tip_federated_timeline: ფედერალური თაიმლაინი მასტოდონის ქსელის ცეცხლოვანი ხედია. ის მოიცავს მხოლოდ იმ ადამიანებს, რომელთაგანაც გამოიწერეს თქვენმა მეზობლებმა, ასე რომ ეს არაა სრული.
tip_following: თქვენ საწყისად მიჰყვებით თქვენი სერვერის ადმინისტრატორ(ებ)ს. უფრო საინტერესო ადამიანების მოსაძებნად იხილეთ ლოკალური და ფედერალური თაიმლაინები.
tip_local_timeline: ლოკალური თაიმლაინი ცეცხლოვანი ხედია ადამიანებისთვის %{instance}-ზე. ისინი არიან თქვენი უსიტყვო მეზობლები!
diff --git a/config/locales/ko.yml b/config/locales/ko.yml
index e1cb350d1..a15066d19 100644
--- a/config/locales/ko.yml
+++ b/config/locales/ko.yml
@@ -48,6 +48,7 @@ ko:
other: 팔로워
following: 팔로잉
joined: "%{date}에 가입함"
+ last_active: 최근 활동
link_verified_on: "%{date}에 이 링크의 소유가 확인되었습니다"
media: 미디어
moved_html: "%{name}은 %{new_profile_link}으로 이동되었습니다:"
@@ -69,6 +70,9 @@ ko:
moderator: 모더레이터
unfollow: 팔로우 해제
admin:
+ account_actions:
+ action: 조치 취하기
+ title: "%{acct} 계정에 조정 취하기"
account_moderation_notes:
create: 모더레이션 노트 작성하기
created_msg: 모더레이션 기록이 성공적으로 작성되었습니다!
@@ -101,8 +105,10 @@ ko:
enabled: 활성화된
feed_url: 피드 URL
followers: 팔로워 수
+ followers_local: "(%{local} 로컬)"
followers_url: 팔로워 URL
follows: 팔로잉 수
+ header: 헤더
inbox_url: 수신함 URL
ip: IP
location:
@@ -114,6 +120,7 @@ ko:
media_attachments: 첨부된 미디어
memorialize: 메모리엄으로 전환
moderation:
+ active: 활동
all: 전체
silenced: 침묵 중
suspended: 정지 중
@@ -123,10 +130,6 @@ ko:
most_recent_ip: 최근 IP
no_limits_imposed: 제한 없음
not_subscribed: 구독하지 않음
- order:
- alphabetic: 알파벳 순
- most_recent: 최근 순
- title: 순서
outbox_url: 발신함 URL
perform_full_suspension: 정지시키기
profile_url: 프로필 URL
@@ -136,6 +139,7 @@ ko:
push_subscription_expires: PuSH 구독 기간 만료
redownload: 아바타 업데이트
remove_avatar: 아바타 지우기
+ remove_header: 헤더 삭제
resend_confirmation:
already_confirmed: 이 사용자는 이미 확인되었습니다
send: 다시 확인 이메일
@@ -154,7 +158,6 @@ ko:
shared_inbox_url: 공유된 inbox URL
show:
created_reports: 이 계정에서 제출된 신고
- report: 신고
targeted_reports: 이 계정에 대한 신고
silence: 침묵
silenced: 침묵 됨
@@ -173,6 +176,7 @@ ko:
assigned_to_self_report: "%{name}이 리포트 %{target}을 자신에게 할당했습니다"
change_email_user: "%{name}이 %{target}의 이메일 주소를 변경했습니다"
confirm_user: "%{name}이 %{target}의 이메일 주소를 컨펌했습니다"
+ create_account_warning: "%{name}가 %{target}에게 경고 보냄"
create_custom_emoji: "%{name}이 새로운 에모지 %{target}를 추가했습니다"
create_domain_block: "%{name}이 도메인 %{target}를 차단했습니다"
create_email_domain_block: "%{name}이 이메일 도메인 %{target}를 차단했습니다"
@@ -231,6 +235,7 @@ ko:
config: 설정
feature_deletions: 계정 삭제
feature_invites: 초대 링크
+ feature_profile_directory: 프로필 디렉토리
feature_registrations: 가입
feature_relay: 연합 릴레이
features: 기능
@@ -267,11 +272,6 @@ ko:
reject_media_hint: 로컬에 저장된 미디어 파일을 삭제하고, 이후로도 다운로드를 거부합니다. 정지와는 관계 없습니다
reject_reports: 신고 거부
reject_reports_hint: 이 도메인으로부터의 모든 신고를 무시합니다. 정지와는 무관합니다
- severities:
- noop: 없음
- silence: 침묵
- suspend: 정지
- severity: 심각도
show:
affected_accounts:
one: 데이터베이스 중 1개의 계정에 영향을 끼칩니다
@@ -281,7 +281,6 @@ ko:
suspend: 이 도메인에 존재하는 모든 계정의 계정 정지를 해제
title: "%{domain}의 도메인 차단을 해제"
undo: 실행 취소
- title: 도메인 차단
undo: 실행 취소
email_domain_blocks:
add_new: 새로 추가
@@ -293,11 +292,10 @@ ko:
create: 차단 규칙 생성
title: 새 이메일 도메인 차단
title: Email 도메인 차단
+ followers:
+ back_to_account: 계정으로 돌아가기
+ title: "%{acct}의 팔로워"
instances:
- account_count: 알려진 계정의 수
- domain_name: 도메인 이름
- reset: 리셋
- search: 검색
title: 알려진 인스턴스들
invites:
deactivate_all: 전부 비활성화
@@ -380,6 +378,9 @@ ko:
preview_sensitive_media:
desc_html: 민감한 미디어로 설정되었더라도 다른 웹사이트에서 링크 미리보기에 썸네일을 보여줍니다
title: 민감한 미디어를 오픈그래프 미리보기에 보여주기
+ profile_directory:
+ desc_html: 유저들이 발견 될 수 있도록 허용
+ title: 프로필 디렉토리 활성화
registrations:
closed_message:
desc_html: 신규 등록을 받지 않을 때 프론트 페이지에 표시됩니다. HTML 태그를 사용할 수 있습니다
@@ -439,13 +440,21 @@ ko:
last_delivery: 최종 발송
title: WebSub
topic: 토픽
- suspensions:
- bad_acct_msg: 확인값이 일치하지 않습니다. 정지하려는 계정이 맞습니까?
- hint_html: '이 계정을 정지하려면 %{value}를 아래 입력칸에 입력하세요:'
- proceed: 완전히 정지시키기
- title: "%{acct} 정지하기"
- warning_html: '이 계정을 정지하면 계정의 데이터를 모두 삭제하며 되돌릴 수 없습니다. 이것은 다음을 포함합니다:'
+ tags:
+ accounts: 계정들
+ hidden: 숨겨짐
+ hide: 디렉토리에서 숨기기
+ name: 해시태그
+ title: 해시태그
+ unhide: 디렉토리에 표시
+ visible: 보여짐
title: 관리
+ warning_presets:
+ add_new: 새로 추가
+ delete: 삭제
+ edit: 편집
+ edit_preset: 경고 틀 수정
+ title: 경고 틀 관리
admin_mailer:
new_report:
body: "%{reporter} 가 %{target} 를 신고했습니다"
@@ -523,6 +532,13 @@ ko:
success_msg: 계정이 성공적으로 삭제되었습니다
warning_html: 삭제가 보장되는 것은 이 인스턴스 상에서의 컨텐츠에 한합니다. 타 인스턴스 등, 외부에 멀리 공유된 컨텐츠는 흔적이 남아 삭제되지 않는 경우도 있습니다. 그리고 현재 접속이 불가능한 서버나, 업데이트를 받지 않게 된 서버에 대해서는 삭제가 반영되지 않을 수도 있습니다.
warning_title: 공유된 컨텐츠에 대해서
+ directories:
+ directory: 프로필 디렉토리
+ explanation: 관심사에 대한 유저들을 발견합니다
+ explore_mastodon: "%{title} 탐사하기"
+ people:
+ one: "%{count}명"
+ other: "%{count}명"
errors:
'403': 이 페이지를 표시할 권한이 없습니다.
'404': 당신이 찾으려는 페이지는 존재하지 않습니다.
@@ -694,9 +710,6 @@ ko:
no_account_html: 계정이 없나요? 여기에서 가입 할 수 있습니다
proceed: 팔로우 하기
prompt: '팔로우 하려 하고 있습니다:'
- remote_interaction:
- proceed: 진행
- prompt: '이 게시물에 상호작용하려 하고 있습니다:'
remote_unfollow:
error: 에러
title: 타이틀
@@ -905,6 +918,22 @@ ko:
explanation: 당신이 요청한 계정의 풀 백업이 이제 다운로드 가능합니다!
subject: 당신의 아카이브를 다운로드 가능합니다
title: 아카이브 테이크 아웃
+ warning:
+ explanation:
+ disable: 당신의 계정이 동결 된 동안 당신의 계정은 유지 됩니다. 하지만 잠금이 풀릴 때까지 당신은 아무 것도 할 수 없습니다.
+ silence: 당신의 계정이 제한 된 동안엔 당신의 팔로워 이외엔 툿을 받아 볼 수 없고 공개 리스팅에서 제외 됩니다. 하지만 다른 사람들은 여전히 당신을 팔로우 가능합니다.
+ suspend: 당신의 계정은 정지 되었으며, 모든 툿과 업로드 한 미디어가 서버에서 삭제 되어 되돌릴 수 없습니다.
+ review_server_policies: 서버 정책 검토하기
+ subject:
+ disable: 당신의 계정 %{acct}가 동결 되었습니다
+ none: "%{acct}에게의 경고"
+ silence: 당신의 계정 %{acct}가 제한 되었습니다
+ suspend: 당신의 계정 %{acct}가 정지 되었습니다
+ title:
+ disable: 계정 동결 됨
+ none: 경고
+ silence: 계정 제한 됨
+ suspend: 계정 정지 됨
welcome:
edit_profile_action: 프로필 설정
edit_profile_step: 아바타, 헤더를 업로드하고, 사람들에게 표시 될 이름을 바꾸는 것으로 당신의 프로필을 커스텀 할 수 있습니다. 사람들이 당신을 팔로우 하기 전에 리뷰를 거치게 하고 싶다면 계정을 잠그면 됩니다.
@@ -916,7 +945,6 @@ ko:
review_preferences_action: 설정 바꾸기
review_preferences_step: 당신의 설정을 확인하세요. 어떤 이메일로 알림을 받을 것인지, 기본적으로 어떤 프라이버시 설정을 사용할 것인지, 멀미가 없다면 GIF를 자동 재생하도록 설정할 수도 있습니다.
subject: 마스토돈에 오신 것을 환영합니다
- tip_bridge_html: 만약 트위터에서 오셨다면 브리지 앱을 통해 마스토돈에 있는 친구들을 찾을 수 있습니다. 친구들도 이 앱을 사용했을 때만 작동합니다!
tip_federated_timeline: 연합 타임라인은 마스토돈 네트워크의 소방호스입니다. 다만 여기엔 당신의 이웃들이 구독 중인 것만 뜹니다, 모든 것이 다 오는 것은 아니예요.
tip_following: 기본적으로 서버의 관리자를 팔로우 하도록 되어 있습니다. 흥미로운 사람들을 더 찾으려면 로컬과 연합 타임라인을 확인해 보세요.
tip_local_timeline: 로컬 타임라인은 %{instance}의 소방호스입니다. 여기 있는 사람들은 당신의 이웃들이에요!
diff --git a/config/locales/lv.yml b/config/locales/lv.yml
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/config/locales/lv.yml
@@ -0,0 +1 @@
+{}
diff --git a/config/locales/ms.yml b/config/locales/ms.yml
index 2eff09e1b..e3c901eff 100644
--- a/config/locales/ms.yml
+++ b/config/locales/ms.yml
@@ -1,6 +1,339 @@
---
ms:
about:
- about_this: Mengenai
+ about_hashtag_html: Terdapat toot awam yang ditanda dengan #%{hashtag}. Anda boleh berinteraksi dengan mereka jika anda mempunyai akaun di mana-mana dunia persekutuan Mastodon.
+ about_mastodon_html: Mastodon ialah rangkaian sosial berasaskan protokol web terbuka dan perisian percuma bersumber terbuka. Ianya tak terpusat seperti emel.
+ about_this: Mengenai Kami
administered_by: 'Ditadbir oleh:'
- contact: Hubungi
+ api: API
+ apps: Aplikasi mudah alih
+ closed_registrations: Pendaftaran ditutup di tika ini. Tetapi! Anda boleh mencari tika lain untuk mencipta akaun dan capai ke rangkaian yang sama daripada sana.
+ contact: Hubungi kami
+ contact_missing: Tidak ditetapkan
+ contact_unavailable: Tidak tersedia
+ documentation: Pendokumenan
+ extended_description_html: |
+
Tempat sesuai untuk peraturan
+
Kenyataan penuh masih belum ditetapkan.
+ features:
+ humane_approach_body: Belajar daripada kegagalan rangkaian lain, Mastodon berazam untuk membuat pilihan reka cipta beretika untuk mengatasi penyalahgunaan media sosial.
+ humane_approach_title: Pendekatan yang lebih berperikemanusiaan
+ not_a_product_body: Mastodon bukannya rangkaian komersial. Tiada iklan, tiada perlombongan data, tiada kurungan atau tapisan. Tiada pihak berkuasa pusat.
+ not_a_product_title: Anda seorang manusia, bukannya sebuah produk
+ real_conversation_body: Dengan had 500 aksara dan sokongan kandungan berbutir serta pemberi amaran media, anda boleh meluahkan diri anda dengan cara yang anda inginkan.
+ real_conversation_title: Dibina untuk perbualan sebenar
+ within_reach_body: Pelbagai aplikasi untuk iOS, Android, dan platform lain telah dibangunkan dengan ekosistem API mesra-pembangun membolehkan anda terus berhubung dengan rakan anda di mana-mana sahaja.
+ within_reach_title: Sentiasa dalam jangkauan
+ generic_description: "%{domain} ialah salah sebuah pelayan dalam rangkaian Mastodon"
+ hosted_on: Mastodon dihoskan di %{domain}
+ learn_more: Ketahui lebih lanjut
+ other_instances: Senarai tika
+ privacy_policy: Polisi privasi
+ source_code: Kod sumber
+ status_count_after:
+ one: status
+ other: status
+ status_count_before: Telah menulis
+ terms: Terma perkhidmatan
+ user_count_after:
+ one: pengguna
+ other: pengguna
+ user_count_before: Rumah kepada
+ what_is_mastodon: Apakah itu Mastodon?
+ accounts:
+ choices_html: 'Pilihan %{name}:'
+ follow: Ikut
+ followers:
+ one: Pengikut
+ other: Pengikut
+ following: Mengikuti
+ joined: Sertai pada %{date}
+ link_verified_on: Pemilikan pautan ini diperiksa pada %{date}
+ media: Media
+ moved_html: "%{name} telah berpindah ke %{new_profile_link}:"
+ network_hidden: Maklumat ini tidak tersedia
+ nothing_here: Tiada apa-apa di sini!
+ people_followed_by: Orang yang %{name} ikuti
+ people_who_follow: Orang yang mengikut %{name}
+ pin_errors:
+ following: Anda mestilah sudah mengikuti orang yang anda ingin syorkan
+ posts:
+ one: Toot
+ other: Toot
+ posts_tab_heading: Toot
+ posts_with_replies: Toot dan maklum balas
+ reserved_username: Nama pengguna ini terpelihara
+ roles:
+ admin: Admin
+ bot: Bot
+ moderator: Pengawal
+ unfollow: Nyahikut
+ admin:
+ account_moderation_notes:
+ create: Tinggalkan nota
+ created_msg: Nota kawalan telah berjaya dicipta!
+ delete: Padam
+ destroyed_msg: Nota kawalan telah berjaya dipadam!
+ accounts:
+ are_you_sure: Anda pasti?
+ avatar: Avatar
+ by_domain: Domain
+ change_email:
+ changed_msg: Emel akaun telah berjaya ditukar!
+ current_email: Emel Semasa
+ label: Tukar Emel
+ new_email: Emel Baru
+ submit: Tukar Emel
+ title: Tukar Emel untuk %{username}
+ confirm: Sahkan
+ confirmed: Disahkan
+ confirming: Mengesahkan
+ demote: Turunkan pangkat
+ disable: Lumpuhkan
+ disable_two_factor_authentication: Lumpuhkan 2FA
+ disabled: Dilumpuhkan
+ display_name: Nama paparan
+ domain: Domain
+ edit: Tukar
+ email: Emel
+ email_status: Status Emel
+ enable: Bolehkan
+ enabled: Dibolehkan
+ feed_url: Suapan URL
+ followers: Pengikut
+ followers_url: URL Pengikut
+ follows: Mengikuti
+ inbox_url: URL mesej masuk
+ ip: Alamat IP
+ location:
+ all: Semua
+ local: Tempatan
+ remote: Jarak Jauh
+ title: Kedudukan
+ login_status: Status log masuk
+ media_attachments: Lampiran media
+ memorialize: Tukarkan menjadi akaun peringatan
+ moderation:
+ all: Semua
+ silenced: Disenyapkan
+ suspended: Digantungkan
+ title: Kawalan
+ moderation_notes: Nota kawalan
+ most_recent_activity: Aktiviti terbaru
+ most_recent_ip: IP terbaru
+ no_limits_imposed: Tiada had dikuatkuasakan
+ not_subscribed: Tiada langganan
+ outbox_url: URL mesej keluar
+ perform_full_suspension: Gantung
+ profile_url: URL profil
+ promote: Naikkan pangkat
+ protocol: Protokol
+ public: Awam
+ push_subscription_expires: Langganan PuSH tamat tempoh
+ redownload: Segarkan semula avatar
+ remove_avatar: Buang avatar
+ resend_confirmation:
+ already_confirmed: Pengguna ini telah disahkan
+ send: Hantar semula emel pengesahan
+ success: Emel pengesahan telah berjaya dihantar!
+ reset: Set semula
+ reset_password: Set semula kata laluan
+ resubscribe: Langgan semula
+ role: Kebenaran
+ roles:
+ admin: Pentadbir
+ moderator: Pengawal
+ staff: Kakitangan
+ user: Pengguna
+ salmon_url: URL Salmon
+ search: Cari
+ shared_inbox_url: URL Peti Masuk Berkongsi
+ show:
+ created_reports: Laporan yang dicipta oleh akaun ini
+ targeted_reports: Laporan yang dicipta berkaitan akaun ini
+ silence: Senyap
+ silenced: Disenyapkan
+ statuses: Status
+ subscribe: Langgan
+ suspended: Digantung
+ title: Akaun
+ unconfirmed_email: Emel Belum Disahkan
+ undo_silenced: Buang senyap
+ undo_suspension: Buang penggantungan
+ unsubscribe: Buang langganan
+ username: Nama pengguna
+ web: Web
+ action_logs:
+ actions:
+ assigned_to_self_report: "%{name} memberikan laporan %{target} kepada diri mereka sendiri"
+ change_email_user: "%{name} menukar alamat emel pengguna %{target}"
+ confirm_user: "%{name} mengesahkan alamat emel pengguna %{target}"
+ create_custom_emoji: "%{name} memuat naik emoji baru %{target}"
+ create_domain_block: "%{name} menyekat domain %{target}"
+ create_email_domain_block: "%{name} menyenaraihitamkan domain emel %{target}"
+ demote_user: "%{name} menurunkan pangkat pengguna %{target}"
+ destroy_custom_emoji: "%{name} membuang emoji %{target}"
+ destroy_domain_block: "%{name} membuang sekatan domain %{target}"
+ destroy_email_domain_block: "%{name} menyenaraiputihkan domain emel %{target}"
+ destroy_status: "%{name} membuang status oleh %{target}"
+ disable_2fa_user: "%{name} melumpuhkan keperluan dua faktor untuk pengguna %{target}"
+ disable_custom_emoji: "%{name} melumpuhkan emoji %{target}"
+ disable_user: "%{name} melumpuhkan log masuk untuk pengguna %{target}"
+ enable_custom_emoji: "%{name} membolehkan emoji %{target}"
+ enable_user: "%{name} membolehkan log masuk untuk pengguna %{target}"
+ memorialize_account: "%{name} menukarkan akaun %{target} menjadi halaman peringatan"
+ promote_user: "%{name} menaikkan pangkat pengguna %{target}"
+ remove_avatar_user: "%{name} membuang avatar pengguna %{target}"
+ reopen_report: "%{name} membuka semula laporan %{target}"
+ reset_password_user: "%{name} set semula kata laluan pengguna %{target}"
+ resolve_report: "%{name} menyelesaikan laporan %{target}"
+ silence_account: "%{name} menyenyapkan akaun %{target}"
+ suspend_account: "%{name} menggantung akaun %{target}"
+ unassigned_report: "%{name} menyahtugaskan laporan %{target}"
+ unsilence_account: "%{name} menyahsenyapkan akaun %{target}"
+ unsuspend_account: "%{name} menyahgantungkan akaun %{target}"
+ update_custom_emoji: "%{name} mengemaskini emoji %{target}"
+ update_status: "%{name} mengemaskini status oleh %{target}"
+ deleted_status: "(status telah dipadam)"
+ title: Log audit
+ custom_emojis:
+ by_domain: Domain
+ copied_msg: Telah berjaya mencipta salinan tempatan emoji
+ copy: Salin
+ copy_failed_msg: Tidak dapat membuat salinan tempatan emoji tersebut
+ created_msg: Emoji berjaya dicipta!
+ delete: Padam
+ destroyed_msg: Emoji berjaya dipadam!
+ disable: Lumpuhkan
+ disabled_msg: Emoji tersebut berjaya dilumpuhkan
+ emoji: Emoji
+ enable: Bolehkan
+ enabled_msg: Emoji tersebut berjaya dibolehkan
+ image_hint: PNG, maksimum 50KB
+ listed: Disenaraikan
+ new:
+ title: Tambah emoji sendiri baru
+ overwrite: Tulis ganti
+ shortcode: Kod pendek
+ shortcode_hint: Sekurang-kurangnya 2 aksara, hanya aksara angka abjad dan garis bawah
+ title: Emoji sendiri
+ unlisted: Tidak disenaraikan
+ update_failed_msg: Tidak boleh mengemaskini emoji tersebut
+ updated_msg: Emoji berjaya dikemaskini!
+ upload: Muat naik
+ dashboard:
+ backlog: tugasan tunggakan
+ config: Tatarajah
+ feature_deletions: Pemadaman akaun
+ feature_invites: Pautan undangan
+ feature_registrations: Pendaftaran
+ feature_relay: Geganti persekutuan
+ features: Ciri-ciri
+ hidden_service: Persekutuan dengan perkhidmatan tersembunyi
+ open_reports: laporan belum selesai
+ recent_users: Pengguna terbaru
+ search: Carian teks penuh
+ single_user_mode: Mod pengguna tunggal
+ software: Perisian
+ space: Kegunaan ruang
+ title: Papan pemuka
+ total_users: pengguna keseluruhannya
+ trends: Trend
+ week_interactions: interaksi minggu ini
+ week_users_active: aktif minggu ini
+ week_users_new: pengguna minggu ini
+ domain_blocks:
+ add_new: Tambah
+ created_msg: Sekatan domain sedang diproses
+ destroyed_msg: Sekatan domain telah dibatalkan
+ domain: Domain
+ new:
+ create: Cipta sekatan
+ hint: Sekatan domain tidak akan menghindarkan penciptaan entri akaun dalam pangkalan data, tetapi akan diberikan kaedah kawalan khusus tertentu pada akaun-akaun tersebut secara retroaktif dan automatik.
+ severity:
+ desc_html: "Senyapkan akan membuatkan hantaran akaun tidak kelihatan kepada sesiapa yang tidak mengikut mereka. Gantungkan akan membuang semua kandungan, media, dan data profil akaun tersebut. Gunakan Tiada jika anda hanya ingin menolak fail media."
+ noop: Tiada
+ silence: Senyapkan
+ suspend: Gantungkan
+ title: Sekatan domain baru
+ reject_media: Tolak fail media
+ reject_media_hint: Buang fail media yang disimpan di sini dan menolak sebarang muat turun pada masa depan. Tidak berkaitan dengan penggantungan
+ reject_reports: Tolak laporan
+ reject_reports_hint: Abaikan semua laporan daripada domain ini. Tidak dikira untuk penggantungan
+ show:
+ affected_accounts:
+ one: Satu akaun dalam pangkalan data menerima kesan
+ other: "%{count} akaun dalam pangkalan data menerima kesan"
+ retroactive:
+ silence: Buang penyenyapan semua akaun sedia ada daripada domain ini
+ suspend: Buang penggantungan semua akaun sedia ada daripada domain ini
+ title: Buang sekatan domain %{domain}
+ undo: Buang
+ undo: Buang
+ email_domain_blocks:
+ add_new: Tambah
+ created_msg: Berjaya menambah domain emel ke dalam senarai hitam
+ delete: Padam
+ destroyed_msg: Berjaya memadam domain emel daripada senarai hitam
+ domain: Domain
+ new:
+ create: Tambah domain
+ title: Entri senarai hitam emel baru
+ title: Senarai hitam emel
+ instances:
+ title: Tika diketahui
+ invites:
+ deactivate_all: Nyahaktifkan semua
+ filter:
+ all: Semua
+ available: Tersedia
+ expired: Tamat tempoh
+ title: Tapis
+ title: Undangan
+ relays:
+ add_new: Tambah geganti baru
+ delete: Padam
+ description_html: "Geganti persekutuan ialah pelayan perantara yang saling menukar toot awam dalam jumlah yang banyak di antara pelayan yang melanggan ia dan menerbitkan kepada ia. Ia boleh bantu pelayan kecil dan sederhana untuk menemui kandungan daripada dunia persekutuan Mastodon, yang mana jika tidak digunakan akan memerlukan pengguna tempatan mengikut orang lain di pelayan jarak jauh secara manual."
+ disable: Lumpuhkan
+ disabled: Dilumpuhkan
+ enable: Bolehkan
+ enable_hint: Apabila dibolehkan, pelayan anda akan melanggan kesemua toot awam daripada geganti ini, dan akan mula menghantar toot awam pelayan ini kepada ia.
+ enabled: Dibolehkan
+ inbox_url: URL geganti
+ pending: Menunggu persetujuan geganti
+ save_and_enable: Simpan dan bolehkan
+ setup: Tetapkan sambungan geganti
+ status: Status
+ title: Geganti
+ report_notes:
+ created_msg: Nota laporan berjaya dicipta!
+ destroyed_msg: Nota laporan berjaya dipadam!
+ reports:
+ account:
+ note: nota
+ report: laporan
+ action_taken_by: Tindakan oleh
+ are_you_sure: Anda pasti?
+ assign_to_self: Berikan pada saya
+ assigned: Pengawal yang menerima
+ comment:
+ none: Tiada
+ created_at: Dilaporkan
+ mark_as_resolved: Tanda sebagai sudah selesai
+ mark_as_unresolved: Tanda sebagai belum selesai
+ notes:
+ create: Tambah nota
+ create_and_resolve: Selesaikan dengan nota
+ placeholder: Terangkan tindakan apa yang telah diambil, atau sebarang kemas kini lain yang berkaitan...
+ exports:
+ archive_takeout:
+ in_progress: Mengkompil arkib anda...
+ followers:
+ success:
+ one: Dalam proses menyekat-lembut pengikut daripada satu domain...
+ other: Dalam proses menyekat-lembut pengikut daripada %{count} domain...
+ notification_mailer:
+ digest:
+ title: Ketika anda tiada di sini...
+ users:
+ follow_limit_reached: Anda tidak boleh mengikut lebih daripada %{limit} orang
diff --git a/config/locales/nl.yml b/config/locales/nl.yml
index ab5a72a66..776d01b45 100644
--- a/config/locales/nl.yml
+++ b/config/locales/nl.yml
@@ -48,6 +48,7 @@ nl:
other: Volgers
following: Volgend
joined: Geregistreerd in %{date}
+ last_active: laatst actief
link_verified_on: Eigendom van deze link is gecontroleerd op %{date}
media: Media
moved_html: "%{name} is verhuisd naar %{new_profile_link}:"
@@ -69,6 +70,9 @@ nl:
moderator: Moderator
unfollow: Ontvolgen
admin:
+ account_actions:
+ action: Actie uitvoeren
+ title: Moderatieactie op %{acct} uitvoeren
account_moderation_notes:
create: Laat een opmerking achter
created_msg: Aanmaken van opmerking voor moderatoren geslaagd!
@@ -101,8 +105,10 @@ nl:
enabled: Ingeschakeld
feed_url: Feed-URL
followers: Volgers
+ followers_local: "(%{local} lokaal)"
followers_url: Volgers-URL
follows: Volgt
+ header: Omslagfoto
inbox_url: Inbox-URL
ip: IP
location:
@@ -114,6 +120,7 @@ nl:
media_attachments: Mediabijlagen
memorialize: In gedenkpagina veranderen
moderation:
+ active: Actief
all: Alles
silenced: Genegeerd
suspended: Opgeschort
@@ -123,10 +130,6 @@ nl:
most_recent_ip: Laatst gebruikt IP-adres
no_limits_imposed: Geen limieten ingesteld
not_subscribed: Niet geabonneerd
- order:
- alphabetic: Alfabetisch
- most_recent: Meest recent
- title: Sorteren
outbox_url: Outbox-URL
perform_full_suspension: Opschorten
profile_url: Profiel-URL
@@ -136,6 +139,7 @@ nl:
push_subscription_expires: PuSH-abonnement verloopt op
redownload: Avatar vernieuwen
remove_avatar: Avatar verwijderen
+ remove_header: Omslagfoto verwijderen
resend_confirmation:
already_confirmed: Deze gebruiker is al bevestigd
send: Verzend bevestigingsmail opnieuw
@@ -154,7 +158,6 @@ nl:
shared_inbox_url: Gedeelde inbox-URL
show:
created_reports: Door dit account aangemaakte rapportages
- report: gerapporteerd
targeted_reports: Over dit account aangemaakte rapportages
silence: Negeren
silenced: Genegeerd
@@ -173,6 +176,7 @@ nl:
assigned_to_self_report: "%{name} heeft rapportage %{target} aan zichzelf toegewezen"
change_email_user: "%{name} veranderde het e-mailadres van gebruiker %{target}"
confirm_user: E-mailadres van gebruiker %{target} is door %{name} bevestigd
+ create_account_warning: "%{name} verzond een waarschuwing naar %{target}"
create_custom_emoji: Nieuwe emoji %{target} is door %{name} geüpload
create_domain_block: Domein %{target} is door %{name} geblokkeerd
create_email_domain_block: E-maildomein %{target} is door %{name} op de zwarte lijst geplaatst
@@ -183,7 +187,7 @@ nl:
destroy_status: Toot van %{target} is door %{name} verwijderd
disable_2fa_user: Vereisten tweestapsverificatie van %{target} zijn door %{name} uitgeschakeld
disable_custom_emoji: Emoji %{target} is door %{name} uitgeschakeld
- disable_user: Aanmelden voor %{target} is door %{name} uitgeschakeld
+ disable_user: Inloggen voor %{target} is door %{name} uitgeschakeld
enable_custom_emoji: Emoji %{target} is door %{name} ingeschakeld
enable_user: Inloggen voor %{target} is door %{name} ingeschakeld
memorialize_account: Account %{target} is door %{name} in een gedenkpagina veranderd
@@ -231,6 +235,7 @@ nl:
config: Configuratie
feature_deletions: Verwijderen van account
feature_invites: Uitnodigingen
+ feature_profile_directory: Gebruikersgids
feature_registrations: Registraties
feature_relay: Federatierelay
features: Functies
@@ -265,11 +270,6 @@ nl:
reject_media_hint: Verwijderd lokaal opgeslagen mediabestanden en weigert deze in de toekomst te downloaden. Irrelevant voor opgeschorte domeinen
reject_reports: Rapportages weigeren
reject_reports_hint: Alle rapportages die vanaf dit domein komen negeren. Irrelevant voor opgeschorte domeinen
- severities:
- noop: Geen
- silence: Negeren
- suspend: Opschorten
- severity: Zwaarte
show:
affected_accounts:
one: Eén account in de database aangepast
@@ -279,7 +279,6 @@ nl:
suspend: Alle opgeschorte accounts van dit domein niet langer opschorten
title: Domeinblokkade voor %{domain} ongedaan maken
undo: Ongedaan maken
- title: Domeinblokkades
undo: Ongedaan maken
email_domain_blocks:
add_new: Nieuwe toevoegen
@@ -291,11 +290,10 @@ nl:
create: Blokkeren
title: Nieuw e-maildomein blokkeren
title: E-maildomeinen blokkeren
+ followers:
+ back_to_account: Terug naar account
+ title: Volgers van %{acct}
instances:
- account_count: Bekende accounts
- domain_name: Domein
- reset: Opnieuw
- search: Zoeken
title: Bekende servers
invites:
deactivate_all: Alles deactiveren
@@ -378,6 +376,9 @@ nl:
preview_sensitive_media:
desc_html: Linkvoorvertoningen op andere websites hebben een thumbnail, zelfs als een afbeelding of video als gevoelig is gemarkeerd
title: Gevoelige afbeeldingen en video's in OpenGraph-voorvertoningen tonen
+ profile_directory:
+ desc_html: Gebruikers toestaan om vindbaar te zijn
+ title: Gebruikersgids inschakelen
registrations:
closed_message:
desc_html: Wordt op de voorpagina weergegeven wanneer registratie van nieuwe accounts is uitgeschakeld En ook hier kan je HTML gebruiken
@@ -437,13 +438,21 @@ nl:
last_delivery: Laatste bezorging
title: WebSub
topic: Account
- suspensions:
- bad_acct_msg: De bevestigingswaarde kwam niet overeen. Schort je wel het juiste account op?
- hint_html: Vul in het veld hieronder %{value} in, om het opschorten van dit account te bevestigen.
- proceed: Ga verder
- title: "%{acct} opschorten"
- warning_html: 'Door het opschorten van dit account worden gegevens van dit account permanent verwijderd, waaronder:'
+ tags:
+ accounts: Accounts
+ hidden: Verborgen
+ hide: Niet in gebruikersgids tonen
+ name: Hashtag
+ title: Hashtags
+ unhide: In gebruikersgids tonen
+ visible: Zichtbaar
title: Beheer
+ warning_presets:
+ add_new: Nieuwe toevoegen
+ delete: Verwijderen
+ edit: Bewerken
+ edit_preset: Voorinstelling van waarschuwing bewerken
+ title: Voorinstellingen van waarschuwingen beheren
admin_mailer:
new_report:
body: "%{reporter} heeft %{target} gerapporteerd"
@@ -473,12 +482,12 @@ nl:
didnt_get_confirmation: Geen bevestigingsinstructies ontvangen?
forgot_password: Wachtwoord vergeten?
invalid_reset_password_token: De code om jouw wachtwoord opnieuw in te stellen is verlopen. Vraag een nieuwe aan.
- login: Aanmelden
- logout: Afmelden
- migrate_account: Naar een andere account verhuizen
+ login: Inloggen
+ logout: Uitloggen
+ migrate_account: Naar een ander account verhuizen
migrate_account_html: Wanneer je dit account naar een ander account wilt doorverwijzen, kun je dit hier instellen.
or: of
- or_log_in_with: Of aanmelden met
+ or_log_in_with: Of inloggen met
providers:
cas: CAS
saml: SAML
@@ -521,6 +530,13 @@ nl:
success_msg: Jouw account is succesvol verwijderd
warning_html: We kunnen alleen garanderen dat jouw gegevens op deze server worden verwijderd. Berichten (toots), incl. media, die veel zijn gedeeld laten mogelijk sporen achter. Offline servers en servers die niet meer op jouw updates zijn geabonneerd zullen niet hun databases updaten.
warning_title: Verwijdering gegevens op andere servers
+ directories:
+ directory: Gebruikersgids
+ explanation: Ontdek gebruikers aan de hand van hun interesses
+ explore_mastodon: "%{title} verkennen"
+ people:
+ one: "%{count} gebruikers"
+ other: "%{count} gebruikers"
errors:
'403': Jij hebt geen toestemming om deze pagina te bekijken.
'404': De pagina waarnaar jij op zoek bent bestaat niet.
@@ -692,9 +708,6 @@ nl:
no_account_html: Heb je geen account? Je kunt er hier een registreren
proceed: Ga verder om te volgen
prompt: 'Jij gaat volgen:'
- remote_interaction:
- proceed: Ga de interactie aan
- prompt: 'Jij wilt de interactie aangaan met deze toot:'
remote_unfollow:
error: Fout
title: Titel
@@ -884,13 +897,13 @@ nl:
month: "%b %Y"
two_factor_authentication:
code_hint: Voer de code in die door de authenticatie-app gegenereerd is
- description_html: Na het instellen van tweestapsverificatie, kun jij je alleen aanmelden als je jouw mobiele telefoon bij je hebt. Hiermee genereer je namelijk de in te voeren aanmeldcode.
+ description_html: Na het instellen van tweestapsverificatie, kun je alleen inloggen als je jouw mobiele telefoon bij je hebt. Hiermee genereer je namelijk de in te voeren aanmeldcode.
disable: Uitschakelen
enable: Inschakelen
enabled: Tweestapsverificatie is ingeschakeld
enabled_success: Inschakelen tweestapsverificatie geslaagd
generate_recovery_codes: Herstelcodes genereren
- instructions_html: "Scan deze QR-code in Google Authenticator of een soortgelijke app op jouw mobiele telefoon. Van nu af aan genereert deze app aanmeldcodes die je bij het aanmelden moet invoeren."
+ instructions_html: "Scan deze QR-code in Google Authenticator of een soortgelijke app op jouw mobiele telefoon. Van nu af aan genereert deze app aanmeldcodes die je bij het inloggen moet invoeren."
lost_recovery_codes: Met herstelcodes kun je toegang tot jouw account krijgen wanneer je jouw telefoon bent kwijtgeraakt. Wanneer je jouw herstelcodes bent kwijtgeraakt, kan je ze hier opnieuw genereren. Jouw oude herstelcodes zijn daarna ongeldig.
manual_instructions: Voor het geval je de QR-code niet kunt scannen en het handmatig moet invoeren, vind je hieronder geheime code in gewone tekst.
recovery_codes: Herstelcodes back-uppen
@@ -903,6 +916,18 @@ nl:
explanation: Je hebt een volledige back-up van jouw Mastodon-account opgevraagd. Het staat nu klaar om te worden gedownload!
subject: Jouw archief staat klaar om te worden gedownload
title: Archief ophalen
+ warning:
+ review_server_policies: Serverbeleid bekijken
+ subject:
+ disable: Jouw account %{acct} is bevroren
+ none: Waarschuwing voor %{acct}
+ silence: Jouw account %{acct} is nu beperkt
+ suspend: Jouw account %{acct} is opgeschort
+ title:
+ disable: Account bevroren
+ none: Waarschuwing
+ silence: Account beperkt
+ suspend: Account opgeschort
welcome:
edit_profile_action: Profiel instellen
edit_profile_step: Je kunt jouw profiel aanpassen door een avatar (profielfoto) en omslagfoto te uploaden, jouw weergavenaam in te stellen en iets over jezelf te vertellen. Wanneer je nieuwe volgers eerst wilt goedkeuren, kun je jouw account besloten maken.
@@ -914,7 +939,6 @@ nl:
review_preferences_action: Instellingen veranderen
review_preferences_step: Zorg dat je jouw instellingen naloopt, zoals welke e-mails je wilt ontvangen of voor wie jouw berichten standaard zichtbaar moeten zijn. Wanneer je geen last hebt van bewegende beelden, kun je het afspelen van geanimeerde GIF's inschakelen.
subject: Welkom op Mastodon
- tip_bridge_html: Wanneer je hiervoor op Twitter zat, kun je jouw vrienden op Mastodon vinden door gebruik te maken van de bridge-app. Het werkt echter alleen wanneer zij ook deze bridge-app hebben gebruikt!
tip_federated_timeline: De globale tijdlijn toont berichten in het Mastodonnetwerk. Het bevat echter alleen berichten van mensen waar jouw buren mee zijn verbonden, dus het is niet compleet.
tip_following: Je volgt standaard de beheerder(s) van jouw Mastodonserver. Bekijk de lokale en de globale tijdlijnen om meer interessante mensen te vinden.
tip_local_timeline: De lokale tijdlijn toont berichten van mensen op %{instance}. Dit zijn jouw naaste buren!
diff --git a/config/locales/no.yml b/config/locales/no.yml
index 61466fa20..cf8f77b4c 100644
--- a/config/locales/no.yml
+++ b/config/locales/no.yml
@@ -92,10 +92,6 @@
most_recent_activity: Nyligste aktivitet
most_recent_ip: Nyligste IP
not_subscribed: Ikke abonnért
- order:
- alphabetic: Alfabetisk
- most_recent: Nyligst
- title: Rekkefølge
outbox_url: Utboks URL
perform_full_suspension: Utfør full utvisning
profile_url: Profil-URL
@@ -122,7 +118,6 @@
shared_inbox_url: Delt Innboks URL
show:
created_reports: Rapporter laget av denne kontoen
- report: rapport
targeted_reports: Rapporter laget om denne kontoen
silence: Målbind
statuses: Statuser
@@ -200,11 +195,6 @@
title: Ny domeneblokkering
reject_media: Avvis mediefiler
reject_media_hint: Fjerner lokalt lagrede mediefiler og nekter å laste dem ned i fremtiden. Irrelevant for utvisninger
- severities:
- noop: Ingen
- silence: Målbind
- suspend: Utvis
- severity: Alvorlighet
show:
affected_accounts:
one: En konto i databasen påvirket
@@ -214,7 +204,6 @@
suspend: Avutvis alle eksisterende kontoer fra dette domenet
title: Angre domeneblokkering for %{domain}
undo: Angre
- title: Domeneblokkeringer
undo: Angre
email_domain_blocks:
add_new: Lag ny
@@ -227,10 +216,6 @@
title: Ny blokkeringsoppføring av e-postdomene
title: Blokkering av e-postdomene
instances:
- account_count: Kjente kontoer
- domain_name: Domene
- reset: Tilbakestill
- search: Søk
title: Kjente instanser
invites:
filter:
@@ -635,7 +620,6 @@
review_preferences_action: Endre innstillinger
review_preferences_step: Husk å justere dine innstillinger, som hvilke e-poster du ønsker å motta, eller hvor private du ønsker at dine poster skal være som standard. Hvis du ikke har bevegelsessyke kan du skru på automatisk avspilling av GIF-animasjoner.
subject: Velkommen til Mastodon
- tip_bridge_html: Hvis du kommer fra Twitter kan du finne dine venner på Mastodon ved å bruke en bro app. Men det fungerer kun dersom de også bruker bro-appen!
tip_federated_timeline: Den forente tidslinjen blir konstant matet med meldinger fra Mastodon-nettverket. Men den inkluderer bare personer dine naboer abbonerer på, så den er ikke komplett.
tip_following: Du følger din tjeners administrator(er) som standard. For å finne mer interessante personer, sjekk den lokale og forente tidslinjen.
tip_local_timeline: Den lokale tidslinjen blir kontant matet med meldinger fra personer på %{instance}. Dette er dine nærmeste naboer!
diff --git a/config/locales/oc.yml b/config/locales/oc.yml
index 428bbfffe..108f383b1 100644
--- a/config/locales/oc.yml
+++ b/config/locales/oc.yml
@@ -48,6 +48,7 @@ oc:
other: Seguidors
following: Abonaments
joined: Arribèt en %{date}
+ last_active: darrièra activitat
link_verified_on: La proprietat d’aqueste ligam foguèt verificada lo %{date}
media: Mèdias
moved_html: "%{name} a mudat a %{new_profile_link} :"
@@ -69,6 +70,9 @@ oc:
moderator: Moderador
unfollow: Quitar de sègre
admin:
+ account_actions:
+ action: Realizar una accion
+ title: Realizar una accion de moderacion sus %{acct}
account_moderation_notes:
create: Crear una nòta
created_msg: Nòta de moderacion ben creada !
@@ -101,8 +105,10 @@ oc:
enabled: Activat
feed_url: Flux URL
followers: Seguidors
+ followers_local: "(%{local} local)"
followers_url: URL dels seguidors
follows: Abonaments
+ header: Bandièra
inbox_url: URL de recepcion
ip: IP
location:
@@ -111,22 +117,19 @@ oc:
remote: Alonhats
title: Emplaçament
login_status: Estat formulari de connexion
- media_attachments: Mèdias ajustats
+ media_attachments: Mèdias enviats
memorialize: Passar en memorial
moderation:
- all: Tot
- silenced: Rescondut
- suspended: Suspendut
+ active: Actius
+ all: Totes
+ silenced: Resconduts
+ suspended: Suspenduts
title: Moderacion
moderation_notes: Nòtas de moderacion
most_recent_activity: Activitat mai recenta
most_recent_ip: IP mai recenta
no_limits_imposed: Cap de limit impausat
not_subscribed: Pas seguidor
- order:
- alphabetic: Alfabetic
- most_recent: Mai recent
- title: Ordre
outbox_url: URL Outbox
perform_full_suspension: Suspendre
profile_url: URL del perfil
@@ -136,6 +139,7 @@ oc:
push_subscription_expires: Fin de l’abonament PuSH
redownload: Actualizar los avatars
remove_avatar: Supriir l’avatar
+ remove_header: Levar la bandièra
resend_confirmation:
already_confirmed: Aqueste utilizaire es ja confirmat
send: Tornar mandar lo corrièl de confirmacion
@@ -154,7 +158,6 @@ oc:
shared_inbox_url: URL de recepcion partejada
show:
created_reports: Rapòrts creat per aqueste compte
- report: rapòrt
targeted_reports: Rapòrts faches tocant aqueste compte
silence: Silenci
silenced: Rescondut
@@ -173,6 +176,7 @@ oc:
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}"
confirm_user: "%{name} confirmèt l’adreça a %{target}"
+ create_account_warning: "%{name} mandèt un avertiment a %{target}"
create_custom_emoji: "%{name} mandèt un nòu emoji %{target}"
create_domain_block: "%{name} bloquèt lo domeni %{target}"
create_email_domain_block: "%{name} botèt a la lista nègra lo domeni de corrièl %{target}"
@@ -231,6 +235,7 @@ oc:
config: Configuracion
feature_deletions: Supressions de comptes
feature_invites: Ligams convidat
+ feature_profile_directory: Annuari de perfils
feature_registrations: Inscripcions
feature_relay: Relai de federacion
features: Foncionalitats
@@ -264,12 +269,7 @@ oc:
reject_media: Regetar los fichièrs mèdias
reject_media_hint: Lèva los fichièrs gardats localament e regèta las demandas de telecargament dins lo futur. Servís pas a res per las suspensions
reject_reports: Regetar los senhalaments
- reject_reports_hint: Ignorer totes los senhalaments que venon d’aqueste domeni. Pas pertiment per las suspensions
- severities:
- noop: Cap
- silence: Silenci
- suspend: Suspendre
- severity: Severitat
+ reject_reports_hint: Ignorar totes los senhalaments que venon d’aqueste domeni. Pas pertiment per las suspensions
show:
affected_accounts:
one: Un compte de la basa de donadas tocat
@@ -279,7 +279,6 @@ oc:
suspend: Levar la suspension de totes los comptes d’aqueste domeni
title: Restablir lo blocatge de domeni de %{domain}
undo: Restablir
- title: Blòc de domeni
undo: Restablir
email_domain_blocks:
add_new: Ajustar
@@ -291,11 +290,10 @@ oc:
create: Crear un blocatge
title: Nòu blocatge de domeni de corrièl
title: Blocatge de domeni de corrièl
+ followers:
+ back_to_account: Tornar al compte
+ title: Seguidors de %{acct}
instances:
- account_count: Comptes coneguts
- domain_name: Domeni
- reset: Reïnicializar
- search: Cercar
title: Instàncias conegudas
invites:
deactivate_all: O desactivar tot
@@ -347,7 +345,7 @@ oc:
reported_account: Compte senhalat
reported_by: Senhalat per
resolved: Resolgut
- resolved_msg: Rapòrt corrèctament resolgut !
+ resolved_msg: Rapòrt corrèctament resolgut !
status: Estatut
title: Senhalament
unassign: Levar
@@ -356,7 +354,7 @@ oc:
settings:
activity_api_enabled:
desc_html: Nombre d’estatuts publicats, d’utilizaires actius e de novèlas inscripcions en rapòrt setmanièr
- title: Publica las estatisticas totalas de l’activitat dels utilizaires
+ title: Publicar las estatisticas totalas de l’activitat dels utilizaires
bootstrap_timeline_accounts:
desc_html: Separatz los noms d’utilizaire amb de virgula. Pas que los comptes locals e pas clavats foncionaràn. Se lo camp es void los admins seràn selecionats.
title: Per defaut los nòuvenguts sègon
@@ -374,13 +372,16 @@ oc:
title: Imatge de la mascòta
peers_api_enabled:
desc_html: Noms de domeni qu’aquesta instància a trobats pel fediverse
- title: Publica la lista de las instàncias conegudas
+ title: Publicar la lista de las instàncias conegudas
preview_sensitive_media:
desc_html: Los apercebuts dels ligams sus los autres sites mostraràn una vinheta encara que lo mèdia siá marcat coma sensible
title: Mostrar los mèdias sensibles dins los apercebuts OpenGraph
+ profile_directory:
+ desc_html: Permet als utilizaires d’èsser trobats
+ title: Activar l’annuari de perfils
registrations:
closed_message:
- desc_html: Afichat sus las pagina d’acuèlh quand las inscripcions son tampadas. Podètz utilizar de balisas HTML
+ desc_html: Mostrat sus las pagina d’acuèlh quand las inscripcions son tampadas. Podètz utilizar de balisas HTML
title: Messatge de barradura de las inscripcions
deletion:
desc_html: Autorizar lo monde a suprimir lor compte
@@ -437,13 +438,21 @@ oc:
last_delivery: Darrièra distribucion
title: WebSub
topic: Subjècte
- suspensions:
- bad_acct_msg: La valor de confirmacion a pas coïncidit. Sètz a suspendre lo bon compte ?
- hint_html: 'Per confirmar la suspension del compte, picatz %{value} al camp çai-jos :'
- proceed: Tractat
- title: Suspension de %{acct}
- warning_html: 'Suspendre aqueste compte suprimirà irreversiblament las donadas del compte, aquò compren :'
+ tags:
+ accounts: Comptes
+ hidden: Amagat
+ hide: Amagar dins l’annuari
+ name: Etiqueta
+ title: Etiquetas
+ unhide: Aparéisser dins l’annuari
+ visible: Visible
title: Administracion
+ 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:
new_report:
body: "%{reporter} a senhalat %{target}"
@@ -577,6 +586,13 @@ oc:
success_msg: Compte ben suprimit
warning_html: La supression del contengut d’aquesta instància es sola assegurada. Lo contengut fòrça partejat daissarà probablament de traças. Los servidors fòra-linha e los que vos sègon pas mai auràn pas la mesa a jorn de lor basa de donada.
warning_title: Disponibilitat del contengut difusat
+ directories:
+ directory: Annuari de perfils
+ explanation: Trobar d’utilizaires segon lor interèsses
+ explore_mastodon: Explorar %{title}
+ people:
+ one: "%{count} persona"
+ other: "%{count} personas"
errors:
'403': Avètz pas l’autorizacion de veire aquesta pagina.
'404': La pagina que recercatz existís pas.
@@ -667,7 +683,7 @@ oc:
one: 1 persona
other: "%{count} personas"
max_uses_prompt: Cap de limit
- prompt: Generatz e partejatz los ligams per donar accès a aquesta instància
+ prompt: Generar e partejar los ligams per donar accès a aquesta instància
table:
expires_at: Expirats
uses: Usatges
@@ -748,9 +764,6 @@ oc:
no_account_html: Avètz pas cap de compte ? Podètz vos marcar aquí
proceed: Clicatz per sègre
prompt: 'Sètz per sègre :'
- remote_interaction:
- proceed: Confirmar l’interaccion
- prompt: 'Volètz interagir amb aqueste tut :'
remote_unfollow:
error: Error
title: Títol
@@ -961,6 +974,22 @@ oc:
explanation: Avètz demandat una salvagarda complèta de vòstre compte Mastodon. Es prèsta per telecargament !
subject: Vòstre archiu es prèst per telecargament
title: Archiu per emportar
+ warning:
+ explanation:
+ disable: Quand vòstre compte es gelat, las donadas d’aqueste demòran senceras, mas podètz pas realizar cap d’accion fins que siá desblocat.
+ silence: Del temps que vòstre compte es limitat, solament lo monde que vos sègon veiràn vòstres tuts sus aqueste servidor, e poiriatz èsser tirat de mantunas listas publicas. Pasmens, d’autres vos pòdon sègre manualament.
+ suspend: Vòstre compte es suspendut e totes vòstres tuts e fichièrs enviats son estats suprimits sens retorn possible d’aqueste servidor e los de vòstres seguidors.
+ review_server_policies: Repassar las politicas del servidor
+ subject:
+ disable: Vòstre compte %{acct} es gelat
+ none: Avertiment per %{acct}
+ silence: Vòstre compte %{acct} es limitat
+ suspend: Vòstre compte %{acct} es suspendut
+ title:
+ disable: Compte gelat
+ none: Avertiment
+ silence: Compte limitat
+ suspend: Compte suspendut
welcome:
edit_profile_action: Configuracion del perfil
edit_profile_step: Podètz personalizar lo perfil en mandar un avatard, cambiar l’escais-nom e mai. Se volètz repassar las demandas d’abonaments abans que los nòus seguidors pòscan veire vòstre perfil, podètz clavar vòstre compte.
@@ -972,7 +1001,6 @@ oc:
review_preferences_action: Cambiar las preferéncias
review_preferences_step: Pensatz de configurar vòstras preferéncias, tal coma los corrièls que volètz recebrer o lo nivèl de confidencialitat de vòstres tuts per defaut. O se l’animacion vos dòna pas enveja de rendre, podètz activar la lectura automatica dels GIF.
subject: Benvengut a Mastodon
- tip_bridge_html: Se venètz de Twitter, podètz trobar vòstres amics sus Mastodon en utilizant l‘aplicacion de Pont. Aquò fonciona pas que s’utilizan lo Pont tanben !
tip_federated_timeline: Lo flux d’actualitat federat es una vista generala del malhum Mastodon. Mas aquò inclutz solament lo monde que vòstres vesins sègon, doncas es pas complèt.
tip_following: Seguètz l’administrator del servidor per defaut. Per trobar de monde mai interessant, agachatz lo flux d’actualitat local e lo global.
tip_local_timeline: Lo flux d’actualitat local es una vista del monde de %{instance}. Son vòstres vesins dirèctes !
diff --git a/config/locales/pl.yml b/config/locales/pl.yml
index 9c893b605..7d9a05919 100644
--- a/config/locales/pl.yml
+++ b/config/locales/pl.yml
@@ -54,6 +54,7 @@ pl:
other: Śledzących
following: Śledzonych
joined: Dołączył(a) %{date}
+ last_active: ostatnio aktywny(-a)
link_verified_on: Własność tego odnośnika została sprawdzona %{date}
media: Zawartość multimedialna
moved_html: "%{name} korzysta teraz z konta %{new_profile_link}:"
@@ -122,6 +123,7 @@ pl:
media_attachments: Załączniki multimedialne
memorialize: Przełącz na „In Memoriam”
moderation:
+ active: Aktywne
all: Wszystkie
silenced: Wyciszone
suspended: Zawieszone
@@ -131,10 +133,6 @@ pl:
most_recent_ip: Ostatnie IP
no_limits_imposed: Nie nałożono ograniczeń
not_subscribed: Nie zasubskrybowano
- order:
- alphabetic: Alfabetycznie
- most_recent: Najnowsze
- title: Kolejność
outbox_url: Adres skrzynki nadawczej
perform_full_suspension: Zawieś
profile_url: Adres profilu
@@ -162,7 +160,6 @@ pl:
shared_inbox_url: Adres udostępnianej skrzynki
show:
created_reports: Zgłoszenia tego użytkownika
- report: zgłoszeń
targeted_reports: Zgłoszenia dotyczące tego użytkownika
silence: Wycisz
silenced: Wyciszono
@@ -239,6 +236,7 @@ pl:
config: Konfiguracja
feature_deletions: Usuwanie kont
feature_invites: Zaproszenia
+ feature_profile_directory: Katalog profilów
feature_registrations: Rejestracja
feature_relay: Przekazywanie federacji
features: Możliwości
@@ -273,11 +271,6 @@ pl:
reject_media_hint: Usuwa przechowywane lokalnie pliki multimedialne i nie pozwala na ich pobieranie. Nieprzydatne przy zawieszeniu
reject_reports: Odrzucaj zgłoszenia
reject_reports_hint: Zgłoszenia z tej instancji będą ignorowane. Nieprzydatne przy zawieszeniu
- severities:
- noop: Nic nie rób
- silence: Wycisz
- suspend: Zawieś
- severity: Priorytet
show:
affected_accounts: Dotyczy %{count} kont w bazie danych
retroactive:
@@ -285,7 +278,6 @@ pl:
suspend: Odwołaj zawieszenie wszystkich kont w tej domenie
title: Odwołaj blokadę dla domeny %{domain}
undo: Cofnij
- title: Zablokowane domeny
undo: Cofnij
email_domain_blocks:
add_new: Dodaj nową
@@ -298,10 +290,6 @@ pl:
title: Nowa blokada domeny e-mail
title: Blokowanie domen e-mail
instances:
- account_count: Znane konta
- domain_name: Domena
- reset: Przywróć
- search: Szukaj
title: Znane instancje
invites:
deactivate_all: Unieważnij wszystkie
@@ -376,7 +364,7 @@ pl:
desc_html: Wyświetlany na stronie głównej. Zalecany jest rozmiar przynajmniej 600x100 pikseli. Jeżeli nie ustawiony, zostanie użyta miniatura instancji
title: Obraz bohatera
mascot:
- desc_html: Wyświetlany na wielu stronach. Zalecany jest rozmiar przynajmniej 293px × 205px. Jeżeli nie ustawiono, zostanie użyta domyślna.
+ desc_html: Wyświetlany na wielu stronach. Zalecany jest rozmiar przynajmniej 293px × 205px. Jeżeli nie ustawiono, zostanie użyta domyślna
title: Obraz maskotki
peers_api_enabled:
desc_html: Nazwy domen, z którymi ta instancja wchodziła w interakcje
@@ -384,6 +372,9 @@ pl:
preview_sensitive_media:
desc_html: Podgląd odnośników na innych instancjach będzie wyświetlał miniaturę nawet jeśli zawartość multimedialna zostanie oznaczona jako wrażliwa
title: Wyświetlaj zawartość wrażliwą w podglądzie OpenGraph
+ profile_directory:
+ desc_html: Pozwalaj na poznawanie użytkowników
+ title: Włącz katalog profilów
registrations:
closed_message:
desc_html: Wyświetlana na stronie głównej, gdy możliwość otwarej rejestracji nie jest dostępna. Możesz korzystać z tagów HTML
@@ -443,12 +434,14 @@ pl:
last_delivery: Ostatnio doręczono
title: WebSub
topic: Temat
- suspensions:
- bad_acct_msg: Zawartość potwierdzenia nie zgadza się. Czy próbujesz zawiesić właściwe konto?
- hint_html: 'Aby potwierdzić zawieszenie konta, wprowadź %{value} w poniższe pole:'
- proceed: Przejdź
- title: Zawieś %{acct}
- warning_html: 'Zawieszenie konta będzie skutkowało nieodwracalnym usunięciem danych z tego konta, wliczając:'
+ tags:
+ accounts: Konta
+ hidden: Ukryte
+ hide: Ukryj w katalogu
+ name: Hashtag
+ title: Hashtagi
+ unhide: Pokazuj w katalogu
+ visible: Widoczne
title: Administracja
admin_mailer:
new_report:
@@ -527,6 +520,15 @@ pl:
success_msg: Twoje konto zostało pomyślnie usunięte
warning_html: Możemy usunąć zawartość jedynie w obrębie tej instancji. Zawartość udostępniona publicznie pozostawia trwałe ślady. Serwery niepodłączone do sieci bądź nieśledzące Twoich aktualizacji mogą zachować Twoje dane.
warning_title: Dostępność usuniętej zawartości
+ directories:
+ directory: Katalog profilów
+ explanation: Poznaj profile na podstawie zainteresowań
+ explore_mastodon: Odkrywaj %{title}
+ people:
+ few: "%{count} osoby"
+ many: "%{count} osób"
+ one: "%{count} osoba"
+ other: "%{count} osób"
errors:
'403': Nie masz uprawnień, aby wyświetlić tę stronę.
'404': Strona, którą próbujesz odwiedzić, nie istnieje.
@@ -703,9 +705,6 @@ pl:
no_account_html: Nie masz konta? Możesz zarejestrować się tutaj
proceed: Śledź
prompt: 'Zamierzasz śledzić:'
- remote_interaction:
- proceed: Przejdź do interakcji
- prompt: 'Chcesz dokonać interakcji z tym wpisem:'
remote_unfollow:
error: Błąd
title: Tytuł
@@ -927,7 +926,6 @@ pl:
review_preferences_action: Zmień ustawienia
review_preferences_step: Upewnij się, że zmieniłeś(-aś) ustawienia, takie jak maile, które chciałbyś otrzymywać lub domyślne opcje prywatności. Jeżeli nie masz choroby lokomocyjnej, możesz włączyć automatyczne odtwarzanie animacji GIF.
subject: Witaj w Mastodonie
- tip_bridge_html: Jeżeli przybywasz z Twittera, możesz znaleźć znajomych na Mastodonie używając aplikacji mostku. Działa to tylko, jeżeli oni również z niej korzystali!
tip_federated_timeline: Oś czasu federacji przedstawia całą sieć Mastodona. Wyświetla tylko wpisy osób, które śledzą użytkownicy Twojej instancji, więc nie jest kompletna.
tip_following: Domyślnie śledzisz administratora/ów swojej instancji. Aby znaleźć więcej ciekawych ludzi, zajrzyj na lokalną i federalną oś czasu.
tip_local_timeline: Lokalna oś czasu przedstawia osoby z %{instance}. To Twoi najbliżsi sąsiedzi!
diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml
index 8823b747f..e0d833c1e 100644
--- a/config/locales/pt-BR.yml
+++ b/config/locales/pt-BR.yml
@@ -10,7 +10,7 @@ pt-BR:
closed_registrations: Os cadastros estão atualmente fechados nesta instância. No entanto, você pode procurar uma instância diferente na qual possa criar uma conta e acessar a mesma rede por lá.
contact: Contato
contact_missing: Não definido
- contact_unavailable: N/A
+ contact_unavailable: Não disponível
documentation: Documentação
extended_description_html: |
Um bom lugar para regras
@@ -48,6 +48,7 @@ pt-BR:
other: Seguidores
following: Seguindo
joined: Participa desde %{date}
+ last_active: última atividade
link_verified_on: A posse desse link foi checada em %{date}
media: Mídia
moved_html: "%{name} se mudou para %{new_profile_link}:"
@@ -69,6 +70,9 @@ pt-BR:
moderator: Moderador
unfollow: Deixar de seguir
admin:
+ account_actions:
+ action: Tomar uma ação
+ title: Realizar uma ação de moderação em %{acct}
account_moderation_notes:
create: Criar uma advertência
created_msg: Nota de moderação criada com sucesso!
@@ -101,8 +105,10 @@ pt-BR:
enabled: Ativado
feed_url: URL do feed
followers: Seguidores
+ followers_local: "(%{local} local)"
followers_url: URL de seguidores
follows: Segue
+ header: Cabeçalho
inbox_url: URL da caixa de entrada
ip: IP
location:
@@ -114,6 +120,7 @@ pt-BR:
media_attachments: Mídia(s) anexada(s)
memorialize: Tornar um memorial
moderation:
+ active: Ativo
all: Todos
silenced: Silenciados
suspended: Suspensos
@@ -123,10 +130,6 @@ pt-BR:
most_recent_ip: IP mais recente
no_limits_imposed: Nenhum limite imposto
not_subscribed: Não está inscrito
- order:
- alphabetic: Alfabética
- most_recent: Mais recente
- title: Ordem
outbox_url: URL da caixa de saída
perform_full_suspension: Suspender
profile_url: URL do perfil
@@ -136,6 +139,7 @@ pt-BR:
push_subscription_expires: Inscrição PuSH expira
redownload: Atualizar avatar
remove_avatar: Remover avatar
+ remove_header: Remover cabeçalho
resend_confirmation:
already_confirmed: Este usuário já está confirmado
send: Re-enviar o e-mail de confirmação
@@ -154,7 +158,6 @@ pt-BR:
shared_inbox_url: URL da caixa de entrada compartilhada
show:
created_reports: Denúncias criadas por esta conta
- report: relatórios
targeted_reports: Denúncias feitas sobre esta conta
silence: Silenciar
silenced: Silenciado
@@ -173,6 +176,7 @@ pt-BR:
assigned_to_self_report: "%{name} designou a denúncia %{target} para si"
change_email_user: "%{name} mudou 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_custom_emoji: "%{name} enviou o emoji novo %{target}"
create_domain_block: "%{name} bloqueou o domínio %{target}"
create_email_domain_block: "%{name} colocou o domínio de e-mail %{target} na lista negra"
@@ -231,6 +235,7 @@ pt-BR:
config: Configuração
feature_deletions: Remoção de contas
feature_invites: Convites
+ feature_profile_directory: Diretório de perfis
feature_registrations: Cadastros
feature_relay: Repetidor da federação
features: Funcionalidades
@@ -265,11 +270,6 @@ pt-BR:
reject_media_hint: Remove arquivos de mídia armazenados localmente e recusa quaisquer outros no futuro. Irrelevante para suspensões
reject_reports: Rejeitar denúncias
reject_reports_hint: Ignorar todas as denúncias vindas deste domíno. Irrelevante para suspensões
- severities:
- noop: Nenhum
- silence: Silêncio
- suspend: Suspensão
- severity: Rigidez
show:
affected_accounts:
one: Uma conta no banco de dados foi afetada
@@ -279,7 +279,6 @@ pt-BR:
suspend: Retirar suspensão de todas as contas neste domínio
title: Retirar bloqueio de domínio de %{domain}
undo: Retirar
- title: Bloqueios de domínio
undo: Retirar
email_domain_blocks:
add_new: Adicionar novo
@@ -291,11 +290,10 @@ pt-BR:
create: Adicionar domínio
title: Novo bloqueio de domínio de e-mail
title: Bloqueio de Domínio de E-mail
+ followers:
+ back_to_account: Voltar para a conta
+ title: Pessoas que seguem %{acct}
instances:
- account_count: Contas conhecidas
- domain_name: Domínio
- reset: Resetar
- search: Buscar
title: Instâncias conhecidas
invites:
deactivate_all: Desativar todos
@@ -378,6 +376,9 @@ pt-BR:
preview_sensitive_media:
desc_html: A pré-visualização do link em outros sites vai incluir uma miniatura mesmo se a mídia estiver marcada como sensível
title: Mostrar mídia sensível em pré-visualizações OpenGraph
+ profile_directory:
+ desc_html: Permitir que usuários possam ser descobertos
+ title: Ativar diretório de perfis
registrations:
closed_message:
desc_html: Exibido na página inicial quando cadastros estão fechados. Você pode usar tags HTML
@@ -437,13 +438,21 @@ pt-BR:
last_delivery: Última entrega
title: WebSub
topic: Tópico
- suspensions:
- bad_acct_msg: Os valores de confirmação não correspondem. Você está suspendendo a conta certa?
- hint_html: 'Para confirmar a suspensão da conta, por favor digite %{value} no campo abaixo:'
- proceed: Prosseguir
- title: Suspender %{acct}
- warning_html: 'Suspender essa conta vai remover irreversivelmente dados dessa conta, o que inclui:'
+ tags:
+ accounts: Contas
+ hidden: Escondido
+ hide: Esconder do diretório
+ name: Hashtag
+ title: Hashtags
+ unhide: Mostrar no diretório
+ visible: Visível
title: Administração
+ warning_presets:
+ add_new: Adicionar um novo
+ delete: Excluir
+ edit: Editar
+ edit_preset: Editar o aviso pré-definido
+ title: Gerenciar os avisos pré-definidos
admin_mailer:
new_report:
body: "%{reporter} denunciou %{target}"
@@ -521,6 +530,13 @@ pt-BR:
success_msg: A sua conta foi excluída com sucesso
warning_html: Apenas a exclusão de conteúdo desta instância em particular é garantida. Conteúdo que tenha sido largamente compartilhado muito provavelmente deixará traços. Servidores offline e servidores que se desinscreveram de suas atualizações não irão atualizar as suas bases de dados.
warning_title: Disponibilidade de conteúdo disseminado
+ directories:
+ directory: Diretório de perfis
+ explanation: Descobrir usuários baseado em seus interesses
+ explore_mastodon: Explorar %{title}
+ people:
+ one: "%{count} pessoas"
+ other: "%{count} pessoa"
errors:
'403': Você não tem permissão para ver esta página.
'404': A página pela qual você está procurando não existe.
@@ -692,9 +708,6 @@ pt-BR:
no_account_html: Não tem uma conta? Você pode cadastrar-se aqui
proceed: Prosseguir para seguir
prompt: 'Você irá seguir:'
- remote_interaction:
- proceed: Continue para interagir
- prompt: 'Você quer interagir com este toot:'
remote_unfollow:
error: Erro
title: Título
@@ -904,6 +917,22 @@ pt-BR:
explanation: Você pediu um backup completo da sua conta no Mastodon. E agora está pronto para ser baixado!
subject: Seu arquivo está pronto para ser baixado
title: Baixar arquivo
+ warning:
+ explanation:
+ disable: Enquanto sua conta está congelada, seus dados estão intactos, mas você não pode realizar nenhuma ação até que sua conta seja desbloqueada.
+ silence: Enquanto sua conta está limitada, somente pessoas que já estão seguindo você poderão ver seus toots nesse servidor, e você pode ser excluído de diversas listagens públicas. No entanto, outros ainda podem seguir você manualmente.
+ suspend: Sua conta está suspensa e todos os seus toots e mídias foram irreversivelmente removidas desse servidor e de servidores onde você tinha seguidores.
+ review_server_policies: Revisar as políticas do servidor
+ subject:
+ disable: Sua conta %{acct} foi congelada
+ none: Aviso para %{acct}
+ silence: Sua conta %{acct} foi limitada
+ suspend: Sua conta %{acct} foi suspensa
+ title:
+ disable: Conta congelada
+ none: Aviso
+ silence: Conta limitada
+ suspend: Conta suspensa
welcome:
edit_profile_action: Configurar perfil
edit_profile_step: Você pode customizar o seu perfil enviando um avatar, uma imagem de topo, mudando seu nome de exibição, dentre outros. Se você gostaria de aprovar novos seguidores antes que eles possam seguir você, você pode trancar a sua conta.
@@ -915,7 +944,6 @@ pt-BR:
review_preferences_action: Mudar as preferências
review_preferences_step: Não se esqueça de configurar suas preferências, como quais e-mails você gostaria de receber, que nível de privacidade você gostaria que seus posts tenham por padrão. Se você não sofre de enjôo com movimento, você pode habilitar GIFs animando automaticamente.
subject: Boas-vindas ao Mastodon
- tip_bridge_html: Se você está vindo do Twitter, você pode encontrar pessoas conhecidas que estão no Mastodon usando app de associação. Mas só funciona se as pessoas também estiverem usando o app!
tip_federated_timeline: A timeline global é uma visão contínua da rede do Mastodon. Mas ela só inclui pessoas que outras pessoas da sua instância estão seguindo, então não é a rede completa.
tip_following: Você vai seguir administrador(es) da sua instância por padrão. Para encontrar mais gente interessante, confira as timelines local e global.
tip_local_timeline: A timeline local é uma visão contínua das pessoas que estão em %{instance}. Esses são seus vizinhos próximos!
diff --git a/config/locales/pt.yml b/config/locales/pt.yml
index 722985206..3e2986861 100644
--- a/config/locales/pt.yml
+++ b/config/locales/pt.yml
@@ -92,10 +92,6 @@ pt:
most_recent_activity: Actividade mais recente
most_recent_ip: IP mais recente
not_subscribed: Não inscrito
- order:
- alphabetic: Alfabética
- most_recent: Mais recente
- title: Ordem
outbox_url: URL da caixa de saída
perform_full_suspension: Fazer suspensão completa
profile_url: URL do perfil
@@ -122,7 +118,6 @@ pt:
shared_inbox_url: URL da caixa de entrada compartilhada
show:
created_reports: Relatórios gerados por esta conta
- report: relatórios
targeted_reports: Relatórios feitos sobre esta conta
silence: Silêncio
statuses: Status
@@ -200,11 +195,6 @@ pt:
title: Novo bloqueio 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
- severities:
- noop: Nenhum
- silence: Silenciar
- suspend: Suspender
- severity: Severidade
show:
affected_accounts:
one: Uma conta na base de dados afectada
@@ -214,7 +204,6 @@ pt:
suspend: Não suspender todas as contas existentes nesse domínio
title: Remover o bloqueio de domínio de %{domain}
undo: Anular
- title: Bloqueio de domínio
undo: Anular
email_domain_blocks:
add_new: Adicionar novo
@@ -227,10 +216,6 @@ pt:
title: Novo bloqueio de domínio de email
title: Bloqueio de Domínio de Email
instances:
- account_count: Contas conhecidas
- domain_name: Domínio
- reset: Restaurar
- search: Pesquisar
title: Instâncias conhecidas
invites:
filter:
diff --git a/config/locales/ro.yml b/config/locales/ro.yml
index 3a104e1d0..60a38b7c6 100644
--- a/config/locales/ro.yml
+++ b/config/locales/ro.yml
@@ -1,7 +1,119 @@
---
ro:
+ about:
+ hosted_on: Mastodon găzduit de %{domain}
accounts:
posts:
few: Toots
one: Toot
other: Toots
+ auth:
+ agreement_html: Prin apăsarea butonului Înscriere de mai jos ești deacord cu regulile acestei instanțe și termenii de utilizare al acestui serviciu.
+ change_password: Parolă
+ confirm_email: Confirmă email
+ delete_account: Șterge contul
+ delete_account_html: Dacă vrei să ștergi acest cont poți începe aici. Va trebui să confirmi această acțiune.
+ 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.
+ login: Conectare
+ logout: Deconectare
+ 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: sau
+ or_log_in_with: Sau conectează-te cu
+ providers:
+ cas: CAS
+ saml: SAML
+ register: Înregistrare
+ register_elsewhere: Înregistrează-te pe un alt server
+ resend_confirmation: Retrimite instrucțiunile de confirmare
+ reset_password: Resetare parolă
+ security: Securitate
+ set_new_password: Setează o nouă parolă
+ authorize_follow:
+ already_following: Urmărești deja acest 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:'
+ following: 'Gata! De acum urmărești:'
+ post_follow:
+ close: Sau, poți închide această fereastră.
+ return: Arată profilul utilizatorului
+ web: Mergi la web
+ title: Urmărește %{acct}
+ datetime:
+ distance_in_words:
+ about_x_hours: "%{count}o"
+ about_x_months: "%{count}l"
+ about_x_years: "%{count}ani"
+ almost_x_years: "%{count}ani"
+ half_a_minute: Chiar acum
+ less_than_x_minutes: "%{count}l"
+ 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:
+ bad_password_msg: Bună încercare, hackere! Parolă incorectă
+ confirm_password: Introdu parola curentă pentru a-ți verifica identitatea
+ description_html: Această acțiune este permanentă și ireversibilă, elimină conținutul și dezactivează contul tău. Acest username va rămâne permanent rezervat pentru a evita furtul de identitate.
+ proceed: Șterge contul
+ success_msg: Contul tău a fost șterg. Nu mai poate fi recuperat :D
+ warning_html: Doar ștergerea conținutului de pe acest server este garantată. Conținutul tău care a fost redistribuit în alte instațe e posibil să lase urme. Serverele deconecate sau care nu mai sunt abonate la actualizările contului tău nu își vor mai actualiza baza de date.
+ directories:
+ explanation: Descoperă utilizatori în funcție de interesele lor
+ explore_mastodon: Explorează %{title}
+ people:
+ few: "%{count} persoană"
+ one: "%{count} persoană"
+ other: "%{count} oameni"
+ errors:
+ '403': Nu ai permisiunea să vizitezi această pagină.
+ '404': Pagina pe care o cauți nu există.
+ '410': Pagina pe care o cauți nu mai există.
+ '422':
+ content: Verificarea securității a eșuat. Ai blocat cookiurile?
+ title: Verificarea securității a eșuat
+ '429': Strangulat
+ '500':
+ content: Ne pare rău, dar ceva a funcționat greșit. Încercați din nou!?
+ title: Această pagină nu este corectă
+ noscript_html: Pentru a utiliza o aplicație web Mastodon, te rog activează JavaScript. Alternativ, încearcă una din aplicațiile native Mastodon pentru platforma ta.
+ exports:
+ archive_takeout:
+ date: Data
+ download: Descarcă arhiva contului tău
+ hint_html: Poți solicita arhivapostărilor și conținutul media a contului tău. Datele furnizate sunt în formatul ActivityPub. Poți solicita cate o arhivă la 7 zile.
+ in_progress: Pregătim arhiva ta...
+ request: Cere arhiva ta
+ size: Dimensiune
+ blocks: Blocați
+ csv: CSV
+ follows: Tu urmărești
+ mutes: Opriți
+ storage: Depozitare media
+ filters:
+ contexts:
+ home: Fluxul Acasă
+ notifications: Notificări
+ public: Fluxul public
+ thread: Conversații
+ edit:
+ title: Editează filtru
+ errors:
+ invalid_context: Lipsa conținut sau acesta este invalid
+ invalid_irreversible: Filtrarea ireversibilă funcționează dor cu context din fluxul Acasă și notificări
+ index:
+ delete: Șterge
+ title: Filtre
+ new:
+ title: Adaugă un filtru nou
+ followers:
+ domain: Domeniu
+ explanation_html: Dacă vrei să fi sigur de confidențialitatea statusurilor tale, ar trebui să fi conștient de cine te urmărește. Statusurile tale private sunt livrate către toate instanțele unde ai urmăritori. Este recomandabil să verifici și să ștergi urmăritorii în care nu ai încredere că îți vor respecta intimitatea.
+ followers_count: Numărul de urmăritori
+ lock_link: Privează contul tău
+ purge: Elimină de la urmăritori
diff --git a/config/locales/ru.yml b/config/locales/ru.yml
index a3ac754f2..3e37391a8 100644
--- a/config/locales/ru.yml
+++ b/config/locales/ru.yml
@@ -128,10 +128,6 @@ ru:
most_recent_activity: Последняя активность
most_recent_ip: Последний IP
not_subscribed: Не подписаны
- order:
- alphabetic: По алфавиту
- most_recent: По дате
- title: Порядок
outbox_url: URL исходящих
perform_full_suspension: Полная блокировка
profile_url: URL профиля
@@ -159,7 +155,6 @@ ru:
shared_inbox_url: URL общих входящих
show:
created_reports: Жалобы, отправленные этим аккаунтом
- report: жалоба
targeted_reports: Жалобы на этот аккаунт
silence: Глушение
statuses: Статусы
@@ -265,11 +260,6 @@ ru:
title: Новая доменная блокировка
reject_media: Запретить медиаконтент
reject_media_hint: Удаляет локально хранимый медиаконтент и запрещает его загрузку в будущем. Не имеет значения в случае блокировки
- severities:
- noop: Ничего
- silence: Глушение
- suspend: Блокировка
- severity: Строгость
show:
affected_accounts:
few: Влияет на %{count} аккаунта в базе данных
@@ -281,7 +271,6 @@ ru:
suspend: Снять блокировку со всех существующих аккаунтов этого домена
title: Снять блокировку с домена %{domain}
undo: Отменить
- title: Доменные блокировки
undo: Отменить
email_domain_blocks:
add_new: Добавить новую
@@ -294,10 +283,6 @@ ru:
title: Новая доменная блокировка еmail
title: Доменная блокировка email
instances:
- account_count: Известных аккаунтов
- domain_name: Домен
- reset: Сбросить
- search: Поиск
title: Известные узлы
invites:
deactivate_all: Отключить все
@@ -431,12 +416,6 @@ ru:
last_delivery: Последняя доставка
title: WebSub
topic: Тема
- suspensions:
- bad_acct_msg: Не удалось найти такое число подтверждения. Вы уверены, что замораживаете нужный аккаунт?
- hint_html: 'Чтобы подтвердить заморозку аккаунта, пожалуйста, введите %{value} в поле ниже:'
- proceed: Продолжить
- title: Заморозить %{acct}
- warning_html: 'Заморозка этого аккаунта приведёт к необратимому удалению данных с этого аккаунта, включая:'
title: Администрирование
admin_mailer:
new_report:
@@ -694,9 +673,6 @@ ru:
no_account_html: Нет учётной записи? Вы можете зарегистрироваться здесь
proceed: Продолжить подписку
prompt: 'Вы хотите подписаться на:'
- remote_interaction:
- proceed: Продолжить
- prompt: 'Вы собираетесь взаимодействовать со статусом:'
remote_unfollow:
error: Ошибка
title: Заголовок
@@ -917,7 +893,6 @@ ru:
review_preferences_action: Изменить настройки
review_preferences_step: Проверьте все настройки, например, какие письма Вы хотите получать или уровень приватности статусов по умолчанию. Если Вы не страдаете морской болезнь, можете включить автовоспроизведение GIF.
subject: Добро пожаловать в Mastodon
- tip_bridge_html: Если Вы пришли из Twitter, можете поискать своих друзей в Mastodon, используя приложение-мост. Но это работает только если они тоже использовали это приложение!
tip_federated_timeline: В глобальной ленте отображается сеть Mastodon. Но в ней показаны посты только от людей, на которых подписаны Вы и Ваши соседи, поэтому лента может быть неполной.
tip_following: По умолчанию Вы подписаны на администратора(-ов) Вашего узла. Чтобы найти других интересных людей, проверьте локальную и глобальную ленты.
tip_local_timeline: В локальной ленте показаны посты от людей с %{instance}. Это Ваши непосредственные соседи!
diff --git a/config/locales/simple_form.ar.yml b/config/locales/simple_form.ar.yml
index cdd3ddf25..ad94a9d5d 100644
--- a/config/locales/simple_form.ar.yml
+++ b/config/locales/simple_form.ar.yml
@@ -2,6 +2,10 @@
ar:
simple_form:
hints:
+ account_warning_preset:
+ text: بإمكانك استخدام نفس القواعد التي نجدها في التبويقات كعناوين الروابط والوسوم والإشارات
+ admin_account_action:
+ send_email_notification: سوف يتلقى المستخدم رسالة تُفسِّر ما حدث على حسابه
defaults:
autofollow: سوف يتابعك تلقائيًا الأشخاص الذين يقومون بالتسجيل من خلال الدعوة
avatar: ملف PNG أو GIF أو JPG. حجمه على أقصى تصدير %{size}. سيتم تصغيره إلى %{dimensions}px
@@ -37,6 +41,15 @@ ar:
fields:
name: التسمية
value: المحتوى
+ admin_account_action:
+ send_email_notification: إشعار المستخدِم عبر البريد الإلكتروني
+ text: تحذير مخصص
+ type: الإجراء
+ types:
+ disable: تعطيل
+ none: لا تفعل شيئا
+ silence: كتم
+ suspend: تعليق و حذف كافة بيانات الحساب
defaults:
autofollow: إرسال دعوة لمتابعة حسابك
avatar: الصورة الرمزية
@@ -47,6 +60,7 @@ ar:
context: تصفية السياقات
current_password: كلمة السر الحالية
data: البيانات
+ discoverable: القيام بإدراج هذا الحساب في قائمة دليل الحسابات
display_name: الإسم المعروض
email: عنوان البريد الإلكتروني
expires_in: تنتهي مدة صلاحيته بعد
@@ -62,6 +76,7 @@ ar:
otp_attempt: رمز المصادقة بخطوتين
password: كلمة السر
phrase: كلمة مفتاح أو عبارة
+ setting_aggregate_reblogs: جمع الترقيات في خيوط زمنية
setting_auto_play_gif: تشغيل تلقائي لِوَسائط جيف المتحركة
setting_boost_modal: إظهار مربع حوار للتأكيد قبل ترقية أي تبويق
setting_default_language: لغة النشر
diff --git a/config/locales/simple_form.ast.yml b/config/locales/simple_form.ast.yml
index 0d78f419f..b91d5780a 100644
--- a/config/locales/simple_form.ast.yml
+++ b/config/locales/simple_form.ast.yml
@@ -6,9 +6,14 @@ ast:
autofollow: La xente que se rexistre pente la invitación va siguite automáticamente
bot: Esta cuenta fai principalmente aiciones automatizaes y podría nun supervisase
digest: Namái s'unvia tres un periodu llargu d'inactividá y namái si recibiesti cualesquier mensaxe personal na to ausencia
+ email: Vamos unviate un corréu de confirmación
irreversible: Los toots peñeraos van desapaecer de mou irreversible, magar que se desanicie la peñera dempués
+ password: Usa 8 caráuteres polo menos
setting_hide_network: La xente que sigas y teas siguiendo nun va amosase nel perfil
setting_theme: Afeuta al aspeutu de Mastodon cuando anicies sesión dende cualesquier preséu.
+ username: El nome d'usuariu va ser únicu en %{domain}
+ imports:
+ data: El ficheru CSV esportáu dende otra instancia de Mastodon
labels:
account:
fields:
@@ -22,18 +27,27 @@ ast:
current_password: Contraseña actual
data: Datos
display_name: Nome a amosar
+ email: Direición de corréu
+ expires_in: Caduca tres
fields: Datos meta del perfil
header: Testera
+ irreversible: Escartar en cuentes d'anubrir
locale: Llingua de la interfaz
locked: Bloquiar cuenta
+ max_uses: Númberu máximu d'usos
new_password: Contraseña nueva
note: Bio
otp_attempt: Códigu de verificación en dos pasos
password: Contraseña
+ phrase: Pallabra clave o fras
setting_auto_play_gif: Reproducir GIFs automáticamente
- setting_default_language: Llingua d'espublización
+ setting_default_language: Llingua de les espublizaciones
setting_default_privacy: Privacidá d'espublizaciones
+ setting_delete_modal: Amosar el diálogu de confirmación enantes de desaniciar un toot
+ setting_system_font_ui: Usar la fonte predeterminada del sistema
+ setting_unfollow_modal: Amosar el diálogu de confirmación enantes de dexar de siguir a daquién
severity: Severidá
+ type: Triba de la importación
username: Nome d'usuariu
username_or_email: Nome d'usuariu o corréu
interactions:
diff --git a/config/locales/simple_form.ca.yml b/config/locales/simple_form.ca.yml
index 546a5bd14..4c2b1636d 100644
--- a/config/locales/simple_form.ca.yml
+++ b/config/locales/simple_form.ca.yml
@@ -2,12 +2,20 @@
ca:
simple_form:
hints:
+ account_warning_preset:
+ text: Pots utilitzar totes les sintaxi com ara URL, etiquetes i mencions
+ admin_account_action:
+ send_email_notification: L'usuari rebrà una explicació del que ha passat amb el seu compte
+ text_html: Opcional. Pots utilitzar tota la sintaxi. Pots afegir configuracions predefinides d'avís per a estalviar temps
+ type_html: Tria què fer amb %{acct}
+ warning_preset_id: Opcional. Encara pots afegir text personalitzat al final de la configuració predefinida
defaults:
autofollow: Les persones que es registrin a través de la invitació et seguiran automàticament
avatar: PNG, GIF o JPG. Màxim %{size}. S'escalarà a %{dimensions}px
bot: Aquest compte realitza principalment accions automatitzades i pot no estar controlat per cap persona
context: Un o diversos contextos on s'ha d'aplicar el filtre
digest: Només s'envia després d'un llarg període d'inactivitat amb un resum de les mencions que has rebut en la teva absència
+ discoverable_html: El directori permet trobar usuaris en funció dels interessos i activitat. Requereix almenys %{min_followers} seguidors
email: Se t'enviarà un correu electrònic de confirmació
fields: Pots tenir fins a 4 elements que es mostren com a taula al teu perfil
header: PNG, GIF o JPG. Màxim %{size}. S'escalarà a %{dimensions}px
@@ -18,6 +26,7 @@ ca:
password: Utilitza com a mínim 8 caràcters
phrase: Es combinarà independentment del format en el text o l'avís de contingut d'un toot
scopes: A quines API es permetrà l'accés a l'aplicació. Si selecciones un àmbit d'alt nivell, no cal que seleccionis un d'individual.
+ setting_aggregate_reblogs: No mostra els nous impulsos dels toots que ja s'han impulsat recentment (només afecta als impulsos nous rebuts)
setting_default_language: La llengua dels teus toots pot ser detectada automàticament però no sempre acuradament
setting_display_media_default: Amaga els multimèdia marcats com a sensibles
setting_display_media_hide_all: Sempre oculta tots els multimèdia
@@ -38,6 +47,18 @@ ca:
fields:
name: Etiqueta
value: Contingut
+ account_warning_preset:
+ text: Text predefinit
+ admin_account_action:
+ send_email_notification: Notifica l'usuari per correu electrònic
+ text: Avís personalitzat
+ type: Acció
+ types:
+ disable: Inhabilita
+ none: No fer res
+ silence: Silenci
+ suspend: Suspèn i elimina irreversiblement les dades del compte
+ warning_preset_id: Utilitza una configuració predefinida d'avís
defaults:
autofollow: Convida a seguir el teu compte
avatar: Avatar
@@ -48,6 +69,7 @@ ca:
context: Filtre els contextos
current_password: Contrasenya actual
data: Informació
+ discoverable: Mostra aquest compte en el directori
display_name: Nom visible
email: Adreça de correu electrònic
expires_in: Expira després
@@ -63,8 +85,9 @@ ca:
otp_attempt: Codi de dos factors
password: Contrasenya
phrase: Paraula clau o frase
+ setting_aggregate_reblogs: Agrupa impulsos en les línies de temps
setting_auto_play_gif: Reproducció automàtica de GIFs animats
- setting_boost_modal: Mostra la finestra de confirmació abans d'un retoot
+ setting_boost_modal: Mostra la finestra de confirmació abans d'impulsar
setting_default_language: Llengua de les publicacions
setting_default_privacy: Privacitat de les publicacions
setting_default_sensitive: Marca sempre els elements multimèdia com a sensibles
diff --git a/config/locales/simple_form.co.yml b/config/locales/simple_form.co.yml
index b200dfb48..2fb035556 100644
--- a/config/locales/simple_form.co.yml
+++ b/config/locales/simple_form.co.yml
@@ -2,12 +2,20 @@
co:
simple_form:
hints:
+ account_warning_preset:
+ text: Pudete utilizà a sintassa di i statuti, per esempiu l'URL, hashtag, minzione
+ admin_account_action:
+ send_email_notification: L'utilizatore hà da riceve una spiegazione di cio chì hè accadutu à u so contu
+ text_html: In uzzione. Pudete utilizà a sintassa di i statuti. Pudete ancu aghjustà preselezzione d'avertimentu per piglià tempu
+ type_html: Sceglie chì fà cù %{acct}
+ warning_preset_id: In uzzione. Pudete sempre aghjustà un testu persunalizatu à a fine di a preselezzione
defaults:
autofollow: Quelli·e chì s'arregistranu cù l'invitazione saranu autumaticamente abbunati·e à voi
avatar: Furmatu PNG, GIF o JPG. %{size} o menu. Sarà ridottu à %{dimensions}px
bot: Stu contu hè autumatizatu è ùn hè forse micca survegliatu
context: Cuntestu·i induve u filtru deve esse applicatu
digest: Solu mandatu dopu à una longa perioda d’inattività, è solu s’elli ci sò novi missaghji diretti
+ discoverable_html: L'annuariu permette à a ghjente di truvà conti à partesi d'interessi è d'attività. Ci vole à avè almenu %{min_followers} abbunati
email: Avete da riceve un'e-mail di cunfirmazione
fields: Pudete avè fin’à 4 elementi mustrati cum’un tavulone nant’à u vostru prufile
header: Furmatu PNG, GIF o JPG. %{size} o menu. Sarà ridottu à %{dimensions}px
@@ -18,6 +26,7 @@ co:
password: Ci volenu almenu 8 caratteri
phrase: Sarà trovu senza primura di e maiuscule o di l'avertimenti
scopes: L'API à quelle l'applicazione averà accessu. S'è voi selezziunate un parametru d'altu livellu, un c'hè micca bisognu di selezziunà quell'individuali.
+ setting_aggregate_reblogs: Ùn mustrà micca e nove spartere per i statuti chì sò stati spartuti da pocu (tocca solu e spartere più ricente)
setting_default_language: A lingua di i vostri statuti pò esse induvinata autumaticamente, mà ùn marchja micca sempre bè
setting_display_media_default: Piattà i media marcati cum'è sensibili
setting_display_media_hide_all: Sempre piattà tutti i media
@@ -38,6 +47,18 @@ co:
fields:
name: Label
value: Cuntinutu
+ account_warning_preset:
+ text: Testu preselezziunatu
+ admin_account_action:
+ send_email_notification: Nutificà l'utilizatore cù un'e-mail
+ text: Avertimentu persunalizatu
+ type: Azzione
+ types:
+ disable: Disattivà
+ none: Ùn fà nunda
+ silence: Silenzà
+ suspend: Suspende è sguassà i dati di u contu di manera irreversibile
+ warning_preset_id: Utilizà un'avertimentu preselezziunatu
defaults:
autofollow: Invità à siguità u vostru contu
avatar: Ritrattu di prufile
@@ -48,6 +69,7 @@ co:
context: Cuntesti di u filtru
current_password: Chjave d’accessu attuale
data: Dati
+ discoverable: Arregistrà stu contu indè l'annuariu
display_name: Nome pubblicu
email: Indirizzu e-mail
expires_in: Spira dopu à
@@ -63,6 +85,7 @@ co:
otp_attempt: Codice d’identificazione à dui fattori
password: Chjave d’accessu
phrase: Parolla-chjave o frasa
+ setting_aggregate_reblogs: Gruppà e spartere indè e linee
setting_auto_play_gif: Lettura autumatica di i GIF animati
setting_boost_modal: Mustrà una cunfirmazione per sparte un statutu
setting_default_language: Lingua di pubblicazione
diff --git a/config/locales/simple_form.cs.yml b/config/locales/simple_form.cs.yml
index c2fd93ee1..0e255e4dc 100644
--- a/config/locales/simple_form.cs.yml
+++ b/config/locales/simple_form.cs.yml
@@ -2,15 +2,23 @@
cs:
simple_form:
hints:
+ account_warning_preset:
+ text: Můžete používat syntaxi tootů, jako například URL, hashtagy a zmínky
+ admin_account_action:
+ send_email_notification: Uživatel obdrží vysvětlení toho, co se stalo s jeho účtem
+ text_html: Volitelné. Můžete používat syntaxi tootů. Pro ušetření času si můžete přidat přednastavení pro varování
+ type_html: Vyberte, co chcete udělat s účtem %{acct}
+ warning_preset_id: Volitelné. Můžete stále vložit na konec přednastavení vlastní text
defaults:
autofollow: Lidé, kteří se zaregistrují přes pozvání, vás budou automaticky sledovat
- avatar: PNG, GIF či JPG. Maximálně %{size}. Bude zmenšena na %{dimensions} px
+ avatar: PNG, GIF či JPG. Maximálně %{size}. Bude zmenšen na %{dimensions} px
bot: Tento účet provádí hlavně automatizované akce a nemusí být spravován
context: Jedno či více kontextů, ve kterých má být filtr uplatněn
digest: Odesíláno pouze po dlouhé době nečinnosti a pouze, pokud jste při své nepřítomnosti obdržel/a osobní zprávy
+ discoverable_html: Adresář dovoluje lidem najít účty podle zájmů a aktivity. Vyžaduje alespoň %{min_followers} sledovatelů
email: Bude vám poslán potvrzovací e-mail
fields: Na profilu můžete mít až 4 položky zobrazené jako tabulka
- header: PNG, GIF či JPG. Maximálně %{size}. Bude zmenšena na %{dimensions} px
+ header: PNG, GIF či JPG. Maximálně %{size}. Bude zmenšen na %{dimensions} px
inbox_url: Zkopírujte URL z hlavní stránky mostu, který chcete použít
irreversible: Filtrované tooty nenávratně zmizí, i pokud bude filtr později odstraněn
locale: Jazyk uživatelského rozhraní, e-mailů a oznámení push
@@ -18,6 +26,7 @@ cs:
password: Použijte alespoň 8 znaků
phrase: Shoda bude nalezena bez ohledu na velikost písmen v těle tootu či varování o obsahu
scopes: Které API bude aplikace povolena používat. Pokud vyberete rozsah nejvyššího stupně, nebudete je muset vybírat po jednom.
+ setting_aggregate_reblogs: Nezobrazovat nové boosty pro tooty, které byly nedávno boostnuty (ovlivňuje pouze nově přijaté boosty)
setting_default_language: Jazyk vašich tootů může být detekován automaticky, není to však vždy přesné
setting_display_media_default: Skrývat média označená jako citlivá
setting_display_media_hide_all: Vždy skrývat všechna média
@@ -38,8 +47,20 @@ cs:
fields:
name: Označení
value: Obsah
+ account_warning_preset:
+ text: Text přednastavení
+ admin_account_action:
+ send_email_notification: Informovat uživatele e-mailem
+ text: Vlastní varování
+ type: Akce
+ types:
+ disable: Deaktivovat
+ none: Nic nedělat
+ silence: Utišit
+ suspend: Pozastavit a nenávratně smazat data účtu
+ warning_preset_id: Použít přednastavení pro varování
defaults:
- autofollow: Pozvěte ke sledování vašeho účtu
+ autofollow: Pozvat ke sledování vašeho účtu
avatar: Avatar
bot: Tohle je účet robota
chosen_languages: Filtrovat jazyky
@@ -48,6 +69,7 @@ cs:
context: Kontexty filtrů
current_password: Současné heslo
data: Data
+ discoverable: Zveřejnit tento účet v adresáři
display_name: Zobrazované jméno
email: E-mailová adresa
expires_in: Expirovat po
@@ -63,6 +85,7 @@ cs:
otp_attempt: Dvoufaktorový kód
password: Heslo
phrase: Klíčové slovo či fráze
+ setting_aggregate_reblogs: Seskupovat boosty v časových osách
setting_auto_play_gif: Automaticky přehrávat animace GIF
setting_boost_modal: Zobrazovat před boostnutím potvrzovací okno
setting_default_language: Jazyk příspěvků
diff --git a/config/locales/simple_form.da.yml b/config/locales/simple_form.da.yml
index 1063466ca..f73dbac96 100644
--- a/config/locales/simple_form.da.yml
+++ b/config/locales/simple_form.da.yml
@@ -2,6 +2,8 @@
da:
simple_form:
hints:
+ admin_account_action:
+ type_html: Vælg hvad du vil gøre med %{acct}
defaults:
autofollow: Folk der har oprettet sig gennem invitationen vil automatisk følge dig
avatar: PNG, GIF eller JPG. Højest %{size}. Vil blive skaleret ned til %{dimensions}px
@@ -19,9 +21,12 @@ da:
phrase: Vil blive parret uanset om der er store eller små bogstaver i teksten eller om der er en advarsel om et trut
scopes: Hvilke APIs applikationen vil få adgang til. Hvis du vælger et højtlevel omfang, behøver du ikke vælge enkeltstående.
setting_default_language: Sproget for dine trut kan blive fundet automatisk, men det er ikke altid præcist
+ setting_display_media_default: Skjul medier markeret som følsomt
+ setting_display_media_hide_all: Skjul altid alle medier
setting_hide_network: Hvem du følger og hvem der følger dig vil ikke blive vist på din profil
setting_noindex: Påvirker din offentlige profil og status sider
setting_theme: Påvirker hvordan Mastodon ser ud når du er logget ind via en hvilken som helst enhed.
+ username: Dit brugernavn vil være unikt på %{domain}
whole_word: Når nøgle ordet eller udtrykket kun er alfanumerisk, vil det kun blive brugt hvis det passer hele ordet
imports:
data: CSV fil eksporteret fra en anden Mastodon instans
@@ -34,6 +39,11 @@ da:
fields:
name: Etiket
value: Indhold
+ admin_account_action:
+ type: Handling
+ types:
+ disable: Deaktiver
+ none: Gør intet
defaults:
autofollow: Inviter til at følge din konto
avatar: Profilbillede
@@ -65,6 +75,11 @@ da:
setting_default_privacy: Privatliv
setting_default_sensitive: Marker altid medier som værende følsomt
setting_delete_modal: Vis bekræftelses dialog før du sletter et trut
+ setting_display_media: Visning af medier
+ setting_display_media_default: Standard
+ setting_display_media_hide_all: Skjul alle
+ setting_display_media_show_all: Vis alle
+ setting_expand_spoilers: Udvid altid trut der er markeret med indholdsadvarsler
setting_hide_network: Skjul dit netværk
setting_noindex: Frameld dig søgemaskiners indeksering
setting_reduce_motion: Reducer animationers bevægelse
diff --git a/config/locales/simple_form.de.yml b/config/locales/simple_form.de.yml
index 9c2defd9e..6d0a9196f 100644
--- a/config/locales/simple_form.de.yml
+++ b/config/locales/simple_form.de.yml
@@ -2,12 +2,20 @@
de:
simple_form:
hints:
+ account_warning_preset:
+ text: Du kannst Toot-Syntax benutzen, wie zum Beispiel URLs, Hashtags und Erwähnungen
+ admin_account_action:
+ send_email_notification: Der Benutzer erhält eine Erklärung, was mit seinem Account geschehen ist
+ text_html: Optional. Du kannst Toot-Syntax benutzen. Du kannst Warnungsvorlagen benutzen um Zeit zu sparen
+ type_html: Wähle aus, was du mit %{acct} machen möchtest
+ warning_preset_id: Optional. Du kannst immer noch eigenen Text an das Ende der Vorlage hinzufügen
defaults:
autofollow: Leute die sich über deine Einladung registrieren werden dir automatisch folgen
avatar: PNG, GIF oder JPG. Maximal %{size}. Wird auf %{dimensions} px herunterskaliert
bot: Dieses Konto führt lediglich automatisierte Aktionen durch und wird möglicherweise nicht überwacht
context: Ein oder mehrere Aspekte, wo der Filter greifen soll
digest: Wenn du lange Zeit inaktiv bist, wird dir eine Zusammenfassung von Erwähnungen in deiner Abwesenheit zugeschickt
+ discoverable_html: Das Verzeichnis lässt dich neue Benutzerkonten finden basierend auf Interessen und Aktivitäten. Dies benötigt mindestens %{min_followers} Follower
email: Du wirst ein Bestätigungs-E-Mail erhalten
fields: Du kannst bis zu 4 Elemente als Tabelle dargestellt auf deinem Profil anzeigen lassen
header: PNG, GIF oder JPG. Maximal %{size}. Wird auf %{dimensions} px herunterskaliert
@@ -18,6 +26,7 @@ de:
password: Verwende mindestens 8 Zeichen
phrase: Wird unabhängig vom umgebenen Text oder Inhaltswarnung eines Beitrags verglichen
scopes: Welche Schnittstellen der Applikation erlaubt sind. Wenn du einen Top-Level-Scope auswählst, dann musst du nicht jeden einzelnen darunter auswählen.
+ setting_aggregate_reblogs: Zeige keine neuen Boosts für Beiträge, die nicht kürzlich geboostet wurden (dies betrifft nur neulich erhaltene Boosts)
setting_default_language: Die Sprache der Beiträge kann automatisch erkannt werden, aber dies ist nicht immer genau
setting_display_media_default: Verstecke Medien, die als sensibel markiert sind
setting_display_media_hide_all: Alle Medien immer verstecken
@@ -38,6 +47,18 @@ de:
fields:
name: Bezeichnung
value: Inhalt
+ account_warning_preset:
+ text: Vorlagentext
+ admin_account_action:
+ send_email_notification: Benachrichtige den Nutzer per E-Mail
+ text: Eigene Warnung
+ type: Aktion
+ types:
+ disable: Deaktivieren
+ none: Nichts tun
+ silence: Stummschalten
+ suspend: Deaktivieren und unwiderruflich Benutzerdaten löschen
+ warning_preset_id: Benutze eine Warnungsvorlage
defaults:
autofollow: Einladen, um deinen Account zu folgen
avatar: Profilbild
@@ -48,6 +69,7 @@ de:
context: Aspekte filtern
current_password: Derzeitiges Passwort
data: Daten
+ discoverable: Dieses Benutzerkonto im Verzeichnis auflisten
display_name: Anzeigename
email: E-Mail-Adresse
expires_in: Läuft ab
@@ -63,6 +85,7 @@ de:
otp_attempt: Zwei-Faktor-Authentisierungs-Code
password: Passwort
phrase: Schlagwort oder Phrase
+ setting_aggregate_reblogs: Gruppenboosts in Zeitleisten
setting_auto_play_gif: Animierte GIFs automatisch abspielen
setting_boost_modal: Bestätigungsdialog anzeigen, bevor ein Beitrag geteilt wird
setting_default_language: Beitragssprache
diff --git a/config/locales/simple_form.el.yml b/config/locales/simple_form.el.yml
index a13b44237..fecddd11f 100644
--- a/config/locales/simple_form.el.yml
+++ b/config/locales/simple_form.el.yml
@@ -2,12 +2,20 @@
el:
simple_form:
hints:
+ account_warning_preset:
+ text: Μπορεις να χρησιμοποιήσεις συντακτικό ενός τουτ όπως διευθύνσεις URL, ταμπέλες και αναφορές
+ admin_account_action:
+ send_email_notification: Ο χρήστης θα λάβει μια εξήγηση του τι συνέβη με τον λογαριασμό του
+ text_html: Προαιρετικό. Μπορείς να χρησιμοποιήσεις συντακτικό ενός τουτ. Μπορείς να ορίσεις προκαθορισμένες προειδοποιήσεις για να γλυτώσεις χρόνο
+ type_html: Διάλεξε τι θα κανείς με τον %{acct}
+ warning_preset_id: Προαιρετικό. Μπορείς να προσθέσεις επιπλέον κείμενο μετά το προκαθορισμένο κείμενο
defaults:
autofollow: Όσοι εγγραφούν μέσω της πρόσκλησης θα σε ακολουθούν αυτόματα
avatar: PNG, GIF ή JPG. Έως %{size}. Θα περιοριστεί σε διάσταση %{dimensions}px
bot: Ο λογαριασμός αυτός εκτελεί κυρίως αυτοματοποιημένες ενέργειες και ίσως να μην παρακολουθείται
context: Ένα ή περισσότερα πλαίσια στα οποία μπορεί να εφαρμόζεται αυτό το φίλτρο
digest: Αποστέλλεται μόνο μετά από μακρά περίοδο αδράνειας και μόνο αν έχεις λάβει προσωπικά μηνύματα κατά την απουσία σου
+ discoverable_html: "Ο κατάλογος \nσου επιτρέπει να βρεις λογαριασμούς βάσει ενδιαφερόντων και δραστηριότητας. Απαιτεί τουλάχιστον %{min_followers} ακόλουθους"
email: Θα σου σταλεί email επιβεβαίωσης
fields: Μπορείς να έχεις έως 4 σημειώσεις σε μορφή πίνακα στο προφίλ σου
header: PNG, GIF ή JPG. Έως %{size}. Θα περιοριστεί σε διάσταση %{dimensions}px
@@ -18,6 +26,7 @@ el:
password: Χρησιμοποίησε τουλάχιστον 8 χαρακτήρες
phrase: Θα ταιριάζει ανεξαρτήτως πεζών/κεφαλαίων ή προειδοποίησης περιεχομένου του τουτ
scopes: Ποια API θα επιτρέπεται στην εφαρμογή να χρησιμοποιήσεις. Αν επιλέξεις κάποιο υψηλό εύρος εφαρμογής, δε χρειάζεται να επιλέξεις και εξειδικευμένα.
+ setting_aggregate_reblogs: Απόκρυψη των νέων προωθήσεωνγια τα τουτ που έχουν προωθηθεί πρόσφατα (επηρεάζει μόνο τις νέες προωθήσεις)
setting_default_language: Η γλώσσα των τουτ σου μπορεί να ανιχνευτεί αυτόματα αλλά δεν είναι πάντα ακριβές
setting_display_media_default: Απόκρυψη ευαίσθητων πολυμέσων
setting_display_media_hide_all: Μόνιμη απόκρυψη όλων των πολυμέσων
@@ -38,6 +47,18 @@ el:
fields:
name: Ταμπέλα
value: Περιεχόμενο
+ account_warning_preset:
+ text: Προκαθορισμένο κείμενο
+ admin_account_action:
+ send_email_notification: Ενημέρωση χρήστη μέσω email
+ text: Προσαρμοσμένη προειδοποίηση
+ type: Ενέργεια
+ types:
+ disable: Απενεργοποίηση
+ none: Καμία ενέργεια
+ silence: Αποσιώπηση
+ suspend: Αναστολή και αμετάκλητη διαγραφή στοιχείων λογαριασμού
+ warning_preset_id: Χρήση προκαθορισμένης προειδοποίησης
defaults:
autofollow: Προσκάλεσε για να ακολουθήσουν το λογαριασμό σου
avatar: Αβατάρ
@@ -48,6 +69,7 @@ el:
context: Πλαίσια φιλτραρίσματος
current_password: Τρέχον συνθηματικό
data: Δεδομένα
+ discoverable: Εμφάνιση αυτού του λογαριασμού στον κατάλογο
display_name: Όνομα εμφάνισης
email: Διεύθυνση email
expires_in: Λήξη μετά από
@@ -63,6 +85,7 @@ el:
otp_attempt: Κωδικός δυο παραγόντων
password: Συνθηματικό
phrase: Λέξη ή φράση κλειδί
+ setting_aggregate_reblogs: Ομαδοποίηση προωθήσεων στις ροές
setting_auto_play_gif: Αυτόματη αναπαραγωγή των GIF
setting_boost_modal: Εμφάνιση ερώτησης επιβεβαίωσης πριν την προώθηση
setting_default_language: Γλώσσα δημοσιεύσεων
diff --git a/config/locales/simple_form.en.yml b/config/locales/simple_form.en.yml
index 4158bb47b..2f32f2c7a 100644
--- a/config/locales/simple_form.en.yml
+++ b/config/locales/simple_form.en.yml
@@ -2,12 +2,20 @@
en:
simple_form:
hints:
+ account_warning_preset:
+ text: You can use toot syntax, such as URLs, hashtags and mentions
+ admin_account_action:
+ send_email_notification: The user will receive an explanation of what happened with their account
+ text_html: Optional. You can use toot syntax. You can add warning presets to save time
+ type_html: Choose what to do with %{acct}
+ warning_preset_id: Optional. You can still add custom text to end of the preset
defaults:
autofollow: People who sign up through the invite will automatically follow you
avatar: PNG, GIF or JPG. At most %{size}. Will be downscaled to %{dimensions}px
bot: This account mainly performs automated actions and might not be monitored
context: One or multiple contexts where the filter should apply
digest: Only sent after a long period of inactivity and only if you have received any personal messages in your absence
+ discoverable_html: The directory lets people find accounts based on interests and activity. Requires at least %{min_followers} followers
email: You will be sent a confirmation e-mail
fields: You can have up to 4 items displayed as a table on your profile
header: PNG, GIF or JPG. At most %{size}. Will be downscaled to %{dimensions}px
@@ -18,6 +26,7 @@ en:
password: Use at least 8 characters
phrase: Will be matched regardless of casing in text or content warning of a toot
scopes: Which APIs the application will be allowed to access. If you select a top-level scope, you don't need to select individual ones.
+ setting_aggregate_reblogs: Do not show new boosts for toots that have been recently boosted (only affects newly-received boosts)
setting_default_language: The language of your toots can be detected automatically, but it's not always accurate
setting_display_media_default: Hide media marked as sensitive
setting_display_media_hide_all: Always hide all media
@@ -38,6 +47,18 @@ en:
fields:
name: Label
value: Content
+ account_warning_preset:
+ text: Preset text
+ admin_account_action:
+ send_email_notification: Notify the user per e-mail
+ text: Custom warning
+ type: Action
+ types:
+ disable: Disable
+ none: Do nothing
+ silence: Silence
+ suspend: Suspend and irreversibly delete account data
+ warning_preset_id: Use a warning preset
defaults:
autofollow: Invite to follow your account
avatar: Avatar
@@ -48,6 +69,7 @@ en:
context: Filter contexts
current_password: Current password
data: Data
+ discoverable: List this account on the directory
display_name: Display name
email: E-mail address
expires_in: Expire after
@@ -63,6 +85,7 @@ en:
otp_attempt: Two-factor code
password: Password
phrase: Keyword or phrase
+ setting_aggregate_reblogs: Group boosts in timelines
setting_auto_play_gif: Auto-play animated GIFs
setting_boost_modal: Show confirmation dialog before boosting
setting_default_federation: Allow my toots to reach other instances by default
diff --git a/config/locales/simple_form.eo.yml b/config/locales/simple_form.eo.yml
index e8ddc075e..b78d2dd81 100644
--- a/config/locales/simple_form.eo.yml
+++ b/config/locales/simple_form.eo.yml
@@ -8,17 +8,23 @@ eo:
bot: Tiu konto ĉefe faras aŭtomatajn agojn, kaj povas esti ne kontrolata
context: Unu ol pluraj kuntekstoj kie la filtrilo devus agi
digest: Sendita nur post longa tempo de neaktiveco, kaj nur se vi ricevis personan mesaĝon en via foresto
+ 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
inbox_url: Kopiu la URL de la ĉefpaĝo de la ripetilo, kiun vi volas uzi
irreversible: Elfiltritaj mesaĝoj malaperos por ĉiam, eĉ se la filtrilo estas poste forigita
locale: La lingvo de la uzant-interfaco, retmesaĝoj kaj puŝ-sciigoj
locked: Vi devos aprobi ĉiun peton de sekvado mane
+ password: Uzu almenaŭ 8 signojn
phrase: Estos provita senzorge pri la uskleco de teksto aŭ averto pri enhavo de mesaĝo
setting_default_language: La lingvo de viaj mesaĝoj povas esti aŭtomate detektitaj, sed tio ne ĉiam ĝustas
+ setting_display_media_default: Kaŝi aŭdovidaĵojn markitajn kiel tiklaj
+ setting_display_media_hide_all: Ĉiam kaŝi ĉiujn aŭdovidaĵojn
+ setting_display_media_show_all: Ĉiam montri aŭdovidaĵojn markitajn kiel tiklaj
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_theme: Influas kiel Mastodon aspektas post ensaluto de ajna aparato.
+ 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
imports:
data: CSV-dosiero el alia nodo de Mastodon
@@ -62,6 +68,11 @@ eo:
setting_default_privacy: Mesaĝa videbleco
setting_default_sensitive: Ĉiam marki aŭdovidaĵojn tiklaj
setting_delete_modal: Montri fenestron por konfirmi antaŭ ol forigi mesaĝon
+ setting_display_media: Aŭdovidaĵa montrado
+ 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_hide_network: Kaŝi viajn sekvantojn kaj sekvatojn
setting_noindex: Ellistiĝi de retserĉila indeksado
setting_reduce_motion: Malrapidigi animaciojn
@@ -84,6 +95,7 @@ eo:
follow_request: Sendi retmesaĝon kiam iu petas sekvi vin
mention: Sendi retmesaĝon kiam iu mencias vin
reblog: Sendi retmesaĝon kiam iu diskonigas vian mesaĝon
+ report: Sendi retmesaĝon kiam nova signalo estas sendita
'no': Ne
required:
mark: "*"
diff --git a/config/locales/simple_form.eu.yml b/config/locales/simple_form.eu.yml
index b510370a3..0ffc22b53 100644
--- a/config/locales/simple_form.eu.yml
+++ b/config/locales/simple_form.eu.yml
@@ -2,28 +2,37 @@
eu:
simple_form:
hints:
+ account_warning_preset:
+ text: Toot sintaxia erabili dezakezu, URLak, traolak eta aipamenak
+ admin_account_action:
+ 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
+ warning_preset_id: Aukerakoa. Zure testua gehitu dezakezu aurre-ezarpenaren ostean
defaults:
- autofollow: Gonbidapena erabiliz izena ematen dutenek automatikoki jarraituko zaituzte
+ autofollow: Gonbidapena erabiliz izena ematen dutenek automatikoki jarraituko dizute
avatar: PNG, GIF edo JPG. Gehienez %{size}. %{dimensions}px neurrira eskalatuko da
bot: Kontu honek nagusiki automatizatutako ekintzak burutzen ditu eta agian ez du inork monitorizatzen
context: Iragazkia aplikatzeko testuinguru bat edo batzuk
digest: Soilik jarduerarik gabeko epe luze bat eta gero, eta soilik ez zeudela mezu pertsonalen bat jaso baduzu
+ discoverable_html: Direktorioak Jendea interesen eta jardueraren arabera aurkitzea ahalbidetzen du. Gutxienez %{min_followers} jarraitzaile behar dira bertan agertzeko
email: Baieztapen e-mail bat bidaliko zaizu
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 Toot-ak 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_default_language: Zure toot-en hizkuntza automatikoki antzeman daiteke, baina ez da beti zehatza
+ setting_aggregate_reblogs: Ez erakutsi buktzada berriak berriki bultzada jaso duten tootentzat (berriki jasotako bultzadei eragiten die besterik ez)
+ setting_default_language: Zure Toot-en hizkuntza automatikoki antzeman daiteke, baina ez da beti zehatza
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 orrietan eragina du
+ setting_noindex: Zure profil publiko eta Toot-en orrietan eragina du
setting_theme: Edozein gailutik konektatzean Mastodon-en itxuran eragiten du.
username: Zure erabiltzaile-izena bakana izango da %{domain} domeinuan
whole_word: Hitz eta esaldi gakoa alfanumerikoa denean, hitz osoarekin bat datorrenean besterik ez da aplikatuko
@@ -38,6 +47,17 @@ eu:
fields:
name: Etiketa
value: Edukia
+ account_warning_preset:
+ text: Aurrez ezarritako testua
+ admin_account_action:
+ send_email_notification: Jakinarazi erabiltzaileari e-mail bidez
+ text: Abisu pertsonalizatua
+ type: Ekintza
+ types:
+ disable: Desaktibatu
+ none: Ez egin ezer
+ silence: Isiltarazi
+ warning_preset_id: Erabili aurre-ezarritako abisu bat
defaults:
autofollow: Gonbidatu zure kontua jarraitzera
avatar: Abatarra
@@ -48,6 +68,7 @@ eu:
context: Iragazkiaren testuinguruak
current_password: Oraingo pasahitza
data: Datuak
+ discoverable: Zerrendatu kontu hau direktorioan
display_name: Pantaila-izena
email: E-mail helbidea
expires_in: Iraungitzea
@@ -63,6 +84,7 @@ eu:
otp_attempt: Bi faktoreetako kodea
password: Pasahitza
phrase: Hitz edo esaldi gakoa
+ 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_default_language: Argitalpenen hizkuntza
diff --git a/config/locales/simple_form.fa.yml b/config/locales/simple_form.fa.yml
index 2f9c80dbe..2eeacade6 100644
--- a/config/locales/simple_form.fa.yml
+++ b/config/locales/simple_form.fa.yml
@@ -82,7 +82,7 @@ fa:
setting_unfollow_modal: نمایش پیغام تأیید پیش از لغو پیگیری دیگران
severity: شدت
type: نوع درونریزی
- username: نام کاربری (تنها حروف انگلیسی)
+ username: نام کاربری (لاتین)
username_or_email: نام کاربری یا ایمیل
whole_word: تطابق واژهٔ کامل
interactions:
diff --git a/config/locales/simple_form.fr.yml b/config/locales/simple_form.fr.yml
index 68f5dfede..21f81ecc2 100644
--- a/config/locales/simple_form.fr.yml
+++ b/config/locales/simple_form.fr.yml
@@ -2,12 +2,20 @@
fr:
simple_form:
hints:
+ account_warning_preset:
+ text: Vous pouvez utiliser la syntaxe des pouets, comme les URLs, les hashtags et les mentions
+ admin_account_action:
+ send_email_notification: L'utilisateur recevra une explication de ce qu'il s'est passé avec son compte
+ text_html: Optionnel. Vous pouvez utilisez la syntaxe des pouets. Vous pouvez ajouter des présélections d'attention pour économiser du temps
+ type_html: Choisir que faire avec %{acct}
+ warning_preset_id: Optionnel. Vous pouvez toujours ajouter un texte personnalisé à la fin de le présélection
defaults:
autofollow: Les personnes qui s’inscrivent grâce à l’invitation vous suivront automatiquement
avatar: Au format PNG, GIF ou JPG. %{size} maximum. Sera réduit à %{dimensions}px
bot: Ce compte exécute principalement des actions automatisées et pourrait ne pas être surveillé
context: Un ou plusieurs contextes où le filtre devrait s’appliquer
digest: Uniquement envoyé après une longue période d’inactivité et uniquement si vous avez reçu des messages personnels pendant votre absence
+ discoverable_html: L'annuaire permet aux gens de trouver des comptes en se basant sur les intérêts et les activités. Nécessite au moins %{min_followers} abonnés
email: Vous recevrez un courriel de confirmation
fields: Vous pouvez avoir jusqu’à 4 éléments affichés en tant que tableau sur votre profil
header: Au format PNG, GIF ou JPG. %{size} maximum. Sera réduit à %{dimensions}px
@@ -18,6 +26,7 @@ fr:
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
scopes: À quelles APIs l’application sera autorisée à accéder. Si vous sélectionnez un périmètre de haut-niveau, vous n’avez pas besoin de sélectionner les individuels.
+ setting_aggregate_reblogs: Ne pas afficher de nouveaux repartagés pour les pouets qui ont été récemment repartagés (n'affecte que les repartagés nouvellement reçus)
setting_default_language: La langue de vos pouets peut être détectée automatiquement, mais ça n’est pas toujours pertinent
setting_display_media_default: Masquer les supports marqués comme sensibles
setting_display_media_hide_all: Toujours masquer tous les médias
@@ -38,6 +47,18 @@ fr:
fields:
name: Étiquette
value: Contenu
+ account_warning_preset:
+ text: Texte de présélection
+ admin_account_action:
+ send_email_notification: Notifier l'utilisateur par courriel
+ text: Attention personnalisée
+ type: Action
+ types:
+ disable: Désactiver
+ none: Ne rien faire
+ silence: Silence
+ suspend: Suspendre et effacer les données du compte de manière irréversible
+ warning_preset_id: Utiliser une présélection d'attention
defaults:
autofollow: Invitation à suivre votre compte
avatar: Image de profil
@@ -48,6 +69,7 @@ fr:
context: Contextes du filtre
current_password: Mot de passe actuel
data: Données
+ discoverable: Inscrire ce compte dans l'annuaire
display_name: Nom public
email: Adresse courriel
expires_in: Expire après
@@ -63,6 +85,7 @@ fr:
otp_attempt: Code d’identification à deux facteurs
password: Mot de passe
phrase: Mot-clé ou phrase
+ setting_aggregate_reblogs: Repartagés en groupe dans la ligne de temps
setting_auto_play_gif: Lire automatiquement les GIFs animés
setting_boost_modal: Afficher une fenêtre de confirmation avant de partager
setting_default_language: Langue de publication
@@ -73,7 +96,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 pouëts marqués d’un avertissement de contenu
+ setting_expand_spoilers: Toujours développer les pouets marqués d’un avertissement de 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
diff --git a/config/locales/simple_form.gl.yml b/config/locales/simple_form.gl.yml
index 04a0fffa3..d5e0ef574 100644
--- a/config/locales/simple_form.gl.yml
+++ b/config/locales/simple_form.gl.yml
@@ -2,12 +2,20 @@
gl:
simple_form:
hints:
+ account_warning_preset:
+ text: Vostede pode utilizar dar formato ao toot, como URLs, etiquetas e mencións
+ admin_account_action:
+ 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}
+ warning_preset_id: Optativo. Poderá engadir texto personalizado ao final do preestablecido
defaults:
autofollow: As persoas que se conectaron a través de un convite seguirana automáticamente a vostede
avatar: PNG, GIF ou JPG. Máximo %{size}. Será reducida a %{dimensions}px
bot: Esta conta realiza principalmente accións automatizadas e podería non estar monitorizada
context: Un ou varios contextos onde se debería aplicar o filtro
- digest: Enviar só tras un longo período de inactividade e só si recibeu algunha mensaxe personal na súa ausencia
+ digest: Enviar só tras un longo período de inactividade e só si recibeu algunha mensaxe persoal na súa ausencia
+ discoverable_html: O directorio permite atopar contas en función de intereses e actividade. Require ter ao menos %{min_followers} seguidoras
email: Enviaráselle un correo-e de confirmación
fields: Pode ter ate 4 elementos no seu perfil mostrados como unha táboa
header: PNG, GIF ou JPG. Máximo %{size}. Será reducida a %{dimensions}px
@@ -18,6 +26,7 @@ gl:
password: Utilice 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. Si selecciona un ámbito de alto nivel, non precisa 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_language: Pódese detectar automáticamente o idioma dos seus toots, mais non sempre é preciso
setting_display_media_default: Ocultar medios marcados como sensibles
setting_display_media_hide_all: Ocultar sempre os medios
@@ -26,7 +35,7 @@ gl:
setting_noindex: Afecta ao seu perfil público e páxinas de estado
setting_theme: Afecta ao aspecto de Mastodon en calquer dispositivo cando está conectada.
username: O seu nome de usuaria será único en %{domain}
- whole_word: Si a chave ou frase de paso é só alfanumérica, só se aplicará si concorda a palabra completa
+ whole_word: Se a chave ou frase de paso é só alfanumérica, só se aplicará se concorda a palabra completa
imports:
data: Ficheiro CSV exportado desde outra instancia Mastodon
sessions:
@@ -38,6 +47,18 @@ gl:
fields:
name: Etiqueta
value: Contido
+ account_warning_preset:
+ text: Texto preestablecido
+ admin_account_action:
+ send_email_notification: Notificar a usuaria por correo-e
+ text: Aviso personalizado
+ type: Acción
+ types:
+ disable: Desactivar
+ none: Non facer nada
+ silence: Acalar
+ suspend: Suspender e eliminar irreversiblemente datos da conta
+ warning_preset_id: Utilizar un aviso preestablecido
defaults:
autofollow: Convide a seguir a súa conta
avatar: Avatar
@@ -48,6 +69,7 @@ gl:
context: Contextos do filtro
current_password: Contrasinal actual
data: Datos
+ discoverable: Incluír esta conta no directorio
display_name: Nome mostrado
email: enderezo correo electrónico
expires_in: Caducidade despois de
@@ -63,6 +85,7 @@ gl:
otp_attempt: Código de Doble-Factor
password: Contrasinal
phrase: Palabra chave ou frase
+ setting_aggregate_reblogs: Agrupar promocións nas liñas temporais
setting_auto_play_gif: Reprodución automática de GIFs animados
setting_boost_modal: Pedir confirmación antes de promocionar
setting_default_language: Idioma de publicación
diff --git a/config/locales/simple_form.it.yml b/config/locales/simple_form.it.yml
index 53ccb069e..dd43898d2 100644
--- a/config/locales/simple_form.it.yml
+++ b/config/locales/simple_form.it.yml
@@ -2,12 +2,20 @@
it:
simple_form:
hints:
+ account_warning_preset:
+ text: Puoi usare la sintassi dei toot, come URL, hashtag e menzioni
+ admin_account_action:
+ send_email_notification: L'utente riceverà una spiegazione di ciò che è successo con suo account
+ text_html: Opzionale. Puoi usare la sintassi dei toot. Puoi aggiungere avvisi preimpostati per risparmiare tempo
+ type_html: Decidi cosa fare con %{acct}
+ warning_preset_id: Opzionale. Puoi aggiungere un testo personalizzato alla fine di quello preimpostato
defaults:
autofollow: Le persone che si iscrivono attraverso l'invito ti seguiranno automaticamente
avatar: PNG, GIF o JPG. Al massimo %{size}. Verranno scalate a %{dimensions}px
bot: Questo account esegue principalmente operazioni automatiche e potrebbe non essere tenuto sotto controllo da una persona
context: Uno o più contesti nei quali il filtro dovrebbe essere applicato
digest: Inviata solo dopo un lungo periodo di inattività e solo se hai ricevuto qualche messaggio personale in tua assenza
+ discoverable_html: La directory permette alle persone di trovare account in base a determinati interessi o attività. Richiede almeno %{min_followers} seguaci
email: Ti manderemo una email di conferma
fields: Puoi avere fino a 4 voci visualizzate come una tabella sul tuo profilo
header: PNG, GIF o JPG. Al massimo %{size}. Verranno scalate a %{dimensions}px
@@ -18,6 +26,7 @@ it:
password: Usa almeno 8 caratteri
phrase: Il confronto sarà eseguito ignorando minuscole/maiuscole e i content warning
scopes: A quali API l'applicazione potrà avere accesso. Se selezionate un ambito di alto livello, non c'è bisogno di selezionare quelle singole.
+ setting_aggregate_reblogs: Non mostrare nuove condivisioni per toot che sono stati condivisi di recente (ha effetto solo sulle nuove condivisioni)
setting_default_language: La lingua dei tuoi toot può essere individuata automaticamente, ma il risultato non è sempre accurato
setting_display_media_default: Nascondi media segnati come sensibili
setting_display_media_hide_all: Nascondi sempre tutti i media
@@ -38,6 +47,18 @@ it:
fields:
name: Etichetta
value: Contenuto
+ account_warning_preset:
+ text: Testo preimpostato
+ admin_account_action:
+ send_email_notification: Informa l'utente via email
+ text: Avviso personalizzato
+ type: Azione
+ types:
+ disable: Disabilita
+ none: Non fare nulla
+ silence: Silenzia
+ suspend: Sospendi e cancella i dati dell'account in modo irreversibile
+ warning_preset_id: Usa un avviso preimpostato
defaults:
autofollow: Invita a seguire il tuo account
avatar: Avatar
@@ -48,6 +69,7 @@ it:
context: Contesti del filtro
current_password: Password corrente
data: Data
+ discoverable: Inserisci questo account nella directory
display_name: Nome visualizzato
email: Indirizzo email
expires_in: Scade dopo
@@ -63,6 +85,7 @@ it:
otp_attempt: Codice due-fattori
password: Password
phrase: Parola chiave o frase
+ setting_aggregate_reblogs: Raggruppa condivisioni in timeline
setting_auto_play_gif: Play automatico GIF animate
setting_boost_modal: Mostra dialogo di conferma prima del boost
setting_default_language: Lingua dei post
@@ -75,9 +98,9 @@ it:
setting_display_media_show_all: Mostra tutti
setting_expand_spoilers: Espandi sempre toot con content warning
setting_hide_network: Nascondi la tua rete
- setting_noindex: Non indicizzare dai motori di ricerca
+ setting_noindex: Non farti indicizzare dai motori di ricerca
setting_reduce_motion: Riduci movimento nelle animazioni
- setting_system_font_ui: Usa il carattere di default del sistema
+ setting_system_font_ui: Usa il carattere predefinito del sistema
setting_theme: Tema sito
setting_unfollow_modal: Mostra dialogo di conferma prima di smettere di seguire qualcuno
severity: Severità
@@ -86,7 +109,7 @@ it:
username_or_email: Nome utente o email
whole_word: Parola intera
interactions:
- must_be_follower: Blocca notifiche dai non follower
+ 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
notification_emails:
diff --git a/config/locales/simple_form.ja.yml b/config/locales/simple_form.ja.yml
index c8d0a5a17..f9beedb7e 100644
--- a/config/locales/simple_form.ja.yml
+++ b/config/locales/simple_form.ja.yml
@@ -2,12 +2,20 @@
ja:
simple_form:
hints:
+ account_warning_preset:
+ text: URL、ハッシュタグ、メンションなど、投稿に用いる構文が使用できます
+ admin_account_action:
+ send_email_notification: ユーザーは自分のアカウントに何が起こったのか説明を受け取ります
+ text_html: オプションです。投稿に用いる構文を使うことができます。簡略化のためプリセット警告文を追加することができます
+ type_html: "%{acct}さんに対し、何を行うか選択してください"
+ warning_preset_id: オプションです。プリセット警告文の末尾に任意の文字列を追加することができます
defaults:
autofollow: 招待から登録した人が自動的にあなたをフォローするようになります
avatar: "%{size}までのPNG、GIF、JPGが利用可能です。%{dimensions}pxまで縮小されます"
bot: このアカウントは主に自動で動作し、人が見ていない可能性があります
context: フィルターを適用する対象 (複数選択可)
digest: 長期間使用していない場合と不在時に返信を受けた場合のみ送信されます
+ discoverable_html: ディレクトリ は興味や活動をもとにアカウントを見つけることを可能にします。 掲載には %{min_followers} 人以上のフォロワーが必要です
email: 確認のメールが送信されます
fields: プロフィールに表として4つまでの項目を表示することができます
header: "%{size}までのPNG、GIF、JPGが利用可能です。 %{dimensions}pxまで縮小されます"
@@ -18,6 +26,7 @@ ja:
password: 少なくとも8文字は入力してください
phrase: トゥートの大文字小文字や閲覧注意に関係なく一致
scopes: アプリの API に許可するアクセス権を選択してください。最上位のスコープを選択する場合、個々のスコープを選択する必要はありません。
+ setting_aggregate_reblogs: 最近ブーストされたトゥートが新たにブーストされても表示しません (設定後受信したものにのみ影響)
setting_default_language: トゥートの言語は自動的に検出されますが、必ずしも正確とは限りません
setting_display_media_default: 閲覧注意としてマークされたメディアは隠す
setting_display_media_hide_all: 全てのメディアを常に隠す
@@ -38,6 +47,18 @@ ja:
fields:
name: ラベル
value: 内容
+ account_warning_preset:
+ text: プリセット警告文
+ admin_account_action:
+ send_email_notification: メールでユーザーに通知
+ text: カスタム警告文
+ type: アクション
+ types:
+ disable: 無効化
+ none: 何もしない
+ silence: サイレンス
+ suspend: 停止しアカウントのデータを恒久的に削除する
+ warning_preset_id: プリセット警告文を使用
defaults:
autofollow: 招待から参加後、あなたをフォロー
avatar: アイコン
@@ -48,6 +69,7 @@ ja:
context: 除外対象
current_password: 現在のパスワード
data: データ
+ discoverable: ディレクトリに掲載する
display_name: 表示名
email: メールアドレス
expires_in: 有効期限
@@ -63,6 +85,7 @@ ja:
otp_attempt: 二段階認証コード
password: パスワード
phrase: キーワードまたはフレーズ
+ setting_aggregate_reblogs: ブーストをまとめる
setting_auto_play_gif: アニメーションGIFを自動再生する
setting_boost_modal: ブーストする前に確認ダイアログを表示する
setting_default_language: 投稿する言語
diff --git a/config/locales/simple_form.ko.yml b/config/locales/simple_form.ko.yml
index 86a459110..fd0a1940e 100644
--- a/config/locales/simple_form.ko.yml
+++ b/config/locales/simple_form.ko.yml
@@ -2,12 +2,20 @@
ko:
simple_form:
hints:
+ account_warning_preset:
+ text: URL, 해시태그, 멘션과 같은 툿 문법을 사용할 수 있습니다
+ admin_account_action:
+ send_email_notification: 유저는 어떤 일이 일어났는 지에 대한 설명을 받게 됩니다
+ text_html: 선택사항. 툿 문법을 사용할 수 있습니다. 경고 틀을 추가하여 시간을 절약할 수 있습니다
+ type_html: "%{acct}에 대해 취할 행동 선택"
+ warning_preset_id: 선택사항. 틀의 마지막에 임의의 텍스트를 추가 할 수 있습니다
defaults:
autofollow: 이 초대를 통해 가입하는 사람은 당신을 자동으로 팔로우 하게 됩니다
avatar: PNG, GIF 혹은 JPG. 최대 %{size}. %{dimensions}px로 다운스케일 될 것임
bot: 사람들에게 계정이 사람이 아님을 알립니다
context: 필터를 적용 할 한 개 이상의 컨텍스트
digest: 오랫동안 활동하지 않았을 때 받은 멘션들에 대한 요약 받기
+ discoverable_html: 디렉토리 는 사람들의 관심사와 활동에 관련 된 계정들을 찾을 수 있게 해 줍니다. 최소 %{min_followers}명의 팔로어가 필요합니다
email: 당신은 확인 메일을 받게 됩니다
fields: 당신의 프로파일에 최대 4개까지 표 형식으로 나타낼 수 있습니다
header: PNG, GIF 혹은 JPG. 최대 %{size}. %{dimensions}px로 다운스케일 됨
@@ -18,6 +26,7 @@ ko:
password: 최소 8글자
phrase: 툿 내용이나 CW 내용 안에서 대소문자 구분 없이 매칭 됩니다
scopes: 애플리케이션에 허용할 API들입니다. 최상위 스코프를 선택하면 개별적인 것은 선택하지 않아도 됩니다.
+ setting_aggregate_reblogs: 내가 부스트 했던 툿은 새로 부스트 되어도 보여주지 않습니다
setting_default_language: 작성한 툿의 언어는 자동으로 인식할 수 있지만, 언제나 정확한 건 아닙니다
setting_display_media_default: 민감함으로 설정 된 미디어 가리기
setting_display_media_hide_all: 항상 모든 미디어를 가리기
@@ -38,6 +47,18 @@ ko:
fields:
name: 라벨
value: 내용
+ account_warning_preset:
+ text: 프리셋 텍스트
+ admin_account_action:
+ send_email_notification: 이메일로 유저에게 알리기
+ text: 커스텀 경고
+ type: 조치
+ types:
+ disable: 비활성화
+ none: 아무 것도 하지 않기
+ silence: 침묵
+ suspend: 정지하고 되돌릴 수 없는 데이터 삭제
+ warning_preset_id: 경고 틀 사용하기
defaults:
autofollow: 초대를 통한 팔로우
avatar: 아바타
@@ -48,6 +69,7 @@ ko:
context: 필터 컨텍스트
current_password: 현재 비밀번호 입력
data: 데이터
+ discoverable: 이 계정을 디렉토리에서 찾을 수 있도록 합니다
display_name: 표시되는 이름
email: 이메일 주소
expires_in: 만료시각
@@ -63,6 +85,7 @@ ko:
otp_attempt: 2단계 인증 코드
password: 비밀번호
phrase: 키워드 또는 문장
+ setting_aggregate_reblogs: 타임라인의 부스트를 그룹화
setting_auto_play_gif: 애니메이션 GIF를 자동 재생
setting_boost_modal: 부스트 전 확인 창을 표시
setting_default_language: 게시물 언어
diff --git a/config/locales/simple_form.nl.yml b/config/locales/simple_form.nl.yml
index 487f6320b..ce56f613a 100644
--- a/config/locales/simple_form.nl.yml
+++ b/config/locales/simple_form.nl.yml
@@ -8,6 +8,7 @@ nl:
bot: Dit is een geautomatiseerd account en wordt mogelijk niet gemonitord
context: Een of meerdere locaties waar de filter actief moet zijn
digest: Wordt alleen na een lange periode van inactiviteit verzonden en alleen wanneer je tijdens jouw afwezigheid persoonlijke berichten hebt ontvangen
+ discoverable_html: In de gebruikersgids kunnen mensen andere accounts vinden aan de hand van interesses en activiteit. Dit vereist tenminste %{min_followers} volgers
email: Je krijgt een bevestigingsmail
fields: Je kan maximaal 4 items als een tabel op je profiel weergeven
header: PNG, GIF of JPG. Maximaal %{size}. Wordt teruggeschaald naar %{dimensions}px
@@ -18,6 +19,7 @@ nl:
password: Gebruik tenminste 8 tekens
phrase: Komt overeen ongeacht hoofd-/kleine letters of tekstwaarschuwingen
scopes: Tot welke API's heeft de toepassing toegang. Wanneer je een toestemming van het bovenste niveau kiest, hoef je geen individuele toestemmingen meer te kiezen.
+ setting_aggregate_reblogs: Geen nieuwe boosts tonen voor toots die recentelijk nog zijn geboost (heeft alleen effect op nieuw ontvangen boosts)
setting_default_language: De taal van jouw toots kan automatisch worden gedetecteerd, maar het is niet altijd accuraat
setting_display_media_default: Als gevoelig gemarkeerde media verbergen
setting_display_media_hide_all: Media altijd verbergen
@@ -38,6 +40,17 @@ nl:
fields:
name: Label
value: Inhoud
+ account_warning_preset:
+ text: Tekst van voorinstelling
+ admin_account_action:
+ send_email_notification: Meld dit per e-mail aan de gebruiker
+ text: Aangepaste waarschuwing
+ type: Actie
+ types:
+ disable: Uitschakelen
+ none: Niets doen
+ silence: Negeren
+ warning_preset_id: Gebruik een voorinstelling van een waarschuwing
defaults:
autofollow: Uitnodigen om jouw account te volgen
avatar: Avatar
@@ -48,6 +61,7 @@ nl:
context: Filterlocaties
current_password: Huidig wachtwoord
data: Gegevens
+ discoverable: Dit account in de gebruikersgids tonen
display_name: Weergavenaam
email: E-mailadres
expires_in: Vervalt na
@@ -63,6 +77,7 @@ nl:
otp_attempt: Tweestaps-aanmeldcode
password: Wachtwoord
phrase: Trefwoord of zinsdeel
+ setting_aggregate_reblogs: Boosts in tijdlijnen groeperen
setting_auto_play_gif: Speel geanimeerde GIF's automatisch af
setting_boost_modal: Vraag voor het boosten van een toot een bevestiging
setting_default_language: Taal van jouw toots
diff --git a/config/locales/simple_form.oc.yml b/config/locales/simple_form.oc.yml
index bb9e3529c..6ded448e9 100644
--- a/config/locales/simple_form.oc.yml
+++ b/config/locales/simple_form.oc.yml
@@ -2,12 +2,20 @@
oc:
simple_form:
hints:
+ account_warning_preset:
+ text: Podètz utilizar la sintaxi dels tuts, coma las URL, las etiquetas e las mencions
+ admin_account_action:
+ send_email_notification: L’utilizaire recebrà una explicacion de çò qu’arribèt a son compte
+ text_html: Opcional. Podètz utilizar la sintaxi dels tuts. Podètz ajustar un avertiment personalizat per estalviar de temps
+ type_html: Causir de qué far amb %{acct}
+ warning_preset_id: Opcional. Podètz ajustar un tèxt personalizat a a fin de çò predefinit
defaults:
autofollow: Lo monde que se marcan gràcia a l’invitacion vos segràn automaticament
avatar: PNG, GIF o JPG. Maximum %{size}. Serà retalhat en %{dimensions}px
bot: Avisar lo monde qu’aqueste compte es pas d’una persona
context: Un o mai de contèxtes ont lo filtre deuriá s’aplicar
digest: Solament enviat aprèp un long moment d’inactivitat e solament s’avètz recebut de messatges personals pendent vòstra abséncia
+ discoverable_html: L’annuari permet al monde de trobar de comptes segon lor interèsses e activitats. Requerís almens %{min_followers} seguidors
email: Vos mandarem un corrièl de confirmacion
fields: Podètz far veire cap a 4 elements sus vòstre perfil
header: PNG, GIF o JPG. Maximum %{size}. Serà retalhada en %{dimensions}px
@@ -18,6 +26,7 @@ oc:
password: Utilizatz almens 8 caractèrs
phrase: Serà pres en compte que siá en majuscula o minuscula o dins un avertiment de contengut sensible
scopes: A quinas APIs poiràn accedir las aplicacions. Se seleccionatz un encastre de naut nivèl, fa pas mestièr de seleccionar los nivèls mai basses.
+ setting_aggregate_reblogs: Mostrar pas los nòus partatges que son estats partejats recentament (afecta pas que los nòus partatges recebuts)
setting_default_language: La lenga de vòstres tuts pòt èsser detectada automaticament, mas de còps es pas corrèctament determinada
setting_display_media_default: Rescondre los mèdias marcats coma sensibles
setting_display_media_hide_all: Totjorn rescondre los mèdias
@@ -38,6 +47,18 @@ oc:
fields:
name: Nom
value: Contengut
+ account_warning_preset:
+ text: Tèxt predefinit
+ admin_account_action:
+ send_email_notification: Avisar l’utilizaire per corrièl
+ text: Avertiment personalizat
+ type: Accions
+ types:
+ disable: Desactivar
+ none: Far pas res
+ silence: Metre en silence
+ suspend: Suspendre e escafar per de bon las donadas del compte
+ warning_preset_id: Utilizar un avertiment predefinit
defaults:
autofollow: Convidar a sègre vòstre compte
avatar: Avatar
@@ -48,6 +69,7 @@ oc:
context: Contèxte del filtre
current_password: Senhal actual
data: Donadas
+ discoverable: Far aparéisser aqueste compte a l’annuari
display_name: Escais
email: Corrièl
expires_in: Expira aprèp
@@ -63,8 +85,9 @@ oc:
otp_attempt: Còdi Two-factor
password: Senhal
phrase: Senhal o frasa
+ setting_aggregate_reblogs: Agropar los partatges dins lo flux d’actualitat
setting_auto_play_gif: Lectura automatica dels GIFS animats
- setting_boost_modal: Afichar una fenèstra de confirmacion abans de partejar un estatut
+ setting_boost_modal: Mostrar una fenèstra de confirmacion abans de partejar un estatut
setting_default_language: Lenga de publicacion
setting_default_privacy: Confidencialitat dels tuts
setting_default_sensitive: Totjorn marcar los mèdias coma sensibles
diff --git a/config/locales/simple_form.pl.yml b/config/locales/simple_form.pl.yml
index 8febad488..b0bc564aa 100644
--- a/config/locales/simple_form.pl.yml
+++ b/config/locales/simple_form.pl.yml
@@ -8,15 +8,18 @@ pl:
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
digest: Wysyłane tylko po długiej nieaktywności, jeżeli w tym czasie otrzymaleś jakąś wiadomość bezpośrednią
+ discoverable_html: Katalog pozwala znaleźć konta na podstawie zainteresowań i aktywności. Profil musi śledzić przynajmniej %{min_followers} osób
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
inbox_url: Skopiuj adres ze strony głównej przekaźnika, którego chcesz użyć
irreversible: Filtrowane wpisy znikną bezpowrotnie, nawet gdy filtr zostanie usunięty
locale: Język interfejsu, wiadomości e-mail i powiadomieniach push
locked: Musisz akceptować prośby o śledzenie
+ password: Użyj co najmniej 8 znaków
phrase: Zostanie wykryte nawet, gdy znajduje się za ostrzeżeniem o zawartości
scopes: Wybór API, do których aplikacja będzie miała dostęp. Jeżeli wybierzesz nadrzędny zakres, nie musisz wybierać jego elementów.
setting_default_language: Język Twoich wpisów może być wykrywany automatycznie, ale nie zawsze jest to dokładne
+ setting_display_media_show_all: Zawsze pokazuj zawartość multimedialną jako wrażliwą
setting_hide_network: Informacje o tym, kto Cię śledzi i kogo śledzisz nie będą widoczne
setting_noindex: Wpływa na widoczność strony profilu i Twoich wpisów
setting_theme: Zmienia wygląd Mastodona po zalogowaniu z dowolnego urządzenia.
@@ -42,6 +45,7 @@ pl:
context: Filtruj zawartość
current_password: Obecne hasło
data: Dane
+ discoverable: Wyświetlaj ten profil w katalogu
display_name: Widoczna nazwa
email: Adres e-mail
expires_in: Wygaśnie po
@@ -64,6 +68,8 @@ pl:
setting_default_privacy: Widoczność wpisów
setting_default_sensitive: Zawsze oznaczaj zawartość multimedialną jako wrażliwą
setting_delete_modal: Pytaj o potwierdzenie przed usunięciem wpisu
+ setting_display_media_hide_all: Ukryj wszystko
+ setting_display_media_show_all: Pokaż wszystko
setting_hide_network: Ukryj swoją sieć
setting_noindex: Nie indeksuj mojego profilu w wyszukiwarkach internetowych
setting_reduce_motion: Ogranicz ruch w animacjach
diff --git a/config/locales/simple_form.pt-BR.yml b/config/locales/simple_form.pt-BR.yml
index 62db31b75..411305b2d 100644
--- a/config/locales/simple_form.pt-BR.yml
+++ b/config/locales/simple_form.pt-BR.yml
@@ -2,12 +2,20 @@
pt-BR:
simple_form:
hints:
+ account_warning_preset:
+ text: Você pode usar a sintaxe de um toot, como URLs, hashtags e menções
+ admin_account_action:
+ send_email_notification: O usuário vai receber uma explicação do que aconteceu com a sua conta
+ text_html: Opcional. Você pode usar a sintaxe de toots. Você pode adicionar avisos pré-definidos para ganhar tempo.
+ type_html: Escolha o que fazer com %{acct}
+ warning_preset_id: Opcional. Você ainda pode adicionar texto customizado no fim do texto pré-definido
defaults:
autofollow: Pessoas que se cadastrarem através de seu convite te seguirão automaticamente
avatar: PNG, GIF or JPG. Arquivos de até %{size}. Eles serão diminuídos para %{dimensions}px
bot: Essa conta executa principalmente ações automatizadas e pode não ser monitorada
context: Um ou mais contextos onde o filtro deve ser aplicado
digest: Enviado após um longo período de inatividade com um resumo das menções que você recebeu em sua ausência
+ discoverable_html: O diretório permite encontrar contas baseado em seus interesses e atividades. Requer pelo menos %{min_followers} seguidores
email: Você receberá um email de confirmação
fields: Você pode ter até 4 itens exibidos em forma de tabela no seu perfil
header: PNG, GIF or JPG. Arquivos de até %{size}. Eles serão diminuídos para %{dimensions}px
@@ -18,6 +26,7 @@ pt-BR:
password: Use pelo menos 8 caracteres
phrase: Vai coincidir, independente de maiúsculas ou minúsculas, no texto ou no aviso de conteúdo de um toot
scopes: Quais APIs a aplicação vai ter permissão de acessar. Se você selecionar um escopo de alto nível, você não precisa selecionar individualmente os outros.
+ setting_aggregate_reblogs: Não mostrar novos compartilhamentos para toots que foram compartilhados recentemente (afeta somente novos compartilhamentos recebidos)
setting_default_language: O idioma de seus toots pode ser detectado automaticamente, mas isso nem sempre é preciso
setting_display_media_default: Esconder mídia marcada como sensível
setting_display_media_hide_all: Sempre esconder todas as mídias
@@ -38,6 +47,18 @@ pt-BR:
fields:
name: Rótulo
value: Conteúdo
+ account_warning_preset:
+ text: Texto pré-definido
+ admin_account_action:
+ send_email_notification: Notificar o usuário por e-mail
+ text: Aviso customizado
+ type: Ação
+ types:
+ disable: Desabilitar
+ none: Não fazer nada
+ silence: Silenciar
+ suspend: Suspender e excluir irreversivelmente dados da conta
+ warning_preset_id: Usar um aviso pré-definido
defaults:
autofollow: Convite para seguir a sua conta
avatar: Avatar
@@ -48,6 +69,7 @@ pt-BR:
context: Contextos de filtro
current_password: Senha atual
data: Dados
+ discoverable: Listar essa conta no diretório
display_name: Nome de exibição
email: Endereço de e-mail
expires_in: Expira em
@@ -63,6 +85,7 @@ pt-BR:
otp_attempt: Código de autenticação em dois passos
password: Senha
phrase: Palavra-chave ou frase
+ setting_aggregate_reblogs: Agrupar compartilhamentos nas timelines
setting_auto_play_gif: Reproduzir GIFs automaticamente
setting_boost_modal: Mostrar diálogo de confirmação antes de compartilhar postagem
setting_default_federation: Permitir que meus toots cheguem em outras instâncias por padrão
diff --git a/config/locales/simple_form.ro.yml b/config/locales/simple_form.ro.yml
index fcccd1a10..757b87204 100644
--- a/config/locales/simple_form.ro.yml
+++ b/config/locales/simple_form.ro.yml
@@ -2,24 +2,39 @@
ro:
simple_form:
hints:
+ account_warning_preset:
+ text: Poți utiliza sintaxe precum URL, hastag sau menționări
+ admin_account_action:
+ 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
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
digest: Este trimis doar după o lungă perioadă de inactivitate și numai dacă primești mesaje personale în perioada de absență
+ discoverable_html: Directorul permite utilizatorilor să găsească conturi după interese și activități. Necesită minim %{min_followers} urmăritori
+ 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
inbox_url: Copiază adresa URL de pe prima pagină a reului pe care vrei să îl utilizezi
irreversible: Postările sortate vor dispărea ireversibil, chiar dacă filtrul este ulterior șters
locale: Limba interfaței de utilizator, e-mailurile si notificările push
locked: Necesită aprobare manuală a urmăritorilor
+ 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_default_language: Limba postărilor tale poate fi detectată automat, dar nu este întotdeauna precisă
+ 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_theme: Afecteazâ modul în care arată interfața pe toate dispozitivele pe care ești conectat.
+ 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ă
imports:
data: Fișierul CSV exportat de la o altă instanță
@@ -32,6 +47,18 @@ ro:
fields:
name: Etichetă
value: Conținut
+ account_warning_preset:
+ text: Text presetat
+ admin_account_action:
+ send_email_notification: Notificați utilizatorul prin e-mail
+ text: Avertisment personalizat
+ type: Acțiune
+ types:
+ disable: Dezactivează
+ none: Nu fă nimic
+ silence: Liniște
+ suspend: Suspendă și șterge ireversibil datele contului
+ warning_preset_id: Utilizează un avertisment predefinit
defaults:
autofollow: Invită să te urmărească
avatar: Fotografie de profil
@@ -42,6 +69,7 @@ ro:
context: Contextele filtrului
current_password: Parola actuală
data: Data
+ discoverable: Listează acest cont in director
display_name: Numele afișat
email: Adresa de e-mail
expires_in: Expiră după
@@ -63,6 +91,7 @@ ro:
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_default: Standard
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
diff --git a/config/locales/simple_form.sk.yml b/config/locales/simple_form.sk.yml
index 3ff75c2f2..48363ea19 100644
--- a/config/locales/simple_form.sk.yml
+++ b/config/locales/simple_form.sk.yml
@@ -2,24 +2,39 @@
sk:
simple_form:
hints:
+ account_warning_preset:
+ text: Môžeš používať rovnakú syntaxiu ako v rámci príspevkov, čiže URL, haštagy, a spomenutia
+ admin_account_action:
+ send_email_notification: Užívateľ dostane vysvetlenie ohľadom toho, čo sa stalo s ich účtom
+ text_html: Voliteľné. Môžeš používať rovnakú syntaxiu ako v príspevkoch. Môžeš pridať varovné predlohy a ušetriť tak čas
+ type_html: Vyber si, čo urobiť s účtom %{acct}
+ warning_preset_id: Voliteľné. Stále môžeš vložiť vlastný text na samý koniec predlohy
defaults:
autofollow: Ľudia ktorí sa zaregistrujú prostredníctvom pozvánky, ťa budú inheď následovať
avatar: PNG, GIF alebo JPG. Maximálne %{size}. Bude zmenšený na %{dimensions}px
bot: Tento účet vykonáva hlavne automatizované akcie, a je pravdepodobne nespravovaný
context: Jedno, alebo viac kritérií, v ktorých má byť filtrovanie uplatnené
digest: Odoslané iba v prípade dlhodobej neprítomnosti, a len ak si obdŕžal/a nejaké osobné správy kým si bol/a preč
- fields: Môžeš mať 4 položky na svojom profile zobrazené vo forme tabuľky
- header: PNG, GIF alebo JPG. Maximálne %{size}. Bude zmenšený na %{dimensions}px
+ discoverable_html: Táto databáza umožňuje ľudom nájsť profily podľa záujmu a aktívnosti. Vyžaduje aby mali aspoň %{min_followers} sledovateľov
+ email: Bude ti odoslaný potvrdzujúci email
+ fields: Až štyri položky môžeš mať na svojom profile zobrazené vo forme tabuľky
+ header: PNG, GIF, alebo JPG. Maximálne %{size}. Bude zmenšený na %{dimensions}px
inbox_url: Skopíruj adresu z hlavnej stránky mostíka, ktorý chceš používať
- irreversible: Vytriedené príspevky zmiznú nenávratne, aj keď triedenie neskôr zrušíš
+ irreversible: Vytriedené hlášky zmiznú nenávratne, aj keď triedenie neskôr zrušíš
locale: Jazyk užívateľského rozhrania, emailových a nástenkových oboznámení
locked: Vyžaduje manuálne schvalovať sledujúcich
+ password: Zadaj aspoň osem znakov
phrase: Zhoda sa nájde nezávisle od toho, či je text napísaný, veľkými, alebo malými písmenami, či už v tele, alebo v hlavičke
scopes: Ktoré API budú povolené aplikácii pre prístup. Ak vyberieš vrcholný stupeň, nemusíš už potom vyberať po jednom.
+ setting_aggregate_reblogs: Neukazuj nové vyzdvihnutia pre hlášky, ktoré už boli len nedávno povýšené (týka sa iba nanovo získaných vyzdvihnutí)
setting_default_language: Jazyk tvojích príspevkov môže byť zistený automaticky, ale nieje to vždy presné
+ setting_display_media_default: Skryť médiá označené ako citlivé
+ setting_display_media_hide_all: Vždy ukryť všetky médiá
+ setting_display_media_show_all: Stále ukazuj médiá označené ako citlivé
setting_hide_network: Koho následuješ, a kto následuje teba nebude zobrazené na tvojom profile
setting_noindex: Ovplyvňuje verejný profil a stránky s príspevkami
setting_theme: Ovplyvňuje ako Mastodon vyzerá pri prihlásení z hociakého zariadenia.
+ username: Tvoja prezývka bude unikátna pre server %{domain}
whole_word: Ak je kľúčové slovo, alebo fráza poskladaná iba s písmen a čísel, bude použité iba ak sa zhoduje s celým výrazom
imports:
data: CSV súbor vyexportovaný z inej Mastodon inštancie
@@ -32,6 +47,18 @@ sk:
fields:
name: Označenie
value: Obsah
+ account_warning_preset:
+ text: Text predlohy
+ admin_account_action:
+ send_email_notification: Oznám užívateľovi cez email
+ text: Špecifické varovanie
+ type: Úkon
+ types:
+ disable: Deaktivuj
+ none: Neurob nič
+ silence: Utíšenie
+ suspend: Vylúč a nenávratne vymaž dáta na účte
+ warning_preset_id: Použi varovnú predlohu
defaults:
autofollow: Pozvi k následovaniu tvojho profilu
avatar: Avatar
@@ -42,6 +69,7 @@ sk:
context: Triedenie kontextov
current_password: Súčasné heslo
data: Dáta
+ discoverable: Zaraď tento účet do databázy
display_name: Meno
email: Emailová adresa
expires_in: Expirovať po
@@ -57,12 +85,18 @@ sk:
otp_attempt: Dvoj-faktorový overovací (2FA) kód
password: Heslo
phrase: Kľúčové slovo, alebo fráza
- setting_auto_play_gif: Automaticky prehrávať animované GIFy
- setting_boost_modal: Zobrazovať potvrdzovacie okno pred re-toot
+ setting_aggregate_reblogs: Zoskupuj vyzdvihnutia v časovej osi
+ setting_auto_play_gif: Automaticky prehrávaj animované GIFy
+ setting_boost_modal: Zobrazuj potvrdzovacie okno pred povýšením
setting_default_language: Píšeš v jazyku
setting_default_privacy: Súkromie príspevkov
setting_default_sensitive: Označ všetky mediálne súbory ako chúlostivé
setting_delete_modal: Zobrazuj potvrdzovacie okno pred vymazaním toot-u
+ setting_display_media: Zobrazovanie médií
+ setting_display_media_default: Štandard
+ setting_display_media_hide_all: Skryť všetky
+ setting_display_media_show_all: Ukáž všetky
+ setting_expand_spoilers: Stále rozbaľ príspevky označené varovaním o obsahu
setting_hide_network: Ukri svoju sieť kontaktov
setting_noindex: Nezaraďuj príspevky do indexu pre vyhľadávče
setting_reduce_motion: Redukovať pohyb v animáciách
@@ -75,12 +109,12 @@ sk:
username_or_email: Prezívka, alebo email
whole_word: Celé slovo
interactions:
- must_be_follower: Blokovať oznámenia od užívateľov, ktorí ťa nesledujú
- must_be_following: Blokovať oboznámenia ohľadom ľudí ktorých nesleduješ
- must_be_following_dm: Blokovať súkromné správy od ľudí ktorých nesleduješ
+ must_be_follower: Blokuj oboznámenia ohľadom užívateľov, ktorí ťa nesledujú
+ must_be_following: Blokuj oboznámenia ohľadom ľudí ktorých nesleduješ
+ must_be_following_dm: Blokuj súkromné správy od ľudí ktorých nesleduješ
notification_emails:
- digest: Posielať súhrnné emaily
- favourite: Poslať email ak niekto označí váš príspevok ako obľúbený
+ digest: Posielaj súhrnné emaily
+ favourite: Poslať email ak si niekto obľúbi tvoj príspevok
follow: Poslať email, ak ťa niekto začne následovať
follow_request: Zaslať email ak ti niekto pošle žiadosť o sledovanie
mention: Poslať email ak ťa niekto spomenie v svojom príspevku
diff --git a/config/locales/simple_form.sl.yml b/config/locales/simple_form.sl.yml
index 618446db1..890cbac41 100644
--- a/config/locales/simple_form.sl.yml
+++ b/config/locales/simple_form.sl.yml
@@ -13,5 +13,92 @@ sl:
header: PNG, GIF ali JPG. Največ %{size}. Zmanjšana bo na %{dimensions}px
inbox_url: Kopirajte URL naslov s prve strani releja, ki ga želite uporabiti
irreversible: Filtrirani trobi bodo nepovratno izginili, tudi če je filter kasneje odstranjen
+ locale: Jezik uporabniškega vmesnika, e-poštnih sporočil in potisnih obvestil
+ locked: Zahteva, da ročno odobrite sledilce
+ password: Uporabite najmanj 8 znakov
+ phrase: Se bo ujemal, ne glede na začetnice v tekstu ali opozorilo o vsebini troba
+ scopes: Do katerih API-jev bo imel program dostop. Če izberete obseg najvišje ravni, vam ni treba izbrati posameznih.
+ setting_default_language: Jezik vaših trobov je lahko samodejno zaznan, vendar ni vedno pravilen
+ setting_display_media_default: Skrij medij, ki je označen kot občutljiv
+ setting_display_media_hide_all: Vedno skrij vse medije
+ setting_display_media_show_all: Vedno pokaži medij, ki je označen kot občutljiv
+ setting_hide_network: Kogar spremljate in kdo vas spremlja ne bo prikazano na vašem profilu
+ setting_noindex: Vpliva na vaš javni profil in na strani s stanjem
+ setting_theme: Vpliva na to, kako izgleda Mastodon, ko ste prijavljeni s katero koli napravo.
+ username: Vaše uporabniško ime bo edinstveno na %{domain}
+ whole_word: Ko je ključna beseda ali fraza samo alfanumerična, se bo uporabljala le, če se bo ujemala s celotno besedo
imports:
data: Izvožena CSV datoteka iz drugega Mastodon vozlišča
+ sessions:
+ otp: 'Vnesite dvomestno kodo, ki je ustvarjena z aplikacijo na telefonu, ali uporabite eno od vaših obnovitvenih kod:'
+ user:
+ chosen_languages: Ko je označeno, bodo v javnih časovnicah prikazani samo trobi v izbranih jezikih
+ labels:
+ account:
+ fields:
+ name: Oznaka
+ value: Vsebina
+ defaults:
+ autofollow: Povabite, da sledi vašemu računu
+ avatar: Podoba
+ bot: To je račun robota
+ chosen_languages: Filtriraj jezike
+ confirm_new_password: Potrdite novo geslo
+ confirm_password: Potrdite geslo
+ context: Filtriraj vsebino
+ current_password: Trenutno geslo
+ data: Podatki
+ display_name: Prikazno ime
+ email: E-poštni naslov
+ expires_in: Preteče po
+ fields: Metapodatki profila
+ header: Glava
+ inbox_url: URL mape "Prejeto"
+ irreversible: Opusti namesto skrij
+ locale: Jezik vmesnika
+ locked: Zaklenjen račun
+ max_uses: Največje število uporabnikov
+ new_password: Novo geslo
+ note: Bio
+ otp_attempt: Dvofaktorska koda
+ password: Geslo
+ phrase: Ključna beseda ali fraza
+ setting_auto_play_gif: Samodejno predvajanje animiranih GIF-ov
+ setting_boost_modal: Pred sunkom pokaži potrditveno okno
+ setting_default_language: Jezik objavljanja
+ setting_default_privacy: Zasebnost objave
+ setting_default_sensitive: Vedno označi medije kot občutljive
+ setting_delete_modal: Pred brisanjem troba prikaži okno za pritrditev
+ setting_display_media: Prikaz medijev
+ setting_display_media_default: Privzeto
+ setting_display_media_hide_all: Skrij vse
+ setting_display_media_show_all: Prikaži vse
+ setting_expand_spoilers: Vedno razširi trobe, označene z opozorili o vsebini
+ setting_hide_network: Skrij svoje omrežje
+ setting_noindex: Odsotnost indeksiranja iskalnikov
+ setting_reduce_motion: Zmanjšanje premikanja v animacijah
+ setting_system_font_ui: Uporabi privzeto pisavo sistema
+ setting_theme: Tema strani
+ setting_unfollow_modal: Pokaži potrditveno okno, preden nekoga prenehamo slediti
+ severity: Strogost
+ type: Vrsta uvoza
+ username: Uporabniško ime
+ username_or_email: Uporabniško ime ali E-pošta
+ whole_word: Celotna beseda
+ interactions:
+ must_be_follower: Blokiraj obvestila nesledilcev
+ must_be_following: Blokiraj obvestila oseb, ki jim ne sledite
+ must_be_following_dm: Blokiraj neposredna sporočila oseb, ki jim ne sledite
+ notification_emails:
+ digest: Pošlji izvlečke e-pošt
+ favourite: Pošlji e-pošto, ko nekdo doda vaše stanje med priljubljene
+ follow: Pošlji e-pošto, ko vas nekdo sledi
+ follow_request: Pošlji e-pošto, ko vam nekdo želi slediti
+ mention: Pošlji e-pošto, ko vas nekdo omeni
+ reblog: Pošlji e-pošto, ko nekdo sune vaše stanje
+ report: Pošlji e-pošto, ko je oddano novo poročilo
+ 'no': Ne
+ required:
+ mark: "*"
+ text: zahtevano
+ 'yes': Da
diff --git a/config/locales/sk.yml b/config/locales/sk.yml
index 2b928169a..91d1fdb8f 100644
--- a/config/locales/sk.yml
+++ b/config/locales/sk.yml
@@ -1,8 +1,8 @@
---
sk:
about:
- about_hashtag_html: Toto sú verejné toot príspevky otagované #%{hashtag}. Ak máš účet niekde vo fediverse, môžeš ich používať.
- about_mastodon_html: Mastodon je sociálna sieť založená na otvorených webových protokoloch. Jej zrojový kód je otvorený a je decentralizovaná podobne ako email.
+ about_hashtag_html: Toto sú verejné hlášky otagované #%{hashtag}. Ak máš účet niekde vo fediverse, môžeš ich využívať.
+ about_mastodon_html: Mastodon je sociálna sieť založená na otvorených webových protokoloch a na slobodnom, otvorenom softvéri. Je decentralizovaná podobne ako email.
about_this: O tejto instancii
administered_by: 'Správcom je:'
api: API
@@ -16,12 +16,12 @@ sk:
Pravidlá
Žiadne zatiaľ nie sú
features:
- humane_approach_body: Poučený z chýb iných sociálnych sietí, Mastodon sa snaží bojovať s nekalým používaním siete vytváraním etických možností.
+ humane_approach_body: Poučený z chýb iných sociálnych sietí, Mastodon sa snaží bojovať so zneužívaním siete voľbou etických návrhov.
humane_approach_title: Ľudskejší prístup
- not_a_product_body: Mastodon nie je komerčná sieť. Žiadne reklamy, žiadne dolovanie dát, žiadne múry. Žiadna centrálna autorita.
- not_a_product_title: Si človek, nie produkt
- real_conversation_body: S 500 znakmi a podporou pre varovania pri obrázkoch a videách sa môžeš vyjadriť tak ako budeš chcieť.
- real_conversation_title: Vytvorený pre reálnu konverzáciu
+ not_a_product_body: Mastodon nie je komerčná sieť. Žiadne reklamy, žiadne dolovanie dát, žiadne múry. Nieje tu žiadna centrálna autorita.
+ not_a_product_title: Si človekom, nie produktom
+ real_conversation_body: K dispozícii s 500 znakmi a podporou pre varovania o obsahu a médiách sa môžeš vyjadriť tak ako budeš chcieť.
+ real_conversation_title: Vytvorený pre naozajstnú konverzáciu
within_reach_body: Viacero aplikácií pre iOS, Android a iné platformy, ktoré ti vďaka jednoduchému API ekosystému dovoľujú byť online so svojimi priateľmi kdekoľvek.
within_reach_title: Stále v dosahu
generic_description: "%{domain} je jeden server v sieti"
@@ -30,18 +30,29 @@ sk:
other_instances: Zoznam ďalších inštancií
privacy_policy: Ustanovenia o súkromí
source_code: Zdrojový kód
- status_count_after: statusy
+ status_count_after:
+ few: príspevkov
+ one: príspevok
+ other: príspevkov
status_count_before: Ktorí napísali
terms: Podmienky užívania
- user_count_after: užívateľov
+ user_count_after:
+ few: užívatelia
+ one: užívateľ
+ other: užívatelia
user_count_before: Domov pre
what_is_mastodon: Čo je Mastodon?
accounts:
choices_html: "%{name}vé voľby:"
- follow: Sledovať
- followers: Sledovatelia
+ follow: Sleduj
+ followers:
+ few: Sledovatelia
+ one: Sledujúci
+ other: Sledovatelia
following: Sledovaní
joined: Pridal/a sa %{date}
+ last_active: poslednýkrát aktívny
+ link_verified_on: Vlastníctvo tohto odkazu bolo skontrolované %{date}
media: Médiá
moved_html: "%{name} účet bol presunutý na %{new_profile_link}:"
network_hidden: Táto informácia nieje k dispozícii
@@ -50,7 +61,10 @@ sk:
people_who_follow: Ľudia sledujúci %{name}
pin_errors:
following: Musíš už následovať toho človeka, ktorého si praješ zviditeľniť
- posts: Príspevky
+ posts:
+ few: Príspevkov
+ one: Príspevok
+ other: Príspevkov
posts_tab_heading: Príspevky
posts_with_replies: Príspevky s odpoveďami
reserved_username: Prihlasovacie meno je rezervované
@@ -58,8 +72,11 @@ sk:
admin: Administrátor
bot: Automat
moderator: Moderátor
- unfollow: Prestať sledovať
+ unfollow: Prestaň sledovať
admin:
+ account_actions:
+ action: Vykonaj
+ title: Vykonaj moderovací úkon voči %{acct}
account_moderation_notes:
create: Zanechaj poznámku
created_msg: Poznámka moderátora bola úspešne vytvorená!
@@ -92,8 +109,10 @@ sk:
enabled: Povolený
feed_url: URL časovej osi
followers: Sledujúci
+ followers_local: "(%{local} local)"
followers_url: URL sledujúcich
follows: Sledovania
+ header: Hlavička
inbox_url: URL prijatých správ
ip: IP
location:
@@ -105,6 +124,7 @@ sk:
media_attachments: Prílohy
memorialize: Zmeniť na "Navždy budeme spomínať"
moderation:
+ active: Aktívny/a
all: Všetko
silenced: Umlčané
suspended: Suspendované
@@ -112,13 +132,10 @@ sk:
moderation_notes: Moderátorské poznámky
most_recent_activity: Posledná aktivita
most_recent_ip: Posledná IP
+ no_limits_imposed: Niesú stanovené žiadné obmedzenia
not_subscribed: Nezaregistrované
- order:
- alphabetic: Abecedne
- most_recent: Podľa času
- title: Zoradiť
outbox_url: URL poslaných
- perform_full_suspension: Suspendovať
+ perform_full_suspension: Zablokovať
profile_url: URL profilu
promote: Povýšiť
protocol: Protokol
@@ -126,45 +143,49 @@ sk:
push_subscription_expires: PuSH odoberanie expiruje
redownload: Obnoviť avatar
remove_avatar: Odstrániť avatár
+ remove_header: Odstráň hlavičku
resend_confirmation:
- already_confirmed: Tento používateľ už bol potvrdený
- send: Znova odoslať potvrdzovací e-mail
- success: Potvrdený e-mail bol úspešne odoslaný!
- reset: Reset
- reset_password: Obnoviť heslo
+ already_confirmed: Tento užívateľ už je potvrdený
+ send: Znovu odoslať potvrdzovací email
+ success: Potvrdzujúci email bol úspešne odoslaný!
+ reset: Resetuj
+ reset_password: Obnov heslo
resubscribe: Znovu odoberať
role: Oprávnenia
roles:
admin: Administrátor
moderator: Moderátor
staff: Člen
- user: Používateľ
+ user: Užívateľ
salmon_url: Salmon adresa
search: Hľadať
shared_inbox_url: URL zdieľanej schránky
show:
created_reports: Reportované týmto používateľom
- report: report
targeted_reports: Nahlásenia pre tento účet
silence: Stíšiť
+ silenced: Utíšení
statuses: Príspevky
subscribe: Odoberať
+ suspended: Zablokovaní
title: Účty
unconfirmed_email: Nepotvrdený email
undo_silenced: Zrušiť stíšenie
undo_suspension: Zrušiť suspendáciu
- unsubscribe: Prestať odoberať
- username: Používateľske meno
+ unsubscribe: Prestaň odoberať
+ username: Prezývka
web: Web
action_logs:
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}"
confirm_user: "%{name} potvrdil e-mailovú adresu používateľa %{target}"
+ create_account_warning: "%{name} poslal/a varovanie užívateľovi %{target}"
create_custom_emoji: "%{name} nahral nový emoji %{target}"
create_domain_block: "%{name} zablokoval doménu %{target}"
create_email_domain_block: "%{name} pridal e-mailovú doménu %{target} na zoznam zakázaných"
demote_user: "%{name} degradoval používateľa %{target}"
+ destroy_custom_emoji: "%{name} zničil/a %{target} emoji"
destroy_domain_block: "%{name} povolil doménu %{target}"
destroy_email_domain_block: "%{name} pridal e-mailovú doménu %{target} na zoznam povolených"
destroy_status: "%{name} zmazal status %{target}"
@@ -218,6 +239,7 @@ sk:
config: Nastavenia
feature_deletions: Vymazanie účtov
feature_invites: Pozvánky
+ feature_profile_directory: Katalóg profilov
feature_registrations: Registrácie
feature_relay: Federovací mostík
features: Vymoženosti
@@ -250,11 +272,8 @@ sk:
title: Nové blokovanie domény
reject_media: Odmietať súbory s obrázkami alebo videami
reject_media_hint: Zmaže lokálne uložené súbory médií a odmietne ich sťahovanie v budúcnosti. Irelevantné pre suspendáciu
- severities:
- noop: Žiadne
- silence: Stíšiť
- suspend: Suspendovať
- severity: Závažnosť
+ reject_reports: Zamietni hlásenia
+ reject_reports_hint: Ignoruj všetky hlásenia prichádzajúce z tejto domény. Nevplýva na blokovania
show:
affected_accounts:
few: "%{count} účty v databáze ovplyvnených"
@@ -265,23 +284,21 @@ sk:
suspend: Zrušiť suspendáciu všetkých existujúcich účtov z tejto domény
title: Zrušiť blokovanie domény pre %{domain}
undo: Vrátiť späť
- title: Blokovanie domén
undo: Späť
email_domain_blocks:
- add_new: Pridať nový
+ add_new: Pridaj nový
created_msg: Emailová doména bola úspešne pridaná do zoznamu zakázaných
delete: Zmazať
destroyed_msg: Emailová doména bola úspešne vymazaná zo zoznamu zakázaných
domain: Doména
new:
- create: Pridať doménu
+ create: Pridaj doménu
title: Nový email na zablokovanie
title: Blokované emailové adresy
+ followers:
+ back_to_account: Späť na účet
+ title: Následovatielia užívateľa %{acct}
instances:
- account_count: Známe účty
- domain_name: Doména
- reset: Resetovať
- search: Hľadať
title: Známe instancie
invites:
deactivate_all: Pozastaviť všetky
@@ -293,8 +310,13 @@ sk:
title: Pozvánky
relays:
add_new: Pridaj novú priechodnú oporu
+ delete: Vymaž
description_html: "Federovací mostík je prechodný server ktorý obmieňa veľké množstvá verejných príspevkov medzi tými servermi ktoré na od neho odoberajú, aj doňho prispievajú. Môže to pomôcť malým a stredným instanciám objavovať federovaný obsah, čo inak vyžaduje aby miestni užívatelia ručne následovali iných ľudí zo vzdialených instancií."
+ disable: Pozastav
+ disabled: Zastavené
+ enable: Povoľ
enable_hint: Ak povolíš, tvoj server bude odoberať všetky verejné príspevky z tohto mostu, a začne posielať verejné príspevky tvojho servera na tento most.
+ enabled: Povolené
inbox_url: URL mostu
pending: Čakám na povolenie od prechodného mostu
save_and_enable: Uložiť a povoliť
@@ -350,12 +372,18 @@ sk:
hero:
desc_html: Zobrazuje sa na hlavnej stránke. Doporučuje sa rozlišenie aspoň 600x100px Pokiaľ tu nieje nič dodané, bude nastavený základný orázok tohoto serveru
title: Obrázok hrdinu
+ mascot:
+ desc_html: Zobrazované na viacerých stránkach. Odporúčaná veľkosť aspoň 293×205px. Pokiaľ nieje nahraté, bude zobrazený základný maskot
+ title: Obrázok maskota
peers_api_enabled:
desc_html: Domény na ktoré táto instancia už vo fediverse natrafila
title: Zverejniť zoznam objavených instancií
preview_sensitive_media:
desc_html: Náhľad adresy z iných instancií, bude zobrazený aj vtedy, keď sú dané médiá označené ako senzitívne
title: Ukazuj aj chúlostivé médiá v náhľadoch OpenGraph
+ profile_directory:
+ desc_html: Povoliť užívateľom aby boli nájdení
+ title: Zapni profilový katalóg
registrations:
closed_message:
desc_html: Toto sa zobrazí na hlavnej stránke v prípade že sú registrácie uzavreté. Možno tu použiť aj HTML kód
@@ -370,10 +398,10 @@ sk:
desc_html: Povoliť každému aby si mohli vytvoriť účet
title: Verejná registrácia
show_known_fediverse_at_about_page:
- desc_html: Pokiaľ je zapnuté, bude v ukážke osi možné nahliadnúť toot statusy z celého známeho fediversa. V opačnom prípade tam budú ukázané iba statusy z lokálnej osi.
- title: Ukázať celé známe fediversum ako ukážku osi
+ desc_html: Pokiaľ je zapnuté, bude v ukážke osi možné nahliadnúť príspevky z celého známeho fediversa. Inak budú ukázané iba hlášky z miestnej osi.
+ title: Ukázať celé známe fediversum na náhľade osi
show_staff_badge:
- desc_html: Zobraziť moderátorsku značku na užívateľovej stránke
+ desc_html: Zobraz moderátorsku značku na užívateľovej stránke
title: Zobraziť značku moderátora
site_description:
desc_html: Oboznamujúci paragraf na hlavnej stránke a pri meta tagoch. Môžete použiť HTML kód, presnejšie < a> a < em> .
@@ -399,14 +427,14 @@ sk:
back_to_account: Späť na účet
batch:
delete: Vymazať
- nsfw_off: Obsah nieje chúlostivý
- nsfw_on: Označ obeah aka chúlostivý
+ nsfw_off: Označ ako nechúlostivé
+ nsfw_on: Označ ako chúlostivé
failed_to_execute: Nepodarilo sa vykonať
media:
title: Médiá
no_media: Žiadné médiá
no_status_selected: Žiadne príspevky neboli zmenené, keďže si žiadne nemal/a zvolené
- title: Statusy na účte
+ title: Príspevky na účte
with_media: S médiami
subscriptions:
callback_url: Zdrojová adresa URL
@@ -415,13 +443,21 @@ sk:
last_delivery: Posledné doručenie
title: WebSub
topic: Téma
- suspensions:
- bad_acct_msg: Hodnota pre potvrdenie sa nezhoduje. Si si istý/á že zamrazuješ ten správny účet?
- hint_html: 'Pre potvrdenie zamrazenia účtu, prosím napíš %{value} do následujúceho políčka:'
- proceed: Pokračuj
- title: Zamraziť %{acct}
- warning_html: 'Zamrazením tohto účtu budú dáta na tomto účte nenávratne zmazané, zahŕňajúc:'
+ tags:
+ accounts: Účty
+ hidden: Skryté
+ hide: Ukri od databázy
+ name: Haštag
+ title: Haštagy
+ unhide: Ukáž v databázi
+ visible: Viditeľné
title: Spravovanie
+ warning_presets:
+ add_new: Pridaj nové
+ delete: Vymaž
+ edit: Uprav
+ edit_preset: Uprav varovnú predlohu
+ title: Spravuj varovné predlohy
admin_mailer:
new_report:
body: "%{reporter} nahlásil/a %{target}"
@@ -495,12 +531,20 @@ sk:
bad_password_msg: Dobrý pokus, hakeri! Nesprávne heslo
confirm_password: Napíšte svoje terajšie heslo pre overenie vašej identity
description_html: Týmto natrvalo, nenavrátiteľne vymažeš obsah tvojho účtu, a deaktivuješ ho. Tvoja prezývka ale ostane rezervovaná ako prevencia pred budúcimi impersonáciami.
- proceed: Vymazať účet
- success_msg: Váš účet bol úspešne vymazaný
- warning_html: Iba vymazanie obsahu z tejto konkrétnej instancie je garantované. Obsah ktorý bol zdieľaný široko-ďaleko pravdepodobne zanechá nejaké stopy. Servery ktoré sú offline a tie ktoré ignorujú tvoje zmeny teda nezaktualizujú svoje databázy.
- warning_title: O dostupnosti distribuovaného obsahu
+ proceed: Vymaž účet
+ success_msg: Tvoj účet bol úspešne vymazaný
+ warning_html: Iba vymazanie obsahu z tejto konkrétnej instancie je zaručené. Obsah, ktorý bol zdieľaný široko-ďaleko pravdepodobne zanechá nejaké stopy. Servery ktoré sú offline a tie ktoré ignorujú tvoje zmeny teda nezaktualizujú svoje databázy.
+ warning_title: Dostupnosť rozšírovaného obsahu
+ directories:
+ directory: Katalóg profilov
+ explanation: Pátraj po užívateľoch podľa ich záujmov
+ explore_mastodon: Prebádaj %{title}
+ people:
+ few: "%{count} ľudia"
+ one: "%{count} človek"
+ other: "%{count} ľudia"
errors:
- '403': Nemáte dostatočné povolenie na zobrazenie tejto stránky.
+ '403': Nemáš povolenie na zobrazenie tejto stránky.
'404': Stránka ktorú si hľadal/a sa tu nenachádza.
'410': Stránka ktorú si tu hľadal/a už viac neexistuje.
'422':
@@ -559,14 +603,15 @@ sk:
resources: Podklady
generic:
changes_saved_msg: Zmeny boli úspešne uložené!
- save_changes: Uložiť zmeny
+ copy: Kopírovať
+ save_changes: Ulož zmeny
validation_errors:
few: Niečo ešte stále nieje v poriadku! Prosím skontroluj všetky %{count} chyby
- one: Niečo nieje úplne v poriadku! Prosím skontroluj chybu
- other: Niečo ešte stále nieje v poriadku! Prosím skontroluj všetkých %{count} chýb
+ one: Niečo nieje úplne v poriadku! Prosím skontroluj danú chybu
+ other: Niečo ešte stále nieje v poriadku! Prosím skontroluj všetky %{count} nižšie uvedené pochybenia
imports:
- preface: Môžeš importovať dáta ktoré si exportoval/a z iného Mastodon serveru, ako sú napríklad zoznamy ľudí ktorých sleduješ, alebo blokuješ.
- success: Tvoje dáta boli nahraté úspešne, a budú teraz spracované v danom čase
+ preface: Môžeš nahrať dáta ktoré si exportoval/a z iného Mastodon serveru, ako sú napríklad zoznamy ľudí ktorých sleduješ, alebo blokuješ.
+ success: Tvoje dáta boli nahraté úspešne, a teraz budú spracované v danom čase
types:
blocking: Zoznam blokovaných
following: Zoznam sledovaných
@@ -673,9 +718,6 @@ sk:
no_account_html: Nemáš ešte účet? Môžeš sa zaregistrovať tu
proceed: Začni následovať
prompt: 'Budeš sledovať:'
- remote_interaction:
- proceed: Pokračuj k interakcii
- prompt: 'Chceš narábať s týmto príspevkom:'
remote_unfollow:
error: Chyba
title: Názov
@@ -692,21 +734,32 @@ sk:
firefox: Mozilla Firefox
generic: Neznámy prehliadač
ie: Internet Explorer
+ micro_messenger: MicroMessenger
+ nokia: Nokia Ovi Browser
+ opera: Opera
otter: Prehliadač Otter
+ phantom_js: PhantomJS
qq: QQ Prehliadač
safari: Apple Safari
+ uc_browser: UCBrowser
weibo: Sina/Tencent Weibo
current_session: Aktuálna sezóna
description: "%{browser} na %{platform}"
explanation: Tieto sú prehliadače ktoré sú teraz prihlásené na tvoj Mastodon účet.
ip: IP adresa
platforms:
+ adobe_air: Adobe Air
+ android: Android
+ blackberry: Blackberry
chrome_os: Google ChromeOS
+ firefox_os: Firefox OS
ios: Apple iOS
linux: GNU/Linux
mac: MacOSX
other: neznáma platforma
windows: Microsoft Windows
+ windows_mobile: Windows Mobile
+ windows_phone: Windows Phone
revoke: Zamietni
revoke_success: Sezóna úspešne zamietnutá
title: Sezóny
@@ -738,17 +791,21 @@ sk:
other: "%{count} videí"
boosted_from_html: Povýšené od %{acct_link}
content_warning: 'Varovanie o obsahu: %{warning}'
- disallowed_hashtags: 'obsahuje nepovolené haštagy: %{tags}'
- language_detection: Zisti jazyk automaticky
- open_in_web: Otvor v okne prehliadača
- over_character_limit: limit počtu %{max} znakov bol presiahnutý
+ disallowed_hashtags:
+ few: 'obsahoval nepovolené hashtagy: %{tags}'
+ one: 'obsahoval nepovolený hashtag: %{tags}'
+ other: 'obsahoval nepovolené hashtagy: %{tags}'
+ language_detection: Zisti automaticky
+ open_in_web: Otvor v okne na webe
+ over_character_limit: limit %{max} znakov bol presiahnutý
pin_errors:
- limit: Už ste si pripli ten najvyšší možný počet príspevkov
- ownership: Nemožno pripnúť príspevok od niekoho iného
+ limit: Už si si pripol ten najvyšší možný počet hlášok
+ ownership: Nieje možné pripnúť hlášku od niekoho iného
private: Neverejné príspevky nemôžu byť pripnuté
reblog: Pozdvihnutie sa nedá pripnúť
show_more: Ukáž viac
sign_in_to_participate: Prihlás sa pre zapojenie do diskusie
+ title: '%{name}: „%{quote}"'
visibilities:
private: Iba pre sledovateľov
private_long: Ukáž iba následovateľom
@@ -761,7 +818,26 @@ sk:
reblogged: vyzdvihnutý
sensitive_content: Senzitívny obsah
terms:
- title: Podmienky užívania, a pravidlá o súkromí pre %{instance}
+ body_html: |
+
Podmienky súkromia
+
+
Aké informácie zbierame?
+
+
+
Základné informácie o účte: Ak sa na tomto serveri zaregistruješ, budeš môcť byť požiadaný/á zadať prezývku, emailovú adresu a heslo. Budeš tiež môcť zadať aj ďalšie profilové údaje, ako napríklad meno a životopis, a nahrať profilovú fotku aj obrázok v záhlaví. Tvoja prezývka, meno, životopis, profilová fotka a obrázok v záhlaví sú vždy zobrazené verejne.
Príspevky, sledovania a iné verejné informácie:
+ Zoznam ľudí, ktorých sleduješ je zobrazený verejne, a to isté platí aj pre zoznam tvojích následovateľov. Keď pošleš správu, ukladá sa jej dátum a čas, ale aj z akej aplikácie bola poslaná. Správy môžu obsahovať mediálne prílohy, ako obrázky a videá. Verejné, a nezaradené príspevky sú verejne prístupné. Keď si pripneš príspevok na svoj profil, toto je tiež verejne dostupnou informáciou. Tvoje príspevky sú takisto doručené tvojím sledovateľom, a to aj v rámci iných serverov, kde je potom uložená kópia tvojho príspevku. Ak vymažeš príspevok, táto akcia bude takisto doručená tvojím sledovateľom. Vyzdvihnutie, alebo obľúbenie iného príspevku je vždy verejne viditeľné.
+
+
Priame príspevky, a príspevky iba pre sledovateľov: Všetky príspevky sú uložené a spracované na serveri. Príspevky iba pre sledovateľov sú doručené tvojím sledovateľom a užívateľom ktorí sú v nich spomenutí, pričom priame príspevky sú doručené iba tím užívateľom ktorí sú v nich spomenutí. V niektorých prípadoch to môže znamenať, že tieto príspevkz sú doručené aj vrámci iných serverov, a kópie príspevkov sú tam uložené.
+ V dobrej viere robíme všetko preto, aby bol prístup k tímto príspevkom vymedzený iba pre oprávnených používateľov, ale môže sa stať, že iné servery v tomto ohľade zlyhajú. Preto je dôležité prezrieť si a zhodnotiť, na aké servery patria tvoji následovatelia. V nastaveniach si môžeš zapnúť voľbu ručne povoľovať a odmietať nových následovateľov.
+ Prosím maj na pamäti, že správcovia tvojho, aj vzdialeného obdŕžiavajúceho servera majú možnosť vidieť dané príspevky a správy, ale aj že obdŕžitelia týchto správ si ich môzu odfotiť, skopírovať, alebo ich inak zdieľať. Nezdieľaj žiadne nebezpečné, alebo ohrozujúce správy pomocou Mastodonu!
+
+
IPky a iné metadáta: Keď sa prihlásiš, zaznamenáva sa IP adresa z ktorej si sa prihlásil/a, takisto ako aj názov tvojho prehliadača. Všetky zaznamenané sezóny sú pre teba dostupné na konktolu, alebo na zamietnutie prístupu v nastaveniach. Posledná použitá IP adresa je uložená až po dobu dvanástich mesiacov. Môžeme si tiež ponechať serverové záznamy, ktoré obsahujú IP adresu každej požiadavky na tento server.
+
+
+
+
+
+ title: Podmienky užívania, a pravidlá súkromia pre %{instance}
themes:
contrast: Vysoký kontrast
default: Mastodon
@@ -769,6 +845,7 @@ sk:
time:
formats:
default: "%b %d, %R, %H:%M"
+ month: "%b %Y"
two_factor_authentication:
code_hint: Pre potvrdenie teraz zadaj kód vygenerovaný pomocou tvojej overovacej aplikácie
description_html: Ak povolíš dvoj-faktorové overovanie, na prihlásenie potom budeš potrebovať svoj telefón, ktorý vygeneruje prístupové kódy, čo musíš zadať.
@@ -790,6 +867,22 @@ sk:
explanation: Vyžiadal/a si si úplnú zálohu svojho Mastodon účtu. Táto záloha je teraz pripravená na stiahnutie!
subject: Tvoj archív je pripravený na stiahnutie
title: Odber archívu
+ warning:
+ explanation:
+ disable: Pokiaľ je tvoj účet zamrazený, tvoje dáta zostávajú nedoknuté, ale nemôžeš v rámci neho nič robiť, až kým nebude odomknutý.
+ silence: Kým je tvoj účet obmedzený, tvoje hlášky na tomto serveri uvidia iba tí ľudia, ktorí ťa už následujú, a môžeš byť vylúčený/á z rôznych verejných záznamov. Ostatní ťa však stále budú môcť následovať manuálne.
+ suspend: Tvoj účet bol vylúčený, a všetky tvoje hlášky a nahraté médiálné súbory boli nenávratne zmazané z tohto serveru, a zo serverov na ktorých si mal následovateľov.
+ review_server_policies: Prehodnoť pravidlá servera
+ subject:
+ disable: Tvoj účet %{acct} bol zamrazený
+ none: Varovanie pre %{acct}
+ silence: Tvoj účet %{acct} bol obmedzený
+ suspend: Tvoj účet %{acct} bol vylúčený
+ title:
+ disable: Účet bol zamrazený
+ none: Varovanie
+ silence: Účet bol obmedzený
+ suspend: Tvoj účet bol vylúčený
welcome:
edit_profile_action: Nastav profil
edit_profile_step: Profil si môžeš prispôsobiť nahratím portrétu a hlavičky, môžeš upraviť svoje meno a viac. Pokiaľ chceš preverovať nových následovateľov predtým než ťa budú môcť sledovať, môžeš uzamknúť svoj účet.
@@ -801,7 +894,6 @@ sk:
review_preferences_action: Zmeniť nastavenia
review_preferences_step: Daj si záležať na svojích nastaveniach, napríklad že aké emailové notifikácie chceš dostávať, alebo pod aký level súkromia sa tvoje príspevky majú sami automaticky zaradiť. Pokiaľ nemáš malátnosť z pohybu, môžeš si zvoliť aj automatické spúšťanie GIF animácií.
subject: Vitaj na Mastodone
- tip_bridge_html: Ak prichádzaš z Twitteru, môžeš svojích priateľov nájsť na Mastodone pomocou tzv. mostíkovej aplikácie. Ale tá funguje iba ak ju aj oni niekedy použili!
tip_federated_timeline: Federovaná os zobrazuje sieť Mastodonu až po jej hranice. Ale zahŕňa iba ľúdí ktorých ostatní okolo teba sledujú, takže predsa nieje úplne celistvá.
tip_following: Správcu servera následuješ automaticky. Môžeš ale nájsť mnoho iných zaujímavých ľudí ak prezrieš tak lokálnu, ako aj globálne federovanú os.
tip_local_timeline: Miestna časová os je celkový pohľad na aktivitu užívateľov %{instance}. Toto sú tvoji najbližší susedia!
@@ -809,8 +901,12 @@ sk:
tips: Tipy
title: Vitaj na palube, %{name}!
users:
+ follow_limit_reached: Nemôžeš následovať viac ako %{limit} ľudí
invalid_email: Emailová adresa je neplatná
invalid_otp_token: Neplatný kód pre dvojfaktorovú autentikáciu
otp_lost_help_html: Pokiaľ si stratil/a prístup k obom, môžeš dať vedieť %{email}
seamless_external_login: Si prihlásená/ý cez externú službu, takže nastavenia hesla a emailu ti niesú prístupné.
signed_in_as: 'Prihlásený ako:'
+ verification:
+ explanation_html: 'Môžeš sa overiť ako majiteľ odkazov v metadátach tvojho profilu. Na to musí ale odkazovaná stránka obsahovať odkaz späť na tvoj Mastodon profil. Tento spätný odkaz musí mať prívlastok rel="me". Na texte odkazu nezáleží. Tu je príklad:'
+ verification: Overenie
diff --git a/config/locales/sl.yml b/config/locales/sl.yml
index 0e9d7d3aa..594c58acc 100644
--- a/config/locales/sl.yml
+++ b/config/locales/sl.yml
@@ -16,35 +16,59 @@ sl:
Dober prostor za pravila
Razširjen opis še ni bil nastavljen.
features:
+ humane_approach_body: Na podlagi učenja od neuspehov drugih omrežij, želi Mastodon oblikovati etične načrte za boj proti zlorabi socialnih medijev.
humane_approach_title: Bolj human pristop
+ not_a_product_body: Mastodon ni komercialno omrežje. Brez oglaševanja, brez podatkovnega rudarjenja, brez obzidanih vrtov. Ni osrednjega organa.
not_a_product_title: Ti si oseba, ne izdelek
+ real_conversation_body: S 500 znaki, ki so vam na voljo, in podporo za zrnate vsebine ter opozorila pred mediji, se lahko izrazite tako, kot želite.
real_conversation_title: Zgrajen za pravi pogovor
+ within_reach_body: Zahvaljujoč razvijalcem prijaznemu API ekosistemu, obstaja več aplikacija za iOS, Arduino in druge platforme, ki vam omogočajo, da sledite svojim prijateljem kjerkoli.
within_reach_title: Vedno na dosegu roke
generic_description: "%{domain} je en strežnik v omrežju"
hosted_on: Mastodon gostuje na %{domain}
learn_more: Spoznaj več
other_instances: Seznam vozlišč
+ privacy_policy: Politika zasebnosti
source_code: Izvorna koda
- status_count_after: statusi
+ status_count_after:
+ few: stanja
+ one: stanje
+ other: stanja
+ two: stanja
status_count_before: Kdo je avtor
- user_count_after: uporabniki
+ terms: Pogoji storitve
+ user_count_after:
+ few: uporabniki
+ one: uporabnik
+ other: uporabniki
+ two: uporabniki
user_count_before: Dom za
what_is_mastodon: Kaj je Mastodon?
accounts:
+ choices_html: "%{name} izbire:"
follow: Sledi
- followers: Sledilci
+ followers:
+ few: Sledilci
+ one: Sledilec
+ other: Sledilci
+ two: Sledilci
following: Sledim
+ joined: Se je pridružil na %{date}
+ link_verified_on: Lastništvo te povezave je bilo preverjeno na %{date}
media: Medij
moved_html: "%{name} se je prestavil na %{new_profile_link}:"
network_hidden: Te informacije niso na voljo
nothing_here: Nič ni tukaj!
people_followed_by: Ljudje, ki jim sledi %{name}
people_who_follow: Ljudje, ki sledijo %{name}
+ pin_errors:
+ following: Verjetno že sledite osebi, ki jo želite potrditi
posts:
few: Trob
one: Trob
other: Trob
two: Trob
+ posts_tab_heading: Trobi
posts_with_replies: Tuti in odgovori
reserved_username: Uporabniško ime je zasedeno
roles:
@@ -57,6 +81,7 @@ sl:
create: Pusti sporočilo
created_msg: Uspešno ustvarjena opomba moderiranja!
delete: Izbriši
+ destroyed_msg: Moderirana opomba je uspešno uničena!
accounts:
are_you_sure: Ali si prepričan?
avatar: Avatar
@@ -71,9 +96,11 @@ sl:
confirm: Potrdi
confirmed: Potrjeno
confirming: Potrjujem
+ demote: Ponižaj
disable: Onemogoči
disable_two_factor_authentication: Onemogoči 2FA
disabled: Onemogočeno
+ display_name: Prikazno ime
domain: Domena
edit: Uredi
email: E-pošta
@@ -102,13 +129,7 @@ sl:
moderation_notes: Opombe moderiranja
most_recent_activity: Zadnja aktivnost
most_recent_ip: Zadnji IP
- order:
- alphabetic: Po abecedi
- most_recent: Najnovejše
- title: Red
promote: Spodbujanje
- remote_interaction:
- prompt: 'Želite interakcijo s tem trobom:'
statuses:
pin_errors:
ownership: Trob nekoga drugega ne more biti pripet
diff --git a/config/locales/sr-Latn.yml b/config/locales/sr-Latn.yml
index 1e32190cc..82739c9bb 100644
--- a/config/locales/sr-Latn.yml
+++ b/config/locales/sr-Latn.yml
@@ -92,10 +92,6 @@ sr-Latn:
most_recent_activity: Najskorija aktivnost
most_recent_ip: Najskorija IP adresa
not_subscribed: Nije pretplaćen
- order:
- alphabetic: Abecedni
- most_recent: Najskoriji
- title: Redosled
outbox_url: Odlazno sanduče
perform_full_suspension: Izvrši kompletno isključenje
profile_url: Adresa profila
@@ -122,7 +118,6 @@ sr-Latn:
shared_inbox_url: Adresa deljenog sandučeta
show:
created_reports: Prijave koje je napravio ovaj nalog
- report: prijava
targeted_reports: Prijave napravljene o ovom nalogu
silence: Ućutkaj
statuses: Statusi
@@ -200,11 +195,6 @@ sr-Latn:
title: Novo blokiranje domena
reject_media: Odbaci multimediju
reject_media_hint: Uklanja lokalno uskladištene multimedijske fajlove i odbija da ih skida na dalje. Nebitno je za suspenziju
- severities:
- noop: Ništa
- silence: Ućutkavanje
- suspend: Suspenzija
- severity: Oštrina
show:
affected_accounts:
few: Utiče na %{count} naloga u bazi
@@ -216,7 +206,6 @@ sr-Latn:
suspend: Ugasi suspenzije za sve postojeće naloge sa ovog domena
title: Poništi blokadu domena za domen %{domain}
undo: Poništi
- title: Blokade domena
undo: Poništi
email_domain_blocks:
add_new: Dodaj novuAdd new
@@ -229,10 +218,6 @@ sr-Latn:
title: Nova stavka u crnoj listi e-pošti
title: Crna lista adresa e-pošte
instances:
- account_count: Poznati nalozi
- domain_name: Domen
- reset: Resetuj
- search: Pretraga
title: Poznate instance
invites:
filter:
@@ -465,7 +450,7 @@ sr-Latn:
title: Moderacija
notification_mailer:
digest:
- body: 'Evo kratak pregled šta ste propustili od poslednje posete od %{since}:'
+ body: Evo kratak pregled šta ste propustili od poslednje posete od %{since}
mention: "%{name} Vas je pomenuo u:"
new_followers_summary:
few: Dobili ste %{count} nova pratioca! Sjajno!
diff --git a/config/locales/sr.yml b/config/locales/sr.yml
index 1ade87f9e..e78a9b817 100644
--- a/config/locales/sr.yml
+++ b/config/locales/sr.yml
@@ -30,18 +30,31 @@ sr:
other_instances: Листа инстанци
privacy_policy: Полиса приватности
source_code: Изворни код
- status_count_after: статуси
+ status_count_after:
+ few: статуси
+ many: статуси
+ one: статус
+ other: статуси
status_count_before: Који су написали
terms: Услови коришћења
- user_count_after: корисници
+ user_count_after:
+ few: корисници
+ many: корисници
+ one: корисник
+ other: корисници
user_count_before: Дом за
what_is_mastodon: Шта је Мастодон?
accounts:
choices_html: "%{name}'s избори:"
follow: Запрати
- followers: Пратиоци
+ followers:
+ few: Пратиоци
+ many: Пратиоци
+ one: Пратиоц
+ other: Пратиоци
following: Пратим
joined: Придружио/ла се %{date}
+ link_verified_on: Власништво над овом везом је проверено %{date}
media: Медији
moved_html: "%{name} је прешао на %{new_profile_link}:"
network_hidden: Ова информација није доступна
@@ -50,7 +63,11 @@ sr:
people_who_follow: Људи који прате %{name}
pin_errors:
following: Морате пратити ову особу ако хоћете да потврдите
- posts: Трубе
+ posts:
+ few: Трубе
+ many: Трубе
+ one: Труба
+ other: Трубе
posts_tab_heading: Трубе
posts_with_replies: Трубе и одговори
reserved_username: Корисничко име је резервисано
@@ -112,13 +129,10 @@ sr:
moderation_notes: Модераторске белешке
most_recent_activity: Најскорија активност
most_recent_ip: Најскорија IP адреса
+ no_limits_imposed: Нема ограничења
not_subscribed: Није претплаћен
- order:
- alphabetic: Абецедни
- most_recent: Најскорији
- title: Редослед
outbox_url: Одлазно сандуче
- perform_full_suspension: Изврши комплетно искључење
+ perform_full_suspension: Искључи
profile_url: Адреса профила
promote: Унапреди
protocol: Протокол
@@ -144,11 +158,12 @@ sr:
shared_inbox_url: Адреса дељеног сандучета
show:
created_reports: Пријаве које је направио овај налог
- report: пријава
targeted_reports: Пријаве направљене о овом налогу
silence: Ућуткај
+ silenced: Ућуткан
statuses: Статуси
subscribe: Претплати се
+ suspended: Суспендовани
title: Налози
unconfirmed_email: Непотврђена Е-пошта
undo_silenced: Укини ћутање
@@ -165,6 +180,7 @@ sr:
create_domain_block: "%{name} је блокирао домен %{target}"
create_email_domain_block: "%{name} је ставио на црну листу домен е-поште %{target}"
demote_user: "%{name} је ражаловао корисника %{target}"
+ destroy_custom_emoji: "%{name} је уништио емоџи %{target}"
destroy_domain_block: "%{name} је одблокирао домен %{target}"
destroy_email_domain_block: "%{name} је ставио на белу листу домен е-поште %{target}"
destroy_status: "%{name} је уклонио статус корисника %{target}"
@@ -250,11 +266,8 @@ sr:
title: Ново блокирање домена
reject_media: Одбаци мултимедију
reject_media_hint: Уклања локално ускладиштене мултимедијске фајлове и одбија да их скида убудуће. Небитно је за суспензију
- severities:
- noop: Ништа
- silence: Ућуткавање
- suspend: Суспензија
- severity: Оштрина
+ reject_reports: Одбаци извештај
+ reject_reports_hint: Игнориши све извештаје који долазе са овог домена. Небитно је за суспензије
show:
affected_accounts:
few: Утиче на %{count} налога у бази
@@ -266,7 +279,6 @@ sr:
suspend: Уклони суспензије за све постојеће налоге са овог домена
title: Поништи блокаду домена за %{domain}
undo: Поништи
- title: Блокаде домена
undo: Поништи
email_domain_blocks:
add_new: Додај нови
@@ -279,10 +291,6 @@ sr:
title: Нова ставка е-поштe у црној листи
title: Црна листа E-поште
instances:
- account_count: Познати налози
- domain_name: Домен
- reset: Ресетуј
- search: Претрага
title: Познате инстанце
invites:
deactivate_all: Деактивирај све
@@ -294,8 +302,13 @@ sr:
title: Позивнице
relays:
add_new: Додај нови релеј
+ delete: Обриши
description_html: "Федерални релеј је посреднички сервер који размењује велике количине јавних труба између сервера на који је претплаћен и на који објављује.Може помоћи малим и средњим серверима да открију садржај из федиверса, који иначе захтева од локалних корисника да ручно пратити остале људе на удаљеним серверима."
+ disable: Искључи
+ disabled: Искључен
+ enable: Укључи
enable_hint: Када се омогући, Ваш сервер ће бити претплаћен на све јавне трубе са овог релеја, и почеће да шаље своје јавне трубу на њега.
+ enabled: Укључен
inbox_url: URL Релеја
pending: Чека се одобрење релеја
save_and_enable: Сачувај и омогући
@@ -351,6 +364,9 @@ sr:
hero:
desc_html: Приказано на почетној страни. Препоручено је бар 600х100рх. Када се не одреди, враћа се на иконицу инстанце
title: Лого слика
+ mascot:
+ desc_html: Приказано на више страна. Препоручено је бар 293×205px. Када није постављена, користи се подразумевана маскота
+ title: Слика маскоте
peers_api_enabled:
desc_html: Имена домена које је ова инстанца срела у федиверсу
title: Објављуј списак откривених инстанци
@@ -416,12 +432,6 @@ sr:
last_delivery: Последња достава
title: WebSub
topic: Topic
- suspensions:
- bad_acct_msg: Вредност потврде се не поклапа. Да ли суспендујете прави рачун?
- hint_html: 'Да бисте потврдили суспензију налога, унесите %{value} у поље испод:'
- proceed: Настави
- title: Суспендуј %{acct}
- warning_html: 'Суспендовање овог налога ће неповратноизбрисати све податке са овог налога, који укључују:'
title: Администрација
admin_mailer:
new_report:
@@ -561,6 +571,7 @@ sr:
resources: Ресурси
generic:
changes_saved_msg: Измене успешно сачуване!
+ copy: Копирај
save_changes: Сними измене
validation_errors:
few: Нешто није баш како треба! Прегледајте %{count} грешке испод
@@ -680,9 +691,6 @@ sr:
no_account_html: Немате налог? Можете се пријавити овде
proceed: Наставите да би сте запратили
prompt: 'Запратићете:'
- remote_interaction:
- proceed: Наставите за интеракцију
- prompt: 'Желите да интерактирате са овом трубом:'
remote_unfollow:
error: Грешка
title: Наслов
@@ -746,11 +754,23 @@ sr:
statuses:
attached:
description: 'У прилогу: %{attached}'
- image: "%{count} слике"
- video: "%{count} видеа"
+ image:
+ few: "%{count} слика"
+ many: "%{count} слика"
+ one: "%{count} слику"
+ other: "%{count} слика"
+ video:
+ few: "%{count} видео записа"
+ many: "%{count} видео записа"
+ one: "%{count} видео запис"
+ other: "%{count} видео записа"
boosted_from_html: Подржано од %{acct_link}
content_warning: 'Упозорење на садржај: %{warning}'
- disallowed_hashtags: 'садржи забрањене тарабе: %{tags}'
+ disallowed_hashtags:
+ few: 'садржи забрањене хештегове: %{tags}'
+ many: 'садржи забрањене хештегове: %{tags}'
+ one: 'садржи забрањени хештег: %{tags}'
+ other: 'садржи забрањене хештегове: %{tags}'
language_detection: Аутоматскo откривање језика
open_in_web: Отвори у вебу
over_character_limit: ограничење од %{max} карактера прекорачено
@@ -803,6 +823,7 @@ sr:
backup_ready:
explanation: Тражили сте потпуну резервну копију вашег Мастодон рачуна. Спремна за преузимање!
subject: Ваша архива је спремна за преузимање
+ title: Извоз архиве
welcome:
edit_profile_action: Подеси профил
edit_profile_step: Профил можете прилагодити постављањем аватара, заглавља, променом имена и још много тога. Ако желите да прегледате нове пратиоце пре него што буду дозвољени да вас прате, можете закључати свој налог.
@@ -814,16 +835,19 @@ sr:
review_preferences_action: Промените подешавања
review_preferences_step: Обавезно поставите своја подешавања, као што су какву Е-пошту желите да примите или на који ниво приватности желите да ваше поруке буду постављене. Ако немате морску болест или епилепсију, можете изабрати аутоматско покретање ГИФ-а.
subject: Добродошли на Мастодон
- tip_bridge_html: Ако долазите са Твитера, можете пронаћи пријатеље користећи апликацију за премошћавање. Ово ради само ако и они користе исту апликацију!
- tip_federated_timeline: Здружена временска линија је компетан увид у Мастодонову мрежу. Али она само укључује људе на којој су ваше комшије претплаћене, тако да није комплетна.
+ tip_federated_timeline: Здружена временска линија пружа комплетан увид у Мастодонову мрежу. Али она само укључује људе на које су ваше комшије претплаћене, тако да није комплетна.
tip_following: Аутоматски пратите админа/не вашег сервера. Да пронађете занимљиве људе, проверите локалне и здружене временске линије.
tip_local_timeline: Локална временска линија је комплетан увид људи у %{instance}. Ово су вам прве комшије!
tip_mobile_webapp: Ако вам мобилни претраживач предложи да додате Мастодон на Ваш почетни екран, добијаћете мобилна обавештења. Делује као изворна апликација на много начина!
tips: Савети
title: Добродошли, %{name}!
users:
+ follow_limit_reached: Не можете пратити више од %{limit} људи
invalid_email: Адреса Е-поште није исправна
invalid_otp_token: Неисправни двофакторски код
otp_lost_help_html: Ако изгубите приступ за оба, можете ступити у контакт са %{email}
seamless_external_login: Пријављени сте путем спољашње услуге, тако да лозинка и подешавања Е-поште нису доступни.
signed_in_as: 'Пријављен/а као:'
+ verification:
+ explanation_html: 'Можете извршити проверу да сте Ви власник веза у Вашем профилу. Да би то радило, повезани веб сајт мора да садржи везу назад ка Вашем Мастодон профилу. Веза назад мора да има rel="me" атрибут. Текстуелни садржај везе није битан. Ево примера:'
+ verification: Провера
diff --git a/config/locales/sv.yml b/config/locales/sv.yml
index 465a9b127..aa5b3420d 100644
--- a/config/locales/sv.yml
+++ b/config/locales/sv.yml
@@ -103,10 +103,6 @@ sv:
most_recent_activity: Senaste aktivitet
most_recent_ip: Senaste IP
not_subscribed: Inte prenumererat
- order:
- alphabetic: Alfabetiskt
- most_recent: Senaste
- title: Ordning
outbox_url: Utkorg URL
perform_full_suspension: Utför full avstängning
profile_url: Profil URL
@@ -134,7 +130,6 @@ sv:
shared_inbox_url: Delad inkorg URL
show:
created_reports: Anmälningar som skapats av det här kontot
- report: anmäla
targeted_reports: Anmälningar gjorda om detta konto
silence: Tystnad
statuses: Status
@@ -218,11 +213,6 @@ sv:
title: Nytt domänblock
reject_media: Avvisa mediafiler
reject_media_hint: Raderar lokalt lagrade mediefiler och förhindrar möjligheten att ladda ner något i framtiden. Irrelevant för suspensioner
- severities:
- noop: Ingen
- silence: Tysta ner
- suspend: Suspendera
- severity: Svårighet
show:
affected_accounts:
one: Ett konto i databasen drabbades
@@ -232,7 +222,6 @@ sv:
suspend: Ta bort suspendering från alla befintliga konton på den här domänen
title: Ångra domänblockering för %{domain}
undo: Ångra
- title: Domänblockering
undo: Ångra
email_domain_blocks:
add_new: Lägg till ny
@@ -245,10 +234,6 @@ sv:
title: Ny E-postdomänblocklistningsinmatning
title: E-postdomänblock
instances:
- account_count: Kända konton
- domain_name: Domän
- reset: Återställa
- search: Sök
title: Kända instanser
invites:
filter:
@@ -805,7 +790,6 @@ sv:
review_preferences_action: Ändra inställningar
review_preferences_step: Se till att du ställer in dina inställningar, t.ex. vilka e-postmeddelanden du vill ta emot eller vilken integritetsnivå du vill att dina inlägg ska vara. Om du inte har åksjuka, kan du välja att aktivera automatisk uppspelning av GIF-bilder.
subject: Välkommen till Mastodon
- tip_bridge_html: Om du kommer från Twitter kan du hitta dina vänner på Mastodon genom att använda bridge-appen. Det fungerar dock bara om de också har använt bridge-appen!
tip_federated_timeline: Den förenade tidslinjen är en störtflodsvy av Mastodon-nätverket. Men det inkluderar bara människor som dina grannar följer, så det är inte komplett.
tip_following: Du följer din servers administratör(er) som standard. För att hitta fler intressanta personer, kolla de lokala och förenade tidslinjerna.
tip_local_timeline: Den lokala tidslinjen är en störtflodsvy av personer på %{instance}. Det här är dina närmaste grannar!
diff --git a/config/locales/te.yml b/config/locales/te.yml
index f28b56052..39be5b687 100644
--- a/config/locales/te.yml
+++ b/config/locales/te.yml
@@ -1,5 +1,130 @@
---
te:
about:
+ about_hashtag_html: ఇవి #%{hashtag}తో ట్గాగ్ చేయబడిన పబ్లిక్ టూట్లు. ఫెడివర్స్ లో ఎక్కడ ఖాతావున్నా వీటిలో పాల్గొనవచ్చు.
+ about_mastodon_html: మాస్టొడాన్ అనేది ఒక సామాజిక మాధ్యమం. ఇది పూర్తిగా ఉచితం మరియు స్వేచ్ఛా సాఫ్టువేరు. ఈమెయిల్ లాగానే ఇది వికేంద్రీకరించబడినది.
about_this: గురించి
+ administered_by: 'నిర్వహణలో:'
+ api: API
+ apps: మొబైల్ యాప్స్
+ closed_registrations: ప్రస్తుతం ఈ ఇన్స్టెన్స్ లో రిజిస్టేషన్లు మూసివేయబడ్డాయి. అయితే, వేరే ఇన్స్టెన్స్ లో ఖాతా తెరచికూడా ఈ ఇన్స్టెన్స్ ను అక్కడినుండే యాక్సెస్ చేయవచ్చు.
contact: సంప్రదించండి
+ contact_missing: ఇంకా సెట్ చేయలేదు
+ contact_unavailable: వర్తించదు
+ documentation: పత్రీకరణ
+ extended_description_html: |
+
నియమాలకు ఒక మంచి ప్రదేశం
+
మరింత విశదీకరణ ఇంకా సెట్ చేయబడలేదు.
+ features:
+ humane_approach_body: వేరే సామాజిక మాధ్యమాల వైఫల్యాల నుండి నేర్చుకుని, నైతిక రూపకల్పనలతో సామాజిక మాధ్యమాల దుర్వినియోగంపై మాస్టొడాన్ పోరాటం చేసే లక్ష్యంతో పనిచేస్తుంది.
+ humane_approach_title: మరింత మానవత్వంతో కూడిన విధానం
+ not_a_product_body: మాస్టొడాన్ వ్యాపార సంబంధిత మాధ్యమం కాదు. ఎటువంటి ప్రకటనలు, డేటా మైనింగ్, కంచెలు లేనిది. ఏ కేంద్ర అధికరమూ లేదు.
+ not_a_product_title: మీరొక వ్యక్తి, వస్తువు కాదు.
+ real_conversation_body: With 500 characters at your disposal and support for granular content and media warnings, you can express yourself the way you want to.
+ real_conversation_title: నిజమైన సంభాషణలకోసం నిర్మించబడింది
+ within_reach_body: ఆండ్రాయిడ్, iOS మరియు ఇతర ప్లాట్ఫాంలకు వివిధరకాల యాప్స్ వున్నాయి. డెవలపర్ సహిత API వ్యవస్థే ఇందుకు మూలకారణం. ఇవి మీ స్ణేహితులతో అన్నివేళలా అందుబాటులో వుండడానికి సహాయపడతాయి.
+ within_reach_title: ఎల్లప్పుడూ అందుబాటులో
+ generic_description: "%{domain} అనేది నెట్వర్కులోని ఒక సర్వరు"
+ hosted_on: మాస్టొడాన్ %{domain} లో హోస్టు చేయబడింది
+ learn_more: మరింత తెలుసుకోండి
+ other_instances: ఇన్స్టాన్స్ ల జాబితా
+ privacy_policy: గోప్యత విధానము
+ source_code: సోర్సు కోడ్
+ status_count_after:
+ one: స్థితి
+ other: స్థితులు
+ status_count_before: ఎవరు రాశారు
+ terms: సేవా నిబంధనలు
+ user_count_after:
+ one: వినియోగదారు
+ other: వినియోగదారులు
+ user_count_before: హోం కు
+ what_is_mastodon: మాస్టొడాన్ అంటే ఏమిటి?
+ accounts:
+ choices_html: "%{name}'s ఎంపికలు:"
+ follow: అనుసరించు
+ followers:
+ one: అనుచరి
+ other: అనుచరులు
+ following: అనుసరిస్తున్నారు
+ joined: "%{date}న చేరారు"
+ last_active: చివరిగా క్రియాశీలకంగా వుంది
+ link_verified_on: ఈ లంకె యొక్క యాజమాన్యాన్ని చివరిగా పరిశీలించింది %{date}న
+ media: మీడియా
+ moved_html: "%{name} ఈ %{new_profile_link}కు మారారు:"
+ network_hidden: ఈ సమాచారం అందుబాటులో లేదు
+ nothing_here: ఇక్కడ ఏమీ లేదు!
+ people_followed_by: "%{name} అనుసరించే వ్యక్తులు"
+ people_who_follow: "%{name}ను అనుసరించే వ్యక్తులు"
+ pin_errors:
+ following: మీరు ధృవీకరించాలనుకుంటున్న వ్యక్తిని మీరిప్పటికే అనుసరిస్తూ వుండాలి
+ posts:
+ one: టూటు
+ other: టూట్లు
+ posts_tab_heading: టూట్లు
+ posts_with_replies: టూట్లు మరియు ప్రత్యుత్తరాలు
+ reserved_username: ఈ username రిజర్వ్ చేయబడింది
+ roles:
+ admin: నిర్వాహకులు
+ bot: బోట్
+ moderator: నియంత్రికుడు
+ unfollow: అనుసరించవద్దు
+ admin:
+ account_actions:
+ action: చర్య తీసుకో
+ title: "%{acct}పై మోడరేషన్ చర్యను తీసుకో"
+ account_moderation_notes:
+ create: ఏదైనా గమనికను వదులు
+ created_msg: మోడరేషన్ గమనిక విజయవంతంగా సృష్టించబడింది!
+ delete: తీసివేయి
+ destroyed_msg: మోడరేషన్ గమనిక విజయవంతంగా తొలగించబడింది!
+ accounts:
+ are_you_sure: ఖచ్ఛితమేగా?
+ avatar: అవతారం
+ by_domain: డొమైను
+ change_email:
+ changed_msg: ఖాతా యొక్క ఈమెయిల్ విజయవంతంగా మార్చబడింది!
+ current_email: ప్రస్తుత ఈమెయిల్
+ label: ఈమెయిల్ ను మార్చు
+ new_email: కొత్త ఈమెయిల్
+ submit: ఈమెయిల్ ను మార్చు
+ title: "%{username} యొక్క ఈమెయిల్ ను మార్చు"
+ confirm: ధృవీకరించు
+ confirmed: ధృవీకరించబడింది
+ confirming: ధృవీకరిస్తుంది
+ demote: స్థానం తగ్గించు
+ disable: అచేతనం చేయి
+ disable_two_factor_authentication: 2FAను అచేతనం చేయి
+ disabled: అచేతనం చేయబడింది
+ display_name: పేరును చూపు
+ domain: డొమైను
+ edit: మార్చు
+ email: ఈమెయిల్
+ email_status: ఈమెయిల్ స్థితి
+ enable: చేతనం
+ enabled: చేతనం చేయబడింది
+ feed_url: ఫీడ్ URL
+ followers: అనుచరులు
+ followers_local: "(%{local} local)"
+ followers_url: అనుచరుల URL
+ follows: అనుసరిస్తున్నారు
+ header: Header
+ inbox_url: ఇన్ బాక్స్ URL
+ ip: IP
+ location:
+ all: అన్నీ
+ local: లోకల్
+ remote: రిమోట్
+ title: లొకేషన్
+ login_status: లాగిన్ స్థితి
+ media_attachments: మీడియా అటాచ్మెంట్లు
+ memorialize: Turn into memoriam
+ moderation:
+ active: యాక్టివ్
+ all: అన్నీ
+ silenced: నిశ్శబ్ధం చేయబడింది
+ suspended: నిషేధించబడింది
+ title: మోడరేషన్
+ moderation_notes: మోడరేషన్ నోట్స్
+ most_recent_activity: ఇటీవల యాక్టివిటీ
+ most_recent_ip: ఇటీవలి IP
diff --git a/config/locales/th.yml b/config/locales/th.yml
index b0b8e9ba0..5be8e02c0 100644
--- a/config/locales/th.yml
+++ b/config/locales/th.yml
@@ -49,10 +49,6 @@ th:
most_recent_activity: กิจกรรมล่าสุด
most_recent_ip: IP ล่าสุด
not_subscribed: Not subscribed
- order:
- alphabetic: ตามตัวอักษร
- most_recent: ล่าสุด
- title: จัดเรียง
perform_full_suspension: Perform full suspension
profile_url: Profile URL
public: สาธารณะ
@@ -65,7 +61,6 @@ th:
salmon_url: Salmon URL
show:
created_reports: รายงานที่ถูกสร้างโดย แอคเคาท์นี้
- report: รายงาน
targeted_reports: รายงานเกี่ยวกับแอคเคาท์นี้
silence: ปิดเสียง
statuses: สถานะ
@@ -89,10 +84,6 @@ th:
title: การบล๊อกโดเมนใหม่
reject_media: ไม่อนุมัติไฟล์สื่อ
reject_media_hint: ลบไฟล์สื่อที่เก็บไว้ในเครื่อง และ ป้องกันการดาวน์โหลดในอนาคต. Irrelevant for suspensions
- severities:
- silence: ปิดเสียง
- suspend: หยุดไว้
- severity: Severity
show:
affected_accounts:
one: มีผลต่อหนึ่งแอคเค๊าท์ในฐานข้อมูล
@@ -102,11 +93,8 @@ th:
suspend: ยกเลิกการหยุดทุกแอคเค๊าท์จากโดเมน
title: ยกเลิกการบล๊อกโดเมน %{domain}
undo: ยกเลิก
- title: บล๊อกโดเมน
undo: ยกเลิก
instances:
- account_count: Known accounts
- domain_name: ชื่อโดเมน
title: Known Instances
reports:
comment:
diff --git a/config/locales/tr.yml b/config/locales/tr.yml
index bc0a558e1..c38b73f2e 100644
--- a/config/locales/tr.yml
+++ b/config/locales/tr.yml
@@ -48,10 +48,6 @@ tr:
most_recent_activity: Son aktivite
most_recent_ip: Son IP
not_subscribed: Abone edilmedi
- order:
- alphabetic: Alfabetik
- most_recent: En son
- title: Sıralama
perform_full_suspension: Tamamen uzaklaştır
profile_url: Profil linki
public: Herkese açık
@@ -64,7 +60,6 @@ tr:
salmon_url: Salmon Linki
show:
created_reports: Bu hesap tarafından gelen şikayetler
- report: şikayet
targeted_reports: Bu hesaba gelen şikayetler
silence: Sustur
statuses: Durumlar
@@ -88,10 +83,6 @@ tr:
title: Yeni domain bloğu
reject_media: Ortam dosyalarını reddetme
reject_media_hint: Yerel olarak depolanmış ortam dosyalarını ve gelecekte indirilecek olanları reddeder. Uzaklaştırma için uygun değildir
- severities:
- silence: Sustur
- suspend: Uzaklaştır
- severity: İşlem
show:
affected_accounts:
one: Veritabanındaki bir hesap etkilendi
@@ -101,11 +92,8 @@ tr:
suspend: Bu domaindeki tüm hesapların üzerindeki uzaklaştırma işlemini kaldır
title: "%{domain} domain'i için yapılan işlemi geri al"
undo: Geri al
- title: Domain Blokları
undo: Geri al
instances:
- account_count: Bilinen hesaplar
- domain_name: Domain
title: Bilinen Sunucular
reports:
comment:
@@ -222,7 +210,7 @@ tr:
too_many: 4'ten fazla dosya ekleyemezsiniz
notification_mailer:
digest:
- body: 'Son ziyaretiniz olan %{since}''den beri''da kaçırdığınız şeylerin özeti:'
+ body: Son ziyaretiniz olan %{since}'den beri'da kaçırdığınız şeylerin özeti
mention: "%{name} senden bahsetti:"
new_followers_summary:
one: Yeni bir takipçiniz var!
diff --git a/config/locales/uk.yml b/config/locales/uk.yml
index e4ea774ec..9a63854b5 100644
--- a/config/locales/uk.yml
+++ b/config/locales/uk.yml
@@ -108,10 +108,6 @@ uk:
most_recent_activity: Остання активність
most_recent_ip: Останній IP
not_subscribed: Не підписані
- order:
- alphabetic: За алфавітом
- most_recent: За датою
- title: Порядок
outbox_url: Вихідний URL
perform_full_suspension: Повне блокування
profile_url: URL профілю
@@ -139,7 +135,6 @@ uk:
shared_inbox_url: URL спільного вхідного кошика
show:
created_reports: Скарги створені цим аккаунтом
- report: скарга
targeted_reports: Скарги щодо цього аккаунту
silence: Глушення
statuses: Статуси
@@ -242,11 +237,6 @@ uk:
title: Нове блокування домену
reject_media: Заборонити медіаконтент
reject_media_hint: Видаляє медіаконтент, збережений локально, і забороняє його завантаження у майбутньому. Не має значення у випадку блокування
- severities:
- noop: Нічого
- silence: Глушення
- suspend: Блокування
- severity: Суворість
show:
affected_accounts:
few: Впливає на %{count} акаунти у базі даних
@@ -258,7 +248,6 @@ uk:
suspend: Зняти блокування з усіх існуючих акаунтів цього домену
title: Зняти блокування з домена %{domain}
undo: Відмінити
- title: Доменні блокування
undo: Відмінити
email_domain_blocks:
add_new: Додати
@@ -271,10 +260,6 @@ uk:
title: Нове доменне блокування домену email
title: Чорний список поштових доменів
instances:
- account_count: Відомі аккаунти
- domain_name: Домен
- reset: Скинути
- search: Пошук
title: Відомі інстанції
invites:
filter:
@@ -764,7 +749,6 @@ uk:
review_preferences_action: Змінити налаштування
review_preferences_step: Переконайтеся у тому, що ви налаштували все необхідне, як от які e-mail повідомлення ви хочете отримувати, або який рівень приватності ви хочете встановити вашим постам за замовчуванням. Якщо хочете, ви можете увімкнути автоматичне програвання GIF анімацій.
subject: Ласкаво просимо до Mastodon
- tip_bridge_html: Якщо ви прийшли до нас із Twitter, ви можете знайти ваших друзів на Mastodon, скориставшись проміжним застосунком. Проте він працює тільки, якщо вони теж користуються проміжним застосунком!
tip_federated_timeline: Федерований фід є широким поглядом на мережу Mastodon. Але він включає лише людей, на яких підписані ваші сусіди по сайту, тому він не є повним.
tip_following: Ви автоматично підписані на адміністратора(-ів) сервера. Для того, щоб знайти ще цікавих людей, дослідіть локальний та федерований фіди.
tip_local_timeline: Локальний фід - це погляд згори на людей на %{instance}. Це ваші прямі сусіди!
diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml
index a32f36e32..e482e9c41 100644
--- a/config/locales/zh-CN.yml
+++ b/config/locales/zh-CN.yml
@@ -114,10 +114,6 @@ zh-CN:
most_recent_activity: 最后一次活跃的时间
most_recent_ip: 最后一次活跃的 IP 地址
not_subscribed: 未订阅
- order:
- alphabetic: 按字母
- most_recent: 按时间
- title: 排序
outbox_url: 发件箱(Outbox)URL
perform_full_suspension: 永久封禁
profile_url: 个人资料页面 URL
@@ -145,7 +141,6 @@ zh-CN:
shared_inbox_url: 公用收件箱(Shared Inbox)URL
show:
created_reports: 这个帐户提交的举报
- report: 个举报
targeted_reports: 针对这个帐户的举报
silence: 隐藏
statuses: 嘟文
@@ -251,11 +246,6 @@ zh-CN:
title: 添加域名屏蔽
reject_media: 拒绝接收媒体文件
reject_media_hint: 删除本地已缓存的媒体文件,并且不再接收来自该域名的任何媒体文件。此选项不影响封禁
- severities:
- noop: 无
- silence: 自动隐藏
- suspend: 自动封禁
- severity: 屏蔽级别
show:
affected_accounts:
one: 将会影响到数据库中的 1 个帐户
@@ -265,7 +255,6 @@ zh-CN:
suspend: 对此域名的所有帐户解除封禁
title: 撤销对 %{domain} 的域名屏蔽
undo: 撤销
- title: 域名屏蔽
undo: 撤销
email_domain_blocks:
add_new: 添加新条目
@@ -278,10 +267,6 @@ zh-CN:
title: 添加电子邮件域名屏蔽
title: 电子邮件域名屏蔽
instances:
- account_count: 已知帐户
- domain_name: 域名
- reset: 重置
- search: 搜索
title: 已知实例
invites:
deactivate_all: 撤销所有邀请链接
@@ -786,7 +771,6 @@ zh-CN:
review_preferences_action: 更改首选项
review_preferences_step: 记得调整你的偏好设置,比如你想接收什么类型的邮件,或者你想把你的嘟文可见范围默认设置为什么级别。如果你没有晕动病的话,考虑一下启用“自动播放 GIF 动画”这个选项吧。
subject: 欢迎来到 Mastodon
- tip_bridge_html: 如果你刚从 Twitter 来到这里,你可以在桥梁站(bridge app)上寻找你的朋友。当然,前提是他们也登录了桥梁站!
tip_federated_timeline: 跨站公共时间轴可以让你一窥更广阔的 Mastodon 网络。不过,由于它只显示你的邻居们所订阅的内容,所以并不是全部。
tip_following: 默认情况下,你会自动关注你所在实例的管理员。想结交更多有趣的人的话,记得多逛逛本站时间轴和跨站公共时间轴哦。
tip_local_timeline: 本站时间轴可以让你一窥 %{instance} 上的用户。他们就是离你最近的邻居!
diff --git a/config/locales/zh-HK.yml b/config/locales/zh-HK.yml
index 7296587a3..737ca000c 100644
--- a/config/locales/zh-HK.yml
+++ b/config/locales/zh-HK.yml
@@ -103,10 +103,6 @@ zh-HK:
most_recent_activity: 最新活動
most_recent_ip: 最新 IP 位域
not_subscribed: 未訂閱
- order:
- alphabetic: 按字母
- most_recent: 按時間
- title: 排序
outbox_url: 寄件箱(Outbox)URL
perform_full_suspension: 完全停權
profile_url: 個人檔案 URL
@@ -134,7 +130,6 @@ zh-HK:
shared_inbox_url: 公共收件箱(Shared Inbox)URL
show:
created_reports: 此用戶所提舉報的紀錄
- report: 舉報
targeted_reports: 此用戶被舉報的紀錄
silence: 靜音
statuses: 文章
@@ -218,11 +213,6 @@ zh-HK:
title: 新增域名阻隔
reject_media: 拒絕媒體檔案
reject_media_hint: 刪除本地緩存的媒體檔案,再也不在未來下載這個站點的檔案。和自動刪除無關
- severities:
- noop: 無
- silence: 自動靜音
- suspend: 自動刪除
- severity: 阻隔分級
show:
affected_accounts: 資料庫中有%{count}個用戶受影響
retroactive:
@@ -230,7 +220,6 @@ zh-HK:
suspend: 對此域名的所有用戶取消除名
title: 撤銷 %{domain} 的域名阻隔
undo: 撤銷
- title: 域名阻隔
undo: 撤銷
email_domain_blocks:
add_new: 加入新項目
@@ -243,10 +232,6 @@ zh-HK:
title: 新增電郵網域阻隔
title: 電郵網域阻隔
instances:
- account_count: 已知帳號
- domain_name: 域名
- reset: 重設
- search: 搜索
title: 已知服務站
invites:
filter:
@@ -721,7 +706,6 @@ zh-HK:
review_preferences_action: 更改首選項
review_preferences_step: 記得調整你的偏好設置,比如你想接收什麼類型的郵件,或者你想把你的文章可見範圍默認設定為什麼級別。如果你沒有暈車的話,考慮一下啟用「自動播放 GIF 動畫」這個選項吧。
subject: 歡迎來到 Mastodon
- tip_bridge_html: 如果你剛從 Twitter 來到這裡,你可以在橋樑站(bridge app)上尋找你的朋友。當然,前提是他們也登錄了橋樑站!
tip_federated_timeline: 跨站公共時間軸可以讓你一窺更廣闊的 Mastodon 網絡。不過,由於它只顯示你的鄰居們所訂閱的內容,所以並不是全部。
tip_following: 默認情況下,你會自動關注你所在服務站的管理員。想結交更多有趣的人的話,記得多逛逛本站時間軸和跨站公共時間軸哦。
tip_local_timeline: 本站時間軸可以讓你一窺 %{instance} 上的用戶。他們就是離你最近的鄰居!
diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml
index 9a7c2b293..f4bda0f34 100644
--- a/config/locales/zh-TW.yml
+++ b/config/locales/zh-TW.yml
@@ -108,10 +108,6 @@ zh-TW:
most_recent_activity: 最近活動
most_recent_ip: 最近 IP 位址
not_subscribed: 未訂閱
- order:
- alphabetic: 按字母
- most_recent: 按時間
- title: 排序
outbox_url: 寄件箱 (Outbox) URL
perform_full_suspension: 進行停權
profile_url: 個人檔案 URL
@@ -139,7 +135,6 @@ zh-TW:
shared_inbox_url: 公共收件箱 (Shared Inbox) URL
show:
created_reports: 這個使用者提交的檢舉
- report: 檢舉
targeted_reports: 針對這個使用者的檢舉
silence: 靜音
statuses: 嘟文
@@ -223,11 +218,6 @@ zh-TW:
title: 新增封鎖網域
reject_media: 拒絕媒體檔案
reject_media_hint: 刪除本地緩存的媒體檔案,並且不再接收來自該網域的任何媒體檔案。與自動封鎖無關
- severities:
- noop: 無
- silence: 自動靜音
- suspend: 自動封鎖
- severity: 嚴重度
show:
affected_accounts: 資料庫中有%{count}個使用者受影響
retroactive:
@@ -235,7 +225,6 @@ zh-TW:
suspend: 對此網域的所有使用者取消封鎖
title: 撤銷 %{domain} 的網域封鎖
undo: 撤銷
- title: 網域封鎖
undo: 撤銷
email_domain_blocks:
add_new: 加入新項目
@@ -248,10 +237,6 @@ zh-TW:
title: 新增E-mail封鎖
title: E-mail封鎖
instances:
- account_count: 已知帳戶
- domain_name: 網域
- reset: 重設
- search: 搜尋
title: 已知站點
invites:
filter:
@@ -702,7 +687,6 @@ zh-TW:
review_preferences_action: 更改偏好設定
review_preferences_step: 記得調整你的偏好設定,比如你想接收什麼類型的電子郵件,或著你想把你的嘟文可見範圍預設設定什麼級別。如果你沒有暈車的話,考慮一下啟用「自動播放 GIF 動畫」這個選項吧。
subject: 歡迎來到 Mastodon
- tip_bridge_html: 如果你剛從 Twitter 來到這裡,你可以在橋樑站(bridge app)上尋找你的朋友。當然,前提是他們也登入了橋樑站!
tip_federated_timeline: 跨站公共時間軸可以讓你一窺更廣闊的 Mastodon 網路。不過,由於它們只顯示你的鄰居們所訂閱的內容,所以並不是全部。
tip_following: 預設情況下,你會自動關注你所在站點的管理員。想結交更多有趣的人的話,記得多逛逛本站時間軸與跨站公共時間軸哦。
tip_local_timeline: 本站時間軸可以讓你一窺 %{instance} 上的使用者。他們就是離你最近的鄰居!
diff --git a/config/navigation.rb b/config/navigation.rb
index 99d227f11..a9521f956 100644
--- a/config/navigation.rb
+++ b/config/navigation.rb
@@ -28,8 +28,8 @@ SimpleNavigation::Configuration.run do |navigation|
admin.item :reports, safe_join([fa_icon('flag fw'), t('admin.reports.title')]), admin_reports_url, highlights_on: %r{/admin/reports}
admin.item :accounts, safe_join([fa_icon('users fw'), t('admin.accounts.title')]), admin_accounts_url, highlights_on: %r{/admin/accounts}
admin.item :invites, safe_join([fa_icon('user-plus fw'), t('admin.invites.title')]), admin_invites_path
- admin.item :instances, safe_join([fa_icon('cloud fw'), t('admin.instances.title')]), admin_instances_url, highlights_on: %r{/admin/instances}, if: -> { current_user.admin? }
- admin.item :domain_blocks, safe_join([fa_icon('lock fw'), t('admin.domain_blocks.title')]), admin_domain_blocks_url, highlights_on: %r{/admin/domain_blocks}, if: -> { current_user.admin? }
+ admin.item :tags, safe_join([fa_icon('tag fw'), t('admin.tags.title')]), admin_tags_path
+ admin.item :instances, safe_join([fa_icon('cloud fw'), t('admin.instances.title')]), admin_instances_url(limited: '1'), highlights_on: %r{/admin/instances|/admin/domain_blocks}, if: -> { current_user.admin? }
admin.item :email_domain_blocks, safe_join([fa_icon('envelope fw'), t('admin.email_domain_blocks.title')]), admin_email_domain_blocks_url, highlights_on: %r{/admin/email_domain_blocks}, if: -> { current_user.admin? }
end
diff --git a/config/routes.rb b/config/routes.rb
index b203e1329..af49845cc 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -80,6 +80,9 @@ Rails.application.routes.draw do
get '/interact/:id', to: 'remote_interaction#new', as: :remote_interaction
post '/interact/:id', to: 'remote_interaction#create'
+ get '/explore', to: 'directories#index', as: :explore
+ get '/explore/:id', to: 'directories#show', as: :explore_hashtag
+
namespace :settings do
resource :profile, only: [:show, :update]
resource :preferences, only: [:show, :update]
@@ -91,6 +94,8 @@ Rails.application.routes.draw do
resources :follows, only: :index, controller: :following_accounts
resources :blocks, only: :index, controller: :blocked_accounts
resources :mutes, only: :index, controller: :muted_accounts
+ resources :lists, only: :index, controller: :lists
+ resources :domain_blocks, only: :index, controller: :blocked_domains
end
resource :two_factor_authentication, only: [:show, :create, :destroy]
@@ -133,9 +138,10 @@ Rails.application.routes.draw do
get '/dashboard', to: 'dashboard#index'
resources :subscriptions, only: [:index]
- resources :domain_blocks, only: [:index, :new, :create, :show, :destroy]
+ resources :domain_blocks, only: [:new, :create, :show, :destroy]
resources :email_domain_blocks, only: [:index, :new, :create, :destroy]
resources :action_logs, only: [:index]
+ resources :warning_presets, except: [:new]
resource :settings, only: [:edit, :update]
resources :invites, only: [:index, :create, :destroy] do
@@ -151,13 +157,16 @@ Rails.application.routes.draw do
end
end
- resources :instances, only: [:index] do
- collection do
- post :resubscribe
- end
- end
+ resources :instances, only: [:index, :show], constraints: { id: /[^\/]+/ }
+
+ resources :reports, only: [:index, :show] do
+ member do
+ post :assign_to_self
+ post :unassign
+ post :reopen
+ post :resolve
+ end
- resources :reports, only: [:index, :show, :update] do
resources :reported_statuses, only: [:create]
end
@@ -168,17 +177,19 @@ Rails.application.routes.draw do
post :subscribe
post :unsubscribe
post :enable
- post :disable
+ post :unsilence
+ post :unsuspend
post :redownload
post :remove_avatar
+ post :remove_header
post :memorialize
end
resource :change_email, only: [:show, :update]
resource :reset, only: [:create]
- resource :silence, only: [:create, :destroy]
- resource :suspension, only: [:new, :create, :destroy]
- resources :statuses, only: [:index, :create, :update, :destroy]
+ resource :action, only: [:new, :create], controller: 'account_actions'
+ resources :statuses, only: [:index, :show, :create, :update, :destroy]
+ resources :followers, only: [:index]
resource :confirmation, only: [:create] do
collection do
@@ -207,6 +218,13 @@ Rails.application.routes.draw do
end
resources :account_moderation_notes, only: [:create, :destroy]
+
+ resources :tags, only: [:index] do
+ member do
+ post :hide
+ post :unhide
+ end
+ end
end
get '/admin', to: redirect('/admin/dashboard', status: 302)
@@ -261,6 +279,7 @@ Rails.application.routes.draw do
resources :streaming, only: [:index]
resources :custom_emojis, only: [:index]
resources :suggestions, only: [:index, :destroy]
+ resources :scheduled_statuses, only: [:index, :show, :update, :destroy]
resources :conversations, only: [:index, :destroy] do
member do
@@ -317,7 +336,7 @@ Rails.application.routes.draw do
resources :relationships, only: :index
end
- resources :accounts, only: [:show] do
+ resources :accounts, only: [:create, :show] do
resources :statuses, only: :index, controller: 'accounts/statuses'
resources :followers, only: :index, controller: 'accounts/follower_accounts'
resources :following, only: :index, controller: 'accounts/following_accounts'
diff --git a/config/settings.yml b/config/settings.yml
index 3ba0f8d57..7b47951ad 100644
--- a/config/settings.yml
+++ b/config/settings.yml
@@ -1,11 +1,6 @@
-# config/app.yml for rails-settings-cached
-#
-# This file contains default values, and does not need to be edited
-# when configuring an instance. These settings may be changed by an
-# Administrator using the Web UI.
-#
-# For more information, see docs/Running-Mastodon/Administration-guide.md
-#
+# This file contains default values, and does not need to be edited. All
+# important settings can be changed from the admin interface.
+
defaults: &defaults
site_title: Mastodon
site_short_description: ''
@@ -15,6 +10,7 @@ defaults: &defaults
site_contact_username: ''
site_contact_email: ''
open_registrations: true
+ profile_directory: true
closed_registrations_message: ''
open_deletion: true
min_invite_role: 'admin'
@@ -34,6 +30,7 @@ defaults: &defaults
system_font_ui: false
noindex: false
theme: 'default'
+ aggregate_reblogs: true
notification_emails:
follow: false
reblog: false
@@ -53,11 +50,14 @@ defaults: &defaults
- root
- webmaster
- administrator
+ - mod
+ - moderator
disallowed_hashtags: # space separated string or list of hashtags without the hash
bootstrap_timeline_accounts: ''
activity_api_enabled: true
peers_api_enabled: true
show_known_fediverse_at_about_page: true
+
development:
<<: *defaults
diff --git a/config/sidekiq.yml b/config/sidekiq.yml
index c44af5b6c..0ec1742ab 100644
--- a/config/sidekiq.yml
+++ b/config/sidekiq.yml
@@ -6,6 +6,9 @@
- [mailers, 2]
- [pull]
:schedule:
+ scheduled_statuses_scheduler:
+ every: '5m'
+ class: Scheduler::ScheduledStatusesScheduler
subscriptions_scheduler:
cron: '<%= Random.rand(0..59) %> <%= Random.rand(4..6) %> * * *'
class: Scheduler::SubscriptionsScheduler
diff --git a/config/webpack/loaders/sass.js b/config/webpack/loaders/sass.js
index bad09ceb4..67a1890b8 100644
--- a/config/webpack/loaders/sass.js
+++ b/config/webpack/loaders/sass.js
@@ -1,22 +1,23 @@
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
-const { env } = require('../configuration.js');
module.exports = {
test: /\.s?css$/i,
use: [
MiniCssExtractPlugin.loader,
- {
- loader: 'css-loader',
- options: {
- minimize: env.NODE_ENV === 'production',
- },
- },
+ 'css-loader',
{
loader: 'postcss-loader',
options: {
sourceMap: true,
},
},
- 'sass-loader',
+ {
+ loader: 'sass-loader',
+ options: {
+ fiber: require('fibers'),
+ implementation: require('sass'),
+ sourceMap: true,
+ },
+ },
],
};
diff --git a/config/webpack/production.js b/config/webpack/production.js
index 30147cfe3..d37e11792 100644
--- a/config/webpack/production.js
+++ b/config/webpack/production.js
@@ -3,6 +3,7 @@
const merge = require('webpack-merge');
const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
const CompressionPlugin = require('compression-webpack-plugin');
+const zopfli = require('@gfx/zopfli');
const sharedConfig = require('./shared.js');
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
const OfflinePlugin = require('offline-plugin');
@@ -10,16 +11,6 @@ const { publicPath } = require('./configuration.js');
const path = require('path');
const { URL } = require('url');
-let compressionAlgorithm;
-try {
- const zopfli = require('node-zopfli');
- compressionAlgorithm = (content, options, fn) => {
- zopfli.gzip(content, options, fn);
- };
-} catch (error) {
- compressionAlgorithm = 'gzip';
-}
-
let attachmentHost;
if (process.env.S3_ENABLED === 'true') {
@@ -69,7 +60,9 @@ module.exports = merge(sharedConfig, {
plugins: [
new CompressionPlugin({
- algorithm: compressionAlgorithm,
+ algorithm(input, compressionOptions, callback) {
+ return zopfli.gzip(input, compressionOptions, callback);
+ },
test: /\.(js|css|html|json|ico|svg|eot|otf|ttf)$/,
}),
new BundleAnalyzerPlugin({ // generates report.html and stats.json
diff --git a/config/webpack/shared.js b/config/webpack/shared.js
index a1572665c..d6199373b 100644
--- a/config/webpack/shared.js
+++ b/config/webpack/shared.js
@@ -4,7 +4,7 @@ const webpack = require('webpack');
const { basename, dirname, join, relative, resolve } = require('path');
const { sync } = require('glob');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
-const ManifestPlugin = require('webpack-manifest-plugin');
+const AssetsManifestPlugin = require('webpack-assets-manifest');
const extname = require('path-complete-extname');
const { env, settings, themes, output, loadersDir } = require('./configuration.js');
const localePackPaths = require('./generateLocalePacks');
@@ -75,10 +75,9 @@ module.exports = {
new MiniCssExtractPlugin({
filename: env.NODE_ENV === 'production' ? '[name]-[contenthash].css' : '[name].css',
}),
- new ManifestPlugin({
- publicPath: output.publicPath,
- writeToFileEmit: true,
- filter: file => !file.isAsset || file.isModuleAsset,
+ new AssetsManifestPlugin({
+ publicPath: true,
+ writeToDisk: true,
}),
],
diff --git a/db/migrate/20181116165755_create_account_stats.rb b/db/migrate/20181116165755_create_account_stats.rb
new file mode 100644
index 000000000..a798e8166
--- /dev/null
+++ b/db/migrate/20181116165755_create_account_stats.rb
@@ -0,0 +1,12 @@
+class CreateAccountStats < ActiveRecord::Migration[5.2]
+ def change
+ create_table :account_stats do |t|
+ t.belongs_to :account, null: false, foreign_key: { on_delete: :cascade }, index: { unique: true }
+ t.bigint :statuses_count, null: false, default: 0
+ t.bigint :following_count, null: false, default: 0
+ t.bigint :followers_count, null: false, default: 0
+
+ t.timestamps
+ end
+ end
+end
diff --git a/db/migrate/20181116173541_copy_account_stats.rb b/db/migrate/20181116173541_copy_account_stats.rb
new file mode 100644
index 000000000..bb523fbbd
--- /dev/null
+++ b/db/migrate/20181116173541_copy_account_stats.rb
@@ -0,0 +1,54 @@
+class CopyAccountStats < ActiveRecord::Migration[5.2]
+ disable_ddl_transaction!
+
+ def up
+ safety_assured do
+ if supports_upsert?
+ up_fast
+ else
+ up_slow
+ end
+ end
+ end
+
+ def down
+ # Nothing
+ end
+
+ private
+
+ def supports_upsert?
+ version = select_one("SELECT current_setting('server_version_num') AS v")['v'].to_i
+ version >= 90500
+ end
+
+ def up_fast
+ say 'Upsert is available, importing counters using the fast method'
+
+ Account.unscoped.select('id').find_in_batches(batch_size: 5_000) do |accounts|
+ execute <<-SQL.squish
+ INSERT INTO account_stats (account_id, statuses_count, following_count, followers_count, created_at, updated_at)
+ SELECT id, statuses_count, following_count, followers_count, created_at, updated_at
+ FROM accounts
+ WHERE id IN (#{accounts.map(&:id).join(', ')})
+ ON CONFLICT (account_id) DO UPDATE
+ SET statuses_count = EXCLUDED.statuses_count, following_count = EXCLUDED.following_count, followers_count = EXCLUDED.followers_count
+ SQL
+ end
+ end
+
+ def up_slow
+ say 'Upsert is not available in PostgreSQL below 9.5, falling back to slow import of counters'
+
+ # We cannot use bulk INSERT or overarching transactions here because of possible
+ # uniqueness violations that we need to skip over
+ Account.unscoped.select('id, statuses_count, following_count, followers_count, created_at, updated_at').find_each do |account|
+ begin
+ params = [[nil, account.id], [nil, account.statuses_count], [nil, account.following_count], [nil, account.followers_count], [nil, account.created_at], [nil, account.updated_at]]
+ exec_insert('INSERT INTO account_stats (account_id, statuses_count, following_count, followers_count, created_at, updated_at) VALUES ($1, $2, $3, $4, $5, $6)', nil, params)
+ rescue ActiveRecord::RecordNotUnique
+ next
+ end
+ end
+ end
+end
diff --git a/db/migrate/20181127130500_identity_id_to_bigint.rb b/db/migrate/20181127130500_identity_id_to_bigint.rb
new file mode 100644
index 000000000..5f388aca7
--- /dev/null
+++ b/db/migrate/20181127130500_identity_id_to_bigint.rb
@@ -0,0 +1,27 @@
+require Rails.root.join('lib', 'mastodon', 'migration_helpers')
+
+class IdentityIdToBigint < ActiveRecord::Migration[5.2]
+ include Mastodon::MigrationHelpers
+
+ disable_ddl_transaction!
+
+ def up
+ safety_assured do
+ change_column_type_concurrently :identities, :id, :bigint
+ cleanup_concurrent_column_type_change :identities, :id
+
+ change_column_type_concurrently :identities, :user_id, :bigint
+ cleanup_concurrent_column_type_change :identities, :user_id
+ end
+ end
+
+ def down
+ safety_assured do
+ change_column_type_concurrently :identities, :id, :integer
+ cleanup_concurrent_column_type_change :identities, :id
+
+ change_column_type_concurrently :identities, :user_id, :integer
+ cleanup_concurrent_column_type_change :identities, :user_id
+ end
+ end
+end
diff --git a/db/migrate/20181203003808_create_accounts_tags_join_table.rb b/db/migrate/20181203003808_create_accounts_tags_join_table.rb
new file mode 100644
index 000000000..3c275c2b7
--- /dev/null
+++ b/db/migrate/20181203003808_create_accounts_tags_join_table.rb
@@ -0,0 +1,8 @@
+class CreateAccountsTagsJoinTable < ActiveRecord::Migration[5.2]
+ def change
+ create_join_table :accounts, :tags do |t|
+ t.index [:account_id, :tag_id]
+ t.index [:tag_id, :account_id], unique: true
+ end
+ end
+end
diff --git a/db/migrate/20181203021853_add_discoverable_to_accounts.rb b/db/migrate/20181203021853_add_discoverable_to_accounts.rb
new file mode 100644
index 000000000..5bbae2203
--- /dev/null
+++ b/db/migrate/20181203021853_add_discoverable_to_accounts.rb
@@ -0,0 +1,5 @@
+class AddDiscoverableToAccounts < ActiveRecord::Migration[5.2]
+ def change
+ add_column :accounts, :discoverable, :boolean
+ end
+end
diff --git a/db/migrate/20181204193439_add_last_status_at_to_account_stats.rb b/db/migrate/20181204193439_add_last_status_at_to_account_stats.rb
new file mode 100644
index 000000000..946662707
--- /dev/null
+++ b/db/migrate/20181204193439_add_last_status_at_to_account_stats.rb
@@ -0,0 +1,5 @@
+class AddLastStatusAtToAccountStats < ActiveRecord::Migration[5.2]
+ def change
+ add_column :account_stats, :last_status_at, :datetime
+ end
+end
diff --git a/db/migrate/20181204215309_create_account_tag_stats.rb b/db/migrate/20181204215309_create_account_tag_stats.rb
new file mode 100644
index 000000000..15ed8587e
--- /dev/null
+++ b/db/migrate/20181204215309_create_account_tag_stats.rb
@@ -0,0 +1,11 @@
+class CreateAccountTagStats < ActiveRecord::Migration[5.2]
+ def change
+ create_table :account_tag_stats do |t|
+ t.belongs_to :tag, null: false, foreign_key: { on_delete: :cascade }, index: { unique: true }
+ t.bigint :accounts_count, default: 0, null: false
+ t.boolean :hidden, default: false, null: false
+
+ t.timestamps
+ end
+ end
+end
diff --git a/db/migrate/20181207011115_downcase_custom_emoji_domains.rb b/db/migrate/20181207011115_downcase_custom_emoji_domains.rb
new file mode 100644
index 000000000..65f1fc8d9
--- /dev/null
+++ b/db/migrate/20181207011115_downcase_custom_emoji_domains.rb
@@ -0,0 +1,15 @@
+class DowncaseCustomEmojiDomains < ActiveRecord::Migration[5.2]
+ disable_ddl_transaction!
+
+ def up
+ duplicates = CustomEmoji.connection.select_all('SELECT string_agg(id::text, \',\') AS ids FROM custom_emojis GROUP BY shortcode, lower(domain) HAVING count(*) > 1').to_hash
+
+ duplicates.each do |row|
+ CustomEmoji.where(id: row['ids'].split(',')[0...-1]).destroy_all
+ end
+
+ CustomEmoji.in_batches.update_all('domain = lower(domain)')
+ end
+
+ def down; end
+end
diff --git a/db/migrate/20181213184704_create_account_warnings.rb b/db/migrate/20181213184704_create_account_warnings.rb
new file mode 100644
index 000000000..e768be277
--- /dev/null
+++ b/db/migrate/20181213184704_create_account_warnings.rb
@@ -0,0 +1,12 @@
+class CreateAccountWarnings < ActiveRecord::Migration[5.2]
+ def change
+ create_table :account_warnings do |t|
+ t.belongs_to :account, foreign_key: { on_delete: :nullify }
+ t.belongs_to :target_account, foreign_key: { to_table: 'accounts', on_delete: :cascade }
+ t.integer :action, null: false, default: 0
+ t.text :text, null: false, default: ''
+
+ t.timestamps
+ end
+ end
+end
diff --git a/db/migrate/20181213185533_create_account_warning_presets.rb b/db/migrate/20181213185533_create_account_warning_presets.rb
new file mode 100644
index 000000000..9c81f1b5e
--- /dev/null
+++ b/db/migrate/20181213185533_create_account_warning_presets.rb
@@ -0,0 +1,9 @@
+class CreateAccountWarningPresets < ActiveRecord::Migration[5.2]
+ def change
+ create_table :account_warning_presets do |t|
+ t.text :text, null: false, default: ''
+
+ t.timestamps
+ 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
new file mode 100644
index 000000000..17ce900af
--- /dev/null
+++ b/db/migrate/20181219235220_add_created_by_application_id_to_users.rb
@@ -0,0 +1,8 @@
+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
+ add_index :users, :created_by_application_id, algorithm: :concurrently
+ end
+end
diff --git a/db/migrate/20181226021420_add_also_known_as_to_accounts.rb b/db/migrate/20181226021420_add_also_known_as_to_accounts.rb
new file mode 100644
index 000000000..1fd956680
--- /dev/null
+++ b/db/migrate/20181226021420_add_also_known_as_to_accounts.rb
@@ -0,0 +1,5 @@
+class AddAlsoKnownAsToAccounts < ActiveRecord::Migration[5.2]
+ def change
+ add_column :accounts, :also_known_as, :string, array: true
+ end
+end
diff --git a/db/migrate/20190103124649_create_scheduled_statuses.rb b/db/migrate/20190103124649_create_scheduled_statuses.rb
new file mode 100644
index 000000000..2b78073b8
--- /dev/null
+++ b/db/migrate/20190103124649_create_scheduled_statuses.rb
@@ -0,0 +1,9 @@
+class CreateScheduledStatuses < ActiveRecord::Migration[5.2]
+ def change
+ create_table :scheduled_statuses do |t|
+ t.belongs_to :account, foreign_key: { on_delete: :cascade }
+ t.datetime :scheduled_at, index: true
+ t.jsonb :params
+ end
+ 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
new file mode 100644
index 000000000..6f6cf2351
--- /dev/null
+++ b/db/migrate/20190103124754_add_scheduled_status_id_to_media_attachments.rb
@@ -0,0 +1,8 @@
+class AddScheduledStatusIdToMediaAttachments < ActiveRecord::Migration[5.2]
+ disable_ddl_transaction!
+
+ def change
+ 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/post_migrate/20181116184611_copy_account_stats_cleanup.rb b/db/post_migrate/20181116184611_copy_account_stats_cleanup.rb
new file mode 100644
index 000000000..9267e9b2c
--- /dev/null
+++ b/db/post_migrate/20181116184611_copy_account_stats_cleanup.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+class CopyAccountStatsCleanup < ActiveRecord::Migration[5.2]
+ disable_ddl_transaction!
+
+ def change
+ safety_assured do
+ remove_column :accounts, :statuses_count, :integer, default: 0, null: false
+ remove_column :accounts, :following_count, :integer, default: 0, null: false
+ remove_column :accounts, :followers_count, :integer, default: 0, null: false
+ end
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 026adfc78..ab28146a5 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: 2018_10_26_034033) do
+ActiveRecord::Schema.define(version: 2019_01_03_124754) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@@ -56,6 +56,43 @@ ActiveRecord::Schema.define(version: 2018_10_26_034033) do
t.index ["target_account_id"], name: "index_account_pins_on_target_account_id"
end
+ create_table "account_stats", force: :cascade do |t|
+ t.bigint "account_id", null: false
+ t.bigint "statuses_count", default: 0, null: false
+ t.bigint "following_count", default: 0, null: false
+ t.bigint "followers_count", default: 0, null: false
+ t.datetime "created_at", null: false
+ t.datetime "updated_at", null: false
+ t.datetime "last_status_at"
+ t.index ["account_id"], name: "index_account_stats_on_account_id", unique: true
+ end
+
+ create_table "account_tag_stats", force: :cascade do |t|
+ t.bigint "tag_id", null: false
+ t.bigint "accounts_count", default: 0, null: false
+ t.boolean "hidden", default: false, null: false
+ t.datetime "created_at", null: false
+ t.datetime "updated_at", null: false
+ t.index ["tag_id"], name: "index_account_tag_stats_on_tag_id", unique: true
+ end
+
+ create_table "account_warning_presets", force: :cascade do |t|
+ t.text "text", default: "", null: false
+ t.datetime "created_at", null: false
+ t.datetime "updated_at", null: false
+ end
+
+ create_table "account_warnings", force: :cascade do |t|
+ t.bigint "account_id"
+ t.bigint "target_account_id"
+ t.integer "action", default: 0, null: false
+ t.text "text", default: "", null: false
+ t.datetime "created_at", null: false
+ t.datetime "updated_at", null: false
+ t.index ["account_id"], name: "index_account_warnings_on_account_id"
+ t.index ["target_account_id"], name: "index_account_warnings_on_target_account_id"
+ end
+
create_table "accounts", force: :cascade do |t|
t.string "username", default: "", null: false
t.string "domain"
@@ -85,9 +122,6 @@ ActiveRecord::Schema.define(version: 2018_10_26_034033) do
t.boolean "suspended", default: false, null: false
t.boolean "locked", default: false, null: false
t.string "header_remote_url", default: "", null: false
- t.integer "statuses_count", default: 0, null: false
- t.integer "followers_count", default: 0, null: false
- t.integer "following_count", default: 0, null: false
t.datetime "last_webfingered_at"
t.string "inbox_url", default: "", null: false
t.string "outbox_url", default: "", null: false
@@ -99,6 +133,8 @@ ActiveRecord::Schema.define(version: 2018_10_26_034033) do
t.string "featured_collection_url"
t.jsonb "fields"
t.string "actor_type"
+ t.boolean "discoverable"
+ t.string "also_known_as", array: true
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"
@@ -106,6 +142,13 @@ ActiveRecord::Schema.define(version: 2018_10_26_034033) do
t.index ["url"], name: "index_accounts_on_url"
end
+ create_table "accounts_tags", id: false, force: :cascade do |t|
+ t.bigint "account_id", null: false
+ t.bigint "tag_id", null: false
+ t.index ["account_id", "tag_id"], name: "index_accounts_tags_on_account_id_and_tag_id"
+ t.index ["tag_id", "account_id"], name: "index_accounts_tags_on_tag_id_and_account_id", unique: true
+ end
+
create_table "admin_action_logs", force: :cascade do |t|
t.bigint "account_id"
t.string "action", default: "", null: false
@@ -228,12 +271,12 @@ ActiveRecord::Schema.define(version: 2018_10_26_034033) do
t.index ["target_account_id"], name: "index_follows_on_target_account_id"
end
- create_table "identities", id: :serial, force: :cascade do |t|
- t.integer "user_id"
+ create_table "identities", force: :cascade do |t|
t.string "provider", default: "", null: false
t.string "uid", default: "", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
+ t.bigint "user_id"
t.index ["user_id"], name: "index_identities_on_user_id"
end
@@ -293,7 +336,9 @@ ActiveRecord::Schema.define(version: 2018_10_26_034033) do
t.json "file_meta"
t.bigint "account_id"
t.text "description"
+ t.bigint "scheduled_status_id"
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
t.index ["status_id"], name: "index_media_attachments_on_status_id"
end
@@ -444,6 +489,14 @@ ActiveRecord::Schema.define(version: 2018_10_26_034033) do
t.index ["target_account_id"], name: "index_reports_on_target_account_id"
end
+ create_table "scheduled_statuses", force: :cascade do |t|
+ t.bigint "account_id"
+ t.datetime "scheduled_at"
+ t.jsonb "params"
+ t.index ["account_id"], name: "index_scheduled_statuses_on_account_id"
+ t.index ["scheduled_at"], name: "index_scheduled_statuses_on_scheduled_at"
+ end
+
create_table "session_activations", force: :cascade do |t|
t.string "session_id", null: false
t.datetime "created_at", null: false
@@ -596,8 +649,10 @@ ActiveRecord::Schema.define(version: 2018_10_26_034033) do
t.bigint "invite_id"
t.string "remember_token"
t.string "chosen_languages", array: true
+ t.bigint "created_by_application_id"
t.index ["account_id"], name: "index_users_on_account_id"
t.index ["confirmation_token"], name: "index_users_on_confirmation_token", unique: true
+ t.index ["created_by_application_id"], name: "index_users_on_created_by_application_id"
t.index ["email"], name: "index_users_on_email", unique: true
t.index ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true
end
@@ -630,6 +685,10 @@ ActiveRecord::Schema.define(version: 2018_10_26_034033) do
add_foreign_key "account_moderation_notes", "accounts", column: "target_account_id"
add_foreign_key "account_pins", "accounts", column: "target_account_id", on_delete: :cascade
add_foreign_key "account_pins", "accounts", on_delete: :cascade
+ add_foreign_key "account_stats", "accounts", on_delete: :cascade
+ add_foreign_key "account_tag_stats", "tags", on_delete: :cascade
+ add_foreign_key "account_warnings", "accounts", column: "target_account_id", on_delete: :cascade
+ add_foreign_key "account_warnings", "accounts", on_delete: :nullify
add_foreign_key "accounts", "accounts", column: "moved_to_account_id", on_delete: :nullify
add_foreign_key "admin_action_logs", "accounts", on_delete: :cascade
add_foreign_key "backups", "users", on_delete: :nullify
@@ -644,7 +703,7 @@ ActiveRecord::Schema.define(version: 2018_10_26_034033) do
add_foreign_key "follow_requests", "accounts", name: "fk_76d644b0e7", on_delete: :cascade
add_foreign_key "follows", "accounts", column: "target_account_id", name: "fk_745ca29eac", on_delete: :cascade
add_foreign_key "follows", "accounts", name: "fk_32ed1b5560", on_delete: :cascade
- add_foreign_key "identities", "users", on_delete: :cascade
+ add_foreign_key "identities", "users", name: "fk_bea040f377", on_delete: :cascade
add_foreign_key "imports", "accounts", name: "fk_6db1b6e408", on_delete: :cascade
add_foreign_key "invites", "users", on_delete: :cascade
add_foreign_key "list_accounts", "accounts", on_delete: :cascade
@@ -652,6 +711,7 @@ ActiveRecord::Schema.define(version: 2018_10_26_034033) do
add_foreign_key "list_accounts", "lists", on_delete: :cascade
add_foreign_key "lists", "accounts", on_delete: :cascade
add_foreign_key "media_attachments", "accounts", name: "fk_96dd81e81b", on_delete: :nullify
+ add_foreign_key "media_attachments", "scheduled_statuses", on_delete: :nullify
add_foreign_key "media_attachments", "statuses", on_delete: :nullify
add_foreign_key "mentions", "accounts", name: "fk_970d43f9d1", on_delete: :cascade
add_foreign_key "mentions", "statuses", on_delete: :cascade
@@ -670,6 +730,7 @@ ActiveRecord::Schema.define(version: 2018_10_26_034033) do
add_foreign_key "reports", "accounts", column: "assigned_account_id", on_delete: :nullify
add_foreign_key "reports", "accounts", column: "target_account_id", name: "fk_eb37af34f0", on_delete: :cascade
add_foreign_key "reports", "accounts", name: "fk_4b81f7522c", on_delete: :cascade
+ add_foreign_key "scheduled_statuses", "accounts", on_delete: :cascade
add_foreign_key "session_activations", "oauth_access_tokens", column: "access_token_id", name: "fk_957e5bda89", on_delete: :cascade
add_foreign_key "session_activations", "users", name: "fk_e5fda67334", on_delete: :cascade
add_foreign_key "status_pins", "accounts", name: "fk_d4cb435b62", on_delete: :cascade
@@ -685,6 +746,7 @@ ActiveRecord::Schema.define(version: 2018_10_26_034033) do
add_foreign_key "subscriptions", "accounts", name: "fk_9847d1cbb5", on_delete: :cascade
add_foreign_key "users", "accounts", name: "fk_50500f500d", on_delete: :cascade
add_foreign_key "users", "invites", on_delete: :nullify
+ add_foreign_key "users", "oauth_applications", column: "created_by_application_id", on_delete: :nullify
add_foreign_key "web_push_subscriptions", "oauth_access_tokens", column: "access_token_id", on_delete: :cascade
add_foreign_key "web_push_subscriptions", "users", on_delete: :cascade
add_foreign_key "web_settings", "users", name: "fk_11910667b2", on_delete: :cascade
diff --git a/db/seeds.rb b/db/seeds.rb
index 6adfeed8d..cf62ebf39 100644
--- a/db/seeds.rb
+++ b/db/seeds.rb
@@ -4,5 +4,5 @@ if Rails.env.development?
domain = ENV['LOCAL_DOMAIN'] || Rails.configuration.x.local_domain
admin = Account.where(username: 'admin').first_or_initialize(username: 'admin')
admin.save(validate: false)
- User.where(email: "admin@#{domain}").first_or_initialize(email: "admin@#{domain}", password: 'mastodonadmin', password_confirmation: 'mastodonadmin', confirmed_at: Time.now.utc, admin: true, account: admin).save!
+ User.where(email: "admin@#{domain}").first_or_initialize(email: "admin@#{domain}", password: 'mastodonadmin', password_confirmation: 'mastodonadmin', confirmed_at: Time.now.utc, admin: true, account: admin, agreement: true).save!
end
diff --git a/docker-compose.yml b/docker-compose.yml
index d9f80a38a..faa066149 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -6,6 +6,8 @@ services:
image: postgres:9.6-alpine
networks:
- internal_network
+ healthcheck:
+ test: ["CMD", "pg_isready", "-U", "postgres"]
volumes:
- ./postgres:/var/lib/postgresql/data
@@ -14,6 +16,8 @@ services:
image: redis:4.0-alpine
networks:
- internal_network
+ healthcheck:
+ test: ["CMD", "redis-cli", "ping"]
volumes:
- ./redis:/data
@@ -24,6 +28,8 @@ services:
# - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
# networks:
# - internal_network
+# healthcheck:
+# test: ["CMD-SHELL", "curl --silent --fail localhost:9200/_cluster/health || exit 1"]
# volumes:
# - ./elasticsearch:/usr/share/elasticsearch/data
@@ -36,6 +42,8 @@ services:
networks:
- external_network
- internal_network
+ healthcheck:
+ test: ["CMD-SHELL", "wget -q --spider --header 'x-forwarded-proto: https' --proxy off localhost:3000/api/v1/instance || exit 1"]
ports:
- "127.0.0.1:3000:3000"
depends_on:
@@ -54,6 +62,8 @@ services:
networks:
- external_network
- internal_network
+ healthcheck:
+ test: ["CMD-SHELL", "wget -q --spider --header 'x-forwarded-proto: https' --proxy off localhost:4000/api/v1/streaming/health || exit 1"]
ports:
- "127.0.0.1:4000:4000"
depends_on:
@@ -78,14 +88,13 @@ services:
## http_proxy=http://privoxy:8118
## ALLOW_ACCESS_TO_HIDDEN_SERVICE=true
# tor:
-# build: https://github.com/usbsnowcrash/docker-tor.git
+# image: sirboops/tor
# networks:
# - external_network
# - internal_network
#
# privoxy:
-# build: https://github.com/usbsnowcrash/docker-privoxy.git
-# command: /opt/sbin/privoxy --no-daemon --user privoxy.privoxy /opt/config
+# image: sirboops/privoxy
# volumes:
# - ./priv-config:/opt/config
# networks:
diff --git a/lib/mastodon/accounts_cli.rb b/lib/mastodon/accounts_cli.rb
index 9f7870bcd..24fb67991 100644
--- a/lib/mastodon/accounts_cli.rb
+++ b/lib/mastodon/accounts_cli.rb
@@ -73,7 +73,7 @@ module Mastodon
def create(username)
account = Account.new(username: username)
password = SecureRandom.hex
- user = User.new(email: options[:email], password: password, admin: options[:role] == 'admin', moderator: options[:role] == 'moderator', confirmed_at: Time.now.utc)
+ user = User.new(email: options[:email], password: password, agreement: true, admin: options[:role] == 'admin', moderator: options[:role] == 'moderator', confirmed_at: options[:confirmed] ? Time.now.utc : nil)
if options[:reattach]
account = Account.find_local(username) || Account.new(username: username)
@@ -300,6 +300,66 @@ module Mastodon
end
end
+ desc 'follow ACCT', 'Make all local accounts follow account specified by ACCT'
+ long_desc <<-LONG_DESC
+ Make all local accounts follow an account specified by ACCT. ACCT can be
+ a simple username, in case of a local user. It can also be in the format
+ username@domain, in case of a remote user.
+ LONG_DESC
+ def follow(acct)
+ target_account = ResolveAccountService.new.call(acct)
+ processed = 0
+ failed = 0
+
+ if target_account.nil?
+ say("Target account (#{acct}) could not be resolved", :red)
+ exit(1)
+ end
+
+ Account.local.without_suspended.find_each do |account|
+ begin
+ FollowService.new.call(account, target_account)
+ processed += 1
+ say('.', :green, false)
+ rescue StandardError
+ failed += 1
+ say('.', :red, false)
+ end
+ end
+
+ say("OK, followed target from #{processed} accounts, skipped #{failed}", :green)
+ end
+
+ desc 'unfollow ACCT', 'Make all local accounts unfollow account specified by ACCT'
+ long_desc <<-LONG_DESC
+ Make all local accounts unfollow an account specified by ACCT. ACCT can be
+ a simple username, in case of a local user. It can also be in the format
+ username@domain, in case of a remote user.
+ LONG_DESC
+ def unfollow(acct)
+ target_account = Account.find_remote(*acct.split('@'))
+ processed = 0
+ failed = 0
+
+ if target_account.nil?
+ say("Target account (#{acct}) was not found", :red)
+ exit(1)
+ end
+
+ target_account.followers.local.find_each do |account|
+ begin
+ UnfollowService.new.call(account, target_account)
+ processed += 1
+ say('.', :green, false)
+ rescue StandardError
+ failed += 1
+ say('.', :red, false)
+ end
+ end
+
+ say("OK, unfollowed target from #{processed} accounts, skipped #{failed}", :green)
+ end
+
private
def rotate_keys_for_account(account, delay = 0)
@@ -309,8 +369,8 @@ module Mastodon
end
old_key = account.private_key
- new_key = OpenSSL::PKey::RSA.new(2048).to_pem
- account.update(private_key: new_key)
+ new_key = OpenSSL::PKey::RSA.new(2048)
+ account.update(private_key: new_key.to_pem, public_key: new_key.public_key.to_pem)
ActivityPub::UpdateDistributionWorker.perform_in(delay, account.id, sign_with: old_key)
end
end
diff --git a/lib/mastodon/domains_cli.rb b/lib/mastodon/domains_cli.rb
index a7a5caa11..16e298584 100644
--- a/lib/mastodon/domains_cli.rb
+++ b/lib/mastodon/domains_cli.rb
@@ -22,11 +22,7 @@ module Mastodon
dry_run = options[:dry_run] ? ' (DRY RUN)' : ''
Account.where(domain: domain).find_each do |account|
- unless options[:dry_run]
- SuspendAccountService.new.call(account)
- account.destroy
- end
-
+ SuspendAccountService.new.call(account, destroy: true) unless options[:dry_run]
removed += 1
say('.', :green, false)
end
diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb
index cb5c2440c..d0511eadb 100644
--- a/lib/mastodon/version.rb
+++ b/lib/mastodon/version.rb
@@ -9,11 +9,11 @@ module Mastodon
end
def minor
- 6
+ 7
end
def patch
- 5
+ 0
end
def pre
@@ -21,7 +21,7 @@ module Mastodon
end
def flags
- ''
+ 'rc1'
end
def to_a
diff --git a/lib/tasks/emojis.rake b/lib/tasks/emojis.rake
index 625a6e55d..892afd898 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/5.0/emoji-test.txt'
+ source = 'http://www.unicode.org/Public/emoji/11.0/emoji-test.txt'
codes = []
dest = Rails.root.join('app', 'javascript', 'mastodon', 'features', 'emoji', 'emoji_map.json')
@@ -43,6 +43,8 @@ namespace :emojis do
existence_maps.each do |group|
existing_one = group.key(true)
+ next if existing_one.nil?
+
group.each_key do |key|
map[codepoints_to_unicode(key)] = codepoints_to_filename(existing_one)
end
diff --git a/package.json b/package.json
index ee138c374..d5dbd19c3 100644
--- a/package.json
+++ b/package.json
@@ -10,8 +10,8 @@
"build:production": "cross-env RAILS_ENV=production NODE_ENV=production ./bin/webpack",
"manage:translations": "node ./config/webpack/translationRunner.js",
"start": "node ./streaming/index.js",
- "test": "npm run test:lint && npm run test:jest",
- "test:lint": "eslint -c .eslintrc.yml --ext=js app/javascript/ config/webpack/ streaming/",
+ "test": "${npm_execpath} run test:lint && ${npm_execpath} run test:jest",
+ "test:lint": "eslint --ext=js .",
"test:jest": "cross-env NODE_ENV=test jest --coverage"
},
"repository": {
@@ -21,135 +21,138 @@
"browserslist": [
"last 2 versions",
"IE >= 11",
- "iOS >= 9"
+ "iOS >= 9",
+ "not dead"
],
"private": true,
"dependencies": {
- "@babel/core": "^7.0.1",
- "@babel/plugin-proposal-class-properties": "^7.0.0",
- "@babel/plugin-proposal-decorators": "^7.0.0",
- "@babel/plugin-proposal-object-rest-spread": "^7.0.0",
- "@babel/plugin-syntax-dynamic-import": "^7.0.0",
- "@babel/plugin-transform-react-inline-elements": "^7.0.0",
- "@babel/plugin-transform-react-jsx-self": "^7.0.0",
- "@babel/plugin-transform-react-jsx-source": "^7.0.0",
- "@babel/plugin-transform-runtime": "^7.0.0",
- "@babel/preset-env": "^7.0.0",
+ "@babel/core": "^7.2.2",
+ "@babel/plugin-proposal-class-properties": "^7.2.3",
+ "@babel/plugin-proposal-decorators": "^7.2.3",
+ "@babel/plugin-proposal-object-rest-spread": "^7.2.0",
+ "@babel/plugin-syntax-dynamic-import": "^7.2.0",
+ "@babel/plugin-transform-react-inline-elements": "^7.2.0",
+ "@babel/plugin-transform-react-jsx-self": "^7.2.0",
+ "@babel/plugin-transform-react-jsx-source": "^7.2.0",
+ "@babel/plugin-transform-runtime": "^7.2.0",
+ "@babel/preset-env": "^7.2.3",
"@babel/preset-react": "^7.0.0",
- "@babel/runtime": "^7.0.0",
+ "@babel/runtime": "^7.2.0",
+ "@gfx/zopfli": "^1.0.10",
"array-includes": "^3.0.3",
- "autoprefixer": "^8.6.5",
- "axios": "~0.16.2",
+ "autoprefixer": "^9.4.3",
+ "axios": "^0.18.0",
"babel-core": "^7.0.0-bridge.0",
- "babel-loader": "^8.0.2",
+ "babel-loader": "^8.0.4",
"babel-plugin-lodash": "^3.3.4",
"babel-plugin-preval": "^3.0.1",
- "babel-plugin-react-intl": "^3.0.0",
- "babel-plugin-transform-react-remove-prop-types": "^0.4.15",
+ "babel-plugin-react-intl": "^3.0.1",
+ "babel-plugin-transform-react-remove-prop-types": "^0.4.21",
+ "babel-runtime": "^6.26.0",
"classnames": "^2.2.5",
"compression-webpack-plugin": "^2.0.0",
"cross-env": "^5.1.4",
- "css-loader": "^1.0.0",
+ "css-loader": "^2.1.0",
+ "cssnano": "^4.1.8",
"detect-passive-events": "^1.0.2",
- "dotenv": "^4.0.0",
+ "dotenv": "^6.2.0",
"emoji-mart": "Gargron/emoji-mart#build",
"es6-symbol": "^3.1.1",
"escape-html": "^1.0.3",
"exif-js": "^2.3.0",
- "express": "^4.16.2",
- "file-loader": "^2.0.0",
+ "express": "^4.16.4",
+ "fibers": "^3.1.1",
+ "file-loader": "^3.0.1",
"font-awesome": "^4.7.0",
"glob": "^7.1.1",
"history": "^4.7.2",
- "http-link-header": "^0.8.0",
+ "http-link-header": "^1.0.2",
"immutable": "^3.8.2",
"imports-loader": "^0.8.0",
- "intersection-observer": "^0.5.0",
+ "intersection-observer": "^0.5.1",
"intl": "^1.2.5",
"intl-messageformat": "^2.2.0",
"intl-relativeformat": "^2.1.0",
"is-nan": "^1.2.1",
"js-yaml": "^3.11.0",
- "lodash": "^4.17.5",
+ "lodash": "^4.7.11",
"mark-loader": "^0.1.6",
- "marky": "^1.2.0",
- "mini-css-extract-plugin": "^0.4.2",
+ "marky": "^1.2.1",
+ "mini-css-extract-plugin": "^0.5.0",
"mkdirp": "^0.5.1",
- "node-sass": "^4.9.2",
"npmlog": "^4.1.2",
"object-assign": "^4.1.1",
"object-fit-images": "^3.2.3",
"object.values": "^1.0.4",
- "offline-plugin": "^5.0.5",
+ "offline-plugin": "^5.0.6",
"path-complete-extname": "^1.0.0",
"pg": "^6.4.0",
"postcss-loader": "^3.0.0",
"postcss-object-fit-images": "^1.1.2",
- "postcss-smart-import": "^0.7.6",
- "precss": "^3.1.2",
"prop-types": "^15.5.10",
"punycode": "^2.1.0",
- "rails-ujs": "^5.2.0",
- "react": "^16.5.0",
- "react-dom": "^16.5.0",
- "react-hotkeys": "^0.10.0",
+ "rails-ujs": "^5.2.2",
+ "react": "^16.7.0",
+ "react-dom": "^16.7.0",
+ "react-hotkeys": "^1.1.4",
"react-immutable-proptypes": "^2.1.0",
"react-immutable-pure-component": "^1.1.1",
- "react-intl": "^2.4.0",
+ "react-intl": "^2.7.2",
"react-motion": "^0.5.2",
"react-notification": "^6.8.4",
"react-overlays": "^0.8.3",
- "react-redux": "^5.0.4",
- "react-redux-loading-bar": "^2.9.3",
+ "react-redux": "^6.0.0",
+ "react-redux-loading-bar": "^4.1.0",
"react-router-dom": "^4.1.1",
"react-router-scroll-4": "^1.0.0-beta.1",
+ "react-select": "^2.2.0",
"react-sparklines": "^1.7.0",
- "react-swipeable-views": "^0.12.17",
- "react-textarea-autosize": "^5.2.1",
+ "react-swipeable-views": "^0.13.0",
+ "react-textarea-autosize": "^7.1.0",
"react-toggle": "^4.0.1",
"redis": "^2.7.1",
- "redux": "^3.7.1",
+ "redux": "^4.0.1",
"redux-immutable": "^4.0.0",
"redux-thunk": "^2.2.0",
- "rellax": "^1.6.2",
+ "rellax": "^1.7.1",
"requestidlecallback": "^0.3.0",
- "reselect": "^3.0.1",
+ "reselect": "^4.0.0",
"rimraf": "^2.6.1",
+ "sass": "^1.15.2",
"sass-loader": "^7.0.3",
- "stringz": "^0.3.0",
- "style-loader": "^0.23.0",
+ "stringz": "^1.0.0",
+ "style-loader": "0.23.1",
"substring-trie": "^1.0.2",
"throng": "^4.0.0",
"tiny-queue": "^0.2.1",
- "uglifyjs-webpack-plugin": "^1.2.7",
+ "uglifyjs-webpack-plugin": "^2.1.1",
"uuid": "^3.1.0",
"uws": "10.148.0",
- "webpack": "^4.18.0",
- "webpack-bundle-analyzer": "^2.13.1",
- "webpack-cli": "^3.0.8",
- "webpack-manifest-plugin": "^2.0.4",
- "webpack-merge": "^4.1.3",
+ "webpack": "^4.28.3",
+ "webpack-assets-manifest": "^3.1.1",
+ "webpack-bundle-analyzer": "^3.0.3",
+ "webpack-cli": "^3.1.2",
+ "webpack-merge": "^4.1.5",
"websocket.js": "^0.1.12"
},
"devDependencies": {
- "babel-eslint": "^9.0.0",
+ "babel-eslint": "^10.0.1",
"babel-jest": "^23.6.0",
- "enzyme": "^3.6.0",
- "enzyme-adapter-react-16": "^1.5.0",
- "eslint": "^4.19.1",
- "eslint-plugin-import": "^2.8.0",
- "eslint-plugin-jsx-a11y": "^6.0.3",
- "eslint-plugin-promise": "^3.8.0",
- "eslint-plugin-react": "^7.8.2",
+ "enzyme": "^3.8.0",
+ "enzyme-adapter-react-16": "^1.7.1",
+ "eslint": "^5.11.1",
+ "eslint-plugin-import": "~2.14.0",
+ "eslint-plugin-jsx-a11y": "~6.1.2",
+ "eslint-plugin-promise": "~4.0.1",
+ "eslint-plugin-react": "~7.12.1",
"jest": "^23.6.0",
- "raf": "^3.4.0",
+ "raf": "^3.4.1",
"react-intl-translations-manager": "^5.0.3",
- "react-test-renderer": "^16.5.0",
- "webpack-dev-server": "^3.1.8",
+ "react-test-renderer": "^16.7.0",
+ "webpack-dev-server": "^3.1.14",
"yargs": "^8.0.2"
},
"optionalDependencies": {
- "fsevents": "*",
- "node-zopfli": "^2.0.2"
+ "fsevents": "*"
}
}
diff --git a/postcss.config.js b/postcss.config.js
new file mode 100644
index 000000000..1c820c318
--- /dev/null
+++ b/postcss.config.js
@@ -0,0 +1,7 @@
+module.exports = ({ env }) => ({
+ plugins: {
+ autoprefixer: {},
+ 'postcss-object-fit-images': {},
+ cssnano: env === 'production' ? {} : false,
+ },
+});
diff --git a/spec/controllers/activitypub/collections_controller_spec.rb b/spec/controllers/activitypub/collections_controller_spec.rb
new file mode 100644
index 000000000..34114cc85
--- /dev/null
+++ b/spec/controllers/activitypub/collections_controller_spec.rb
@@ -0,0 +1,25 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe ActivityPub::CollectionsController, type: :controller do
+ describe 'POST #show' do
+ let(:account) { Fabricate(:account) }
+
+ context 'id is "featured"' do
+ it 'returns 200 with "application/activity+json"' do
+ post :show, params: { id: 'featured', account_username: account.username }
+
+ expect(response).to have_http_status(200)
+ expect(response.content_type).to eq 'application/activity+json'
+ end
+ end
+
+ context 'id is not "featured"' do
+ it 'returns 404' do
+ post :show, params: { id: 'hoge', account_username: account.username }
+ expect(response).to have_http_status(404)
+ end
+ end
+ end
+end
diff --git a/spec/controllers/activitypub/inboxes_controller_spec.rb b/spec/controllers/activitypub/inboxes_controller_spec.rb
index 5c12fea7d..4055d9342 100644
--- a/spec/controllers/activitypub/inboxes_controller_spec.rb
+++ b/spec/controllers/activitypub/inboxes_controller_spec.rb
@@ -1,7 +1,29 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::InboxesController, type: :controller do
describe 'POST #create' do
- pending
+ context 'if signed_request_account' do
+ it 'returns 202' do
+ allow(controller).to receive(:signed_request_account) do
+ Fabricate(:account)
+ end
+
+ post :create
+ expect(response).to have_http_status(202)
+ end
+ end
+
+ context 'not signed_request_account' do
+ it 'returns 401' do
+ allow(controller).to receive(:signed_request_account) do
+ false
+ end
+
+ post :create
+ expect(response).to have_http_status(401)
+ end
+ end
end
end
diff --git a/spec/controllers/admin/accounts_controller_spec.rb b/spec/controllers/admin/accounts_controller_spec.rb
index ae9e058c8..a348ab3d7 100644
--- a/spec/controllers/admin/accounts_controller_spec.rb
+++ b/spec/controllers/admin/accounts_controller_spec.rb
@@ -24,8 +24,8 @@ RSpec.describe Admin::AccountsController, type: :controller do
expect(h[:local]).to eq '1'
expect(h[:remote]).to eq '1'
expect(h[:by_domain]).to eq 'domain'
+ expect(h[:active]).to eq '1'
expect(h[:silenced]).to eq '1'
- expect(h[:alphabetic]).to eq '1'
expect(h[:suspended]).to eq '1'
expect(h[:username]).to eq 'username'
expect(h[:display_name]).to eq 'display name'
@@ -39,8 +39,8 @@ RSpec.describe Admin::AccountsController, type: :controller do
local: '1',
remote: '1',
by_domain: 'domain',
+ active: '1',
silenced: '1',
- alphabetic: '1',
suspended: '1',
username: 'username',
display_name: 'display name',
@@ -191,58 +191,6 @@ RSpec.describe Admin::AccountsController, type: :controller do
end
end
- describe 'POST #disable' do
- subject { post :disable, params: { id: account.id } }
-
- let(:current_user) { Fabricate(:user, admin: current_user_admin) }
- let(:account) { Fabricate(:account, user: user) }
- let(:user) { Fabricate(:user, disabled: false, admin: target_user_admin) }
-
- context 'when user is admin' do
- let(:current_user_admin) { true }
-
- context 'when target user is admin' do
- let(:target_user_admin) { true }
-
- it 'fails to disable account' do
- is_expected.to have_http_status :forbidden
- expect(user.reload).not_to be_disabled
- end
- end
-
- context 'when target user is not admin' do
- let(:target_user_admin) { false }
-
- it 'succeeds in disabling account' do
- is_expected.to redirect_to admin_account_path(account.id)
- expect(user.reload).to be_disabled
- end
- end
- end
-
- context 'when user is not admin' do
- let(:current_user_admin) { false }
-
- context 'when target user is admin' do
- let(:target_user_admin) { true }
-
- it 'fails to disable account' do
- is_expected.to have_http_status :forbidden
- expect(user.reload).not_to be_disabled
- end
- end
-
- context 'when target user is not admin' do
- let(:target_user_admin) { false }
-
- it 'fails to disable account' do
- is_expected.to have_http_status :forbidden
- expect(user.reload).not_to be_disabled
- end
- end
- end
- end
-
describe 'POST #redownload' do
subject { post :redownload, params: { id: account.id } }
diff --git a/spec/controllers/admin/action_logs_controller_spec.rb b/spec/controllers/admin/action_logs_controller_spec.rb
new file mode 100644
index 000000000..4720ed2e2
--- /dev/null
+++ b/spec/controllers/admin/action_logs_controller_spec.rb
@@ -0,0 +1,14 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe Admin::ActionLogsController, type: :controller do
+ describe 'GET #index' do
+ it 'returns 200' do
+ sign_in Fabricate(:user, admin: true)
+ get :index, params: { page: 1 }
+
+ expect(response).to have_http_status(200)
+ end
+ end
+end
diff --git a/spec/controllers/admin/dashboard_controller_spec.rb b/spec/controllers/admin/dashboard_controller_spec.rb
new file mode 100644
index 000000000..73b50e721
--- /dev/null
+++ b/spec/controllers/admin/dashboard_controller_spec.rb
@@ -0,0 +1,14 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe Admin::DashboardController, type: :controller do
+ describe 'GET #index' do
+ it 'returns 200' do
+ sign_in Fabricate(:user, admin: true)
+ get :index
+
+ expect(response).to have_http_status(200)
+ end
+ end
+end
diff --git a/spec/controllers/admin/domain_blocks_controller_spec.rb b/spec/controllers/admin/domain_blocks_controller_spec.rb
index 79e7fea42..129bf8883 100644
--- a/spec/controllers/admin/domain_blocks_controller_spec.rb
+++ b/spec/controllers/admin/domain_blocks_controller_spec.rb
@@ -7,26 +7,6 @@ RSpec.describe Admin::DomainBlocksController, type: :controller do
sign_in Fabricate(:user, admin: true), scope: :user
end
- describe 'GET #index' do
- around do |example|
- default_per_page = DomainBlock.default_per_page
- DomainBlock.paginates_per 1
- example.run
- DomainBlock.paginates_per default_per_page
- end
-
- it 'renders domain blocks' do
- 2.times { Fabricate(:domain_block) }
-
- get :index, params: { page: 2 }
-
- assigned = assigns(:domain_blocks)
- expect(assigned.count).to eq 1
- expect(assigned.klass).to be DomainBlock
- expect(response).to have_http_status(200)
- end
- end
-
describe 'GET #new' do
it 'assigns a new domain block' do
get :new
@@ -53,7 +33,7 @@ RSpec.describe Admin::DomainBlocksController, type: :controller do
expect(DomainBlockWorker).to have_received(:perform_async)
expect(flash[:notice]).to eq I18n.t('admin.domain_blocks.created_msg')
- expect(response).to redirect_to(admin_domain_blocks_path)
+ expect(response).to redirect_to(admin_instances_path(limited: '1'))
end
it 'renders new when failed to save' do
@@ -76,7 +56,7 @@ RSpec.describe Admin::DomainBlocksController, type: :controller do
expect(service).to have_received(:call).with(domain_block, true)
expect(flash[:notice]).to eq I18n.t('admin.domain_blocks.destroyed_msg')
- expect(response).to redirect_to(admin_domain_blocks_path)
+ expect(response).to redirect_to(admin_instances_path(limited: '1'))
end
end
end
diff --git a/spec/controllers/admin/invites_controller_spec.rb b/spec/controllers/admin/invites_controller_spec.rb
index 34b51a6aa..449a699e4 100644
--- a/spec/controllers/admin/invites_controller_spec.rb
+++ b/spec/controllers/admin/invites_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Admin::InvitesController do
@@ -40,4 +42,18 @@ describe Admin::InvitesController do
expect(invite.reload).to be_expired
end
end
+
+ describe 'POST #deactivate_all' do
+ it 'expires all invites, then redirects to admin_invites_path' do
+ invites = Fabricate.times(2, :invite, expires_at: nil)
+
+ post :deactivate_all
+
+ invites.each do |invite|
+ expect(invite.reload).to be_expired
+ end
+
+ expect(response).to redirect_to admin_invites_path
+ end
+ end
end
diff --git a/spec/controllers/admin/reports_controller_spec.rb b/spec/controllers/admin/reports_controller_spec.rb
index bcc789c57..b428299ee 100644
--- a/spec/controllers/admin/reports_controller_spec.rb
+++ b/spec/controllers/admin/reports_controller_spec.rb
@@ -46,73 +46,37 @@ describe Admin::ReportsController do
end
end
- describe 'PUT #update' do
- describe 'with an unknown outcome' do
- it 'rejects the change' do
- report = Fabricate(:report)
- put :update, params: { id: report, outcome: 'unknown' }
+ describe 'POST #reopen' do
+ it 'reopens the report' do
+ report = Fabricate(:report)
- expect(response).to have_http_status(404)
- end
+ put :reopen, params: { id: report }
+ expect(response).to redirect_to(admin_report_path(report))
+ report.reload
+ expect(report.action_taken_by_account).to eq nil
+ expect(report.action_taken).to eq false
end
+ end
- describe 'with an outcome of `resolve`' do
- it 'resolves the report' do
- report = Fabricate(:report)
+ describe 'POST #assign_to_self' do
+ it 'reopens the report' do
+ report = Fabricate(:report)
- put :update, params: { id: report, outcome: 'resolve' }
- 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
+ put :assign_to_self, params: { id: report }
+ expect(response).to redirect_to(admin_report_path(report))
+ report.reload
+ expect(report.assigned_account).to eq user.account
end
+ end
- describe 'with an outsome of `silence`' do
- it 'silences the reported account' do
- report = Fabricate(:report)
+ describe 'POST #unassign' do
+ it 'reopens the report' do
+ report = Fabricate(:report)
- put :update, params: { id: report, outcome: 'silence' }
- 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
- expect(report.target_account).to be_silenced
- end
- end
-
- describe 'with an outsome of `reopen`' do
- it 'reopens the report' do
- report = Fabricate(:report)
-
- put :update, params: { id: report, outcome: 'reopen' }
- expect(response).to redirect_to(admin_report_path(report))
- report.reload
- expect(report.action_taken_by_account).to eq nil
- expect(report.action_taken).to eq false
- end
- end
-
- describe 'with an outsome of `assign_to_self`' do
- it 'reopens the report' do
- report = Fabricate(:report)
-
- put :update, params: { id: report, outcome: 'assign_to_self' }
- expect(response).to redirect_to(admin_report_path(report))
- report.reload
- expect(report.assigned_account).to eq user.account
- end
- end
-
- describe 'with an outsome of `unassign`' do
- it 'reopens the report' do
- report = Fabricate(:report)
-
- put :update, params: { id: report, outcome: 'unassign' }
- expect(response).to redirect_to(admin_report_path(report))
- report.reload
- expect(report.assigned_account).to eq nil
- end
+ put :unassign, params: { id: report }
+ expect(response).to redirect_to(admin_report_path(report))
+ report.reload
+ expect(report.assigned_account).to eq nil
end
end
end
diff --git a/spec/controllers/admin/silences_controller_spec.rb b/spec/controllers/admin/silences_controller_spec.rb
deleted file mode 100644
index 78560eb39..000000000
--- a/spec/controllers/admin/silences_controller_spec.rb
+++ /dev/null
@@ -1,33 +0,0 @@
-require 'rails_helper'
-
-describe Admin::SilencesController do
- render_views
-
- before do
- sign_in Fabricate(:user, admin: true), scope: :user
- end
-
- describe 'POST #create' do
- it 'redirects to admin accounts page' do
- account = Fabricate(:account, silenced: false)
-
- post :create, params: { account_id: account.id }
-
- account.reload
- expect(account.silenced?).to eq true
- expect(response).to redirect_to(admin_accounts_path)
- end
- end
-
- describe 'DELETE #destroy' do
- it 'redirects to admin accounts page' do
- account = Fabricate(:account, silenced: true)
-
- delete :destroy, params: { account_id: account.id }
-
- account.reload
- expect(account.silenced?).to eq false
- expect(response).to redirect_to(admin_accounts_path)
- end
- end
-end
diff --git a/spec/controllers/admin/suspensions_controller_spec.rb b/spec/controllers/admin/suspensions_controller_spec.rb
deleted file mode 100644
index babb1ed96..000000000
--- a/spec/controllers/admin/suspensions_controller_spec.rb
+++ /dev/null
@@ -1,32 +0,0 @@
-require 'rails_helper'
-
-describe Admin::SuspensionsController do
- render_views
-
- before do
- sign_in Fabricate(:user, admin: true), scope: :user
- end
-
- describe 'POST #create' do
- it 'redirects to admin accounts page' do
- account = Fabricate(:account, suspended: false)
- expect(Admin::SuspensionWorker).to receive(:perform_async).with(account.id)
-
- post :create, params: { account_id: account.id, form_admin_suspension_confirmation: { acct: account.acct } }
-
- expect(response).to redirect_to(admin_accounts_path)
- end
- end
-
- describe 'DELETE #destroy' do
- it 'redirects to admin accounts page' do
- account = Fabricate(:account, suspended: true)
-
- delete :destroy, params: { account_id: account.id }
-
- account.reload
- expect(account.suspended?).to eq false
- expect(response).to redirect_to(admin_accounts_path)
- end
- end
-end
diff --git a/spec/controllers/admin/tags_controller_spec.rb b/spec/controllers/admin/tags_controller_spec.rb
new file mode 100644
index 000000000..3af994071
--- /dev/null
+++ b/spec/controllers/admin/tags_controller_spec.rb
@@ -0,0 +1,71 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe Admin::TagsController, type: :controller do
+ render_views
+
+ before do
+ sign_in Fabricate(:user, admin: true)
+ end
+
+ describe 'GET #index' do
+ before do
+ account_tag_stat = Fabricate(:tag).account_tag_stat
+ account_tag_stat.update(hidden: hidden, accounts_count: 1)
+ get :index, params: { hidden: hidden }
+ end
+
+ context 'with hidden tags' do
+ let(:hidden) { true }
+
+ it 'returns status 200' do
+ expect(response).to have_http_status(200)
+ end
+ end
+
+ context 'without hidden tags' do
+ let(:hidden) { false }
+
+ it 'returns status 200' do
+ expect(response).to have_http_status(200)
+ end
+ end
+ end
+
+ describe 'POST #hide' do
+ let(:tag) { Fabricate(:tag) }
+
+ before do
+ tag.account_tag_stat.update(hidden: false)
+ post :hide, params: { id: tag.id }
+ end
+
+ it 'hides tag' do
+ tag.reload
+ expect(tag).to be_hidden
+ end
+
+ it 'redirects to admin_tags_path' do
+ expect(response).to redirect_to(admin_tags_path(controller.instance_variable_get(:@filter_params)))
+ end
+ end
+
+ describe 'POST #unhide' do
+ let(:tag) { Fabricate(:tag) }
+
+ before do
+ tag.account_tag_stat.update(hidden: true)
+ post :unhide, params: { id: tag.id }
+ end
+
+ it 'unhides tag' do
+ tag.reload
+ expect(tag).not_to be_hidden
+ end
+
+ it 'redirects to admin_tags_path' do
+ expect(response).to redirect_to(admin_tags_path(controller.instance_variable_get(:@filter_params)))
+ end
+ end
+end
diff --git a/spec/controllers/api/v1/accounts/pins_controller_spec.rb b/spec/controllers/api/v1/accounts/pins_controller_spec.rb
new file mode 100644
index 000000000..c71935df2
--- /dev/null
+++ b/spec/controllers/api/v1/accounts/pins_controller_spec.rb
@@ -0,0 +1,46 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe Api::V1::Accounts::PinsController, type: :controller do
+ let(:john) { Fabricate(:user, account: Fabricate(:account, username: 'john')) }
+ let(:kevin) { Fabricate(:user, account: Fabricate(:account, username: 'kevin')) }
+ let(:token) { Fabricate(:accessible_access_token, resource_owner_id: john.id, scopes: 'write:accounts') }
+
+ before do
+ kevin.account.followers << john.account
+ allow(controller).to receive(:doorkeeper_token) { token }
+ end
+
+ describe 'POST #create' do
+ subject { post :create, params: { account_id: kevin.account.id } }
+
+ it 'returns 200' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'creates account_pin' do
+ expect do
+ subject
+ end.to change { AccountPin.where(account: john.account, target_account: kevin.account).count }.by(1)
+ end
+ end
+
+ describe 'DELETE #destroy' do
+ subject { delete :destroy, params: { account_id: kevin.account.id } }
+
+ before do
+ Fabricate(:account_pin, account: john.account, target_account: kevin.account)
+ end
+
+ it 'returns 200' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'destroys account_pin' do
+ expect do
+ subject
+ end.to change { AccountPin.where(account: john.account, target_account: kevin.account).count }.by(-1)
+ end
+ end
+end
diff --git a/spec/controllers/api/v1/accounts_controller_spec.rb b/spec/controllers/api/v1/accounts_controller_spec.rb
index c506fb5f0..f5f65c000 100644
--- a/spec/controllers/api/v1/accounts_controller_spec.rb
+++ b/spec/controllers/api/v1/accounts_controller_spec.rb
@@ -19,6 +19,40 @@ RSpec.describe Api::V1::AccountsController, type: :controller do
end
end
+ describe 'POST #create' do
+ let(:app) { Fabricate(:application) }
+ let(:token) { Doorkeeper::AccessToken.find_or_create_for(app, nil, 'read write', nil, false) }
+ let(:agreement) { nil }
+
+ before do
+ post :create, params: { username: 'test', password: '12345678', email: 'hello@world.tld', agreement: agreement }
+ end
+
+ context 'given truthy agreement' do
+ let(:agreement) { 'true' }
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns a new access token as JSON' do
+ expect(body_as_json[:access_token]).to_not be_blank
+ end
+
+ it 'creates a user' do
+ user = User.find_by(email: 'hello@world.tld')
+ expect(user).to_not be_nil
+ expect(user.created_by_application_id).to eq app.id
+ end
+ end
+
+ context 'given no agreement' do
+ it 'returns http unprocessable entity' do
+ expect(response).to have_http_status(422)
+ end
+ end
+ end
+
describe 'GET #show' do
let(:scopes) { 'read:accounts' }
diff --git a/spec/controllers/api/v1/conversations_controller_spec.rb b/spec/controllers/api/v1/conversations_controller_spec.rb
index 2e9525855..070f65061 100644
--- a/spec/controllers/api/v1/conversations_controller_spec.rb
+++ b/spec/controllers/api/v1/conversations_controller_spec.rb
@@ -15,7 +15,7 @@ RSpec.describe Api::V1::ConversationsController, type: :controller do
let(:scopes) { 'read:statuses' }
before do
- PostStatusService.new.call(other.account, 'Hey @alice', nil, visibility: 'direct')
+ PostStatusService.new.call(other.account, text: 'Hey @alice', visibility: 'direct')
end
it 'returns http success' do
diff --git a/spec/controllers/api/v1/endorsements_controller_spec.rb b/spec/controllers/api/v1/endorsements_controller_spec.rb
new file mode 100644
index 000000000..ad5ff400f
--- /dev/null
+++ b/spec/controllers/api/v1/endorsements_controller_spec.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe Api::V1::EndorsementsController, type: :controller do
+ let(:user) { Fabricate(:user) }
+ let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: 'read:accounts') }
+
+ describe 'GET #index' do
+ it 'returns 200' do
+ allow(controller).to receive(:doorkeeper_token) { token }
+ get :index
+
+ expect(response).to have_http_status(200)
+ end
+ end
+end
diff --git a/spec/controllers/api/v1/instances/activity_controller_spec.rb b/spec/controllers/api/v1/instances/activity_controller_spec.rb
new file mode 100644
index 000000000..159792ee0
--- /dev/null
+++ b/spec/controllers/api/v1/instances/activity_controller_spec.rb
@@ -0,0 +1,21 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe Api::V1::Instances::ActivityController, type: :controller do
+ describe 'GET #show' do
+ it 'returns 200' do
+ get :show
+ expect(response).to have_http_status(200)
+ end
+
+ context '!Setting.activity_api_enabled' do
+ it 'returns 404' do
+ Setting.activity_api_enabled = false
+
+ get :show
+ expect(response).to have_http_status(404)
+ end
+ end
+ end
+end
diff --git a/spec/controllers/api/v1/instances/peers_controller_spec.rb b/spec/controllers/api/v1/instances/peers_controller_spec.rb
new file mode 100644
index 000000000..12a214a83
--- /dev/null
+++ b/spec/controllers/api/v1/instances/peers_controller_spec.rb
@@ -0,0 +1,21 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe Api::V1::Instances::PeersController, type: :controller do
+ describe 'GET #index' do
+ it 'returns 200' do
+ get :index
+ expect(response).to have_http_status(200)
+ end
+
+ context '!Setting.peers_api_enabled' do
+ it 'returns 404' do
+ Setting.peers_api_enabled = false
+
+ get :index
+ expect(response).to have_http_status(404)
+ end
+ end
+ end
+end
diff --git a/spec/controllers/api/v1/notifications_controller_spec.rb b/spec/controllers/api/v1/notifications_controller_spec.rb
index 9f679cb8a..d0f82e79f 100644
--- a/spec/controllers/api/v1/notifications_controller_spec.rb
+++ b/spec/controllers/api/v1/notifications_controller_spec.rb
@@ -50,9 +50,9 @@ RSpec.describe Api::V1::NotificationsController, type: :controller do
let(:scopes) { 'read:notifications' }
before do
- first_status = PostStatusService.new.call(user.account, 'Test')
+ first_status = PostStatusService.new.call(user.account, text: 'Test')
@reblog_of_first_status = ReblogService.new.call(other.account, first_status)
- mentioning_status = PostStatusService.new.call(other.account, 'Hello @alice')
+ mentioning_status = PostStatusService.new.call(other.account, text: 'Hello @alice')
@mention_from_status = mentioning_status.mentions.first
@favourite = FavouriteService.new.call(other.account, first_status)
@follow = FollowService.new.call(other.account, 'alice')
diff --git a/spec/controllers/api/v1/timelines/direct_controller_spec.rb b/spec/controllers/api/v1/timelines/direct_controller_spec.rb
new file mode 100644
index 000000000..a22c2cbea
--- /dev/null
+++ b/spec/controllers/api/v1/timelines/direct_controller_spec.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe Api::V1::Timelines::DirectController, type: :controller do
+ let(:user) { Fabricate(:user) }
+ let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: 'read:statuses') }
+
+ describe 'GET #show' do
+ it 'returns 200' do
+ allow(controller).to receive(:doorkeeper_token) { token }
+ get :show
+
+ expect(response).to have_http_status(200)
+ end
+ end
+end
diff --git a/spec/controllers/api/v1/timelines/home_controller_spec.rb b/spec/controllers/api/v1/timelines/home_controller_spec.rb
index 63d624c35..e953e4649 100644
--- a/spec/controllers/api/v1/timelines/home_controller_spec.rb
+++ b/spec/controllers/api/v1/timelines/home_controller_spec.rb
@@ -17,7 +17,7 @@ describe Api::V1::Timelines::HomeController do
describe 'GET #show' do
before do
follow = Fabricate(:follow, account: user.account)
- PostStatusService.new.call(follow.target_account, 'New status for user home timeline.')
+ PostStatusService.new.call(follow.target_account, text: 'New status for user home timeline.')
end
it 'returns http success' do
diff --git a/spec/controllers/api/v1/timelines/list_controller_spec.rb b/spec/controllers/api/v1/timelines/list_controller_spec.rb
index 93a2be6e6..45e4bf34c 100644
--- a/spec/controllers/api/v1/timelines/list_controller_spec.rb
+++ b/spec/controllers/api/v1/timelines/list_controller_spec.rb
@@ -19,7 +19,7 @@ describe Api::V1::Timelines::ListController do
before do
follow = Fabricate(:follow, account: user.account)
list.accounts << follow.target_account
- PostStatusService.new.call(follow.target_account, 'New status for user home timeline.')
+ PostStatusService.new.call(follow.target_account, text: 'New status for user home timeline.')
end
it 'returns http success' do
diff --git a/spec/controllers/api/v1/timelines/public_controller_spec.rb b/spec/controllers/api/v1/timelines/public_controller_spec.rb
index a0f778cdc..737aedba6 100644
--- a/spec/controllers/api/v1/timelines/public_controller_spec.rb
+++ b/spec/controllers/api/v1/timelines/public_controller_spec.rb
@@ -16,7 +16,7 @@ describe Api::V1::Timelines::PublicController do
describe 'GET #show' do
before do
- PostStatusService.new.call(user.account, 'New status from user for federated public timeline.')
+ PostStatusService.new.call(user.account, text: 'New status from user for federated public timeline.')
end
it 'returns http success' do
@@ -29,7 +29,7 @@ describe Api::V1::Timelines::PublicController do
describe 'GET #show with local only' do
before do
- PostStatusService.new.call(user.account, 'New status from user for local public timeline.')
+ PostStatusService.new.call(user.account, text: 'New status from user for local public timeline.')
end
it 'returns http success' do
diff --git a/spec/controllers/api/v1/timelines/tag_controller_spec.rb b/spec/controllers/api/v1/timelines/tag_controller_spec.rb
index 472779f54..f71ca2a39 100644
--- a/spec/controllers/api/v1/timelines/tag_controller_spec.rb
+++ b/spec/controllers/api/v1/timelines/tag_controller_spec.rb
@@ -16,7 +16,7 @@ describe Api::V1::Timelines::TagController do
describe 'GET #show' do
before do
- PostStatusService.new.call(user.account, 'It is a #test')
+ PostStatusService.new.call(user.account, text: 'It is a #test')
end
it 'returns http success' do
diff --git a/spec/controllers/concerns/accountable_concern_spec.rb b/spec/controllers/concerns/accountable_concern_spec.rb
new file mode 100644
index 000000000..e3c06b494
--- /dev/null
+++ b/spec/controllers/concerns/accountable_concern_spec.rb
@@ -0,0 +1,26 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe AccountableConcern do
+ class Hoge
+ include AccountableConcern
+ attr_reader :current_account
+
+ def initialize(current_account)
+ @current_account = current_account
+ end
+ end
+
+ let(:user) { Fabricate(:user, account: Fabricate(:account)) }
+ let(:target) { Fabricate(:user, account: Fabricate(:account)) }
+ let(:hoge) { Hoge.new(user.account) }
+
+ describe '#log_action' do
+ it 'creates Admin::ActionLog' do
+ expect do
+ hoge.log_action(:create, target.account)
+ end.to change { Admin::ActionLog.count }.by(1)
+ end
+ end
+end
diff --git a/spec/controllers/remote_interaction_controller_spec.rb b/spec/controllers/remote_interaction_controller_spec.rb
new file mode 100644
index 000000000..bb0074b11
--- /dev/null
+++ b/spec/controllers/remote_interaction_controller_spec.rb
@@ -0,0 +1,39 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe RemoteInteractionController, type: :controller do
+ render_views
+
+ let(:status) { Fabricate(:status) }
+
+ describe 'GET #new' do
+ it 'returns 200' do
+ get :new, params: { id: status.id }
+ expect(response).to have_http_status(200)
+ end
+ end
+
+ describe 'POST #create' do
+ context '@remote_follow is valid' do
+ it 'returns 302' do
+ allow_any_instance_of(RemoteFollow).to receive(:valid?) { true }
+ allow_any_instance_of(RemoteFollow).to receive(:addressable_template) do
+ Addressable::Template.new('https://hoge.com')
+ end
+
+ post :create, params: { id: status.id, remote_follow: { acct: '@hoge' } }
+ expect(response).to have_http_status(302)
+ end
+ end
+
+ context '@remote_follow is invalid' do
+ it 'returns 200' do
+ allow_any_instance_of(RemoteFollow).to receive(:valid?) { false }
+ post :create, params: { id: status.id, remote_follow: { acct: '@hoge' } }
+
+ expect(response).to have_http_status(200)
+ end
+ end
+ end
+end
diff --git a/spec/controllers/settings/exports_controller_spec.rb b/spec/controllers/settings/exports_controller_spec.rb
index b7cab4d8f..a46fe095d 100644
--- a/spec/controllers/settings/exports_controller_spec.rb
+++ b/spec/controllers/settings/exports_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Settings::ExportsController do
@@ -28,4 +30,23 @@ describe Settings::ExportsController do
end
end
end
+
+ describe 'POST #create' do
+ before do
+ sign_in Fabricate(:user), scope: :user
+ end
+
+ it 'redirects to settings_export_path' do
+ post :create
+ expect(response).to redirect_to(settings_export_path)
+ end
+
+ it 'queues BackupWorker job by 1' do
+ Sidekiq::Testing.fake! do
+ expect do
+ post :create
+ end.to change(BackupWorker.jobs, :size).by(1)
+ end
+ end
+ end
end
diff --git a/spec/controllers/settings/profiles_controller_spec.rb b/spec/controllers/settings/profiles_controller_spec.rb
index a453200af..5b1fe3aca 100644
--- a/spec/controllers/settings/profiles_controller_spec.rb
+++ b/spec/controllers/settings/profiles_controller_spec.rb
@@ -26,4 +26,26 @@ RSpec.describe Settings::ProfilesController, type: :controller do
expect(ActivityPub::UpdateDistributionWorker).to have_received(:perform_async).with(account.id)
end
end
+
+ describe 'PUT #update with new profile image' do
+ it 'updates profile image' do
+ allow(ActivityPub::UpdateDistributionWorker).to receive(:perform_async)
+ account = Fabricate(:account, user: @user, display_name: 'AvatarTest')
+ expect(account.avatar.instance.avatar_file_name).to be_nil
+
+ put :update, params: { account: { avatar: fixture_file_upload('files/avatar.gif', 'image/gif') } }
+ expect(response).to redirect_to(settings_profile_path)
+ expect(account.reload.avatar.instance.avatar_file_name).not_to be_nil
+ expect(ActivityPub::UpdateDistributionWorker).to have_received(:perform_async).with(account.id)
+ end
+ end
+
+ describe 'PUT #update with oversized image' do
+ it 'gives the user an error message' do
+ allow(ActivityPub::UpdateDistributionWorker).to receive(:perform_async)
+ account = Fabricate(:account, user: @user, display_name: 'AvatarTest')
+ put :update, params: { account: { avatar: fixture_file_upload('files/4096x4097.png', 'image/png') } }
+ expect(response.body).to include('images are not supported')
+ end
+ end
end
diff --git a/spec/controllers/statuses_controller_spec.rb b/spec/controllers/statuses_controller_spec.rb
index b4f3c5a08..1bb6636c6 100644
--- a/spec/controllers/statuses_controller_spec.rb
+++ b/spec/controllers/statuses_controller_spec.rb
@@ -115,14 +115,18 @@ describe StatusesController do
end
it 'assigns @descendant_threads for threads with :next_status key if they are hitting the depth limit' do
- stub_const 'StatusesController::DESCENDANTS_DEPTH_LIMIT', 1
+ stub_const 'StatusesController::DESCENDANTS_DEPTH_LIMIT', 2
status = Fabricate(:status)
- child = Fabricate(:status, in_reply_to_id: status.id)
+ 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)
get :show, params: { account_username: status.account.username, id: status.id }
- expect(assigns(:descendant_threads)[0][:statuses].pluck(:id)).not_to include child.id
- expect(assigns(:descendant_threads)[0][:next_status].id).to eq child.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
end
it 'returns a success' do
diff --git a/spec/fabricators/account_stat_fabricator.rb b/spec/fabricators/account_stat_fabricator.rb
new file mode 100644
index 000000000..2b06b4790
--- /dev/null
+++ b/spec/fabricators/account_stat_fabricator.rb
@@ -0,0 +1,6 @@
+Fabricator(:account_stat) do
+ account nil
+ statuses_count ""
+ following_count ""
+ followers_count ""
+end
diff --git a/spec/fabricators/account_tag_stat_fabricator.rb b/spec/fabricators/account_tag_stat_fabricator.rb
new file mode 100644
index 000000000..9edb550be
--- /dev/null
+++ b/spec/fabricators/account_tag_stat_fabricator.rb
@@ -0,0 +1,3 @@
+Fabricator(:account_tag_stat) do
+ accounts_count ""
+end
diff --git a/spec/fabricators/account_warning_fabricator.rb b/spec/fabricators/account_warning_fabricator.rb
new file mode 100644
index 000000000..db161d446
--- /dev/null
+++ b/spec/fabricators/account_warning_fabricator.rb
@@ -0,0 +1,5 @@
+Fabricator(:account_warning) do
+ account nil
+ target_account nil
+ text "MyText"
+end
diff --git a/spec/fabricators/account_warning_preset_fabricator.rb b/spec/fabricators/account_warning_preset_fabricator.rb
new file mode 100644
index 000000000..6c0b87e7c
--- /dev/null
+++ b/spec/fabricators/account_warning_preset_fabricator.rb
@@ -0,0 +1,3 @@
+Fabricator(:account_warning_preset) do
+ text "MyText"
+end
diff --git a/spec/fabricators/scheduled_status_fabricator.rb b/spec/fabricators/scheduled_status_fabricator.rb
new file mode 100644
index 000000000..52384d137
--- /dev/null
+++ b/spec/fabricators/scheduled_status_fabricator.rb
@@ -0,0 +1,4 @@
+Fabricator(:scheduled_status) do
+ account
+ scheduled_at { 20.hours.from_now }
+end
diff --git a/spec/fabricators/user_fabricator.rb b/spec/fabricators/user_fabricator.rb
index 7dfbdb52d..8f5956501 100644
--- a/spec/fabricators/user_fabricator.rb
+++ b/spec/fabricators/user_fabricator.rb
@@ -3,4 +3,5 @@ Fabricator(:user) do
email { sequence(:email) { |i| "#{i}#{Faker::Internet.email}" } }
password "123456789"
confirmed_at { Time.zone.now }
+ agreement true
end
diff --git a/spec/fixtures/files/4096x4097.png b/spec/fixtures/files/4096x4097.png
new file mode 100644
index 000000000..d1110cc2d
Binary files /dev/null and b/spec/fixtures/files/4096x4097.png differ
diff --git a/spec/fixtures/requests/windows-1251.txt b/spec/fixtures/requests/windows-1251.txt
new file mode 100644
index 000000000..f573e28b2
--- /dev/null
+++ b/spec/fixtures/requests/windows-1251.txt
@@ -0,0 +1,17 @@
+HTTP/1.1 200 OK
+server: nginx
+date: Wed, 12 Dec 2018 13:14:03 GMT
+content-type: text/html
+content-length: 190
+accept-ranges: bytes
+
+
+
+
+
+
+
+
+
+
+
diff --git a/spec/helpers/admin/account_moderation_notes_helper_spec.rb b/spec/helpers/admin/account_moderation_notes_helper_spec.rb
index 01b60c851..c07f6c4b8 100644
--- a/spec/helpers/admin/account_moderation_notes_helper_spec.rb
+++ b/spec/helpers/admin/account_moderation_notes_helper_spec.rb
@@ -1,15 +1,55 @@
+# frozen_string_literal: true
+
require 'rails_helper'
-# Specs in this file have access to a helper object that includes
-# the Admin::AccountModerationNotesHelper. For example:
-#
-# describe Admin::AccountModerationNotesHelper do
-# describe "string concat" do
-# it "concats two strings with spaces" do
-# expect(helper.concat_strings("this","that")).to eq("this that")
-# end
-# end
-# end
RSpec.describe Admin::AccountModerationNotesHelper, type: :helper do
- pending "add some examples to (or delete) #{__FILE__}"
+ include StreamEntriesHelper
+
+ describe '#admin_account_link_to' do
+ context 'account is nil' do
+ let(:account) { nil }
+
+ it 'returns nil' do
+ expect(helper.admin_account_link_to(account)).to be_nil
+ end
+ end
+
+ context 'with account' do
+ let(:account) { Fabricate(:account) }
+
+ it 'calls #link_to' do
+ expect(helper).to receive(:link_to).with(
+ admin_account_path(account.id),
+ class: name_tag_classes(account),
+ title: account.acct
+ )
+
+ helper.admin_account_link_to(account)
+ end
+ end
+ end
+
+ describe '#admin_account_inline_link_to' do
+ context 'account is nil' do
+ let(:account) { nil }
+
+ it 'returns nil' do
+ expect(helper.admin_account_inline_link_to(account)).to be_nil
+ end
+ end
+
+ context 'with account' do
+ let(:account) { Fabricate(:account) }
+
+ it 'calls #link_to' do
+ expect(helper).to receive(:link_to).with(
+ admin_account_path(account.id),
+ class: name_tag_classes(account, true),
+ title: account.acct
+ )
+
+ helper.admin_account_inline_link_to(account)
+ end
+ end
+ end
end
diff --git a/spec/helpers/jsonld_helper_spec.rb b/spec/helpers/jsonld_helper_spec.rb
index a5ab249c2..883a88b14 100644
--- a/spec/helpers/jsonld_helper_spec.rb
+++ b/spec/helpers/jsonld_helper_spec.rb
@@ -22,11 +22,35 @@ describe JsonLdHelper do
end
describe '#first_of_value' do
- pending
+ context 'value.is_a?(Array)' do
+ it 'returns value.first' do
+ value = ['a']
+ expect(helper.first_of_value(value)).to be 'a'
+ end
+ end
+
+ context '!value.is_a?(Array)' do
+ it 'returns value' do
+ value = 'a'
+ expect(helper.first_of_value(value)).to be 'a'
+ end
+ end
end
describe '#supported_context?' do
- pending
+ context "!json.nil? && equals_or_includes?(json['@context'], ActivityPub::TagManager::CONTEXT)" do
+ it 'returns true' do
+ json = { '@context' => ActivityPub::TagManager::CONTEXT }.as_json
+ expect(helper.supported_context?(json)).to be true
+ end
+ end
+
+ context 'else' do
+ it 'returns false' do
+ json = nil
+ expect(helper.supported_context?(json)).to be false
+ end
+ end
end
describe '#fetch_resource' do
diff --git a/spec/lib/activitypub/activity/block_spec.rb b/spec/lib/activitypub/activity/block_spec.rb
index 23c8cc31c..94d37356d 100644
--- a/spec/lib/activitypub/activity/block_spec.rb
+++ b/spec/lib/activitypub/activity/block_spec.rb
@@ -14,15 +14,72 @@ RSpec.describe ActivityPub::Activity::Block do
}.with_indifferent_access
end
- describe '#perform' do
- subject { described_class.new(json, sender) }
+ context 'when the recipient does not follow the sender' do
+ describe '#perform' do
+ subject { described_class.new(json, sender) }
+ before do
+ subject.perform
+ end
+
+ it 'creates a block from sender to recipient' do
+ expect(sender.blocking?(recipient)).to be true
+ end
+ end
+ end
+
+ context 'when the recipient follows the sender' do
before do
- subject.perform
+ recipient.follow!(sender)
end
- it 'creates a block from sender to recipient' do
- expect(sender.blocking?(recipient)).to be true
+ describe '#perform' do
+ subject { described_class.new(json, sender) }
+
+ before do
+ subject.perform
+ end
+
+ it 'creates a block from sender to recipient' do
+ expect(sender.blocking?(recipient)).to be true
+ end
+
+ it 'ensures recipient is not following sender' do
+ expect(recipient.following?(sender)).to be false
+ end
+ end
+ end
+
+ context 'when a matching undo has been received first' do
+ let(:undo_json) do
+ {
+ '@context': 'https://www.w3.org/ns/activitystreams',
+ id: 'bar',
+ type: 'Undo',
+ actor: ActivityPub::TagManager.instance.uri_for(sender),
+ object: json,
+ }.with_indifferent_access
+ end
+
+ before do
+ recipient.follow!(sender)
+ ActivityPub::Activity::Undo.new(undo_json, sender).perform
+ end
+
+ describe '#perform' do
+ subject { described_class.new(json, sender) }
+
+ before do
+ subject.perform
+ end
+
+ it 'does not create a block from sender to recipient' do
+ expect(sender.blocking?(recipient)).to be false
+ end
+
+ it 'ensures recipient is not following sender' do
+ expect(recipient.following?(sender)).to be false
+ end
end
end
end
diff --git a/spec/lib/activitypub/activity/move_spec.rb b/spec/lib/activitypub/activity/move_spec.rb
new file mode 100644
index 000000000..3574f273a
--- /dev/null
+++ b/spec/lib/activitypub/activity/move_spec.rb
@@ -0,0 +1,52 @@
+require 'rails_helper'
+
+RSpec.describe ActivityPub::Activity::Move do
+ let(:follower) { Fabricate(:account) }
+ let(:old_account) { Fabricate(:account) }
+ let(:new_account) { Fabricate(:account) }
+
+ before do
+ follower.follow!(old_account)
+
+ old_account.update!(uri: 'https://example.org/alice', domain: 'example.org', protocol: :activitypub, inbox_url: 'https://example.org/inbox')
+ new_account.update!(uri: 'https://example.com/alice', domain: 'example.com', protocol: :activitypub, inbox_url: 'https://example.com/inbox', also_known_as: [old_account.uri])
+
+ stub_request(:post, 'https://example.org/inbox').to_return(status: 200)
+ stub_request(:post, 'https://example.com/inbox').to_return(status: 200)
+
+ service_stub = double
+ allow(ActivityPub::FetchRemoteAccountService).to receive(:new).and_return(service_stub)
+ allow(service_stub).to receive(:call).and_return(new_account)
+ end
+
+ let(:json) do
+ {
+ '@context': 'https://www.w3.org/ns/activitystreams',
+ id: 'foo',
+ type: 'Move',
+ actor: old_account.uri,
+ object: old_account.uri,
+ target: new_account.uri,
+ }.with_indifferent_access
+ end
+
+ describe '#perform' do
+ subject { described_class.new(json, old_account) }
+
+ before do
+ subject.perform
+ end
+
+ it 'sets moved account on old account' do
+ expect(old_account.reload.moved_to_account_id).to eq new_account.id
+ end
+
+ it 'makes followers unfollow old account' do
+ expect(follower.following?(old_account)).to be false
+ end
+
+ it 'makes followers follow-request the new account' do
+ expect(follower.requested?(new_account)).to be true
+ end
+ end
+end
diff --git a/spec/lib/feed_manager_spec.rb b/spec/lib/feed_manager_spec.rb
index 64e109aec..c506cd87f 100644
--- a/spec/lib/feed_manager_spec.rb
+++ b/spec/lib/feed_manager_spec.rb
@@ -108,14 +108,14 @@ RSpec.describe FeedManager do
it 'returns false for status by followee mentioning another account' do
bob.follow!(alice)
- status = PostStatusService.new.call(alice, 'Hey @jeff')
+ status = PostStatusService.new.call(alice, text: 'Hey @jeff')
expect(FeedManager.instance.filter?(:home, status, bob.id)).to be false
end
it 'returns true for status by followee mentioning blocked account' do
bob.block!(jeff)
bob.follow!(alice)
- status = PostStatusService.new.call(alice, 'Hey @jeff')
+ status = PostStatusService.new.call(alice, text: 'Hey @jeff')
expect(FeedManager.instance.filter?(:home, status, bob.id)).to be true
end
@@ -155,7 +155,7 @@ RSpec.describe FeedManager do
context 'for mentions feed' do
it 'returns true for status that mentions blocked account' do
bob.block!(jeff)
- status = PostStatusService.new.call(alice, 'Hey @jeff')
+ status = PostStatusService.new.call(alice, text: 'Hey @jeff')
expect(FeedManager.instance.filter?(:mentions, status, bob.id)).to be true
end
diff --git a/spec/mailers/admin_mailer_spec.rb b/spec/mailers/admin_mailer_spec.rb
new file mode 100644
index 000000000..4a8ef7b5e
--- /dev/null
+++ b/spec/mailers/admin_mailer_spec.rb
@@ -0,0 +1,22 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe AdminMailer, type: :mailer do
+ describe '.new_report' do
+ let(:sender) { Fabricate(:account, username: 'John', user: Fabricate(:user)) }
+ let(:recipient) { Fabricate(:account, username: 'Mike', user: Fabricate(:user, locale: :en)) }
+ let(:report) { Fabricate(:report, account: sender, target_account: recipient) }
+ let(:mail) { described_class.new_report(recipient, report) }
+
+ it 'renders the headers' do
+ expect(mail.subject).to eq("New report for cb6e6126.ngrok.io (##{report.id})")
+ expect(mail.to).to eq [recipient.user_email]
+ expect(mail.from).to eq ['notifications@localhost']
+ end
+
+ it 'renders the body' do
+ expect(mail.body.encoded).to eq("Mike,\r\n\r\nJohn has reported Mike\r\n\r\nView: https://cb6e6126.ngrok.io/admin/reports/#{report.id}\r\n")
+ end
+ end
+end
diff --git a/spec/mailers/notification_mailer_spec.rb b/spec/mailers/notification_mailer_spec.rb
index 1be01e8ba..38916b54f 100644
--- a/spec/mailers/notification_mailer_spec.rb
+++ b/spec/mailers/notification_mailer_spec.rb
@@ -126,19 +126,7 @@ RSpec.describe NotificationMailer, type: :mailer do
end
end
- it 'includes activities since the date specified by :since option' do
- receiver.update!(last_emailed_at: '2000-02-01T00:00:00Z', current_sign_in_at: '2000-03-01T00:00:00Z')
- mail = NotificationMailer.digest(receiver.account, since: Time.parse('2000-01-01T00:00:00Z'))
- expect(mail.body.encoded).to include 'Jan 01, 2000, 00:00'
- end
-
- it 'includes activities since the receiver was last emailed if :since option is unavailable' do
- receiver.update!(last_emailed_at: '2000-02-01T00:00:00Z', current_sign_in_at: '2000-03-01T00:00:00Z')
- mail = NotificationMailer.digest(receiver.account)
- expect(mail.body.encoded).to include 'Feb 01, 2000, 00:00'
- end
-
- it 'includes activities since the receiver last signed in if :since option and the last emailed date are unavailable' do
+ it 'includes activities since the receiver last signed in' do
receiver.update!(last_emailed_at: nil, current_sign_in_at: '2000-03-01T00:00:00Z')
mail = NotificationMailer.digest(receiver.account)
expect(mail.body.encoded).to include 'Mar 01, 2000, 00:00'
diff --git a/spec/mailers/previews/user_mailer_preview.rb b/spec/mailers/previews/user_mailer_preview.rb
index d9cdb9264..53c836494 100644
--- a/spec/mailers/previews/user_mailer_preview.rb
+++ b/spec/mailers/previews/user_mailer_preview.rb
@@ -39,4 +39,9 @@ class UserMailerPreview < ActionMailer::Preview
def backup_ready
UserMailer.backup_ready(User.first, Backup.first)
end
+
+ # Preview this email at http://localhost:3000/rails/mailers/user_mailer/warning
+ def warning
+ UserMailer.warning(User.first, AccountWarning.new(text: '', action: :silence))
+ end
end
diff --git a/spec/models/account_filter_spec.rb b/spec/models/account_filter_spec.rb
index 0a0252642..176a0eeac 100644
--- a/spec/models/account_filter_spec.rb
+++ b/spec/models/account_filter_spec.rb
@@ -2,10 +2,10 @@ require 'rails_helper'
describe AccountFilter do
describe 'with empty params' do
- it 'defaults to recent account list' do
+ it 'defaults to recent local not-suspended account list' do
filter = described_class.new({})
- expect(filter.results).to eq Account.recent
+ expect(filter.results).to eq Account.local.recent.without_suspended
end
end
@@ -17,23 +17,6 @@ describe AccountFilter do
end
end
- describe 'when an IP address is provided' do
- it 'filters with IP when valid' do
- filter = described_class.new(ip: '127.0.0.1')
- allow(User).to receive(:with_recent_ip_address).and_return(User.none)
-
- filter.results
- expect(User).to have_received(:with_recent_ip_address).with('127.0.0.1')
- end
-
- it 'skips IP when invalid' do
- filter = described_class.new(ip: '345.678.901.234')
- expect(User).not_to receive(:with_recent_ip_address)
-
- filter.results
- end
- end
-
describe 'with valid params' do
it 'combines filters on Account' do
filter = described_class.new(
@@ -60,13 +43,13 @@ describe AccountFilter do
end
describe 'that call account methods' do
- %i(local remote silenced alphabetic suspended).each do |option|
+ %i(local remote silenced suspended).each do |option|
it "delegates the #{option} option" do
allow(Account).to receive(option).and_return(Account.none)
filter = described_class.new({ option => true })
filter.results
- expect(Account).to have_received(option)
+ expect(Account).to have_received(option).at_least(1)
end
end
end
diff --git a/spec/models/account_pin_spec.rb b/spec/models/account_pin_spec.rb
deleted file mode 100644
index 4f226b127..000000000
--- a/spec/models/account_pin_spec.rb
+++ /dev/null
@@ -1,5 +0,0 @@
-require 'rails_helper'
-
-RSpec.describe AccountPin, type: :model do
- pending "add some examples to (or delete) #{__FILE__}"
-end
diff --git a/spec/models/account_spec.rb b/spec/models/account_spec.rb
index b25b66d2d..f7f78d34c 100644
--- a/spec/models/account_spec.rb
+++ b/spec/models/account_spec.rb
@@ -760,24 +760,6 @@ RSpec.describe Account, type: :model do
expect(Account.suspended).to match_array([account_1])
end
end
-
- describe 'without_followers' do
- it 'returns a relation of accounts without followers' do
- account_1 = Fabricate(:account)
- account_2 = Fabricate(:account)
- Fabricate(:follow, account: account_1, target_account: account_2)
- expect(Account.without_followers).to match_array([account_1])
- end
- end
-
- describe 'with_followers' do
- it 'returns a relation of accounts with followers' do
- account_1 = Fabricate(:account)
- account_2 = Fabricate(:account)
- Fabricate(:follow, account: account_1, target_account: account_2)
- expect(Account.with_followers).to match_array([account_2])
- end
- end
end
context 'when is local' do
diff --git a/spec/models/account_stat_spec.rb b/spec/models/account_stat_spec.rb
new file mode 100644
index 000000000..a94185109
--- /dev/null
+++ b/spec/models/account_stat_spec.rb
@@ -0,0 +1,4 @@
+require 'rails_helper'
+
+RSpec.describe AccountStat, type: :model do
+end
diff --git a/spec/models/account_tag_stat_spec.rb b/spec/models/account_tag_stat_spec.rb
new file mode 100644
index 000000000..6d3057f35
--- /dev/null
+++ b/spec/models/account_tag_stat_spec.rb
@@ -0,0 +1,38 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe AccountTagStat, type: :model do
+ key = 'accounts_count'
+ let(:account_tag_stat) { Fabricate(:tag).account_tag_stat }
+
+ describe '#increment_count!' do
+ it 'calls #update' do
+ args = { key => account_tag_stat.public_send(key) + 1 }
+ expect(account_tag_stat).to receive(:update).with(args)
+ account_tag_stat.increment_count!(key)
+ end
+
+ it 'increments value by 1' do
+ expect do
+ account_tag_stat.increment_count!(key)
+ end.to change { account_tag_stat.accounts_count }.by(1)
+ end
+ end
+
+ describe '#decrement_count!' do
+ it 'calls #update' do
+ args = { key => [account_tag_stat.public_send(key) - 1, 0].max }
+ expect(account_tag_stat).to receive(:update).with(args)
+ account_tag_stat.decrement_count!(key)
+ end
+
+ it 'decrements value by 1' do
+ account_tag_stat.update(key => 1)
+
+ expect do
+ account_tag_stat.decrement_count!(key)
+ end.to change { account_tag_stat.accounts_count }.by(-1)
+ end
+ end
+end
diff --git a/spec/models/admin/account_action_spec.rb b/spec/models/admin/account_action_spec.rb
new file mode 100644
index 000000000..8c55cf4dd
--- /dev/null
+++ b/spec/models/admin/account_action_spec.rb
@@ -0,0 +1,4 @@
+require 'rails_helper'
+
+RSpec.describe Admin::AccountAction, type: :model do
+end
diff --git a/spec/models/concerns/status_threading_concern_spec.rb b/spec/models/concerns/status_threading_concern_spec.rb
index e5736a307..94c2d5fc2 100644
--- a/spec/models/concerns/status_threading_concern_spec.rb
+++ b/spec/models/concerns/status_threading_concern_spec.rb
@@ -118,5 +118,15 @@ describe StatusThreadingConcern do
viewer.block_domain!('example.com')
expect(status.descendants(4, viewer)).to_not include(reply2)
end
+
+ it 'promotes self-replies to the top while leaving the rest in order' do
+ a = Fabricate(:status, account: alice)
+ d = Fabricate(:status, account: jeff, thread: a)
+ e = Fabricate(:status, account: bob, thread: d)
+ c = Fabricate(:status, account: alice, thread: a)
+ f = Fabricate(:status, account: bob, thread: c)
+
+ expect(a.descendants(20)).to eq [c, d, e, f]
+ end
end
end
diff --git a/spec/models/custom_emoji_filter_spec.rb b/spec/models/custom_emoji_filter_spec.rb
new file mode 100644
index 000000000..d859f5c5f
--- /dev/null
+++ b/spec/models/custom_emoji_filter_spec.rb
@@ -0,0 +1,70 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe CustomEmojiFilter do
+ describe '#results' do
+ let!(:custom_emoji_0) { Fabricate(:custom_emoji, domain: 'a') }
+ let!(:custom_emoji_1) { Fabricate(:custom_emoji, domain: 'b') }
+ let!(:custom_emoji_2) { Fabricate(:custom_emoji, domain: nil, shortcode: 'hoge') }
+
+ subject { described_class.new(params).results }
+
+ context 'params have values' do
+ context 'local' do
+ let(:params) { { local: true } }
+
+ it 'returns ActiveRecord::Relation' do
+ expect(subject).to be_kind_of(ActiveRecord::Relation)
+ expect(subject).to match_array([custom_emoji_2])
+ end
+ end
+
+ context 'remote' do
+ let(:params) { { remote: true } }
+
+ it 'returns ActiveRecord::Relation' do
+ expect(subject).to be_kind_of(ActiveRecord::Relation)
+ expect(subject).to match_array([custom_emoji_0, custom_emoji_1])
+ end
+ end
+
+ context 'by_domain' do
+ let(:params) { { by_domain: 'a' } }
+
+ it 'returns ActiveRecord::Relation' do
+ expect(subject).to be_kind_of(ActiveRecord::Relation)
+ expect(subject).to match_array([custom_emoji_0])
+ end
+ end
+
+ context 'shortcode' do
+ let(:params) { { shortcode: 'hoge' } }
+
+ it 'returns ActiveRecord::Relation' do
+ expect(subject).to be_kind_of(ActiveRecord::Relation)
+ expect(subject).to match_array([custom_emoji_2])
+ end
+ end
+
+ context 'else' do
+ let(:params) { { else: 'else' } }
+
+ it 'raises RuntimeError' do
+ expect do
+ subject
+ end.to raise_error(RuntimeError, /Unknown filter: else/)
+ end
+ end
+ end
+
+ context 'params without value' do
+ let(:params) { { hoge: nil } }
+
+ it 'returns ActiveRecord::Relation' do
+ expect(subject).to be_kind_of(ActiveRecord::Relation)
+ expect(subject).to match_array([custom_emoji_0, custom_emoji_1, custom_emoji_2])
+ end
+ end
+ end
+end
diff --git a/spec/models/custom_emoji_spec.rb b/spec/models/custom_emoji_spec.rb
index 320a258d3..9de218b4f 100644
--- a/spec/models/custom_emoji_spec.rb
+++ b/spec/models/custom_emoji_spec.rb
@@ -75,4 +75,13 @@ RSpec.describe CustomEmoji, type: :model do
end
end
end
+
+ describe 'pre_validation' do
+ let(:custom_emoji) { Fabricate(:custom_emoji, domain: 'wWw.MaStOdOn.CoM') }
+
+ it 'should downcase' do
+ custom_emoji.valid?
+ expect(custom_emoji.domain).to eq('www.mastodon.com')
+ end
+ end
end
diff --git a/spec/models/identity_spec.rb b/spec/models/identity_spec.rb
index 53f355410..689c9b797 100644
--- a/spec/models/identity_spec.rb
+++ b/spec/models/identity_spec.rb
@@ -1,5 +1,16 @@
require 'rails_helper'
RSpec.describe Identity, type: :model do
- pending "add some examples to (or delete) #{__FILE__}"
+ describe '.find_for_oauth' do
+ let(:auth) { Fabricate(:identity, user: Fabricate(:user)) }
+
+ it 'calls .find_or_create_by' do
+ expect(described_class).to receive(:find_or_create_by).with(uid: auth.uid, provider: auth.provider)
+ described_class.find_for_oauth(auth)
+ end
+
+ it 'returns an instance of Identity' do
+ expect(described_class.find_for_oauth(auth)).to be_instance_of Identity
+ end
+ end
end
diff --git a/spec/models/notification_spec.rb b/spec/models/notification_spec.rb
index be5545646..59c582cde 100644
--- a/spec/models/notification_spec.rb
+++ b/spec/models/notification_spec.rb
@@ -1,10 +1,6 @@
require 'rails_helper'
RSpec.describe Notification, type: :model do
- describe '#from_account' do
- pending
- end
-
describe '#target_status' do
let(:notification) { Fabricate(:notification, activity: activity) }
let(:status) { Fabricate(:status) }
@@ -101,7 +97,7 @@ RSpec.describe Notification, type: :model do
before do
allow(accounts_with_ids).to receive(:[]).with(stale_account1.id).and_return(account1)
allow(accounts_with_ids).to receive(:[]).with(stale_account2.id).and_return(account2)
- allow(Account).to receive_message_chain(:where, :each_with_object).and_return(accounts_with_ids)
+ allow(Account).to receive_message_chain(:where, :includes, :each_with_object).and_return(accounts_with_ids)
end
let(:cached_items) do
diff --git a/spec/models/scheduled_status_spec.rb b/spec/models/scheduled_status_spec.rb
new file mode 100644
index 000000000..f8c9d8b81
--- /dev/null
+++ b/spec/models/scheduled_status_spec.rb
@@ -0,0 +1,4 @@
+require 'rails_helper'
+
+RSpec.describe ScheduledStatus, type: :model do
+end
diff --git a/spec/models/status_stat_spec.rb b/spec/models/status_stat_spec.rb
index 5e9351aff..af1a6f288 100644
--- a/spec/models/status_stat_spec.rb
+++ b/spec/models/status_stat_spec.rb
@@ -1,5 +1,4 @@
require 'rails_helper'
RSpec.describe StatusStat, type: :model do
- pending "add some examples to (or delete) #{__FILE__}"
end
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb
index 8c6778edc..856254ce4 100644
--- a/spec/models/user_spec.rb
+++ b/spec/models/user_spec.rb
@@ -89,18 +89,6 @@ RSpec.describe User, type: :model do
expect(User.matches_email('specified')).to match_array([specified])
end
end
-
- describe 'with_recent_ip_address' do
- it 'returns a relation of users who is, or was at last time, online with the given IP address' do
- specifieds = [
- Fabricate(:user, current_sign_in_ip: '0.0.0.42', last_sign_in_ip: '0.0.0.0'),
- Fabricate(:user, current_sign_in_ip: nil, last_sign_in_ip: '0.0.0.42')
- ]
- Fabricate(:user, current_sign_in_ip: '0.0.0.0', last_sign_in_ip: '0.0.0.0')
-
- expect(User.with_recent_ip_address('0.0.0.42')).to match_array(specifieds)
- end
- end
end
let(:account) { Fabricate(:account, username: 'alice') }
@@ -118,19 +106,19 @@ RSpec.describe User, type: :model do
end
it 'should allow a non-blacklisted user to be created' do
- user = User.new(email: 'foo@example.com', account: account, password: password)
+ user = User.new(email: 'foo@example.com', account: account, password: password, agreement: true)
expect(user.valid?).to be_truthy
end
it 'should not allow a blacklisted user to be created' do
- user = User.new(email: 'foo@mvrht.com', account: account, password: password)
+ user = User.new(email: 'foo@mvrht.com', account: account, password: password, agreement: true)
expect(user.valid?).to be_falsey
end
it 'should not allow a subdomain blacklisted user to be created' do
- user = User.new(email: 'foo@mvrht.com.topdomain.tld', account: account, password: password)
+ user = User.new(email: 'foo@mvrht.com.topdomain.tld', account: account, password: password, agreement: true)
expect(user.valid?).to be_falsey
end
@@ -222,17 +210,17 @@ RSpec.describe User, type: :model do
end
it 'should not allow a user to be created unless they are whitelisted' do
- user = User.new(email: 'foo@example.com', account: account, password: password)
+ user = User.new(email: 'foo@example.com', account: account, password: password, agreement: true)
expect(user.valid?).to be_falsey
end
it 'should allow a user to be created if they are whitelisted' do
- user = User.new(email: 'foo@mastodon.space', account: account, password: password)
+ user = User.new(email: 'foo@mastodon.space', account: account, password: password, agreement: true)
expect(user.valid?).to be_truthy
end
it 'should not allow a user with a whitelisted top domain as subdomain in their email address to be created' do
- user = User.new(email: 'foo@mastodon.space.userdomain.com', account: account, password: password)
+ user = User.new(email: 'foo@mastodon.space.userdomain.com', account: account, password: password, agreement: true)
expect(user.valid?).to be_falsey
end
@@ -254,7 +242,7 @@ RSpec.describe User, type: :model do
it_behaves_like 'Settings-extended' do
def create!
- User.create!(account: Fabricate(:account), email: 'foo@mastodon.space', password: 'abcd1234')
+ User.create!(account: Fabricate(:account), email: 'foo@mastodon.space', password: 'abcd1234', agreement: true)
end
def fabricate
diff --git a/spec/policies/account_moderation_note_policy_spec.rb b/spec/policies/account_moderation_note_policy_spec.rb
new file mode 100644
index 000000000..bb7af94e4
--- /dev/null
+++ b/spec/policies/account_moderation_note_policy_spec.rb
@@ -0,0 +1,52 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+require 'pundit/rspec'
+
+RSpec.describe AccountModerationNotePolicy do
+ let(:subject) { described_class }
+ let(:admin) { Fabricate(:user, admin: true).account }
+ let(:john) { Fabricate(:user).account }
+
+ permissions :create? do
+ context 'staff' do
+ it 'grants to create' do
+ expect(subject).to permit(admin, AccountModerationNotePolicy)
+ end
+ end
+
+ context 'not staff' do
+ it 'denies to create' do
+ expect(subject).to_not permit(john, AccountModerationNotePolicy)
+ end
+ end
+ end
+
+ permissions :destroy? do
+ let(:account_moderation_note) do
+ Fabricate(:account_moderation_note,
+ account: john,
+ target_account: Fabricate(:account))
+ end
+
+ context 'admin' do
+ it 'grants to destroy' do
+ expect(subject).to permit(admin, AccountModerationNotePolicy)
+ end
+ end
+
+ context 'owner' do
+ it 'grants to destroy' do
+ expect(subject).to permit(john, account_moderation_note)
+ end
+ end
+
+ context 'neither admin nor owner' do
+ let(:kevin) { Fabricate(:user).account }
+
+ it 'denies to destroy' do
+ expect(subject).to_not permit(kevin, account_moderation_note)
+ end
+ end
+ end
+end
diff --git a/spec/policies/account_policy_spec.rb b/spec/policies/account_policy_spec.rb
new file mode 100644
index 000000000..6648b0888
--- /dev/null
+++ b/spec/policies/account_policy_spec.rb
@@ -0,0 +1,86 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+require 'pundit/rspec'
+
+RSpec.describe AccountPolicy do
+ let(:subject) { described_class }
+ let(:admin) { Fabricate(:user, admin: true).account }
+ let(:john) { Fabricate(:user).account }
+
+ permissions :index?, :show?, :unsuspend?, :unsilence?, :remove_avatar?, :remove_header? do
+ context 'staff' do
+ it 'permits' do
+ expect(subject).to permit(admin)
+ end
+ end
+
+ context 'not staff' do
+ it 'denies' do
+ expect(subject).to_not permit(john)
+ end
+ end
+ end
+
+ permissions :redownload?, :subscribe?, :unsubscribe? do
+ context 'admin' do
+ it 'permits' do
+ expect(subject).to permit(admin)
+ end
+ end
+
+ context 'not admin' do
+ it 'denies' do
+ expect(subject).to_not permit(john)
+ end
+ end
+ end
+
+ permissions :suspend?, :silence? do
+ let(:staff) { Fabricate(:user, admin: true).account }
+
+ context 'staff' do
+ context 'record is staff' do
+ it 'denies' do
+ expect(subject).to_not permit(admin, staff)
+ end
+ end
+
+ context 'record is not staff' do
+ it 'permits' do
+ expect(subject).to permit(admin, john)
+ end
+ end
+ end
+
+ context 'not staff' do
+ it 'denies' do
+ expect(subject).to_not permit(john, Account)
+ end
+ end
+ end
+
+ permissions :memorialize? do
+ let(:other_admin) { Fabricate(:user, admin: true).account }
+
+ context 'admin' do
+ context 'record is admin' do
+ it 'denies' do
+ expect(subject).to_not permit(admin, other_admin)
+ end
+ end
+
+ context 'record is not admin' do
+ it 'permits' do
+ expect(subject).to permit(admin, john)
+ end
+ end
+ end
+
+ context 'not admin' do
+ it 'denies' do
+ expect(subject).to_not permit(john, Account)
+ end
+ end
+ end
+end
diff --git a/spec/policies/backup_policy_spec.rb b/spec/policies/backup_policy_spec.rb
new file mode 100644
index 000000000..80407e12f
--- /dev/null
+++ b/spec/policies/backup_policy_spec.rb
@@ -0,0 +1,45 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+require 'pundit/rspec'
+
+RSpec.describe BackupPolicy do
+ let(:subject) { described_class }
+ let(:john) { Fabricate(:user).account }
+
+ permissions :create? do
+ context 'not user_signed_in?' do
+ it 'denies' do
+ expect(subject).to_not permit(nil, Backup)
+ end
+ end
+
+ context 'user_signed_in?' do
+ context 'no backups' do
+ it 'permits' do
+ expect(subject).to permit(john, Backup)
+ end
+ end
+
+ context 'backups are too old' do
+ it 'permits' do
+ travel(-8.days) do
+ Fabricate(:backup, user: john.user)
+ end
+
+ expect(subject).to permit(john, Backup)
+ end
+ end
+
+ context 'backups are newer' do
+ it 'denies' do
+ travel(-3.days) do
+ Fabricate(:backup, user: john.user)
+ end
+
+ expect(subject).to_not permit(john, Backup)
+ end
+ end
+ end
+ end
+end
diff --git a/spec/policies/custom_emoji_policy_spec.rb b/spec/policies/custom_emoji_policy_spec.rb
new file mode 100644
index 000000000..8def88212
--- /dev/null
+++ b/spec/policies/custom_emoji_policy_spec.rb
@@ -0,0 +1,38 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+require 'pundit/rspec'
+
+RSpec.describe CustomEmojiPolicy do
+ let(:subject) { described_class }
+ let(:admin) { Fabricate(:user, admin: true).account }
+ let(:john) { Fabricate(:user).account }
+
+ permissions :index?, :enable?, :disable? do
+ context 'staff' do
+ it 'permits' do
+ expect(subject).to permit(admin, CustomEmoji)
+ end
+ end
+
+ context 'not staff' do
+ it 'denies' do
+ expect(subject).to_not permit(john, CustomEmoji)
+ end
+ end
+ end
+
+ permissions :create?, :update?, :copy?, :destroy? do
+ context 'admin' do
+ it 'permits' do
+ expect(subject).to permit(admin, CustomEmoji)
+ end
+ end
+
+ context 'not admin' do
+ it 'denies' do
+ expect(subject).to_not permit(john, CustomEmoji)
+ end
+ end
+ end
+end
diff --git a/spec/policies/domain_block_policy_spec.rb b/spec/policies/domain_block_policy_spec.rb
new file mode 100644
index 000000000..aea50ec0f
--- /dev/null
+++ b/spec/policies/domain_block_policy_spec.rb
@@ -0,0 +1,24 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+require 'pundit/rspec'
+
+RSpec.describe DomainBlockPolicy do
+ let(:subject) { described_class }
+ let(:admin) { Fabricate(:user, admin: true).account }
+ let(:john) { Fabricate(:user).account }
+
+ permissions :index?, :show?, :create?, :destroy? do
+ context 'admin' do
+ it 'permits' do
+ expect(subject).to permit(admin, DomainBlock)
+ end
+ end
+
+ context 'not admin' do
+ it 'denies' do
+ expect(subject).to_not permit(john, DomainBlock)
+ end
+ end
+ end
+end
diff --git a/spec/policies/email_domain_block_policy_spec.rb b/spec/policies/email_domain_block_policy_spec.rb
new file mode 100644
index 000000000..a3e825e07
--- /dev/null
+++ b/spec/policies/email_domain_block_policy_spec.rb
@@ -0,0 +1,24 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+require 'pundit/rspec'
+
+RSpec.describe EmailDomainBlockPolicy do
+ let(:subject) { described_class }
+ let(:admin) { Fabricate(:user, admin: true).account }
+ let(:john) { Fabricate(:user).account }
+
+ permissions :index?, :create?, :destroy? do
+ context 'admin' do
+ it 'permits' do
+ expect(subject).to permit(admin, EmailDomainBlock)
+ end
+ end
+
+ context 'not admin' do
+ it 'denies' do
+ expect(subject).to_not permit(john, EmailDomainBlock)
+ end
+ end
+ end
+end
diff --git a/spec/policies/instance_policy_spec.rb b/spec/policies/instance_policy_spec.rb
new file mode 100644
index 000000000..77a3bde3f
--- /dev/null
+++ b/spec/policies/instance_policy_spec.rb
@@ -0,0 +1,24 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+require 'pundit/rspec'
+
+RSpec.describe InstancePolicy do
+ let(:subject) { described_class }
+ let(:admin) { Fabricate(:user, admin: true).account }
+ let(:john) { Fabricate(:user).account }
+
+ permissions :index? do
+ context 'admin' do
+ it 'permits' do
+ expect(subject).to permit(admin, Instance)
+ end
+ end
+
+ context 'not admin' do
+ it 'denies' do
+ expect(subject).to_not permit(john, Instance)
+ end
+ end
+ end
+end
diff --git a/spec/policies/invite_policy_spec.rb b/spec/policies/invite_policy_spec.rb
new file mode 100644
index 000000000..e391455be
--- /dev/null
+++ b/spec/policies/invite_policy_spec.rb
@@ -0,0 +1,94 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+require 'pundit/rspec'
+
+RSpec.describe InvitePolicy do
+ let(:subject) { described_class }
+ let(:admin) { Fabricate(:user, admin: true).account }
+ let(:john) { Fabricate(:user).account }
+
+ permissions :index? do
+ context 'staff?' do
+ it 'permits' do
+ expect(subject).to permit(admin, Invite)
+ end
+ end
+ end
+
+ permissions :create? do
+ context 'min_required_role?' do
+ it 'permits' do
+ allow_any_instance_of(described_class).to receive(:min_required_role?) { true }
+ expect(subject).to permit(john, Invite)
+ end
+ end
+
+ context 'not min_required_role?' do
+ it 'denies' do
+ allow_any_instance_of(described_class).to receive(:min_required_role?) { false }
+ expect(subject).to_not permit(john, Invite)
+ end
+ end
+ end
+
+ permissions :deactivate_all? do
+ context 'admin?' do
+ it 'permits' do
+ expect(subject).to permit(admin, Invite)
+ end
+ end
+
+ context 'not admin?' do
+ it 'denies' do
+ expect(subject).to_not permit(john, Invite)
+ end
+ end
+ end
+
+ permissions :destroy? do
+ context 'owner?' do
+ it 'permits' do
+ expect(subject).to permit(john, Fabricate(:invite, user: john.user))
+ end
+ end
+
+ context 'not owner?' do
+ context 'Setting.min_invite_role == "admin"' do
+ before do
+ Setting.min_invite_role = 'admin'
+ end
+
+ context 'admin?' do
+ it 'permits' do
+ expect(subject).to permit(admin, Fabricate(:invite))
+ end
+ end
+
+ context 'not admin?' do
+ it 'denies' do
+ expect(subject).to_not permit(john, Fabricate(:invite))
+ end
+ end
+ end
+
+ context 'Setting.min_invite_role != "admin"' do
+ before do
+ Setting.min_invite_role = 'else'
+ end
+
+ context 'staff?' do
+ it 'permits' do
+ expect(subject).to permit(admin, Fabricate(:invite))
+ end
+ end
+
+ context 'not staff?' do
+ it 'denies' do
+ expect(subject).to_not permit(john, Fabricate(:invite))
+ end
+ end
+ end
+ end
+ end
+end
diff --git a/spec/policies/relay_policy_spec.rb b/spec/policies/relay_policy_spec.rb
new file mode 100644
index 000000000..640f27d54
--- /dev/null
+++ b/spec/policies/relay_policy_spec.rb
@@ -0,0 +1,24 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+require 'pundit/rspec'
+
+RSpec.describe RelayPolicy do
+ let(:subject) { described_class }
+ let(:admin) { Fabricate(:user, admin: true).account }
+ let(:john) { Fabricate(:user).account }
+
+ permissions :update? do
+ context 'admin?' do
+ it 'permits' do
+ expect(subject).to permit(admin, Relay)
+ end
+ end
+
+ context '!admin?' do
+ it 'denies' do
+ expect(subject).to_not permit(john, Relay)
+ end
+ end
+ end
+end
diff --git a/spec/policies/report_note_policy_spec.rb b/spec/policies/report_note_policy_spec.rb
new file mode 100644
index 000000000..596d7d7a9
--- /dev/null
+++ b/spec/policies/report_note_policy_spec.rb
@@ -0,0 +1,48 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+require 'pundit/rspec'
+
+RSpec.describe ReportNotePolicy do
+ let(:subject) { described_class }
+ let(:admin) { Fabricate(:user, admin: true).account }
+ let(:john) { Fabricate(:user).account }
+
+ permissions :create? do
+ context 'staff?' do
+ it 'permits' do
+ expect(subject).to permit(admin, ReportNote)
+ end
+ end
+
+ context '!staff?' do
+ it 'denies' do
+ expect(subject).to_not permit(john, ReportNote)
+ end
+ end
+ end
+
+ permissions :destroy? do
+ context 'admin?' do
+ it 'permit' do
+ expect(subject).to permit(admin, ReportNote)
+ end
+ end
+
+ context 'admin?' do
+ context 'owner?' do
+ it 'permit' do
+ report_note = Fabricate(:report_note, account: john)
+ expect(subject).to permit(john, report_note)
+ end
+ end
+
+ context '!owner?' do
+ it 'denies' do
+ report_note = Fabricate(:report_note)
+ expect(subject).to_not permit(john, report_note)
+ end
+ end
+ end
+ end
+end
diff --git a/spec/policies/report_policy_spec.rb b/spec/policies/report_policy_spec.rb
new file mode 100644
index 000000000..c9ae1e87a
--- /dev/null
+++ b/spec/policies/report_policy_spec.rb
@@ -0,0 +1,24 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+require 'pundit/rspec'
+
+RSpec.describe ReportPolicy do
+ let(:subject) { described_class }
+ let(:admin) { Fabricate(:user, admin: true).account }
+ let(:john) { Fabricate(:user).account }
+
+ permissions :update?, :index?, :show? do
+ context 'staff?' do
+ it 'permits' do
+ expect(subject).to permit(admin, Report)
+ end
+ end
+
+ context '!staff?' do
+ it 'denies' do
+ expect(subject).to_not permit(john, Report)
+ end
+ end
+ end
+end
diff --git a/spec/policies/settings_policy_spec.rb b/spec/policies/settings_policy_spec.rb
new file mode 100644
index 000000000..92f1f4869
--- /dev/null
+++ b/spec/policies/settings_policy_spec.rb
@@ -0,0 +1,24 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+require 'pundit/rspec'
+
+RSpec.describe SettingsPolicy do
+ let(:subject) { described_class }
+ let(:admin) { Fabricate(:user, admin: true).account }
+ let(:john) { Fabricate(:user).account }
+
+ permissions :update?, :show? do
+ context 'admin?' do
+ it 'permits' do
+ expect(subject).to permit(admin, Settings)
+ end
+ end
+
+ context '!admin?' do
+ it 'denies' do
+ expect(subject).to_not permit(john, Settings)
+ end
+ end
+ end
+end
diff --git a/spec/policies/status_policy_spec.rb b/spec/policies/status_policy_spec.rb
index 837fa9cee..8bce29cad 100644
--- a/spec/policies/status_policy_spec.rb
+++ b/spec/policies/status_policy_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
require 'pundit/rspec'
@@ -118,4 +120,30 @@ RSpec.describe StatusPolicy, type: :model do
expect(subject).to_not permit(nil, status)
end
end
+
+ permissions :favourite? do
+ it 'grants access when viewer is not blocked' do
+ follow = Fabricate(:follow)
+ status.account = follow.target_account
+
+ expect(subject).to permit(follow.account, status)
+ end
+
+ it 'denies when viewer is blocked' do
+ block = Fabricate(:block)
+ status.account = block.target_account
+
+ expect(subject).to_not permit(block.account, status)
+ end
+ end
+
+ permissions :index?, :update? do
+ it 'grants access if staff' do
+ expect(subject).to permit(admin.account)
+ end
+
+ it 'denies access unless staff' do
+ expect(subject).to_not permit(alice)
+ end
+ end
end
diff --git a/spec/policies/subscription_policy_spec.rb b/spec/policies/subscription_policy_spec.rb
new file mode 100644
index 000000000..21d60c15f
--- /dev/null
+++ b/spec/policies/subscription_policy_spec.rb
@@ -0,0 +1,24 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+require 'pundit/rspec'
+
+RSpec.describe SubscriptionPolicy do
+ let(:subject) { described_class }
+ let(:admin) { Fabricate(:user, admin: true).account }
+ let(:john) { Fabricate(:user).account }
+
+ permissions :index? do
+ context 'admin?' do
+ it 'permits' do
+ expect(subject).to permit(admin, Subscription)
+ end
+ end
+
+ context '!admin?' do
+ it 'denies' do
+ expect(subject).to_not permit(john, Subscription)
+ end
+ end
+ end
+end
diff --git a/spec/policies/tag_policy_spec.rb b/spec/policies/tag_policy_spec.rb
new file mode 100644
index 000000000..c7afaa7c9
--- /dev/null
+++ b/spec/policies/tag_policy_spec.rb
@@ -0,0 +1,24 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+require 'pundit/rspec'
+
+RSpec.describe TagPolicy do
+ let(:subject) { described_class }
+ let(:admin) { Fabricate(:user, admin: true).account }
+ let(:john) { Fabricate(:user).account }
+
+ permissions :index?, :hide?, :unhide? do
+ context 'staff?' do
+ it 'permits' do
+ expect(subject).to permit(admin, Tag)
+ end
+ end
+
+ context '!staff?' do
+ it 'denies' do
+ expect(subject).to_not permit(john, Tag)
+ end
+ end
+ end
+end
diff --git a/spec/policies/user_policy_spec.rb b/spec/policies/user_policy_spec.rb
new file mode 100644
index 000000000..e37904f04
--- /dev/null
+++ b/spec/policies/user_policy_spec.rb
@@ -0,0 +1,167 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+require 'pundit/rspec'
+
+RSpec.describe UserPolicy do
+ let(:subject) { described_class }
+ let(:admin) { Fabricate(:user, admin: true).account }
+ let(:john) { Fabricate(:user).account }
+
+ permissions :reset_password?, :change_email? do
+ context 'staff?' do
+ context '!record.staff?' do
+ it 'permits' do
+ expect(subject).to permit(admin, john.user)
+ end
+ end
+
+ context 'record.staff?' do
+ it 'denies' do
+ expect(subject).to_not permit(admin, admin.user)
+ end
+ end
+ end
+
+ context '!staff?' do
+ it 'denies' do
+ expect(subject).to_not permit(john, User)
+ end
+ end
+ end
+
+ permissions :disable_2fa? do
+ context 'admin?' do
+ context '!record.staff?' do
+ it 'permits' do
+ expect(subject).to permit(admin, john.user)
+ end
+ end
+
+ context 'record.staff?' do
+ it 'denies' do
+ expect(subject).to_not permit(admin, admin.user)
+ end
+ end
+ end
+
+ context '!admin?' do
+ it 'denies' do
+ expect(subject).to_not permit(john, User)
+ end
+ end
+ end
+
+ permissions :confirm? do
+ context 'staff?' do
+ context '!record.confirmed?' do
+ it 'permits' do
+ john.user.update(confirmed_at: nil)
+ expect(subject).to permit(admin, john.user)
+ end
+ end
+
+ context 'record.confirmed?' do
+ it 'denies' do
+ john.user.confirm!
+ expect(subject).to_not permit(admin, john.user)
+ end
+ end
+ end
+
+ context '!staff?' do
+ it 'denies' do
+ expect(subject).to_not permit(john, User)
+ end
+ end
+ end
+
+ permissions :enable? do
+ context 'staff?' do
+ it 'permits' do
+ expect(subject).to permit(admin, User)
+ end
+ end
+
+ context '!staff?' do
+ it 'denies' do
+ expect(subject).to_not permit(john, User)
+ end
+ end
+ end
+
+ permissions :disable? do
+ context 'staff?' do
+ context '!record.admin?' do
+ it 'permits' do
+ expect(subject).to permit(admin, john.user)
+ end
+ end
+
+ context 'record.admin?' do
+ it 'denies' do
+ expect(subject).to_not permit(admin, admin.user)
+ end
+ end
+ end
+
+ context '!staff?' do
+ it 'denies' do
+ expect(subject).to_not permit(john, User)
+ end
+ end
+ end
+
+ permissions :promote? do
+ context 'admin?' do
+ context 'promoteable?' do
+ it 'permits' do
+ expect(subject).to permit(admin, john.user)
+ end
+ end
+
+ context '!promoteable?' do
+ it 'denies' do
+ expect(subject).to_not permit(admin, admin.user)
+ end
+ end
+ end
+
+ context '!admin?' do
+ it 'denies' do
+ expect(subject).to_not permit(john, User)
+ end
+ end
+ end
+
+ permissions :demote? do
+ context 'admin?' do
+ context '!record.admin?' do
+ context 'demoteable?' do
+ it 'permits' do
+ john.user.update(moderator: true)
+ expect(subject).to permit(admin, john.user)
+ end
+ end
+
+ context '!demoteable?' do
+ it 'denies' do
+ expect(subject).to_not permit(admin, john.user)
+ end
+ end
+ end
+
+ context 'record.admin?' do
+ it 'denies' do
+ expect(subject).to_not permit(admin, admin.user)
+ end
+ end
+ end
+
+ context '!admin?' do
+ it 'denies' do
+ expect(subject).to_not permit(john, User)
+ end
+ end
+ end
+end
diff --git a/spec/presenters/instance_presenter_spec.rb b/spec/presenters/instance_presenter_spec.rb
index 006403925..0babc1b0c 100644
--- a/spec/presenters/instance_presenter_spec.rb
+++ b/spec/presenters/instance_presenter_spec.rb
@@ -111,4 +111,37 @@ describe InstancePresenter do
expect(instance_presenter.domain_count).to eq(345)
end
end
+
+ describe '#version_number' do
+ it 'returns Mastodon::Version' do
+ expect(instance_presenter.version_number).to be(Mastodon::Version)
+ end
+ end
+
+ describe '#source_url' do
+ it 'returns "https://github.com/tootsuite/mastodon"' do
+ expect(instance_presenter.source_url).to eq('https://github.com/tootsuite/mastodon')
+ end
+ end
+
+ describe '#thumbnail' do
+ it 'returns SiteUpload' do
+ thumbnail = Fabricate(:site_upload, var: 'thumbnail')
+ expect(instance_presenter.thumbnail).to eq(thumbnail)
+ end
+ end
+
+ describe '#hero' do
+ it 'returns SiteUpload' do
+ hero = Fabricate(:site_upload, var: 'hero')
+ expect(instance_presenter.hero).to eq(hero)
+ end
+ end
+
+ describe '#mascot' do
+ it 'returns SiteUpload' do
+ mascot = Fabricate(:site_upload, var: 'mascot')
+ expect(instance_presenter.mascot).to eq(mascot)
+ end
+ end
end
diff --git a/spec/services/activitypub/process_collection_service_spec.rb b/spec/services/activitypub/process_collection_service_spec.rb
index bbe97d211..b3baf6b6b 100644
--- a/spec/services/activitypub/process_collection_service_spec.rb
+++ b/spec/services/activitypub/process_collection_service_spec.rb
@@ -26,9 +26,9 @@ RSpec.describe ActivityPub::ProcessCollectionService, type: :service do
context 'when actor differs from sender' do
let(:forwarder) { Fabricate(:account, domain: 'example.com', uri: 'http://example.com/other_account') }
- it 'processes payload with sender if no signature exists' do
- expect_any_instance_of(ActivityPub::LinkedDataSignature).not_to receive(:verify_account!)
- expect(ActivityPub::Activity).to receive(:factory).with(instance_of(Hash), forwarder, instance_of(Hash))
+ it 'does not process payload if no signature exists' do
+ expect_any_instance_of(ActivityPub::LinkedDataSignature).to receive(:verify_account!).and_return(nil)
+ expect(ActivityPub::Activity).not_to receive(:factory)
subject.call(json, forwarder)
end
diff --git a/spec/services/app_sign_up_service_spec.rb b/spec/services/app_sign_up_service_spec.rb
new file mode 100644
index 000000000..d480df348
--- /dev/null
+++ b/spec/services/app_sign_up_service_spec.rb
@@ -0,0 +1,41 @@
+require 'rails_helper'
+
+RSpec.describe AppSignUpService, type: :service do
+ let(:app) { Fabricate(:application, scopes: 'read write') }
+ let(:good_params) { { username: 'alice', password: '12345678', email: 'good@email.com', agreement: true } }
+
+ subject { described_class.new }
+
+ describe '#call' do
+ it 'returns nil when registrations are closed' do
+ Setting.open_registrations = false
+ expect(subject.call(app, good_params)).to be_nil
+ end
+
+ it 'raises an error when params are missing' do
+ expect { subject.call(app, {}) }.to raise_error ActiveRecord::RecordInvalid
+ end
+
+ it 'creates an unconfirmed user with access token' do
+ access_token = subject.call(app, good_params)
+ expect(access_token).to_not be_nil
+ user = User.find_by(id: access_token.resource_owner_id)
+ expect(user).to_not be_nil
+ expect(user.confirmed?).to be false
+ end
+
+ it 'creates access token with the app\'s scopes' do
+ access_token = subject.call(app, good_params)
+ expect(access_token).to_not be_nil
+ expect(access_token.scopes.to_s).to eq 'read write'
+ end
+
+ it 'creates an account' do
+ access_token = subject.call(app, good_params)
+ expect(access_token).to_not be_nil
+ user = User.find_by(id: access_token.resource_owner_id)
+ expect(user).to_not be_nil
+ expect(user.account).to_not be_nil
+ end
+ end
+end
diff --git a/spec/services/batched_remove_status_service_spec.rb b/spec/services/batched_remove_status_service_spec.rb
index c66214555..e53623449 100644
--- a/spec/services/batched_remove_status_service_spec.rb
+++ b/spec/services/batched_remove_status_service_spec.rb
@@ -8,8 +8,8 @@ RSpec.describe BatchedRemoveStatusService, type: :service do
let!(:jeff) { Fabricate(:user).account }
let!(:hank) { Fabricate(:account, username: 'hank', protocol: :activitypub, domain: 'example.com', inbox_url: 'http://example.com/inbox') }
- let(:status1) { PostStatusService.new.call(alice, 'Hello @bob@example.com') }
- let(:status2) { PostStatusService.new.call(alice, 'Another status') }
+ let(:status1) { PostStatusService.new.call(alice, text: 'Hello @bob@example.com') }
+ let(:status2) { PostStatusService.new.call(alice, text: 'Another status') }
before do
allow(Redis.current).to receive_messages(publish: nil)
diff --git a/spec/services/fetch_link_card_service_spec.rb b/spec/services/fetch_link_card_service_spec.rb
index 88c5339db..50c60aafd 100644
--- a/spec/services/fetch_link_card_service_spec.rb
+++ b/spec/services/fetch_link_card_service_spec.rb
@@ -17,6 +17,8 @@ RSpec.describe FetchLinkCardService, type: :service do
stub_request(:head, 'https://github.com/qbi/WannaCry').to_return(status: 404)
stub_request(:head, 'http://example.com/test-').to_return(status: 200, headers: { 'Content-Type' => 'text/html' })
stub_request(:get, 'http://example.com/test-').to_return(request_fixture('idn.txt'))
+ stub_request(:head, 'http://example.com/windows-1251').to_return(status: 200, headers: { 'Content-Type' => 'text/html' })
+ stub_request(:get, 'http://example.com/windows-1251').to_return(request_fixture('windows-1251.txt'))
subject.call(status)
end
@@ -57,6 +59,15 @@ RSpec.describe FetchLinkCardService, type: :service do
end
end
+ context do
+ let(:status) { Fabricate(:status, text: 'Check out http://example.com/windows-1251') }
+
+ it 'works with windows-1251' do
+ expect(a_request(:get, 'http://example.com/windows-1251')).to have_been_made.at_least_once
+ expect(status.preview_cards.first.title).to eq('сэмпл текст')
+ end
+ end
+
context do
let(:status) { Fabricate(:status, text: 'テストhttp://example.com/日本語') }
diff --git a/spec/services/hashtag_query_service_spec.rb b/spec/services/hashtag_query_service_spec.rb
new file mode 100644
index 000000000..24282d2f0
--- /dev/null
+++ b/spec/services/hashtag_query_service_spec.rb
@@ -0,0 +1,60 @@
+require 'rails_helper'
+
+describe HashtagQueryService, type: :service do
+ describe '.call' do
+ let(:account) { Fabricate(:account) }
+ let(:tag1) { Fabricate(:tag) }
+ let(:tag2) { Fabricate(:tag) }
+ let!(:status1) { Fabricate(:status, tags: [tag1]) }
+ let!(:status2) { Fabricate(:status, tags: [tag2]) }
+ let!(:both) { Fabricate(:status, tags: [tag1, tag2]) }
+
+ it 'can add tags in "any" mode' do
+ results = subject.call(tag1, { any: [tag2.name] })
+ expect(results).to include status1
+ expect(results).to include status2
+ expect(results).to include both
+ end
+
+ it 'can remove tags in "all" mode' do
+ results = subject.call(tag1, { all: [tag2.name] })
+ expect(results).to_not include status1
+ expect(results).to_not include status2
+ expect(results).to include both
+ end
+
+ it 'can remove tags in "none" mode' do
+ results = subject.call(tag1, { none: [tag2.name] })
+ expect(results).to include status1
+ expect(results).to_not include status2
+ expect(results).to_not include both
+ end
+
+ it 'ignores an invalid mode' do
+ results = subject.call(tag1, { wark: [tag2.name] })
+ expect(results).to include status1
+ expect(results).to_not include status2
+ expect(results).to include both
+ end
+
+ it 'handles being passed non existant tag names' do
+ results = subject.call(tag1, { any: ['wark'] })
+ expect(results).to include status1
+ expect(results).to_not include status2
+ expect(results).to include both
+ end
+
+ it 'can restrict to an account' do
+ BlockService.new.call(account, status1.account)
+ results = subject.call(tag1, { none: [tag2.name] }, account)
+ expect(results).to_not include status1
+ end
+
+ it 'can restrict to local' do
+ status1.account.update(domain: 'example.com')
+ status1.update(local: false, uri: 'example.com/toot')
+ results = subject.call(tag1, { any: [tag2.name] }, nil, true)
+ expect(results).to_not include status1
+ end
+ end
+end
diff --git a/spec/services/post_status_service_spec.rb b/spec/services/post_status_service_spec.rb
index 40fa8fbef..3774fed6f 100644
--- a/spec/services/post_status_service_spec.rb
+++ b/spec/services/post_status_service_spec.rb
@@ -7,7 +7,7 @@ RSpec.describe PostStatusService, type: :service do
account = Fabricate(:account)
text = "test status update"
- status = subject.call(account, text)
+ status = subject.call(account, text: text)
expect(status).to be_persisted
expect(status.text).to eq text
@@ -18,13 +18,37 @@ RSpec.describe PostStatusService, type: :service do
account = Fabricate(:account)
text = "test status update"
- status = subject.call(account, text, in_reply_to_status)
+ status = subject.call(account, text: text, thread: in_reply_to_status)
expect(status).to be_persisted
expect(status.text).to eq text
expect(status.thread).to eq in_reply_to_status
end
+ it 'schedules a status' do
+ account = Fabricate(:account)
+ future = Time.now.utc + 2.hours
+
+ status = subject.call(account, text: 'Hi future!', scheduled_at: future)
+
+ expect(status).to be_a ScheduledStatus
+ expect(status.scheduled_at).to eq future
+ expect(status.params['text']).to eq 'Hi future!'
+ end
+
+ it 'creates response to the original status of boost' do
+ boosted_status = Fabricate(:status)
+ in_reply_to_status = Fabricate(:status, reblog: boosted_status)
+ account = Fabricate(:account)
+ text = "test status update"
+
+ status = subject.call(account, text: text, thread: in_reply_to_status)
+
+ expect(status).to be_persisted
+ expect(status.text).to eq text
+ expect(status.thread).to eq boosted_status
+ end
+
it 'creates a sensitive status' do
status = create_status_with_options(sensitive: true)
@@ -55,6 +79,13 @@ RSpec.describe PostStatusService, type: :service do
expect(status.visibility).to eq "private"
end
+ it 'creates a status with limited visibility for silenced users' do
+ status = subject.call(Fabricate(:account, silenced: true), text: 'test', visibility: :public)
+
+ expect(status).to be_persisted
+ expect(status.visibility).to eq "unlisted"
+ end
+
it 'creates a status for the given application' do
application = Fabricate(:application)
@@ -68,7 +99,7 @@ RSpec.describe PostStatusService, type: :service do
account = Fabricate(:account)
text = 'This is an English text.'
- status = subject.call(account, text)
+ status = subject.call(account, text: text)
expect(status.language).to eq 'en'
end
@@ -79,7 +110,7 @@ RSpec.describe PostStatusService, type: :service do
allow(ProcessMentionsService).to receive(:new).and_return(mention_service)
account = Fabricate(:account)
- status = subject.call(account, "test status update")
+ status = subject.call(account, text: "test status update")
expect(ProcessMentionsService).to have_received(:new)
expect(mention_service).to have_received(:call).with(status)
@@ -91,7 +122,7 @@ RSpec.describe PostStatusService, type: :service do
allow(ProcessHashtagsService).to receive(:new).and_return(hashtags_service)
account = Fabricate(:account)
- status = subject.call(account, "test status update")
+ status = subject.call(account, text: "test status update")
expect(ProcessHashtagsService).to have_received(:new)
expect(hashtags_service).to have_received(:call).with(status)
@@ -104,7 +135,7 @@ RSpec.describe PostStatusService, type: :service do
account = Fabricate(:account)
- status = subject.call(account, "test status update")
+ status = subject.call(account, text: "test status update")
expect(DistributionWorker).to have_received(:perform_async).with(status.id)
expect(Pubsubhubbub::DistributionWorker).to have_received(:perform_async).with(status.stream_entry.id)
@@ -115,7 +146,7 @@ RSpec.describe PostStatusService, type: :service do
allow(LinkCrawlWorker).to receive(:perform_async)
account = Fabricate(:account)
- status = subject.call(account, "test status update")
+ status = subject.call(account, text: "test status update")
expect(LinkCrawlWorker).to have_received(:perform_async).with(status.id)
end
@@ -126,8 +157,7 @@ RSpec.describe PostStatusService, type: :service do
status = subject.call(
account,
- "test status update",
- nil,
+ text: "test status update",
media_ids: [media.id],
)
@@ -140,8 +170,7 @@ RSpec.describe PostStatusService, type: :service do
expect do
subject.call(
account,
- "test status update",
- nil,
+ text: "test status update",
media_ids: [
Fabricate(:media_attachment, account: account),
Fabricate(:media_attachment, account: account),
@@ -162,8 +191,7 @@ RSpec.describe PostStatusService, type: :service do
expect do
subject.call(
account,
- "test status update",
- nil,
+ text: "test status update",
media_ids: [
Fabricate(:media_attachment, type: :video, account: account),
Fabricate(:media_attachment, type: :image, account: account),
@@ -177,12 +205,12 @@ RSpec.describe PostStatusService, type: :service do
it 'returns existing status when used twice with idempotency key' do
account = Fabricate(:account)
- status1 = subject.call(account, 'test', nil, idempotency: 'meepmeep')
- status2 = subject.call(account, 'test', nil, idempotency: 'meepmeep')
+ status1 = subject.call(account, text: 'test', idempotency: 'meepmeep')
+ status2 = subject.call(account, text: 'test', idempotency: 'meepmeep')
expect(status2.id).to eq status1.id
end
def create_status_with_options(**options)
- subject.call(Fabricate(:account), 'test', nil, options)
+ subject.call(Fabricate(:account), options.merge(text: 'test'))
end
end
diff --git a/spec/services/remove_status_service_spec.rb b/spec/services/remove_status_service_spec.rb
index 2134f51fd..7bba83a60 100644
--- a/spec/services/remove_status_service_spec.rb
+++ b/spec/services/remove_status_service_spec.rb
@@ -19,7 +19,7 @@ RSpec.describe RemoveStatusService, type: :service do
jeff.follow!(alice)
hank.follow!(alice)
- @status = PostStatusService.new.call(alice, 'Hello @bob@example.com')
+ @status = PostStatusService.new.call(alice, text: 'Hello @bob@example.com')
Fabricate(:status, account: bill, reblog: @status, uri: 'hoge')
subject.call(@status)
end
diff --git a/spec/services/resolve_account_service_spec.rb b/spec/services/resolve_account_service_spec.rb
index dd7561587..27a85af7c 100644
--- a/spec/services/resolve_account_service_spec.rb
+++ b/spec/services/resolve_account_service_spec.rb
@@ -119,8 +119,6 @@ RSpec.describe ResolveAccountService, type: :service do
expect(account.actor_type).to eq 'Person'
end
end
-
- pending
end
it 'processes one remote account at a time using locks' do
diff --git a/spec/validators/blacklisted_email_validator_spec.rb b/spec/validators/blacklisted_email_validator_spec.rb
new file mode 100644
index 000000000..d2e442f4a
--- /dev/null
+++ b/spec/validators/blacklisted_email_validator_spec.rb
@@ -0,0 +1,31 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe BlacklistedEmailValidator, type: :validator do
+ describe '#validate' do
+ let(:user) { double(email: 'info@mail.com', errors: errors) }
+ let(:errors) { double(add: nil) }
+
+ before do
+ allow_any_instance_of(described_class).to receive(:blocked_email?) { blocked_email }
+ described_class.new.validate(user)
+ end
+
+ context 'blocked_email?' do
+ let(:blocked_email) { true }
+
+ it 'calls errors.add' do
+ expect(errors).to have_received(:add).with(:email, I18n.t('users.invalid_email'))
+ end
+ end
+
+ context '!blocked_email?' do
+ let(:blocked_email) { false }
+
+ it 'not calls errors.add' do
+ expect(errors).not_to have_received(:add).with(:email, I18n.t('users.invalid_email'))
+ end
+ end
+ end
+end
diff --git a/spec/validators/disallowed_hashtags_validator_spec.rb b/spec/validators/disallowed_hashtags_validator_spec.rb
new file mode 100644
index 000000000..8ec1302ab
--- /dev/null
+++ b/spec/validators/disallowed_hashtags_validator_spec.rb
@@ -0,0 +1,46 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe DisallowedHashtagsValidator, type: :validator do
+ describe '#validate' do
+ before do
+ allow_any_instance_of(described_class).to receive(:select_tags) { tags }
+ described_class.new.validate(status)
+ end
+
+ let(:status) { double(errors: errors, local?: local, reblog?: reblog, text: '') }
+ let(:errors) { double(add: nil) }
+
+ context 'unless status.local? && !status.reblog?' do
+ let(:local) { false }
+ let(:reblog) { true }
+
+ it 'not calls errors.add' do
+ expect(errors).not_to have_received(:add).with(:text, any_args)
+ end
+ end
+
+ context 'status.local? && !status.reblog?' do
+ let(:local) { true }
+ let(:reblog) { false }
+
+ context 'tags.empty?' do
+ let(:tags) { [] }
+
+ it 'not calls errors.add' do
+ expect(errors).not_to have_received(:add).with(:text, any_args)
+ end
+ end
+
+ context '!tags.empty?' do
+ let(:tags) { %w(a b c) }
+
+ it 'calls errors.add' do
+ expect(errors).to have_received(:add)
+ .with(:text, I18n.t('statuses.disallowed_hashtags', tags: tags.join(', '), count: tags.size))
+ end
+ end
+ end
+ end
+end
diff --git a/spec/validators/email_mx_validator_spec.rb b/spec/validators/email_mx_validator_spec.rb
new file mode 100644
index 000000000..bc68f63cf
--- /dev/null
+++ b/spec/validators/email_mx_validator_spec.rb
@@ -0,0 +1,75 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe EmailMxValidator do
+ describe '#validate' do
+ let(:user) { double(email: 'foo@example.com', errors: double(add: nil)) }
+
+ it 'adds an error if there are no DNS records for the e-mail domain' do
+ resolver = double
+
+ allow(resolver).to receive(:getresources).with('example.com', Resolv::DNS::Resource::IN::MX).and_return([])
+ allow(resolver).to receive(:getresources).with('example.com', Resolv::DNS::Resource::IN::A).and_return([])
+ allow(resolver).to receive(:timeouts=).and_return(nil)
+ allow(Resolv::DNS).to receive(:open).and_yield(resolver)
+
+ subject.validate(user)
+ expect(user.errors).to have_received(:add)
+ end
+
+ it 'adds an error if a MX record exists but does not lead to an IP' do
+ resolver = double
+
+ allow(resolver).to receive(:getresources).with('example.com', Resolv::DNS::Resource::IN::MX).and_return([double(exchange: 'mail.example.com')])
+ allow(resolver).to receive(:getresources).with('example.com', Resolv::DNS::Resource::IN::A).and_return([])
+ allow(resolver).to receive(:getresources).with('mail.example.com', Resolv::DNS::Resource::IN::A).and_return([])
+ allow(resolver).to receive(:timeouts=).and_return(nil)
+ allow(Resolv::DNS).to receive(:open).and_yield(resolver)
+
+ subject.validate(user)
+ expect(user.errors).to have_received(:add)
+ end
+
+ it 'adds an error if the A record is blacklisted' do
+ EmailDomainBlock.create!(domain: '1.2.3.4')
+ resolver = double
+
+ allow(resolver).to receive(:getresources).with('example.com', Resolv::DNS::Resource::IN::MX).and_return([])
+ allow(resolver).to receive(:getresources).with('example.com', Resolv::DNS::Resource::IN::A).and_return([double(address: '1.2.3.4')])
+ allow(resolver).to receive(:timeouts=).and_return(nil)
+ allow(Resolv::DNS).to receive(:open).and_yield(resolver)
+
+ subject.validate(user)
+ expect(user.errors).to have_received(:add)
+ end
+
+ it 'adds an error if the MX record is blacklisted' do
+ EmailDomainBlock.create!(domain: '2.3.4.5')
+ resolver = double
+
+ allow(resolver).to receive(:getresources).with('example.com', Resolv::DNS::Resource::IN::MX).and_return([double(exchange: 'mail.example.com')])
+ allow(resolver).to receive(:getresources).with('example.com', Resolv::DNS::Resource::IN::A).and_return([])
+ allow(resolver).to receive(:getresources).with('mail.example.com', Resolv::DNS::Resource::IN::A).and_return([double(address: '2.3.4.5')])
+ allow(resolver).to receive(:timeouts=).and_return(nil)
+ allow(Resolv::DNS).to receive(:open).and_yield(resolver)
+
+ subject.validate(user)
+ expect(user.errors).to have_received(:add)
+ end
+
+ it 'adds an error if the MX hostname is blacklisted' do
+ EmailDomainBlock.create!(domain: 'mail.example.com')
+ resolver = double
+
+ allow(resolver).to receive(:getresources).with('example.com', Resolv::DNS::Resource::IN::MX).and_return([double(exchange: 'mail.example.com')])
+ allow(resolver).to receive(:getresources).with('example.com', Resolv::DNS::Resource::IN::A).and_return([])
+ allow(resolver).to receive(:getresources).with('mail.example.com', Resolv::DNS::Resource::IN::A).and_return([double(address: '2.3.4.5')])
+ allow(resolver).to receive(:timeouts=).and_return(nil)
+ allow(Resolv::DNS).to receive(:open).and_yield(resolver)
+
+ subject.validate(user)
+ expect(user.errors).to have_received(:add)
+ end
+ end
+end
diff --git a/spec/validators/follow_limit_validator_spec.rb b/spec/validators/follow_limit_validator_spec.rb
new file mode 100644
index 000000000..cc8fbb631
--- /dev/null
+++ b/spec/validators/follow_limit_validator_spec.rb
@@ -0,0 +1,51 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe FollowLimitValidator, type: :validator do
+ describe '#validate' do
+ before do
+ allow_any_instance_of(described_class).to receive(:limit_reached?).with(account) do
+ limit_reached
+ end
+
+ described_class.new.validate(follow)
+ end
+
+ let(:follow) { double(account: account, errors: errors) }
+ let(:errors) { double(add: nil) }
+ let(:account) { double(nil?: _nil, local?: local, following_count: 0, followers_count: 0) }
+ let(:_nil) { true }
+ let(:local) { false }
+
+ context 'follow.account.nil? || !follow.account.local?' do
+ let(:_nil) { true }
+
+ it 'not calls errors.add' do
+ expect(errors).not_to have_received(:add).with(:base, any_args)
+ end
+ end
+
+ context '!(follow.account.nil? || !follow.account.local?)' do
+ let(:_nil) { false }
+ let(:local) { true }
+
+ context 'limit_reached?' do
+ let(:limit_reached) { true }
+
+ it 'calls errors.add' do
+ expect(errors).to have_received(:add)
+ .with(:base, I18n.t('users.follow_limit_reached', limit: FollowLimitValidator::LIMIT))
+ end
+ end
+
+ context '!limit_reached?' do
+ let(:limit_reached) { false }
+
+ it 'not calls errors.add' do
+ expect(errors).not_to have_received(:add).with(:base, any_args)
+ end
+ end
+ end
+ end
+end
diff --git a/spec/validators/status_length_validator_spec.rb b/spec/validators/status_length_validator_spec.rb
index e2d1a15ec..11e55f933 100644
--- a/spec/validators/status_length_validator_spec.rb
+++ b/spec/validators/status_length_validator_spec.rb
@@ -4,8 +4,17 @@ require 'rails_helper'
describe StatusLengthValidator do
describe '#validate' do
- it 'does not add errors onto remote statuses'
- it 'does not add errors onto local reblogs'
+ it 'does not add errors onto remote statuses' do
+ status = double(local?: false)
+ subject.validate(status)
+ expect(status).not_to receive(:errors)
+ end
+
+ it 'does not add errors onto local reblogs' do
+ status = double(local?: false, reblog?: true)
+ subject.validate(status)
+ expect(status).not_to receive(:errors)
+ end
it 'adds an error when content warning is over 500 characters' do
status = double(spoiler_text: 'a' * 520, text: '', errors: double(add: nil), local?: true, reblog?: false)
diff --git a/spec/validators/status_pin_validator_spec.rb b/spec/validators/status_pin_validator_spec.rb
new file mode 100644
index 000000000..06532e5b3
--- /dev/null
+++ b/spec/validators/status_pin_validator_spec.rb
@@ -0,0 +1,57 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe StatusPinValidator, type: :validator do
+ describe '#validate' do
+ before do
+ subject.validate(pin)
+ end
+
+ let(:pin) { double(account: account, errors: errors, status: status, account_id: pin_account_id) }
+ let(:status) { double(reblog?: reblog, account_id: status_account_id, visibility: visibility) }
+ let(:account) { double(status_pins: status_pins, local?: local) }
+ let(:status_pins) { double(count: count) }
+ let(:errors) { double(add: nil) }
+ let(:pin_account_id) { 1 }
+ let(:status_account_id) { 1 }
+ let(:visibility) { 'public' }
+ let(:local) { false }
+ let(:reblog) { false }
+ let(:count) { 0 }
+
+ context 'pin.status.reblog?' do
+ let(:reblog) { true }
+
+ it 'calls errors.add' do
+ expect(errors).to have_received(:add).with(:base, I18n.t('statuses.pin_errors.reblog'))
+ end
+ end
+
+ context 'pin.account_id != pin.status.account_id' do
+ let(:pin_account_id) { 1 }
+ let(:status_account_id) { 2 }
+
+ it 'calls errors.add' do
+ expect(errors).to have_received(:add).with(:base, I18n.t('statuses.pin_errors.ownership'))
+ end
+ end
+
+ context 'unless %w(public unlisted).include?(pin.status.visibility)' do
+ let(:visibility) { '' }
+
+ it 'calls errors.add' do
+ expect(errors).to have_received(:add).with(:base, I18n.t('statuses.pin_errors.private'))
+ end
+ end
+
+ context 'pin.account.status_pins.count > 4 && pin.account.local?' do
+ let(:count) { 5 }
+ let(:local) { true }
+
+ it 'calls errors.add' do
+ expect(errors).to have_received(:add).with(:base, I18n.t('statuses.pin_errors.limit'))
+ end
+ end
+ end
+end
diff --git a/spec/validators/unique_username_validator_spec.rb b/spec/validators/unique_username_validator_spec.rb
index b9d773bed..c2e2eedf4 100644
--- a/spec/validators/unique_username_validator_spec.rb
+++ b/spec/validators/unique_username_validator_spec.rb
@@ -15,14 +15,6 @@ describe UniqueUsernameValidator do
expect(account).to be_valid
end
- it 'adds an error when the username is already used with ignoring dots' do
- pending 'allowing dots in username is still in development'
- Fabricate(:account, username: 'abcd.ef')
- account = double(username: 'ab.cdef', persisted?: false, errors: double(add: nil))
- subject.validate(account)
- expect(account.errors).to have_received(:add)
- end
-
it 'adds an error when the username is already used with ignoring cases' do
Fabricate(:account, username: 'ABCdef')
account = double(username: 'abcDEF', persisted?: false, errors: double(add: nil))
diff --git a/spec/validators/unreserved_username_validator_spec.rb b/spec/validators/unreserved_username_validator_spec.rb
new file mode 100644
index 000000000..0187941b0
--- /dev/null
+++ b/spec/validators/unreserved_username_validator_spec.rb
@@ -0,0 +1,44 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe UnreservedUsernameValidator, type: :validator do
+ describe '#validate' do
+ before do
+ allow(validator).to receive(:reserved_username?) { reserved_username }
+ validator.validate(account)
+ end
+
+ let(:validator) { described_class.new }
+ let(:account) { double(username: username, errors: errors) }
+ let(:errors ) { double(add: nil) }
+
+ context '@username.nil?' do
+ let(:username) { nil }
+
+ it 'not calls errors.add' do
+ expect(errors).not_to have_received(:add).with(:username, any_args)
+ end
+ end
+
+ context '!@username.nil?' do
+ let(:username) { '' }
+
+ context 'reserved_username?' do
+ let(:reserved_username) { true }
+
+ it 'calls erros.add' do
+ expect(errors).to have_received(:add).with(:username, I18n.t('accounts.reserved_username'))
+ end
+ end
+
+ context '!reserved_username?' do
+ let(:reserved_username) { false }
+
+ it 'not calls erros.add' do
+ expect(errors).not_to have_received(:add).with(:username, any_args)
+ end
+ end
+ end
+ end
+end
diff --git a/spec/validators/url_validator_spec.rb b/spec/validators/url_validator_spec.rb
new file mode 100644
index 000000000..e8d0e6494
--- /dev/null
+++ b/spec/validators/url_validator_spec.rb
@@ -0,0 +1,34 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe UrlValidator, type: :validator do
+ describe '#validate_each' do
+ before do
+ allow(validator).to receive(:compliant?).with(value) { compliant }
+ validator.validate_each(record, attribute, value)
+ end
+
+ let(:validator) { described_class.new(attributes: [attribute]) }
+ let(:record) { double(errors: errors) }
+ let(:errors) { double(add: nil) }
+ let(:value) { '' }
+ let(:attribute) { :foo }
+
+ context 'unless compliant?' do
+ let(:compliant) { false }
+
+ it 'calls errors.add' do
+ expect(errors).to have_received(:add).with(attribute, I18n.t('applications.invalid_url'))
+ end
+ end
+
+ context 'if compliant?' do
+ let(:compliant) { true }
+
+ it 'not calls errors.add' do
+ expect(errors).not_to have_received(:add).with(attribute, any_args)
+ end
+ end
+ end
+end
diff --git a/spec/workers/publish_scheduled_status_worker_spec.rb b/spec/workers/publish_scheduled_status_worker_spec.rb
new file mode 100644
index 000000000..f8547e6fe
--- /dev/null
+++ b/spec/workers/publish_scheduled_status_worker_spec.rb
@@ -0,0 +1,23 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe PublishScheduledStatusWorker do
+ subject { described_class.new }
+
+ let(:scheduled_status) { Fabricate(:scheduled_status, params: { text: 'Hello world, future!' }) }
+
+ describe 'perform' do
+ before do
+ subject.perform(scheduled_status.id)
+ end
+
+ it 'creates a status' do
+ expect(scheduled_status.account.statuses.first.text).to eq 'Hello world, future!'
+ end
+
+ it 'removes the scheduled status' do
+ expect(ScheduledStatus.find_by(id: scheduled_status.id)).to be_nil
+ end
+ end
+end
diff --git a/vendor/assets/javascripts/.keep b/vendor/.keep
similarity index 100%
rename from vendor/assets/javascripts/.keep
rename to vendor/.keep
diff --git a/vendor/assets/stylesheets/.keep b/vendor/assets/stylesheets/.keep
deleted file mode 100644
index e69de29bb..000000000
diff --git a/yarn.lock b/yarn.lock
index eb7a6c2c2..0fd1924fe 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -9,32 +9,32 @@
dependencies:
"@babel/highlight" "^7.0.0"
-"@babel/core@^7.0.1":
- version "7.0.1"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.0.1.tgz#406658caed0e9686fa4feb5c2f3cefb6161c0f41"
- integrity sha512-7Yy2vRB6KYbhWeIrrwJmKv9UwDxokmlo43wi6AV84oNs4Gi71NTNGh3YxY/hK3+CxuSc6wcKSl25F2tQOhm1GQ==
+"@babel/core@^7.2.2":
+ version "7.2.2"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.2.2.tgz#07adba6dde27bb5ad8d8672f15fde3e08184a687"
+ integrity sha512-59vB0RWt09cAct5EIe58+NzGP4TFSD3Bz//2/ELy3ZeTeKF6VTD1AXlH8BGGbCX0PuobZBsIzO7IAI9PH67eKw==
dependencies:
"@babel/code-frame" "^7.0.0"
- "@babel/generator" "^7.0.0"
- "@babel/helpers" "^7.0.0"
- "@babel/parser" "^7.0.0"
- "@babel/template" "^7.0.0"
- "@babel/traverse" "^7.0.0"
- "@babel/types" "^7.0.0"
+ "@babel/generator" "^7.2.2"
+ "@babel/helpers" "^7.2.0"
+ "@babel/parser" "^7.2.2"
+ "@babel/template" "^7.2.2"
+ "@babel/traverse" "^7.2.2"
+ "@babel/types" "^7.2.2"
convert-source-map "^1.1.0"
- debug "^3.1.0"
- json5 "^0.5.0"
+ debug "^4.1.0"
+ json5 "^2.1.0"
lodash "^4.17.10"
resolve "^1.3.2"
semver "^5.4.1"
source-map "^0.5.0"
-"@babel/generator@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0.tgz#1efd58bffa951dc846449e58ce3a1d7f02d393aa"
- integrity sha512-/BM2vupkpbZXq22l1ALO7MqXJZH2k8bKVv8Y+pABFnzWdztDB/ZLveP5At21vLz5c2YtSE6p7j2FZEsqafMz5Q==
+"@babel/generator@^7.2.2":
+ version "7.2.2"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.2.2.tgz#18c816c70962640eab42fe8cae5f3947a5c65ccc"
+ integrity sha512-I4o675J/iS8k+P38dvJ3IBGqObLXyQLTxtrR4u9cSUJOURvafeEWb/pFMOTwtNrmq73mJzyF6ueTbO1BtN0Zeg==
dependencies:
- "@babel/types" "^7.0.0"
+ "@babel/types" "^7.2.2"
jsesc "^2.5.1"
lodash "^4.17.10"
source-map "^0.5.0"
@@ -47,12 +47,12 @@
dependencies:
"@babel/types" "^7.0.0"
-"@babel/helper-builder-binary-assignment-operator-visitor@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.0.0.tgz#ba26336beb2abb547d58b6eba5b84d77975a39eb"
- integrity sha512-9HdU8lrAc4FUZOy+y2w//kUhynSpkGIRYDzJW1oKJx7+v8m6UEAbAd2tSvxirsq2kJTXJZZS6Eo8FnUDUH0ZWw==
+"@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0":
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz#6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f"
+ integrity sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w==
dependencies:
- "@babel/helper-explode-assignable-expression" "^7.0.0"
+ "@babel/helper-explode-assignable-expression" "^7.1.0"
"@babel/types" "^7.0.0"
"@babel/helper-builder-react-jsx@^7.0.0":
@@ -63,39 +63,50 @@
"@babel/types" "^7.0.0"
esutils "^2.0.0"
-"@babel/helper-call-delegate@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.0.0.tgz#e036956bb33d76e59c07a04a1fff144e9f62ab78"
- integrity sha512-HdYG6vr4KgXHK0q1QRZ8guoYCF5rZjIdPlhcVY+j4EBK/FDR+cXRM5/6lQr3NIWDc7dO1KfgjG5rfH6lM89VBw==
+"@babel/helper-call-delegate@^7.1.0":
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.1.0.tgz#6a957f105f37755e8645343d3038a22e1449cc4a"
+ integrity sha512-YEtYZrw3GUK6emQHKthltKNZwszBcHK58Ygcis+gVUrF4/FmTVr5CCqQNSfmvg2y+YDEANyYoaLz/SHsnusCwQ==
dependencies:
"@babel/helper-hoist-variables" "^7.0.0"
- "@babel/traverse" "^7.0.0"
+ "@babel/traverse" "^7.1.0"
"@babel/types" "^7.0.0"
-"@babel/helper-define-map@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.0.0.tgz#a5684dd2adf30f0137cf9b0bde436f8c2db17225"
- integrity sha512-acbCxYS9XufWxsBiclmXMK1CFz7en/XSYvHFcbb3Jb8BqjFEBrA46WlIsoSQTRG/eYN60HciUnzdyQxOZhrHfw==
+"@babel/helper-create-class-features-plugin@^7.2.3":
+ version "7.2.3"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.2.3.tgz#f6e719abb90cb7f4a69591e35fd5eb89047c4a7c"
+ integrity sha512-xO/3Gn+2C7/eOUeb0VRnSP1+yvWHNxlpAot1eMhtoKDCN7POsyQP5excuT5UsV5daHxMWBeIIOeI5cmB8vMRgQ==
dependencies:
- "@babel/helper-function-name" "^7.0.0"
+ "@babel/helper-function-name" "^7.1.0"
+ "@babel/helper-member-expression-to-functions" "^7.0.0"
+ "@babel/helper-optimise-call-expression" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-replace-supers" "^7.2.3"
+
+"@babel/helper-define-map@^7.1.0":
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.1.0.tgz#3b74caec329b3c80c116290887c0dd9ae468c20c"
+ integrity sha512-yPPcW8dc3gZLN+U1mhYV91QU3n5uTbx7DUdf8NnPbjS0RMwBuHi9Xt2MUgppmNz7CJxTBWsGczTiEp1CSOTPRg==
+ dependencies:
+ "@babel/helper-function-name" "^7.1.0"
"@babel/types" "^7.0.0"
lodash "^4.17.10"
-"@babel/helper-explode-assignable-expression@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.0.0.tgz#fdfa4c88603ae3e954d0fc3244d5ca82fb468497"
- integrity sha512-5gLPwdDnYf8GfPsjS+UmZUtYE1jaXTFm1P+ymGobqvXbA0q3ANgpH60+C6zDrRAWXYbQXYvzzQC/r0gJVNNltQ==
+"@babel/helper-explode-assignable-expression@^7.1.0":
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz#537fa13f6f1674df745b0c00ec8fe4e99681c8f6"
+ integrity sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA==
dependencies:
- "@babel/traverse" "^7.0.0"
+ "@babel/traverse" "^7.1.0"
"@babel/types" "^7.0.0"
-"@babel/helper-function-name@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0.tgz#a68cc8d04420ccc663dd258f9cc41b8261efa2d4"
- integrity sha512-Zo+LGvfYp4rMtz84BLF3bavFTdf8y4rJtMPTe2J+rxYmnDOIeH8le++VFI/pRJU+rQhjqiXxE4LMaIau28Tv1Q==
+"@babel/helper-function-name@^7.1.0":
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53"
+ integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==
dependencies:
"@babel/helper-get-function-arity" "^7.0.0"
- "@babel/template" "^7.0.0"
+ "@babel/template" "^7.1.0"
"@babel/types" "^7.0.0"
"@babel/helper-get-function-arity@^7.0.0":
@@ -126,16 +137,16 @@
dependencies:
"@babel/types" "^7.0.0"
-"@babel/helper-module-transforms@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.0.0.tgz#b01ee7d543e81e8c3fc404b19c9f26acb6e4cf4c"
- integrity sha512-QdwmTTlPmT7TZcf30dnqm8pem+o48tVt991xXogE5CQCwqSpWKuzH2E9v8VWeccQ66a6/CmrLZ+bwp66JYeM5A==
+"@babel/helper-module-transforms@^7.1.0":
+ version "7.2.2"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.2.2.tgz#ab2f8e8d231409f8370c883d20c335190284b963"
+ integrity sha512-YRD7I6Wsv+IHuTPkAmAS4HhY0dkPobgLftHp0cRGZSdrRvmZY8rFvae/GVu3bD00qscuvK3WPHB3YdNpBXUqrA==
dependencies:
"@babel/helper-module-imports" "^7.0.0"
- "@babel/helper-simple-access" "^7.0.0"
+ "@babel/helper-simple-access" "^7.1.0"
"@babel/helper-split-export-declaration" "^7.0.0"
- "@babel/template" "^7.0.0"
- "@babel/types" "^7.0.0"
+ "@babel/template" "^7.2.2"
+ "@babel/types" "^7.2.2"
lodash "^4.17.10"
"@babel/helper-optimise-call-expression@^7.0.0":
@@ -157,33 +168,33 @@
dependencies:
lodash "^4.17.10"
-"@babel/helper-remap-async-to-generator@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.0.0.tgz#6512273c2feb91587822335cf913fdf680c26901"
- integrity sha512-3o4sYLOsK6m0A7t1P0saTanBPmk5MAlxVnp9773Of4L8PMVLukU7loZix5KoJgflxSo2c2ETTzseptc0rQEp7A==
+"@babel/helper-remap-async-to-generator@^7.1.0":
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz#361d80821b6f38da75bd3f0785ece20a88c5fe7f"
+ integrity sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==
dependencies:
"@babel/helper-annotate-as-pure" "^7.0.0"
- "@babel/helper-wrap-function" "^7.0.0"
- "@babel/template" "^7.0.0"
- "@babel/traverse" "^7.0.0"
+ "@babel/helper-wrap-function" "^7.1.0"
+ "@babel/template" "^7.1.0"
+ "@babel/traverse" "^7.1.0"
"@babel/types" "^7.0.0"
-"@babel/helper-replace-supers@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.0.0.tgz#b6f21237280e0be54f591f63a464b66627ced707"
- integrity sha512-fsSv7VogxzMSmGch6DwhKHGsciVXo7hbfhBgH9ZrgJMXKMjO7ASQTUfbVL7MU1uCfviyqjucazGK7TWPT9weuQ==
+"@babel/helper-replace-supers@^7.1.0", "@babel/helper-replace-supers@^7.2.3":
+ version "7.2.3"
+ resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.2.3.tgz#19970020cf22677d62b3a689561dbd9644d8c5e5"
+ integrity sha512-GyieIznGUfPXPWu0yLS6U55Mz67AZD9cUk0BfirOWlPrXlBcan9Gz+vHGz+cPfuoweZSnPzPIm67VtQM0OWZbA==
dependencies:
"@babel/helper-member-expression-to-functions" "^7.0.0"
"@babel/helper-optimise-call-expression" "^7.0.0"
- "@babel/traverse" "^7.0.0"
+ "@babel/traverse" "^7.2.3"
"@babel/types" "^7.0.0"
-"@babel/helper-simple-access@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.0.0.tgz#ff36a27983ae4c27122da2f7f294dced80ecbd08"
- integrity sha512-CNeuX52jbQSq4j1n+R+21xrjbTjsnXa9n1aERbgHRD/p9h4Udkxr1n24yPMQmnTETHdnQDvkVSYWFw/ETAymYg==
+"@babel/helper-simple-access@^7.1.0":
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c"
+ integrity sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w==
dependencies:
- "@babel/template" "^7.0.0"
+ "@babel/template" "^7.1.0"
"@babel/types" "^7.0.0"
"@babel/helper-split-export-declaration@^7.0.0":
@@ -193,24 +204,24 @@
dependencies:
"@babel/types" "^7.0.0"
-"@babel/helper-wrap-function@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.0.0.tgz#1c8e42a2cfb0808e3140189dfe9490782a6fa740"
- integrity sha512-kjprWPDNVPZ/9pyLRXcZBvfjnFwqokmXTPTaC4AV8Ns7WRl7ewSxrB19AWZzQsC/WSPQLOw1ciR8uPYkAM1znA==
+"@babel/helper-wrap-function@^7.1.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz#c4e0012445769e2815b55296ead43a958549f6fa"
+ integrity sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ==
dependencies:
- "@babel/helper-function-name" "^7.0.0"
- "@babel/template" "^7.0.0"
- "@babel/traverse" "^7.0.0"
- "@babel/types" "^7.0.0"
+ "@babel/helper-function-name" "^7.1.0"
+ "@babel/template" "^7.1.0"
+ "@babel/traverse" "^7.1.0"
+ "@babel/types" "^7.2.0"
-"@babel/helpers@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.0.0.tgz#7213388341eeb07417f44710fd7e1d00acfa6ac0"
- integrity sha512-jbvgR8iLZPnyk6m/UqdXYsSxbVtRi7Pd3CzB4OPwPBnmhNG1DWjiiy777NTuoyIcniszK51R40L5pgfXAfHDtw==
+"@babel/helpers@^7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.2.0.tgz#8335f3140f3144270dc63c4732a4f8b0a50b7a21"
+ integrity sha512-Fr07N+ea0dMcMN8nFpuK6dUIT7/ivt9yKQdEEnjVS83tG2pHwPi03gYmk/tyuwONnZ+sY+GFFPlWGgCtW1hF9A==
dependencies:
- "@babel/template" "^7.0.0"
- "@babel/traverse" "^7.0.0"
- "@babel/types" "^7.0.0"
+ "@babel/template" "^7.1.2"
+ "@babel/traverse" "^7.1.5"
+ "@babel/types" "^7.2.0"
"@babel/highlight@^7.0.0":
version "7.0.0"
@@ -221,265 +232,255 @@
esutils "^2.0.2"
js-tokens "^4.0.0"
-"@babel/parser@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.0.0.tgz#697655183394facffb063437ddf52c0277698775"
- integrity sha512-RgJhNdRinpO8zibnoHbzTTexNs4c8ROkXFBanNDZTLHjwbdLk8J5cJSKulx/bycWTLYmKVNCkxRtVCoJnqPk+g==
+"@babel/parser@^7.0.0", "@babel/parser@^7.2.2", "@babel/parser@^7.2.3":
+ version "7.2.3"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.2.3.tgz#32f5df65744b70888d17872ec106b02434ba1489"
+ integrity sha512-0LyEcVlfCoFmci8mXx8A5oIkpkOgyo8dRHtxBnK9RRBwxO2+JZPNsqtVEZQ7mJFPxnXF9lfmU24mHOPI0qnlkA==
-"@babel/plugin-proposal-async-generator-functions@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.0.0.tgz#5d1eb6b44fd388b97f964350007ab9da090b1d70"
- integrity sha512-QsXmmjLrFADCcDQAfdQn7tfBRLjpTzRWaDpKpW4ZXW1fahPG4SvjcF1xfvVnXGC662RSExYXL+6DAqbtgqMXeA==
+"@babel/plugin-proposal-async-generator-functions@^7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz#b289b306669dce4ad20b0252889a15768c9d417e"
+ integrity sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
- "@babel/helper-remap-async-to-generator" "^7.0.0"
- "@babel/plugin-syntax-async-generators" "^7.0.0"
+ "@babel/helper-remap-async-to-generator" "^7.1.0"
+ "@babel/plugin-syntax-async-generators" "^7.2.0"
-"@babel/plugin-proposal-class-properties@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.0.0.tgz#a16b5c076ba6c3d87df64d2480a380e979543731"
- integrity sha512-mVgsbdySh6kuzv4omXvw0Kuh+3hrUrQ883qTCf75MqfC6zctx2LXrP3Wt+bbJmB5fE5nfhf/Et2pQyrRy4j0Pg==
+"@babel/plugin-proposal-class-properties@^7.2.3":
+ version "7.2.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.2.3.tgz#c9e1294363b346cff333007a92080f3203698461"
+ integrity sha512-FVuQngLoN2iDrpW7LmhPZ2sO4DJxf35FOcwidwB9Ru9tMvI5URthnkVHuG14IStV+TzkMTyLMoOUlSTtrdVwqw==
dependencies:
- "@babel/helper-function-name" "^7.0.0"
- "@babel/helper-member-expression-to-functions" "^7.0.0"
- "@babel/helper-optimise-call-expression" "^7.0.0"
+ "@babel/helper-create-class-features-plugin" "^7.2.3"
"@babel/helper-plugin-utils" "^7.0.0"
- "@babel/helper-replace-supers" "^7.0.0"
- "@babel/plugin-syntax-class-properties" "^7.0.0"
-"@babel/plugin-proposal-decorators@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.0.0.tgz#33e7e683ca9f8ec3f72104ed11096839d48df502"
- integrity sha512-td2C+9oBYg4b70VD9Qp/Nzmktb558D4JlOyaDS/dFoHa7plIxt5dvUM+mIJn3Wh1Z6GXItygbOTrJxEgX19kcA==
+"@babel/plugin-proposal-decorators@^7.2.3":
+ version "7.2.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.2.3.tgz#1fe5b0d22ce0c4418f225474ebd40267430364c0"
+ integrity sha512-jhCFm7ftmue02EWIYqbhzP0iConEPsgVQeDriOs/Qc2lgr6MDtHTTrv3hE2GOOQDFjQ9tjP7nWQq0ad0JhIsQg==
+ dependencies:
+ "@babel/helper-create-class-features-plugin" "^7.2.3"
+ "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/plugin-syntax-decorators" "^7.2.0"
+
+"@babel/plugin-proposal-json-strings@^7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz#568ecc446c6148ae6b267f02551130891e29f317"
+ integrity sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
- "@babel/plugin-syntax-decorators" "^7.0.0"
+ "@babel/plugin-syntax-json-strings" "^7.2.0"
-"@babel/plugin-proposal-json-strings@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.0.0.tgz#3b4d7b5cf51e1f2e70f52351d28d44fc2970d01e"
- integrity sha512-kfVdUkIAGJIVmHmtS/40i/fg/AGnw/rsZBCaapY5yjeO5RA9m165Xbw9KMOu2nqXP5dTFjEjHdfNdoVcHv133Q==
+"@babel/plugin-proposal-object-rest-spread@^7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.2.0.tgz#88f5fec3e7ad019014c97f7ee3c992f0adbf7fb8"
+ integrity sha512-1L5mWLSvR76XYUQJXkd/EEQgjq8HHRP6lQuZTTg0VA4tTGPpGemmCdAfQIz1rzEuWAm+ecP8PyyEm30jC1eQCg==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
- "@babel/plugin-syntax-json-strings" "^7.0.0"
+ "@babel/plugin-syntax-object-rest-spread" "^7.2.0"
-"@babel/plugin-proposal-object-rest-spread@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.0.0.tgz#9a17b547f64d0676b6c9cecd4edf74a82ab85e7e"
- integrity sha512-14fhfoPcNu7itSen7Py1iGN0gEm87hX/B+8nZPqkdmANyyYWYMY2pjA3r8WXbWVKMzfnSNS0xY8GVS0IjXi/iw==
+"@babel/plugin-proposal-optional-catch-binding@^7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz#135d81edb68a081e55e56ec48541ece8065c38f5"
+ integrity sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
- "@babel/plugin-syntax-object-rest-spread" "^7.0.0"
+ "@babel/plugin-syntax-optional-catch-binding" "^7.2.0"
-"@babel/plugin-proposal-optional-catch-binding@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.0.0.tgz#b610d928fe551ff7117d42c8bb410eec312a6425"
- integrity sha512-JPqAvLG1s13B/AuoBjdBYvn38RqW6n1TzrQO839/sIpqLpbnXKacsAgpZHzLD83Sm8SDXMkkrAvEnJ25+0yIpw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
- "@babel/plugin-syntax-optional-catch-binding" "^7.0.0"
-
-"@babel/plugin-proposal-unicode-property-regex@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.0.0.tgz#498b39cd72536cd7c4b26177d030226eba08cd33"
- integrity sha512-tM3icA6GhC3ch2SkmSxv7J/hCWKISzwycub6eGsDrFDgukD4dZ/I+x81XgW0YslS6mzNuQ1Cbzh5osjIMgepPQ==
+"@babel/plugin-proposal-unicode-property-regex@^7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.2.0.tgz#abe7281fe46c95ddc143a65e5358647792039520"
+ integrity sha512-LvRVYb7kikuOtIoUeWTkOxQEV1kYvL5B6U3iWEGCzPNRus1MzJweFqORTj+0jkxozkTSYNJozPOddxmqdqsRpw==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/helper-regex" "^7.0.0"
regexpu-core "^4.2.0"
-"@babel/plugin-syntax-async-generators@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.0.0.tgz#bf0891dcdbf59558359d0c626fdc9490e20bc13c"
- integrity sha512-im7ged00ddGKAjcZgewXmp1vxSZQQywuQXe2B1A7kajjZmDeY/ekMPmWr9zJgveSaQH0k7BcGrojQhcK06l0zA==
+"@babel/plugin-syntax-async-generators@^7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz#69e1f0db34c6f5a0cf7e2b3323bf159a76c8cb7f"
+ integrity sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-syntax-class-properties@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.0.0.tgz#e051af5d300cbfbcec4a7476e37a803489881634"
- integrity sha512-cR12g0Qzn4sgkjrbrzWy2GE7m9vMl/sFkqZ3gIpAQdrvPDnLM8180i+ANDFIXfjHo9aqp0ccJlQ0QNZcFUbf9w==
+"@babel/plugin-syntax-decorators@^7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.2.0.tgz#c50b1b957dcc69e4b1127b65e1c33eef61570c1b"
+ integrity sha512-38QdqVoXdHUQfTpZo3rQwqQdWtCn5tMv4uV6r2RMfTqNBuv4ZBhz79SfaQWKTVmxHjeFv/DnXVC/+agHCklYWA==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-syntax-decorators@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.0.0.tgz#7e151f744e1de3ec3601f6a4c69c8662cef1b27b"
- integrity sha512-eD1fI6SSuZDbyTP6jG+LBHv7Fr6zh2P1GYsAT8opAuzrDqwSM20qfvZTwCRSHDeysxLd9s6e94X6dcsGQG9dGA==
+"@babel/plugin-syntax-dynamic-import@^7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz#69c159ffaf4998122161ad8ebc5e6d1f55df8612"
+ integrity sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-syntax-dynamic-import@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.0.0.tgz#6dfb7d8b6c3be14ce952962f658f3b7eb54c33ee"
- integrity sha512-Gt9xNyRrCHCiyX/ZxDGOcBnlJl0I3IWicpZRC4CdC0P5a/I07Ya2OAMEBU+J7GmRFVmIetqEYRko6QYRuKOESw==
+"@babel/plugin-syntax-json-strings@^7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz#72bd13f6ffe1d25938129d2a186b11fd62951470"
+ integrity sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-syntax-json-strings@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.0.0.tgz#0d259a68090e15b383ce3710e01d5b23f3770cbd"
- integrity sha512-UlSfNydC+XLj4bw7ijpldc1uZ/HB84vw+U6BTuqMdIEmz/LDe63w/GHtpQMdXWdqQZFeAI9PjnHe/vDhwirhKA==
+"@babel/plugin-syntax-jsx@^7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.2.0.tgz#0b85a3b4bc7cdf4cc4b8bf236335b907ca22e7c7"
+ integrity sha512-VyN4QANJkRW6lDBmENzRszvZf3/4AXaj9YR7GwrWeeN9tEBPuXbmDYVU9bYBN0D70zCWVwUy0HWq2553VCb6Hw==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-syntax-jsx@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.0.0.tgz#034d5e2b4e14ccaea2e4c137af7e4afb39375ffd"
- integrity sha512-PdmL2AoPsCLWxhIr3kG2+F9v4WH06Q3z+NoGVpQgnUNGcagXHq5sB3OXxkSahKq9TLdNMN/AJzFYSOo8UKDMHg==
+"@babel/plugin-syntax-object-rest-spread@^7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz#3b7a3e733510c57e820b9142a6579ac8b0dfad2e"
+ integrity sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-syntax-object-rest-spread@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.0.0.tgz#37d8fbcaf216bd658ea1aebbeb8b75e88ebc549b"
- integrity sha512-5A0n4p6bIiVe5OvQPxBnesezsgFJdHhSs3uFSvaPdMqtsovajLZ+G2vZyvNe10EzJBWWo3AcHGKhAFUxqwp2dw==
+"@babel/plugin-syntax-optional-catch-binding@^7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz#a94013d6eda8908dfe6a477e7f9eda85656ecf5c"
+ integrity sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-syntax-optional-catch-binding@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.0.0.tgz#886f72008b3a8b185977f7cb70713b45e51ee475"
- integrity sha512-Wc+HVvwjcq5qBg1w5RG9o9RVzmCaAg/Vp0erHCKpAYV8La6I94o4GQAmFYNmkzoMO6gzoOSulpKeSSz6mPEoZw==
+"@babel/plugin-transform-arrow-functions@^7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz#9aeafbe4d6ffc6563bf8f8372091628f00779550"
+ integrity sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-arrow-functions@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.0.0.tgz#a6c14875848c68a3b4b3163a486535ef25c7e749"
- integrity sha512-2EZDBl1WIO/q4DIkIp4s86sdp4ZifL51MoIviLY/gG/mLSuOIEg7J8o6mhbxOTvUJkaN50n+8u41FVsr5KLy/w==
- dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
-
-"@babel/plugin-transform-async-to-generator@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.0.0.tgz#feaf18f4bfeaf2236eea4b2d4879da83006cc8f5"
- integrity sha512-CiWNhSMZzj1n3uEKUUS/oL+a7Xi8hnPQB6GpC1WfL/ZYvxBLDBn14sHMo5EyOaeArccSonyk5jFIKMRRbrHOnQ==
+"@babel/plugin-transform-async-to-generator@^7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.2.0.tgz#68b8a438663e88519e65b776f8938f3445b1a2ff"
+ integrity sha512-CEHzg4g5UraReozI9D4fblBYABs7IM6UerAVG7EJVrTLC5keh00aEuLUT+O40+mJCEzaXkYfTCUKIyeDfMOFFQ==
dependencies:
"@babel/helper-module-imports" "^7.0.0"
"@babel/helper-plugin-utils" "^7.0.0"
- "@babel/helper-remap-async-to-generator" "^7.0.0"
+ "@babel/helper-remap-async-to-generator" "^7.1.0"
-"@babel/plugin-transform-block-scoped-functions@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.0.0.tgz#482b3f75103927e37288b3b67b65f848e2aa0d07"
- integrity sha512-AOBiyUp7vYTqz2Jibe1UaAWL0Hl9JUXEgjFvvvcSc9MVDItv46ViXFw2F7SVt1B5k+KWjl44eeXOAk3UDEaJjQ==
+"@babel/plugin-transform-block-scoped-functions@^7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz#5d3cc11e8d5ddd752aa64c9148d0db6cb79fd190"
+ integrity sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-block-scoping@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.0.0.tgz#1745075edffd7cdaf69fab2fb6f9694424b7e9bc"
- integrity sha512-GWEMCrmHQcYWISilUrk9GDqH4enf3UmhOEbNbNrlNAX1ssH3MsS1xLOS6rdjRVPgA7XXVPn87tRkdTEoA/dxEg==
+"@babel/plugin-transform-block-scoping@^7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.2.0.tgz#f17c49d91eedbcdf5dd50597d16f5f2f770132d4"
+ integrity sha512-vDTgf19ZEV6mx35yiPJe4fS02mPQUUcBNwWQSZFXSzTSbsJFQvHt7DqyS3LK8oOWALFOsJ+8bbqBgkirZteD5Q==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
lodash "^4.17.10"
-"@babel/plugin-transform-classes@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.0.0.tgz#9e65ca401747dde99e344baea90ab50dccb4c468"
- integrity sha512-8LBm7XsHQiNISEmb+ejBiHi1pUihwUf+lrIwyVsXVbQ1vLqgkvhgayK5JnW3WXvQD2rmM0qxFAIyDE5vtMem2A==
+"@babel/plugin-transform-classes@^7.2.0":
+ version "7.2.2"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.2.2.tgz#6c90542f210ee975aa2aa8c8b5af7fa73a126953"
+ integrity sha512-gEZvgTy1VtcDOaQty1l10T3jQmJKlNVxLDCs+3rCVPr6nMkODLELxViq5X9l+rfxbie3XrfrMCYYY6eX3aOcOQ==
dependencies:
"@babel/helper-annotate-as-pure" "^7.0.0"
- "@babel/helper-define-map" "^7.0.0"
- "@babel/helper-function-name" "^7.0.0"
+ "@babel/helper-define-map" "^7.1.0"
+ "@babel/helper-function-name" "^7.1.0"
"@babel/helper-optimise-call-expression" "^7.0.0"
"@babel/helper-plugin-utils" "^7.0.0"
- "@babel/helper-replace-supers" "^7.0.0"
+ "@babel/helper-replace-supers" "^7.1.0"
"@babel/helper-split-export-declaration" "^7.0.0"
globals "^11.1.0"
-"@babel/plugin-transform-computed-properties@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.0.0.tgz#2fbb8900cd3e8258f2a2ede909b90e7556185e31"
- integrity sha512-ubouZdChNAv4AAWAgU7QKbB93NU5sHwInEWfp+/OzJKA02E6Woh9RVoX4sZrbRwtybky/d7baTUqwFx+HgbvMA==
+"@babel/plugin-transform-computed-properties@^7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz#83a7df6a658865b1c8f641d510c6f3af220216da"
+ integrity sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-destructuring@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.0.0.tgz#68e911e1935dda2f06b6ccbbf184ffb024e9d43a"
- integrity sha512-Fr2GtF8YJSXGTyFPakPFB4ODaEKGU04bPsAllAIabwoXdFrPxL0LVXQX5dQWoxOjjgozarJcC9eWGsj0fD6Zsg==
+"@babel/plugin-transform-destructuring@^7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.2.0.tgz#e75269b4b7889ec3a332cd0d0c8cff8fed0dc6f3"
+ integrity sha512-coVO2Ayv7g0qdDbrNiadE4bU7lvCd9H539m2gMknyVjjMdwF/iCOM7R+E8PkntoqLkltO0rk+3axhpp/0v68VQ==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-dotall-regex@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.0.0.tgz#73a24da69bc3c370251f43a3d048198546115e58"
- integrity sha512-00THs8eJxOJUFVx1w8i1MBF4XH4PsAjKjQ1eqN/uCH3YKwP21GCKfrn6YZFZswbOk9+0cw1zGQPHVc1KBlSxig==
+"@babel/plugin-transform-dotall-regex@^7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.2.0.tgz#f0aabb93d120a8ac61e925ea0ba440812dbe0e49"
+ integrity sha512-sKxnyHfizweTgKZf7XsXu/CNupKhzijptfTM+bozonIuyVrLWVUvYjE2bhuSBML8VQeMxq4Mm63Q9qvcvUcciQ==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/helper-regex" "^7.0.0"
regexpu-core "^4.1.3"
-"@babel/plugin-transform-duplicate-keys@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.0.0.tgz#a0601e580991e7cace080e4cf919cfd58da74e86"
- integrity sha512-w2vfPkMqRkdxx+C71ATLJG30PpwtTpW7DDdLqYt2acXU7YjztzeWW2Jk1T6hKqCLYCcEA5UQM/+xTAm+QCSnuQ==
+"@babel/plugin-transform-duplicate-keys@^7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.2.0.tgz#d952c4930f312a4dbfff18f0b2914e60c35530b3"
+ integrity sha512-q+yuxW4DsTjNceUiTzK0L+AfQ0zD9rWaTLiUqHA8p0gxx7lu1EylenfzjeIWNkPy6e/0VG/Wjw9uf9LueQwLOw==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-exponentiation-operator@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.0.0.tgz#c51b45e090a01876f64d32b5b46c0799c85ea56c"
- integrity sha512-Ig74elCuFQ0mvHkWUq5qDCNI3qHWlop5w4TcDxdtJiOk8Egqe2uxDRY9XnXGSlmWClClmnixcoYumyvbAuj4dA==
+"@babel/plugin-transform-exponentiation-operator@^7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz#a63868289e5b4007f7054d46491af51435766008"
+ integrity sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A==
dependencies:
- "@babel/helper-builder-binary-assignment-operator-visitor" "^7.0.0"
+ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0"
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-for-of@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.0.0.tgz#f2ba4eadb83bd17dc3c7e9b30f4707365e1c3e39"
- integrity sha512-TlxKecN20X2tt2UEr2LNE6aqA0oPeMT1Y3cgz8k4Dn1j5ObT8M3nl9aA37LLklx0PBZKETC9ZAf9n/6SujTuXA==
+"@babel/plugin-transform-for-of@^7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.2.0.tgz#ab7468befa80f764bb03d3cb5eef8cc998e1cad9"
+ integrity sha512-Kz7Mt0SsV2tQk6jG5bBv5phVbkd0gd27SgYD4hH1aLMJRchM0dzHaXvrWhVZ+WxAlDoAKZ7Uy3jVTW2mKXQ1WQ==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-function-name@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.0.0.tgz#eeda18dc22584e13c3581a68f6be4822bb1d1d81"
- integrity sha512-mR7JN9vkwsAIot74pSwzn/2Gq4nn2wN0HKtQyJLc1ghAarsymdBMTfh+Q/aeR2N3heXs3URQscTLrKe3yUU7Yw==
+"@babel/plugin-transform-function-name@^7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.2.0.tgz#f7930362829ff99a3174c39f0afcc024ef59731a"
+ integrity sha512-kWgksow9lHdvBC2Z4mxTsvc7YdY7w/V6B2vy9cTIPtLEE9NhwoWivaxdNM/S37elu5bqlLP/qOY906LukO9lkQ==
dependencies:
- "@babel/helper-function-name" "^7.0.0"
+ "@babel/helper-function-name" "^7.1.0"
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-literals@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.0.0.tgz#2aec1d29cdd24c407359c930cdd89e914ee8ff86"
- integrity sha512-1NTDBWkeNXgpUcyoVFxbr9hS57EpZYXpje92zv0SUzjdu3enaRwF/l3cmyRnXLtIdyJASyiS6PtybK+CgKf7jA==
+"@babel/plugin-transform-literals@^7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz#690353e81f9267dad4fd8cfd77eafa86aba53ea1"
+ integrity sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-modules-amd@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.0.0.tgz#2430ab73db9960c4ca89966f425b803f5d0d0468"
- integrity sha512-CtSVpT/0tty/4405qczoIHm41YfFbPChplsmfBwsi3RTq/M9cHgVb3ixI5bqqgdKkqWwSX2sXqejvMKLuTVU+Q==
+"@babel/plugin-transform-modules-amd@^7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.2.0.tgz#82a9bce45b95441f617a24011dc89d12da7f4ee6"
+ integrity sha512-mK2A8ucqz1qhrdqjS9VMIDfIvvT2thrEsIQzbaTdc5QFzhDjQv2CkJJ5f6BXIkgbmaoax3zBr2RyvV/8zeoUZw==
dependencies:
- "@babel/helper-module-transforms" "^7.0.0"
+ "@babel/helper-module-transforms" "^7.1.0"
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-modules-commonjs@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.0.0.tgz#20b906e5ab130dd8e456b694a94d9575da0fd41f"
- integrity sha512-BIcQLgPFCxi7YygtNpz5xj+7HxhOprbCGZKeLW6Kxsn1eHS6sJZMw4MfmqFZagl/v6IVa0AJoMHdDXLVrpd3Aw==
+"@babel/plugin-transform-modules-commonjs@^7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.2.0.tgz#c4f1933f5991d5145e9cfad1dfd848ea1727f404"
+ integrity sha512-V6y0uaUQrQPXUrmj+hgnks8va2L0zcZymeU7TtWEgdRLNkceafKXEduv7QzgQAE4lT+suwooG9dC7LFhdRAbVQ==
dependencies:
- "@babel/helper-module-transforms" "^7.0.0"
+ "@babel/helper-module-transforms" "^7.1.0"
"@babel/helper-plugin-utils" "^7.0.0"
- "@babel/helper-simple-access" "^7.0.0"
+ "@babel/helper-simple-access" "^7.1.0"
-"@babel/plugin-transform-modules-systemjs@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.0.0.tgz#8873d876d4fee23209decc4d1feab8f198cf2df4"
- integrity sha512-8EDKMAsitLkiF/D4Zhe9CHEE2XLh4bfLbb9/Zf3FgXYQOZyZYyg7EAel/aT2A7bHv62jwHf09q2KU/oEexr83g==
+"@babel/plugin-transform-modules-systemjs@^7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.2.0.tgz#912bfe9e5ff982924c81d0937c92d24994bb9068"
+ integrity sha512-aYJwpAhoK9a+1+O625WIjvMY11wkB/ok0WClVwmeo3mCjcNRjt+/8gHWrB5i+00mUju0gWsBkQnPpdvQ7PImmQ==
dependencies:
"@babel/helper-hoist-variables" "^7.0.0"
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-modules-umd@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.0.0.tgz#e7bb4f2a6cd199668964241951a25013450349be"
- integrity sha512-EMyKpzgugxef+R1diXDwqw/Hmt5ls8VxfI8Gq5Lo8Qp3oKIepkYG4L/mvE2dmZSRalgL9sguoPKbnQ1m96hVFw==
+"@babel/plugin-transform-modules-umd@^7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz#7678ce75169f0877b8eb2235538c074268dd01ae"
+ integrity sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw==
dependencies:
- "@babel/helper-module-transforms" "^7.0.0"
+ "@babel/helper-module-transforms" "^7.1.0"
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-transform-new-target@^7.0.0":
@@ -489,62 +490,62 @@
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-object-super@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.0.0.tgz#b8587d511309b3a0e96e9e38169908b3e392041e"
- integrity sha512-BfAiF1l18Xr1shy1NyyQgLiHDvh/S7APiEM5+0wxTsQ+e3fgXO+NA47u4PvppzH0meJS21y0gZHcjnvUAJj8tQ==
+"@babel/plugin-transform-object-super@^7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.2.0.tgz#b35d4c10f56bab5d650047dad0f1d8e8814b6598"
+ integrity sha512-VMyhPYZISFZAqAPVkiYb7dUe2AsVi2/wCT5+wZdsNO31FojQJa9ns40hzZ6U9f50Jlq4w6qwzdBB2uwqZ00ebg==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
- "@babel/helper-replace-supers" "^7.0.0"
+ "@babel/helper-replace-supers" "^7.1.0"
-"@babel/plugin-transform-parameters@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.0.0.tgz#da864efa111816a6df161d492f33de10e74b1949"
- integrity sha512-eWngvRBWx0gScot0xa340JzrkA+8HGAk1OaCHDfXAjkrTFkp73Lcf+78s7AStSdRML5nzx5aXpnjN1MfrjkBoA==
+"@babel/plugin-transform-parameters@^7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.2.0.tgz#0d5ad15dc805e2ea866df4dd6682bfe76d1408c2"
+ integrity sha512-kB9+hhUidIgUoBQ0MsxMewhzr8i60nMa2KgeJKQWYrqQpqcBYtnpR+JgkadZVZoaEZ/eKu9mclFaVwhRpLNSzA==
dependencies:
- "@babel/helper-call-delegate" "^7.0.0"
+ "@babel/helper-call-delegate" "^7.1.0"
"@babel/helper-get-function-arity" "^7.0.0"
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-transform-react-display-name@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.0.0.tgz#93759e6c023782e52c2da3b75eca60d4f10533ee"
- integrity sha512-BX8xKuQTO0HzINxT6j/GiCwoJB0AOMs0HmLbEnAvcte8U8rSkNa/eSCAY+l1OA4JnCVq2jw2p6U8QQryy2fTPg==
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.2.0.tgz#ebfaed87834ce8dc4279609a4f0c324c156e3eb0"
+ integrity sha512-Htf/tPa5haZvRMiNSQSFifK12gtr/8vwfr+A9y69uF0QcU77AVu4K7MiHEkTxF7lQoHOL0F9ErqgfNEAKgXj7A==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-react-inline-elements@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-inline-elements/-/plugin-transform-react-inline-elements-7.0.0.tgz#caec13a7829b34d7eb64dfe9fc310326f74f7b05"
- integrity sha512-2TZsbrzXXwLjUjftRWPtvcAwpdSUp5CIQsVxUqTHRAvbMIcIRnz8C670eMUW5ZTQBTjdIRFGt9nkq53iCinu9g==
+"@babel/plugin-transform-react-inline-elements@^7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-inline-elements/-/plugin-transform-react-inline-elements-7.2.0.tgz#3e36e7c47f1c21f52b2b0090d5cd83ceb19a4770"
+ integrity sha512-OAflI+josEl8xoAzZYpFnN+C4e9wvxDecExTtvDsteAcChIZtsH/D2kMNcJnrrzbFzCroGajCTr9tAB7K0KsiQ==
dependencies:
"@babel/helper-builder-react-jsx" "^7.0.0"
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-react-jsx-self@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.0.0.tgz#a84bb70fea302d915ea81d9809e628266bb0bc11"
- integrity sha512-pymy+AK12WO4safW1HmBpwagUQRl9cevNX+82AIAtU1pIdugqcH+nuYP03Ja6B+N4gliAaKWAegIBL/ymALPHA==
+"@babel/plugin-transform-react-jsx-self@^7.0.0", "@babel/plugin-transform-react-jsx-self@^7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.2.0.tgz#461e21ad9478f1031dd5e276108d027f1b5240ba"
+ integrity sha512-v6S5L/myicZEy+jr6ielB0OR8h+EH/1QFx/YJ7c7Ua+7lqsjj/vW6fD5FR9hB/6y7mGbfT4vAURn3xqBxsUcdg==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
- "@babel/plugin-syntax-jsx" "^7.0.0"
+ "@babel/plugin-syntax-jsx" "^7.2.0"
-"@babel/plugin-transform-react-jsx-source@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.0.0.tgz#28e00584f9598c0dd279f6280eee213fa0121c3c"
- integrity sha512-OSeEpFJEH5dw/TtxTg4nijl4nHBbhqbKL94Xo/Y17WKIf2qJWeIk/QeXACF19lG1vMezkxqruwnTjVizaW7u7w==
+"@babel/plugin-transform-react-jsx-source@^7.0.0", "@babel/plugin-transform-react-jsx-source@^7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.2.0.tgz#20c8c60f0140f5dd3cd63418d452801cf3f7180f"
+ integrity sha512-A32OkKTp4i5U6aE88GwwcuV4HAprUgHcTq0sSafLxjr6AW0QahrCRCjxogkbbcdtpbXkuTOlgpjophCxb6sh5g==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
- "@babel/plugin-syntax-jsx" "^7.0.0"
+ "@babel/plugin-syntax-jsx" "^7.2.0"
"@babel/plugin-transform-react-jsx@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.0.0.tgz#524379e4eca5363cd10c4446ba163f093da75f3e"
- integrity sha512-0TMP21hXsSUjIQJmu/r7RiVxeFrXRcMUigbKu0BLegJK9PkYodHstaszcig7zxXfaBji2LYUdtqIkHs+hgYkJQ==
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.2.0.tgz#ca36b6561c4d3b45524f8efb6f0fbc9a0d1d622f"
+ integrity sha512-h/fZRel5wAfCqcKgq3OhbmYaReo7KkoJBpt8XnvpS7wqaNMqtw5xhxutzcm35iMUWucfAdT/nvGTsWln0JTg2Q==
dependencies:
"@babel/helper-builder-react-jsx" "^7.0.0"
"@babel/helper-plugin-utils" "^7.0.0"
- "@babel/plugin-syntax-jsx" "^7.0.0"
+ "@babel/plugin-syntax-jsx" "^7.2.0"
"@babel/plugin-transform-regenerator@^7.0.0":
version "7.0.0"
@@ -553,104 +554,105 @@
dependencies:
regenerator-transform "^0.13.3"
-"@babel/plugin-transform-runtime@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.0.0.tgz#0f1443c07bac16dba8efa939e0c61d6922740062"
- integrity sha512-yECRVxRu25Nsf6IY5v5XrXhcW9ZHomUQiq30VO8H7r3JYPcBJDTcxZmT+6v1O3QKKrDp1Wp40LinGbcd+jlp9A==
+"@babel/plugin-transform-runtime@^7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.2.0.tgz#566bc43f7d0aedc880eaddbd29168d0f248966ea"
+ integrity sha512-jIgkljDdq4RYDnJyQsiWbdvGeei/0MOTtSHKO/rfbd/mXBxNpdlulMx49L0HQ4pug1fXannxoqCI+fYSle9eSw==
dependencies:
"@babel/helper-module-imports" "^7.0.0"
"@babel/helper-plugin-utils" "^7.0.0"
resolve "^1.8.1"
+ semver "^5.5.1"
-"@babel/plugin-transform-shorthand-properties@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.0.0.tgz#85f8af592dcc07647541a0350e8c95c7bf419d15"
- integrity sha512-g/99LI4vm5iOf5r1Gdxq5Xmu91zvjhEG5+yZDJW268AZELAu4J1EiFLnkSG3yuUsZyOipVOVUKoGPYwfsTymhw==
+"@babel/plugin-transform-shorthand-properties@^7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz#6333aee2f8d6ee7e28615457298934a3b46198f0"
+ integrity sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-spread@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.0.0.tgz#93583ce48dd8c85e53f3a46056c856e4af30b49b"
- integrity sha512-L702YFy2EvirrR4shTj0g2xQp7aNwZoWNCkNu2mcoU0uyzMl0XRwDSwzB/xp6DSUFiBmEXuyAyEN16LsgVqGGQ==
+"@babel/plugin-transform-spread@^7.2.0":
+ version "7.2.2"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz#3103a9abe22f742b6d406ecd3cd49b774919b406"
+ integrity sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-sticky-regex@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.0.0.tgz#30a9d64ac2ab46eec087b8530535becd90e73366"
- integrity sha512-LFUToxiyS/WD+XEWpkx/XJBrUXKewSZpzX68s+yEOtIbdnsRjpryDw9U06gYc6klYEij/+KQVRnD3nz3AoKmjw==
+"@babel/plugin-transform-sticky-regex@^7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz#a1e454b5995560a9c1e0d537dfc15061fd2687e1"
+ integrity sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/helper-regex" "^7.0.0"
-"@babel/plugin-transform-template-literals@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.0.0.tgz#084f1952efe5b153ddae69eb8945f882c7a97c65"
- integrity sha512-vA6rkTCabRZu7Nbl9DfLZE1imj4tzdWcg5vtdQGvj+OH9itNNB6hxuRMHuIY8SGnEt1T9g5foqs9LnrHzsqEFg==
+"@babel/plugin-transform-template-literals@^7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.2.0.tgz#d87ed01b8eaac7a92473f608c97c089de2ba1e5b"
+ integrity sha512-FkPix00J9A/XWXv4VoKJBMeSkyY9x/TqIh76wzcdfl57RJJcf8CehQ08uwfhCDNtRQYtHQKBTwKZDEyjE13Lwg==
dependencies:
"@babel/helper-annotate-as-pure" "^7.0.0"
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-typeof-symbol@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.0.0.tgz#4dcf1e52e943e5267b7313bff347fdbe0f81cec9"
- integrity sha512-1r1X5DO78WnaAIvs5uC48t41LLckxsYklJrZjNKcevyz83sF2l4RHbw29qrCPr/6ksFsdfRpT/ZgxNWHXRnffg==
+"@babel/plugin-transform-typeof-symbol@^7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz#117d2bcec2fbf64b4b59d1f9819894682d29f2b2"
+ integrity sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-unicode-regex@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.0.0.tgz#c6780e5b1863a76fe792d90eded9fcd5b51d68fc"
- integrity sha512-uJBrJhBOEa3D033P95nPHu3nbFwFE9ZgXsfEitzoIXIwqAZWk7uXcg06yFKXz9FSxBH5ucgU/cYdX0IV8ldHKw==
+"@babel/plugin-transform-unicode-regex@^7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.2.0.tgz#4eb8db16f972f8abb5062c161b8b115546ade08b"
+ integrity sha512-m48Y0lMhrbXEJnVUaYly29jRXbQ3ksxPrS1Tg8t+MHqzXhtBYAvI51euOBaoAlZLPHsieY9XPVMf80a5x0cPcA==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/helper-regex" "^7.0.0"
regexpu-core "^4.1.3"
-"@babel/preset-env@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.0.0.tgz#f450f200c14e713f98cb14d113bf0c2cfbb89ca9"
- integrity sha512-Fnx1wWaWv2w2rl+VHxA9si//Da40941IQ29fKiRejVR7oN1FxSEL8+SyAX/2oKIye2gPvY/GBbJVEKQ/oi43zQ==
+"@babel/preset-env@^7.2.3":
+ version "7.2.3"
+ resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.2.3.tgz#948c8df4d4609c99c7e0130169f052ea6a7a8933"
+ integrity sha512-AuHzW7a9rbv5WXmvGaPX7wADxFkZIqKlbBh1dmZUQp4iwiPpkE/Qnrji6SC4UQCQzvWY/cpHET29eUhXS9cLPw==
dependencies:
"@babel/helper-module-imports" "^7.0.0"
"@babel/helper-plugin-utils" "^7.0.0"
- "@babel/plugin-proposal-async-generator-functions" "^7.0.0"
- "@babel/plugin-proposal-json-strings" "^7.0.0"
- "@babel/plugin-proposal-object-rest-spread" "^7.0.0"
- "@babel/plugin-proposal-optional-catch-binding" "^7.0.0"
- "@babel/plugin-proposal-unicode-property-regex" "^7.0.0"
- "@babel/plugin-syntax-async-generators" "^7.0.0"
- "@babel/plugin-syntax-object-rest-spread" "^7.0.0"
- "@babel/plugin-syntax-optional-catch-binding" "^7.0.0"
- "@babel/plugin-transform-arrow-functions" "^7.0.0"
- "@babel/plugin-transform-async-to-generator" "^7.0.0"
- "@babel/plugin-transform-block-scoped-functions" "^7.0.0"
- "@babel/plugin-transform-block-scoping" "^7.0.0"
- "@babel/plugin-transform-classes" "^7.0.0"
- "@babel/plugin-transform-computed-properties" "^7.0.0"
- "@babel/plugin-transform-destructuring" "^7.0.0"
- "@babel/plugin-transform-dotall-regex" "^7.0.0"
- "@babel/plugin-transform-duplicate-keys" "^7.0.0"
- "@babel/plugin-transform-exponentiation-operator" "^7.0.0"
- "@babel/plugin-transform-for-of" "^7.0.0"
- "@babel/plugin-transform-function-name" "^7.0.0"
- "@babel/plugin-transform-literals" "^7.0.0"
- "@babel/plugin-transform-modules-amd" "^7.0.0"
- "@babel/plugin-transform-modules-commonjs" "^7.0.0"
- "@babel/plugin-transform-modules-systemjs" "^7.0.0"
- "@babel/plugin-transform-modules-umd" "^7.0.0"
+ "@babel/plugin-proposal-async-generator-functions" "^7.2.0"
+ "@babel/plugin-proposal-json-strings" "^7.2.0"
+ "@babel/plugin-proposal-object-rest-spread" "^7.2.0"
+ "@babel/plugin-proposal-optional-catch-binding" "^7.2.0"
+ "@babel/plugin-proposal-unicode-property-regex" "^7.2.0"
+ "@babel/plugin-syntax-async-generators" "^7.2.0"
+ "@babel/plugin-syntax-object-rest-spread" "^7.2.0"
+ "@babel/plugin-syntax-optional-catch-binding" "^7.2.0"
+ "@babel/plugin-transform-arrow-functions" "^7.2.0"
+ "@babel/plugin-transform-async-to-generator" "^7.2.0"
+ "@babel/plugin-transform-block-scoped-functions" "^7.2.0"
+ "@babel/plugin-transform-block-scoping" "^7.2.0"
+ "@babel/plugin-transform-classes" "^7.2.0"
+ "@babel/plugin-transform-computed-properties" "^7.2.0"
+ "@babel/plugin-transform-destructuring" "^7.2.0"
+ "@babel/plugin-transform-dotall-regex" "^7.2.0"
+ "@babel/plugin-transform-duplicate-keys" "^7.2.0"
+ "@babel/plugin-transform-exponentiation-operator" "^7.2.0"
+ "@babel/plugin-transform-for-of" "^7.2.0"
+ "@babel/plugin-transform-function-name" "^7.2.0"
+ "@babel/plugin-transform-literals" "^7.2.0"
+ "@babel/plugin-transform-modules-amd" "^7.2.0"
+ "@babel/plugin-transform-modules-commonjs" "^7.2.0"
+ "@babel/plugin-transform-modules-systemjs" "^7.2.0"
+ "@babel/plugin-transform-modules-umd" "^7.2.0"
"@babel/plugin-transform-new-target" "^7.0.0"
- "@babel/plugin-transform-object-super" "^7.0.0"
- "@babel/plugin-transform-parameters" "^7.0.0"
+ "@babel/plugin-transform-object-super" "^7.2.0"
+ "@babel/plugin-transform-parameters" "^7.2.0"
"@babel/plugin-transform-regenerator" "^7.0.0"
- "@babel/plugin-transform-shorthand-properties" "^7.0.0"
- "@babel/plugin-transform-spread" "^7.0.0"
- "@babel/plugin-transform-sticky-regex" "^7.0.0"
- "@babel/plugin-transform-template-literals" "^7.0.0"
- "@babel/plugin-transform-typeof-symbol" "^7.0.0"
- "@babel/plugin-transform-unicode-regex" "^7.0.0"
- browserslist "^4.1.0"
+ "@babel/plugin-transform-shorthand-properties" "^7.2.0"
+ "@babel/plugin-transform-spread" "^7.2.0"
+ "@babel/plugin-transform-sticky-regex" "^7.2.0"
+ "@babel/plugin-transform-template-literals" "^7.2.0"
+ "@babel/plugin-transform-typeof-symbol" "^7.2.0"
+ "@babel/plugin-transform-unicode-regex" "^7.2.0"
+ browserslist "^4.3.4"
invariant "^2.2.2"
js-levenshtein "^1.1.3"
semver "^5.3.0"
@@ -666,75 +668,125 @@
"@babel/plugin-transform-react-jsx-self" "^7.0.0"
"@babel/plugin-transform-react-jsx-source" "^7.0.0"
-"@babel/runtime@7.0.0", "@babel/runtime@^7.0.0":
+"@babel/runtime@7.0.0":
version "7.0.0"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.0.0.tgz#adeb78fedfc855aa05bc041640f3f6f98e85424c"
integrity sha512-7hGhzlcmg01CvH1EHdSPVXYX1aJ8KCEyz6I9xYIi/asDtzBPMyMhVibhM/K6g/5qnKBwjZtp10bNZIEFTRW1MA==
dependencies:
regenerator-runtime "^0.12.0"
-"@babel/runtime@7.0.0-rc.1":
- version "7.0.0-rc.1"
- resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.0.0-rc.1.tgz#42f36fc5817911c89ea75da2b874054922967616"
- integrity sha512-Nifv2kwP/nwR39cAOasNxzjYfpeuf/ZbZNtQz5eYxWTC9yHARU9wItFnAwz1GTZ62MU+AtSjzZPMbLK5Q9hmbg==
+"@babel/runtime@7.2.0", "@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.2.0.tgz#b03e42eeddf5898e00646e4c840fa07ba8dcad7f"
+ integrity sha512-oouEibCbHMVdZSDlJBO6bZmID/zA/G/Qx3H1d3rSNPTD+L8UNKvCat7aKWSJ74zYbm5zWGh0GQN0hKj8zYFTCg==
dependencies:
regenerator-runtime "^0.12.0"
-"@babel/template@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0.tgz#c2bc9870405959c89a9c814376a2ecb247838c80"
- integrity sha512-VLQZik/G5mjYJ6u19U3W2u7eM+rA/NGzH+GtHDFFkLTKLW66OasFrxZ/yK7hkyQcswrmvugFyZpDFRW0DjcjCw==
+"@babel/template@^7.1.0", "@babel/template@^7.1.2", "@babel/template@^7.2.2":
+ version "7.2.2"
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.2.2.tgz#005b3fdf0ed96e88041330379e0da9a708eb2907"
+ integrity sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==
dependencies:
"@babel/code-frame" "^7.0.0"
- "@babel/parser" "^7.0.0"
- "@babel/types" "^7.0.0"
+ "@babel/parser" "^7.2.2"
+ "@babel/types" "^7.2.2"
-"@babel/traverse@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0.tgz#b1fe9b6567fdf3ab542cfad6f3b31f854d799a61"
- integrity sha512-ka/lwaonJZTlJyn97C4g5FYjPOx+Oxd3ab05hbDr1Mx9aP1FclJ+SUHyLx3Tx40sGmOVJApDxE6puJhd3ld2kw==
+"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.1.5", "@babel/traverse@^7.2.2", "@babel/traverse@^7.2.3":
+ version "7.2.3"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.2.3.tgz#7ff50cefa9c7c0bd2d81231fdac122f3957748d8"
+ integrity sha512-Z31oUD/fJvEWVR0lNZtfgvVt512ForCTNKYcJBGbPb1QZfve4WGH8Wsy7+Mev33/45fhP/hwQtvgusNdcCMgSw==
dependencies:
"@babel/code-frame" "^7.0.0"
- "@babel/generator" "^7.0.0"
- "@babel/helper-function-name" "^7.0.0"
+ "@babel/generator" "^7.2.2"
+ "@babel/helper-function-name" "^7.1.0"
"@babel/helper-split-export-declaration" "^7.0.0"
- "@babel/parser" "^7.0.0"
- "@babel/types" "^7.0.0"
- debug "^3.1.0"
+ "@babel/parser" "^7.2.3"
+ "@babel/types" "^7.2.2"
+ debug "^4.1.0"
globals "^11.1.0"
lodash "^4.17.10"
-"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0.tgz#6e191793d3c854d19c6749989e3bc55f0e962118"
- integrity sha512-5tPDap4bGKTLPtci2SUl/B7Gv8RnuJFuQoWx26RJobS0fFrz4reUA3JnwIM+HVHEmWE0C1mzKhDtTp8NsWY02Q==
+"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.2.0", "@babel/types@^7.2.2":
+ version "7.2.2"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.2.2.tgz#44e10fc24e33af524488b716cdaee5360ea8ed1e"
+ integrity sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==
dependencies:
esutils "^2.0.2"
lodash "^4.17.10"
to-fast-properties "^2.0.0"
-"@csstools/convert-colors@^1.4.0":
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7"
- integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==
-
-"@csstools/postcss-image-set-function@^1.0.0":
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/@csstools/postcss-image-set-function/-/postcss-image-set-function-1.0.0.tgz#1ef0913d90a9c4440495eb41624c202e53a703f3"
- integrity sha512-B+uThZhN3rTRV7mjw3c+GCxIrBkHIAihnfZEb5Ig3+hauQMWGARD3j8UoMX7Hk6w4pBpMbm3Ggs9TVKvtn/kkA==
+"@emotion/cache@10.0.0":
+ version "10.0.0"
+ resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-10.0.0.tgz#e22eadcb770de4131ec707c84207e9e1ce210413"
+ integrity sha512-1/sT6GNyvWmxCtJek8ZDV+b+a+NMDx8/61UTnnF3rqrTY7bLTjw+fmXO7WgUIH0owuWKxza/J/FfAWC/RU4G7A==
dependencies:
- postcss "^6.0.20"
- postcss-value-parser "^3.3.0"
+ "@emotion/sheet" "0.9.2"
+ "@emotion/stylis" "0.8.3"
+ "@emotion/utils" "0.11.1"
+ "@emotion/weak-memoize" "0.2.2"
-"@csstools/sass-import-resolve@^1":
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/@csstools/sass-import-resolve/-/sass-import-resolve-1.0.0.tgz#32c3cdb2f7af3cd8f0dca357b592e7271f3831b5"
- integrity sha512-pH4KCsbtBLLe7eqUrw8brcuFO8IZlN36JjdKlOublibVdAIPHCzEnpBWOVUXK5sCf+DpBi8ZtuWtjF0srybdeA==
+"@emotion/hash@0.7.1":
+ version "0.7.1"
+ resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.7.1.tgz#9833722341379fb7d67f06a4b00ab3c37913da53"
+ integrity sha512-OYpa/Sg+2GDX+jibUfpZVn1YqSVRpYmTLF2eyAfrFTIJSbwyIrc+YscayoykvaOME/wV4BV0Sa0yqdMrgse6mA==
+
+"@emotion/memoize@0.7.1":
+ version "0.7.1"
+ resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.1.tgz#e93c13942592cf5ef01aa8297444dc192beee52f"
+ integrity sha512-Qv4LTqO11jepd5Qmlp3M1YEjBumoTHcHFdgPTQ+sFlIL5myi/7xu/POwP7IRu6odBdmLXdtIs1D6TuW6kbwbbg==
+
+"@emotion/serialize@^0.11.3":
+ version "0.11.3"
+ resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-0.11.3.tgz#c4af2d96e3ddb9a749b7b567daa7556bcae45af2"
+ integrity sha512-6Q+XH/7kMdHwtylwZvdkOVMydaGZ989axQ56NF7urTR7eiDMLGun//pFUy31ha6QR4C6JB+KJVhZ3AEAJm9Z1g==
+ dependencies:
+ "@emotion/hash" "0.7.1"
+ "@emotion/memoize" "0.7.1"
+ "@emotion/unitless" "0.7.3"
+ "@emotion/utils" "0.11.1"
+ csstype "^2.5.7"
+
+"@emotion/sheet@0.9.2":
+ version "0.9.2"
+ resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-0.9.2.tgz#74e5c6b5e489a1ba30ab246ab5eedd96916487c4"
+ integrity sha512-pVBLzIbC/QCHDKJF2E82V2H/W/B004mDFQZiyo/MSR+VC4pV5JLG0TF/zgQDFvP3fZL/5RTPGEmXlYJBMUuJ+A==
+
+"@emotion/stylis@0.8.3":
+ version "0.8.3"
+ resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.8.3.tgz#3ca7e9bcb31b3cb4afbaeb66156d86ee85e23246"
+ integrity sha512-M3nMfJ6ndJMYloSIbYEBq6G3eqoYD41BpDOxreE8j0cb4fzz/5qvmqU9Mb2hzsXcCnIlGlWhS03PCzVGvTAe0Q==
+
+"@emotion/unitless@0.7.3":
+ version "0.7.3"
+ resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.3.tgz#6310a047f12d21a1036fb031317219892440416f"
+ integrity sha512-4zAPlpDEh2VwXswwr/t8xGNDGg8RQiPxtxZ3qQEXyQsBV39ptTdESCjuBvGze1nLMVrxmTIKmnO/nAV8Tqjjzg==
+
+"@emotion/utils@0.11.1":
+ version "0.11.1"
+ resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-0.11.1.tgz#8529b7412a6eb4b48bdf6e720cc1b8e6e1e17628"
+ integrity sha512-8M3VN0hetwhsJ8dH8VkVy7xo5/1VoBsDOk/T4SJOeXwTO1c4uIqVNx2qyecLFnnUWD5vvUqHQ1gASSeUN6zcTg==
+
+"@emotion/weak-memoize@0.2.2":
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.2.tgz#63985d3d8b02530e0869962f4da09142ee8e200e"
+ integrity sha512-n/VQ4mbfr81aqkx/XmVicOLjviMuy02eenSdJY33SVA7S2J42EU0P1H0mOogfYedb3wXA0d/LVtBrgTSm04WEA==
+
+"@gfx/zopfli@^1.0.10":
+ version "1.0.10"
+ resolved "https://registry.yarnpkg.com/@gfx/zopfli/-/zopfli-1.0.10.tgz#8cccfcbd670f676cb240812bcf8380c9a66da367"
+ integrity sha512-PAR3ICucog1HV+hDVF+VYNfnvB/JmE4C8YqxhMMEuxyycFthrv6hIEeCoNsRVF3J+SEtNLWRPTOXgcvQkZIM5A==
+ dependencies:
+ base64-js "^1.3.0"
"@types/node@*":
- version "10.9.4"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-10.9.4.tgz#0f4cb2dc7c1de6096055357f70179043c33e9897"
- integrity sha512-fCHV45gS+m3hH17zgkgADUSi2RR1Vht6wOZ0jyHP8rjiQra9f+mIcgwPQHllmDocYOstIEbKlxbFDYlgrTPYqw==
+ version "10.12.18"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.18.tgz#1d3ca764718915584fcd9f6344621b7672665c67"
+ integrity sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==
+
+"@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==
"@types/react@16.4.6":
version "16.4.6"
@@ -743,151 +795,147 @@
dependencies:
csstype "^2.2.0"
-"@webassemblyjs/ast@1.7.6":
- version "1.7.6"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.7.6.tgz#3ef8c45b3e5e943a153a05281317474fef63e21e"
- integrity sha512-8nkZS48EVsMUU0v6F1LCIOw4RYWLm2plMtbhFTjNgeXmsTNLuU3xTRtnljt9BFQB+iPbLRobkNrCWftWnNC7wQ==
+"@webassemblyjs/ast@1.7.11":
+ version "1.7.11"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.7.11.tgz#b988582cafbb2b095e8b556526f30c90d057cace"
+ integrity sha512-ZEzy4vjvTzScC+SH8RBssQUawpaInUdMTYwYYLh54/s8TuT0gBLuyUnppKsVyZEi876VmmStKsUs28UxPgdvrA==
dependencies:
- "@webassemblyjs/helper-module-context" "1.7.6"
- "@webassemblyjs/helper-wasm-bytecode" "1.7.6"
- "@webassemblyjs/wast-parser" "1.7.6"
- mamacro "^0.0.3"
+ "@webassemblyjs/helper-module-context" "1.7.11"
+ "@webassemblyjs/helper-wasm-bytecode" "1.7.11"
+ "@webassemblyjs/wast-parser" "1.7.11"
-"@webassemblyjs/floating-point-hex-parser@1.7.6":
- version "1.7.6"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.6.tgz#7cb37d51a05c3fe09b464ae7e711d1ab3837801f"
- integrity sha512-VBOZvaOyBSkPZdIt5VBMg3vPWxouuM13dPXGWI1cBh3oFLNcFJ8s9YA7S9l4mPI7+Q950QqOmqj06oa83hNWBA==
+"@webassemblyjs/floating-point-hex-parser@1.7.11":
+ version "1.7.11"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.11.tgz#a69f0af6502eb9a3c045555b1a6129d3d3f2e313"
+ integrity sha512-zY8dSNyYcgzNRNT666/zOoAyImshm3ycKdoLsyDw/Bwo6+/uktb7p4xyApuef1dwEBo/U/SYQzbGBvV+nru2Xg==
-"@webassemblyjs/helper-api-error@1.7.6":
- version "1.7.6"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.6.tgz#99b7e30e66f550a2638299a109dda84a622070ef"
- integrity sha512-SCzhcQWHXfrfMSKcj8zHg1/kL9kb3aa5TN4plc/EREOs5Xop0ci5bdVBApbk2yfVi8aL+Ly4Qpp3/TRAUInjrg==
+"@webassemblyjs/helper-api-error@1.7.11":
+ version "1.7.11"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.11.tgz#c7b6bb8105f84039511a2b39ce494f193818a32a"
+ integrity sha512-7r1qXLmiglC+wPNkGuXCvkmalyEstKVwcueZRP2GNC2PAvxbLYwLLPr14rcdJaE4UtHxQKfFkuDFuv91ipqvXg==
-"@webassemblyjs/helper-buffer@1.7.6":
- version "1.7.6"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.6.tgz#ba0648be12bbe560c25c997e175c2018df39ca3e"
- integrity sha512-1/gW5NaGsEOZ02fjnFiU8/OEEXU1uVbv2um0pQ9YVL3IHSkyk6xOwokzyqqO1qDZQUAllb+V8irtClPWntbVqw==
+"@webassemblyjs/helper-buffer@1.7.11":
+ version "1.7.11"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.11.tgz#3122d48dcc6c9456ed982debe16c8f37101df39b"
+ integrity sha512-MynuervdylPPh3ix+mKZloTcL06P8tenNH3sx6s0qE8SLR6DdwnfgA7Hc9NSYeob2jrW5Vql6GVlsQzKQCa13w==
-"@webassemblyjs/helper-code-frame@1.7.6":
- version "1.7.6"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.6.tgz#5a94d21b0057b69a7403fca0c253c3aaca95b1a5"
- integrity sha512-+suMJOkSn9+vEvDvgyWyrJo5vJsWSDXZmJAjtoUq4zS4eqHyXImpktvHOZwXp1XQjO5H+YQwsBgqTQEc0J/5zg==
+"@webassemblyjs/helper-code-frame@1.7.11":
+ version "1.7.11"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.11.tgz#cf8f106e746662a0da29bdef635fcd3d1248364b"
+ integrity sha512-T8ESC9KMXFTXA5urJcyor5cn6qWeZ4/zLPyWeEXZ03hj/x9weSokGNkVCdnhSabKGYWxElSdgJ+sFa9G/RdHNw==
dependencies:
- "@webassemblyjs/wast-printer" "1.7.6"
+ "@webassemblyjs/wast-printer" "1.7.11"
-"@webassemblyjs/helper-fsm@1.7.6":
- version "1.7.6"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.6.tgz#ae1741c6f6121213c7a0b587fb964fac492d3e49"
- integrity sha512-HCS6KN3wgxUihGBW7WFzEC/o8Eyvk0d56uazusnxXthDPnkWiMv+kGi9xXswL2cvfYfeK5yiM17z2K5BVlwypw==
+"@webassemblyjs/helper-fsm@1.7.11":
+ version "1.7.11"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.11.tgz#df38882a624080d03f7503f93e3f17ac5ac01181"
+ integrity sha512-nsAQWNP1+8Z6tkzdYlXT0kxfa2Z1tRTARd8wYnc/e3Zv3VydVVnaeePgqUzFrpkGUyhUUxOl5ML7f1NuT+gC0A==
-"@webassemblyjs/helper-module-context@1.7.6":
- version "1.7.6"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.6.tgz#116d19a51a6cebc8900ad53ca34ff8269c668c23"
- integrity sha512-e8/6GbY7OjLM+6OsN7f2krC2qYVNaSr0B0oe4lWdmq5sL++8dYDD1TFbD1TdAdWMRTYNr/Qq7ovXWzia2EbSjw==
+"@webassemblyjs/helper-module-context@1.7.11":
+ version "1.7.11"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.11.tgz#d874d722e51e62ac202476935d649c802fa0e209"
+ integrity sha512-JxfD5DX8Ygq4PvXDucq0M+sbUFA7BJAv/GGl9ITovqE+idGX+J3QSzJYz+LwQmL7fC3Rs+utvWoJxDb6pmC0qg==
+
+"@webassemblyjs/helper-wasm-bytecode@1.7.11":
+ version "1.7.11"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.11.tgz#dd9a1e817f1c2eb105b4cf1013093cb9f3c9cb06"
+ integrity sha512-cMXeVS9rhoXsI9LLL4tJxBgVD/KMOKXuFqYb5oCJ/opScWpkCMEz9EJtkonaNcnLv2R3K5jIeS4TRj/drde1JQ==
+
+"@webassemblyjs/helper-wasm-section@1.7.11":
+ version "1.7.11"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.11.tgz#9c9ac41ecf9fbcfffc96f6d2675e2de33811e68a"
+ integrity sha512-8ZRY5iZbZdtNFE5UFunB8mmBEAbSI3guwbrsCl4fWdfRiAcvqQpeqd5KHhSWLL5wuxo53zcaGZDBU64qgn4I4Q==
dependencies:
- mamacro "^0.0.3"
+ "@webassemblyjs/ast" "1.7.11"
+ "@webassemblyjs/helper-buffer" "1.7.11"
+ "@webassemblyjs/helper-wasm-bytecode" "1.7.11"
+ "@webassemblyjs/wasm-gen" "1.7.11"
-"@webassemblyjs/helper-wasm-bytecode@1.7.6":
- version "1.7.6"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.6.tgz#98e515eaee611aa6834eb5f6a7f8f5b29fefb6f1"
- integrity sha512-PzYFCb7RjjSdAOljyvLWVqd6adAOabJW+8yRT+NWhXuf1nNZWH+igFZCUK9k7Cx7CsBbzIfXjJc7u56zZgFj9Q==
-
-"@webassemblyjs/helper-wasm-section@1.7.6":
- version "1.7.6"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.6.tgz#783835867bdd686df7a95377ab64f51a275e8333"
- integrity sha512-3GS628ppDPSuwcYlQ7cDCGr4W2n9c4hLzvnRKeuz+lGsJSmc/ADVoYpm1ts2vlB1tGHkjtQMni+yu8mHoMlKlA==
- dependencies:
- "@webassemblyjs/ast" "1.7.6"
- "@webassemblyjs/helper-buffer" "1.7.6"
- "@webassemblyjs/helper-wasm-bytecode" "1.7.6"
- "@webassemblyjs/wasm-gen" "1.7.6"
-
-"@webassemblyjs/ieee754@1.7.6":
- version "1.7.6"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.7.6.tgz#c34fc058f2f831fae0632a8bb9803cf2d3462eb1"
- integrity sha512-V4cIp0ruyw+hawUHwQLn6o2mFEw4t50tk530oKsYXQhEzKR+xNGDxs/SFFuyTO7X3NzEu4usA3w5jzhl2RYyzQ==
+"@webassemblyjs/ieee754@1.7.11":
+ version "1.7.11"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.7.11.tgz#c95839eb63757a31880aaec7b6512d4191ac640b"
+ integrity sha512-Mmqx/cS68K1tSrvRLtaV/Lp3NZWzXtOHUW2IvDvl2sihAwJh4ACE0eL6A8FvMyDG9abes3saB6dMimLOs+HMoQ==
dependencies:
"@xtuc/ieee754" "^1.2.0"
-"@webassemblyjs/leb128@1.7.6":
- version "1.7.6"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.7.6.tgz#197f75376a29f6ed6ace15898a310d871d92f03b"
- integrity sha512-ojdlG8WpM394lBow4ncTGJoIVZ4aAtNOWHhfAM7m7zprmkVcKK+2kK5YJ9Bmj6/ketTtOn7wGSHCtMt+LzqgYQ==
+"@webassemblyjs/leb128@1.7.11":
+ version "1.7.11"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.7.11.tgz#d7267a1ee9c4594fd3f7e37298818ec65687db63"
+ integrity sha512-vuGmgZjjp3zjcerQg+JA+tGOncOnJLWVkt8Aze5eWQLwTQGNgVLcyOTqgSCxWTR4J42ijHbBxnuRaL1Rv7XMdw==
dependencies:
"@xtuc/long" "4.2.1"
-"@webassemblyjs/utf8@1.7.6":
- version "1.7.6"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.7.6.tgz#eb62c66f906af2be70de0302e29055d25188797d"
- integrity sha512-oId+tLxQ+AeDC34ELRYNSqJRaScB0TClUU6KQfpB8rNT6oelYlz8axsPhf6yPTg7PBJ/Z5WcXmUYiHEWgbbHJw==
+"@webassemblyjs/utf8@1.7.11":
+ version "1.7.11"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.7.11.tgz#06d7218ea9fdc94a6793aa92208160db3d26ee82"
+ integrity sha512-C6GFkc7aErQIAH+BMrIdVSmW+6HSe20wg57HEC1uqJP8E/xpMjXqQUxkQw07MhNDSDcGpxI9G5JSNOQCqJk4sA==
-"@webassemblyjs/wasm-edit@1.7.6":
- version "1.7.6"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.6.tgz#fa41929160cd7d676d4c28ecef420eed5b3733c5"
- integrity sha512-pTNjLO3o41v/Vz9VFLl+I3YLImpCSpodFW77pNoH4agn5I6GgSxXHXtvWDTvYJFty0jSeXZWLEmbaSIRUDlekg==
+"@webassemblyjs/wasm-edit@1.7.11":
+ version "1.7.11"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.11.tgz#8c74ca474d4f951d01dbae9bd70814ee22a82005"
+ integrity sha512-FUd97guNGsCZQgeTPKdgxJhBXkUbMTY6hFPf2Y4OedXd48H97J+sOY2Ltaq6WGVpIH8o/TGOVNiVz/SbpEMJGg==
dependencies:
- "@webassemblyjs/ast" "1.7.6"
- "@webassemblyjs/helper-buffer" "1.7.6"
- "@webassemblyjs/helper-wasm-bytecode" "1.7.6"
- "@webassemblyjs/helper-wasm-section" "1.7.6"
- "@webassemblyjs/wasm-gen" "1.7.6"
- "@webassemblyjs/wasm-opt" "1.7.6"
- "@webassemblyjs/wasm-parser" "1.7.6"
- "@webassemblyjs/wast-printer" "1.7.6"
+ "@webassemblyjs/ast" "1.7.11"
+ "@webassemblyjs/helper-buffer" "1.7.11"
+ "@webassemblyjs/helper-wasm-bytecode" "1.7.11"
+ "@webassemblyjs/helper-wasm-section" "1.7.11"
+ "@webassemblyjs/wasm-gen" "1.7.11"
+ "@webassemblyjs/wasm-opt" "1.7.11"
+ "@webassemblyjs/wasm-parser" "1.7.11"
+ "@webassemblyjs/wast-printer" "1.7.11"
-"@webassemblyjs/wasm-gen@1.7.6":
- version "1.7.6"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.6.tgz#695ac38861ab3d72bf763c8c75e5f087ffabc322"
- integrity sha512-mQvFJVumtmRKEUXMohwn8nSrtjJJl6oXwF3FotC5t6e2hlKMh8sIaW03Sck2MDzw9xPogZD7tdP5kjPlbH9EcQ==
+"@webassemblyjs/wasm-gen@1.7.11":
+ version "1.7.11"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.11.tgz#9bbba942f22375686a6fb759afcd7ac9c45da1a8"
+ integrity sha512-U/KDYp7fgAZX5KPfq4NOupK/BmhDc5Kjy2GIqstMhvvdJRcER/kUsMThpWeRP8BMn4LXaKhSTggIJPOeYHwISA==
dependencies:
- "@webassemblyjs/ast" "1.7.6"
- "@webassemblyjs/helper-wasm-bytecode" "1.7.6"
- "@webassemblyjs/ieee754" "1.7.6"
- "@webassemblyjs/leb128" "1.7.6"
- "@webassemblyjs/utf8" "1.7.6"
+ "@webassemblyjs/ast" "1.7.11"
+ "@webassemblyjs/helper-wasm-bytecode" "1.7.11"
+ "@webassemblyjs/ieee754" "1.7.11"
+ "@webassemblyjs/leb128" "1.7.11"
+ "@webassemblyjs/utf8" "1.7.11"
-"@webassemblyjs/wasm-opt@1.7.6":
- version "1.7.6"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.6.tgz#fbafa78e27e1a75ab759a4b658ff3d50b4636c21"
- integrity sha512-go44K90fSIsDwRgtHhX14VtbdDPdK2sZQtZqUcMRvTojdozj5tLI0VVJAzLCfz51NOkFXezPeVTAYFqrZ6rI8Q==
+"@webassemblyjs/wasm-opt@1.7.11":
+ version "1.7.11"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.11.tgz#b331e8e7cef8f8e2f007d42c3a36a0580a7d6ca7"
+ integrity sha512-XynkOwQyiRidh0GLua7SkeHvAPXQV/RxsUeERILmAInZegApOUAIJfRuPYe2F7RcjOC9tW3Cb9juPvAC/sCqvg==
dependencies:
- "@webassemblyjs/ast" "1.7.6"
- "@webassemblyjs/helper-buffer" "1.7.6"
- "@webassemblyjs/wasm-gen" "1.7.6"
- "@webassemblyjs/wasm-parser" "1.7.6"
+ "@webassemblyjs/ast" "1.7.11"
+ "@webassemblyjs/helper-buffer" "1.7.11"
+ "@webassemblyjs/wasm-gen" "1.7.11"
+ "@webassemblyjs/wasm-parser" "1.7.11"
-"@webassemblyjs/wasm-parser@1.7.6":
- version "1.7.6"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.6.tgz#84eafeeff405ad6f4c4b5777d6a28ae54eed51fe"
- integrity sha512-t1T6TfwNY85pDA/HWPA8kB9xA4sp9ajlRg5W7EKikqrynTyFo+/qDzIpvdkOkOGjlS6d4n4SX59SPuIayR22Yg==
+"@webassemblyjs/wasm-parser@1.7.11":
+ version "1.7.11"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.11.tgz#6e3d20fa6a3519f6b084ef9391ad58211efb0a1a"
+ integrity sha512-6lmXRTrrZjYD8Ng8xRyvyXQJYUQKYSXhJqXOBLw24rdiXsHAOlvw5PhesjdcaMadU/pyPQOJ5dHreMjBxwnQKg==
dependencies:
- "@webassemblyjs/ast" "1.7.6"
- "@webassemblyjs/helper-api-error" "1.7.6"
- "@webassemblyjs/helper-wasm-bytecode" "1.7.6"
- "@webassemblyjs/ieee754" "1.7.6"
- "@webassemblyjs/leb128" "1.7.6"
- "@webassemblyjs/utf8" "1.7.6"
+ "@webassemblyjs/ast" "1.7.11"
+ "@webassemblyjs/helper-api-error" "1.7.11"
+ "@webassemblyjs/helper-wasm-bytecode" "1.7.11"
+ "@webassemblyjs/ieee754" "1.7.11"
+ "@webassemblyjs/leb128" "1.7.11"
+ "@webassemblyjs/utf8" "1.7.11"
-"@webassemblyjs/wast-parser@1.7.6":
- version "1.7.6"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.7.6.tgz#ca4d20b1516e017c91981773bd7e819d6bd9c6a7"
- integrity sha512-1MaWTErN0ziOsNUlLdvwS+NS1QWuI/kgJaAGAMHX8+fMJFgOJDmN/xsG4h/A1Gtf/tz5VyXQciaqHZqp2q0vfg==
+"@webassemblyjs/wast-parser@1.7.11":
+ version "1.7.11"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.7.11.tgz#25bd117562ca8c002720ff8116ef9072d9ca869c"
+ integrity sha512-lEyVCg2np15tS+dm7+JJTNhNWq9yTZvi3qEhAIIOaofcYlUp0UR5/tVqOwa/gXYr3gjwSZqw+/lS9dscyLelbQ==
dependencies:
- "@webassemblyjs/ast" "1.7.6"
- "@webassemblyjs/floating-point-hex-parser" "1.7.6"
- "@webassemblyjs/helper-api-error" "1.7.6"
- "@webassemblyjs/helper-code-frame" "1.7.6"
- "@webassemblyjs/helper-fsm" "1.7.6"
+ "@webassemblyjs/ast" "1.7.11"
+ "@webassemblyjs/floating-point-hex-parser" "1.7.11"
+ "@webassemblyjs/helper-api-error" "1.7.11"
+ "@webassemblyjs/helper-code-frame" "1.7.11"
+ "@webassemblyjs/helper-fsm" "1.7.11"
"@xtuc/long" "4.2.1"
- mamacro "^0.0.3"
-"@webassemblyjs/wast-printer@1.7.6":
- version "1.7.6"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.7.6.tgz#a6002c526ac5fa230fe2c6d2f1bdbf4aead43a5e"
- integrity sha512-vHdHSK1tOetvDcl1IV1OdDeGNe/NDDQ+KzuZHMtqTVP1xO/tZ/IKNpj5BaGk1OYFdsDWQqb31PIwdEyPntOWRQ==
+"@webassemblyjs/wast-printer@1.7.11":
+ version "1.7.11"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.7.11.tgz#c4245b6de242cb50a2cc950174fdbf65c78d7813"
+ integrity sha512-m5vkAsuJ32QpkdkDOUPGSltrg8Cuk3KBx4YrmAGQwCZPRdUHXxG4phIOuuycLemHFr74sWL9Wthqss4fzdzSwg==
dependencies:
- "@webassemblyjs/ast" "1.7.6"
- "@webassemblyjs/wast-parser" "1.7.6"
+ "@webassemblyjs/ast" "1.7.11"
+ "@webassemblyjs/wast-parser" "1.7.11"
"@xtuc/long" "4.2.1"
"@xtuc/ieee754@^1.2.0":
@@ -926,81 +974,62 @@ acorn-dynamic-import@^3.0.0:
acorn "^5.0.0"
acorn-globals@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.1.0.tgz#ab716025dbe17c54d3ef81d32ece2b2d99fe2538"
- integrity sha512-KjZwU26uG3u6eZcfGbTULzFcsoz6pegNKtHPksZPOUsiKo5bUmiBPa38FuHZ/Eun+XYh/JCCkS9AS3Lu4McQOQ==
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.0.tgz#e3b6f8da3c1552a95ae627571f7dd6923bb54103"
+ integrity sha512-hMtHj3s5RnuhvHPowpBYvJVj3rAar82JiDQHvGs1zO0l10ocX/xEdBShNHTJaboucJUsScghp74pH3s7EnHHQw==
dependencies:
- acorn "^5.0.0"
+ acorn "^6.0.1"
+ acorn-walk "^6.0.1"
-acorn-jsx@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b"
- integrity sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=
- dependencies:
- acorn "^3.0.4"
+acorn-jsx@^5.0.0:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.1.tgz#32a064fd925429216a09b141102bfdd185fae40e"
+ integrity sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==
-acorn@^3.0.4:
- version "3.3.0"
- resolved "http://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"
- integrity sha1-ReN/s56No/JbruP/U2niu18iAXo=
+acorn-walk@^6.0.1:
+ version "6.1.1"
+ resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.1.1.tgz#d363b66f5fac5f018ff9c3a1e7b6f8e310cc3913"
+ integrity sha512-OtUw6JUTgxA2QoqqmrmQ7F2NYqiBPi/L2jqHyFtllhOUvXYQXf0Z1CYUinIfyT4bTCGmrA7gX9FvHA81uzCoVw==
-acorn@^5.0.0, acorn@^5.3.0, acorn@^5.5.0, acorn@^5.5.3, acorn@^5.6.2:
+acorn@^5.0.0, acorn@^5.5.3, acorn@^5.6.2, acorn@^5.7.3:
version "5.7.3"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279"
integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==
-ajv-errors@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.0.tgz#ecf021fa108fd17dfb5e6b383f2dd233e31ffc59"
- integrity sha1-7PAh+hCP0X37Xms4Py3SM+Mf/Fk=
+acorn@^6.0.1, acorn@^6.0.2:
+ version "6.0.4"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.0.4.tgz#77377e7353b72ec5104550aa2d2097a2fd40b754"
+ integrity sha512-VY4i5EKSKkofY2I+6QLTbTTN/UvEQPCo6eiwzzSaSWfpaDhOmStMCMod6wmuPciNq+XS0faCglFu2lHZpdHUtg==
-ajv-keywords@^2.1.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762"
- integrity sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=
+ajv-errors@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d"
+ integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==
ajv-keywords@^3.1.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a"
integrity sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=
-ajv@^4.9.1:
- version "4.11.8"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536"
- integrity sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=
- dependencies:
- co "^4.6.0"
- json-stable-stringify "^1.0.1"
-
-ajv@^5.1.0, ajv@^5.2.3, ajv@^5.3.0:
- version "5.5.2"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965"
- integrity sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=
- dependencies:
- co "^4.6.0"
- fast-deep-equal "^1.0.0"
- fast-json-stable-stringify "^2.0.0"
- json-schema-traverse "^0.3.0"
-
-ajv@^6.1.0:
- version "6.5.3"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.5.3.tgz#71a569d189ecf4f4f321224fecb166f071dd90f9"
- integrity sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==
+ajv@^6.1.0, ajv@^6.5.3, ajv@^6.5.5, ajv@^6.6.1:
+ version "6.6.2"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.6.2.tgz#caceccf474bf3fc3ce3b147443711a24063cc30d"
+ integrity sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g==
dependencies:
fast-deep-equal "^2.0.1"
fast-json-stable-stringify "^2.0.0"
json-schema-traverse "^0.4.1"
uri-js "^4.2.2"
-amdefine@>=0.0.4:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
- integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=
+alphanum-sort@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3"
+ integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=
ansi-colors@^3.0.0:
- version "3.0.5"
- resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.0.5.tgz#cb9dc64993b64fd6945485f797fc3853137d9a7b"
- integrity sha512-VVjWpkfaphxUBFarydrQ3n26zX5nIK7hcbT3/ielrvwDDyBBjuh2vuSw1P9zkPq0cfqvdw7lkYHnu+OLSfIBsg==
+ version "3.2.3"
+ resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.3.tgz#57d35b8686e851e2cc04c403f1c00203976a1813"
+ integrity sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==
ansi-escapes@^3.0.0:
version "3.1.0"
@@ -1022,6 +1051,11 @@ 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-styles@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
@@ -1034,11 +1068,6 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1:
dependencies:
color-convert "^1.9.0"
-any-promise@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-0.1.0.tgz#830b680aa7e56f33451d4b049f3bd8044498ee27"
- integrity sha1-gwtoCqflbzNFHUsEnzvYBESY7ic=
-
anymatch@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb"
@@ -1109,20 +1138,15 @@ array-equal@^1.0.0:
resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93"
integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=
-array-find-index@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1"
- integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=
-
array-flatten@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=
array-flatten@^2.1.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.1.tgz#426bb9da84090c1838d812c8150af20a8331e296"
- integrity sha1-Qmu52oQJDBg42BLIFQryCoMx4pY=
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099"
+ integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==
array-includes@^3.0.3:
version "3.0.3"
@@ -1163,7 +1187,7 @@ array.prototype.flat@^1.2.1:
es-abstract "^1.10.0"
function-bind "^1.1.1"
-arrify@^1.0.0, arrify@^1.0.1:
+arrify@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=
@@ -1194,11 +1218,6 @@ assert-plus@1.0.0, assert-plus@^1.0.0:
resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=
-assert-plus@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234"
- integrity sha1-104bh+ev/A24qttwIfP+SBAasjQ=
-
assert@^1.1.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91"
@@ -1226,11 +1245,6 @@ async-each@^1.0.0:
resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d"
integrity sha1-GdOGodntxufByF04iu28xW0zYC0=
-async-foreach@^0.1.3:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542"
- integrity sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=
-
async-limiter@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8"
@@ -1258,49 +1272,44 @@ atob@^2.1.1:
resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
-autoprefixer@^8.6.5:
- version "8.6.5"
- resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-8.6.5.tgz#343f3d193ed568b3208e00117a1b96eb691d4ee9"
- integrity sha512-PLWJN3Xo/rycNkx+mp8iBDMTm3FeWe4VmYaZDSqL5QQB9sLsQkG5k8n+LNDFnhh9kdq2K+egL/icpctOmDHwig==
+autoprefixer@^9.4.3:
+ version "9.4.3"
+ resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.4.3.tgz#c97384a8fd80477b78049163a91bbc725d9c41d9"
+ integrity sha512-/XSnzDepRkAU//xLcXA/lUWxpsBuw0WiriAHOqnxkuCtzLhaz+fL4it4gp20BQ8n5SyLzK/FOc7A0+u/rti2FQ==
dependencies:
- browserslist "^3.2.8"
- caniuse-lite "^1.0.30000864"
+ browserslist "^4.3.6"
+ caniuse-lite "^1.0.30000921"
normalize-range "^0.1.2"
num2fraction "^1.2.2"
- postcss "^6.0.23"
- postcss-value-parser "^3.2.3"
-
-aws-sign2@~0.6.0:
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f"
- integrity sha1-FDQt0428yU0OW4fXY81jYSwOeU8=
+ postcss "^7.0.6"
+ postcss-value-parser "^3.3.1"
aws-sign2@~0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=
-aws4@^1.2.1, aws4@^1.6.0, aws4@^1.8.0:
+aws4@^1.8.0:
version "1.8.0"
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f"
integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==
-axios@~0.16.2:
- version "0.16.2"
- resolved "https://registry.yarnpkg.com/axios/-/axios-0.16.2.tgz#ba4f92f17167dfbab40983785454b9ac149c3c6d"
- integrity sha1-uk+S8XFn37q0CYN4VFS5rBScPG0=
+axios@^0.18.0:
+ version "0.18.0"
+ resolved "https://registry.yarnpkg.com/axios/-/axios-0.18.0.tgz#32d53e4851efdc0a11993b6cd000789d70c05102"
+ integrity sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=
dependencies:
- follow-redirects "^1.2.3"
+ follow-redirects "^1.3.0"
is-buffer "^1.1.5"
axobject-query@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.0.1.tgz#05dfa705ada8ad9db993fa6896f22d395b0b0a07"
- integrity sha1-Bd+nBa2orZ25k/polvItOVsLCgc=
+ 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"
-babel-code-frame@^6.22.0, babel-code-frame@^6.26.0:
+babel-code-frame@^6.26.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=
@@ -1339,10 +1348,10 @@ babel-core@^7.0.0-bridge.0:
resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece"
integrity sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==
-babel-eslint@^9.0.0:
- version "9.0.0"
- resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-9.0.0.tgz#7d9445f81ed9f60aff38115f838970df9f2b6220"
- integrity sha512-itv1MwE3TMbY0QtNfeL7wzak1mV47Uy+n6HtSOO4Xd7rvmO+tsGQSgyOEEgo6Y2vHZKZphaoelNeSVj4vkLA1g==
+babel-eslint@^10.0.1:
+ version "10.0.1"
+ resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.0.1.tgz#919681dc099614cd7d31d45c8908695092a1faed"
+ integrity sha512-z7OT1iNV+TjOwHNLLyJk+HN+YVWX+CLE6fPD2SymJZOZQBs+QIexFjhm4keGTm8MW9xr4EC9Q0PbaLB24V5GoQ==
dependencies:
"@babel/code-frame" "^7.0.0"
"@babel/parser" "^7.0.0"
@@ -1381,10 +1390,10 @@ babel-jest@^23.6.0:
babel-plugin-istanbul "^4.1.6"
babel-preset-jest "^23.2.0"
-babel-loader@^8.0.2:
- version "8.0.2"
- resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.2.tgz#2079b8ec1628284a929241da3d90f5b3de2a5ae5"
- integrity sha512-Law0PGtRV1JL8Y9Wpzc0d6EE0GD7LzXWCfaeWwboUMcBWNG6gvaWTK1/+BK7a4X5EmeJiGEuDDFxUsOa8RSWCw==
+babel-loader@^8.0.4:
+ version "8.0.4"
+ resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.4.tgz#7bbf20cbe4560629e2e41534147692d3fecbdce6"
+ integrity sha512-fhBhNkUToJcW9nV46v8w87AJOwAJDz84c1CL57n3Stj73FANM/b9TbCUK4YhdOwEyZ+OxhYpdeZDNzSI29Firw==
dependencies:
find-cache-dir "^1.0.0"
loader-utils "^1.0.2"
@@ -1400,7 +1409,7 @@ babel-messages@^6.23.0:
babel-plugin-istanbul@^4.1.6:
version "4.1.6"
- resolved "http://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz#36c59b2192efce81c5b378321b74175add1c9a45"
+ resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz#36c59b2192efce81c5b378321b74175add1c9a45"
integrity sha512-PWP9FQ1AhZhS01T/4qLSKoHGY/xvkZdVBGlKM/HuxxS3+sC66HhTNR7+MpbO/so/cz/wY94MeSWJuP1hXIPfwQ==
dependencies:
babel-plugin-syntax-object-rest-spread "^6.13.0"
@@ -1425,11 +1434,12 @@ babel-plugin-lodash@^3.3.4:
require-package-name "^2.0.1"
babel-plugin-macros@^2.2.2:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.4.0.tgz#6c5f9836e1f6c0a9743b3bab4af29f73e437e544"
- integrity sha512-flIBfrqAdHWn+4l2cS/4jZEyl+m5EaBHVzTb0aOF+eu/zR7E41/MoCFHPhDNL8Wzq1nyelnXeT+vcL2byFLSZw==
+ version "2.4.3"
+ resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.4.3.tgz#870345aa538d85f04b4614fea5922b55c45dd551"
+ integrity sha512-M8cE1Rx0zgfKYBWAS+T6ZVCLGuTKdBI5Rn3fu9q6iVdH0UjaXdmF501/VEYn7kLHCgguhGNk5JBzOn64e2xDEA==
dependencies:
cosmiconfig "^5.0.5"
+ resolve "^1.8.1"
babel-plugin-preval@^3.0.1:
version "3.0.1"
@@ -1439,10 +1449,10 @@ babel-plugin-preval@^3.0.1:
babel-plugin-macros "^2.2.2"
require-from-string "^2.0.2"
-babel-plugin-react-intl@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-react-intl/-/babel-plugin-react-intl-3.0.0.tgz#ea2152b1fe0a36be33b89f8cc8b961b8fd4cfaf8"
- integrity sha512-nUj2mtksYWrAluZd5YEIqOBz65QLpR3LQynwpr3JBzxvacN6H8OoRk82HtwLSLa15JVWOVnxEXdZdExfsigWlw==
+babel-plugin-react-intl@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-react-intl/-/babel-plugin-react-intl-3.0.1.tgz#4abc7fff04a7bbbb7034aec0a675713f2e52181c"
+ integrity sha512-FqnEO+Tq7kJVUPKsSG3s5jaHi3pAC4RUR11IrscvjsfkOApLP2DtzNo6dtQ+tX+OzEzJx7cUms8aCw5BFyW5xg==
dependencies:
"@babel/runtime" "^7.0.0"
intl-messageformat-parser "^1.2.0"
@@ -1450,13 +1460,13 @@ babel-plugin-react-intl@^3.0.0:
babel-plugin-syntax-object-rest-spread@^6.13.0:
version "6.13.0"
- resolved "http://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5"
+ resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5"
integrity sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=
-babel-plugin-transform-react-remove-prop-types@^0.4.15:
- version "0.4.15"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.15.tgz#7ba830e77276a0e788cd58ea527b5f70396e12a7"
- integrity sha512-bFxxYdkZBwTjTgtZEPTLqu9g8Ajz8x8uEP/O1iVuaZIz2RuxJ2gtx0EXDJRonC++KGsgsW/4Hqvk4KViEtE2nw==
+babel-plugin-transform-react-remove-prop-types@^0.4.21:
+ version "0.4.21"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.21.tgz#0087938f4348cb751b3e5055a6b38f3c61b5231b"
+ integrity sha512-+gQBtcnEhYFbMPFGr8YL7SHD4BpHifFDGEc+ES0+1iDwC9psist2+eumcLoHjBMumL7N/HI/G64XR5aQC8Nr5Q==
babel-preset-jest@^23.2.0:
version "23.2.0"
@@ -1479,7 +1489,7 @@ babel-register@^6.26.0:
mkdirp "^0.5.1"
source-map-support "^0.4.15"
-babel-runtime@^6.22.0, babel-runtime@^6.23.0, babel-runtime@^6.26.0:
+babel-runtime@^6.22.0, babel-runtime@^6.26.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4=
@@ -1535,17 +1545,12 @@ backoff@^2.4.1:
dependencies:
precond "0.2"
-balanced-match@^0.4.2:
- version "0.4.2"
- resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838"
- integrity sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=
-
balanced-match@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
-base64-js@^1.0.2:
+base64-js@^1.0.2, base64-js@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3"
integrity sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==
@@ -1575,13 +1580,14 @@ bcrypt-pbkdf@^1.0.0:
dependencies:
tweetnacl "^0.14.3"
-bfj-node4@^5.2.0:
- version "5.3.1"
- resolved "https://registry.yarnpkg.com/bfj-node4/-/bfj-node4-5.3.1.tgz#e23d8b27057f1d0214fc561142ad9db998f26830"
- integrity sha512-SOmOsowQWfXc7ybFARsK3C4MCOWzERaOMV/Fl3Tgjs+5dJWyzo3oa127jL44eMbQiAN17J7SvAs2TRxEScTUmg==
+bfj@^6.1.1:
+ version "6.1.1"
+ resolved "https://registry.yarnpkg.com/bfj/-/bfj-6.1.1.tgz#05a3b7784fbd72cfa3c22e56002ef99336516c48"
+ integrity sha512-+GUNvzHR4nRyGybQc2WpNJL4MJazMuvf92ueIyA0bIkPRwhhQu3IfZQ2PSoVPpCBJfmoSdOxu5rnotfFLlvYRQ==
dependencies:
bluebird "^3.5.1"
check-types "^7.3.0"
+ hoopy "^0.1.2"
tryer "^1.0.0"
big.js@^3.1.3:
@@ -1589,43 +1595,41 @@ big.js@^3.1.3:
resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e"
integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==
+big.js@^5.2.2:
+ version "5.2.2"
+ resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
+ integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==
+
binary-extensions@^1.0.0:
- version "1.11.0"
- resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205"
- integrity sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=
+ version "1.12.0"
+ resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.12.0.tgz#c2d780f53d45bba8317a8902d4ceeaf3a6385b14"
+ integrity sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==
-block-stream@*:
- version "0.0.9"
- resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a"
- integrity sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=
- dependencies:
- inherits "~2.0.0"
-
-bluebird@^3.5.1:
- version "3.5.2"
- resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.2.tgz#1be0908e054a751754549c270489c1505d4ab15a"
- integrity sha512-dhHTWMI7kMx5whMQntl7Vr9C6BvV10lFXDAasnqnrMYhXVCzzk6IO9Fo2L75jXHT07WrOngL1WDXOp+yYS91Yg==
+bluebird@^3.5.1, bluebird@^3.5.3:
+ version "3.5.3"
+ resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.3.tgz#7d01c6f9616c9a51ab0f8c549a79dfe6ec33efa7"
+ integrity sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw==
bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0:
version "4.11.8"
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f"
integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==
-body-parser@1.18.2:
- version "1.18.2"
- resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454"
- integrity sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=
+body-parser@1.18.3:
+ version "1.18.3"
+ resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.3.tgz#5b292198ffdd553b3a0f20ded0592b956955c8b4"
+ integrity sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=
dependencies:
bytes "3.0.0"
content-type "~1.0.4"
debug "2.6.9"
- depd "~1.1.1"
- http-errors "~1.6.2"
- iconv-lite "0.4.19"
+ depd "~1.1.2"
+ http-errors "~1.6.3"
+ iconv-lite "0.4.23"
on-finished "~2.3.0"
- qs "6.5.1"
- raw-body "2.3.2"
- type-is "~1.6.15"
+ qs "6.5.2"
+ raw-body "2.3.3"
+ type-is "~1.6.16"
bonjour@^3.5.0:
version "3.5.0"
@@ -1639,18 +1643,11 @@ bonjour@^3.5.0:
multicast-dns "^6.0.1"
multicast-dns-service-types "^1.1.0"
-boolbase@~1.0.0:
+boolbase@^1.0.0, boolbase@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24=
-boom@2.x.x:
- version "2.10.1"
- resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f"
- integrity sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=
- dependencies:
- hoek "2.x.x"
-
brace-expansion@^1.1.7:
version "1.1.11"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
@@ -1690,9 +1687,9 @@ brorand@^1.0.1:
integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=
browser-process-hrtime@^0.1.2:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.2.tgz#425d68a58d3447f02a04aa894187fce8af8b7b8e"
- integrity sha1-Ql1opY00R/AqBKqJQYf86K+Le44=
+ 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-resolve@^1.11.3:
version "1.11.3"
@@ -1703,7 +1700,7 @@ browser-resolve@^1.11.3:
browserify-aes@^1.0.0, browserify-aes@^1.0.4:
version "1.2.0"
- resolved "http://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48"
+ resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48"
integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==
dependencies:
buffer-xor "^1.0.3"
@@ -1734,7 +1731,7 @@ browserify-des@^1.0.0:
browserify-rsa@^4.0.0:
version "4.0.1"
- resolved "http://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524"
+ resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524"
integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=
dependencies:
bn.js "^4.1.0"
@@ -1760,22 +1757,14 @@ browserify-zlib@^0.2.0:
dependencies:
pako "~1.0.5"
-browserslist@^3.2.4, browserslist@^3.2.8:
- version "3.2.8"
- resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.8.tgz#b0005361d6471f0f5952797a76fc985f1f978fc6"
- integrity sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==
+browserslist@^4.0.0, browserslist@^4.3.4, browserslist@^4.3.6:
+ version "4.3.7"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.3.7.tgz#f1de479a6466ea47a0a26dcc725e7504817e624a"
+ integrity sha512-pWQv51Ynb0MNk9JGMCZ8VkM785/4MQNXiFYtPqI7EEP0TJO+/d/NqRVn1uiAN0DNbnlUSpL2sh16Kspasv3pUQ==
dependencies:
- caniuse-lite "^1.0.30000844"
- electron-to-chromium "^1.3.47"
-
-browserslist@^4.1.0:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.1.1.tgz#328eb4ff1215b12df6589e9ab82f8adaa4fc8cd6"
- integrity sha512-VBorw+tgpOtZ1BYhrVSVTzTt/3+vSE3eFUh0N2GCFK1HffceOaf32YS/bs6WiFhjDAblAFrx85jMy3BG9fBK2Q==
- dependencies:
- caniuse-lite "^1.0.30000884"
- electron-to-chromium "^1.3.62"
- node-releases "^1.0.0-alpha.11"
+ caniuse-lite "^1.0.30000925"
+ electron-to-chromium "^1.3.96"
+ node-releases "^1.1.3"
bser@^2.0.0:
version "2.0.0"
@@ -1806,7 +1795,7 @@ buffer-xor@^1.0.3:
buffer@^4.3.0:
version "4.9.1"
- resolved "http://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298"
+ resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298"
integrity sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=
dependencies:
base64-js "^1.0.2"
@@ -1828,43 +1817,24 @@ bytes@3.0.0:
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=
-cacache@^10.0.4:
- version "10.0.4"
- resolved "https://registry.yarnpkg.com/cacache/-/cacache-10.0.4.tgz#6452367999eff9d4188aefd9a14e9d7c6a263460"
- integrity sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==
+cacache@^11.0.2, cacache@^11.2.0:
+ version "11.3.2"
+ resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.2.tgz#2d81e308e3d258ca38125b676b98b2ac9ce69bfa"
+ integrity sha512-E0zP4EPGDOaT2chM08Als91eYnf8Z+eH1awwwVsngUmgppfM5jjJ8l3z5vO5p5w/I3LsiXawb1sW0VY65pQABg==
dependencies:
- bluebird "^3.5.1"
- chownr "^1.0.1"
- glob "^7.1.2"
- graceful-fs "^4.1.11"
- lru-cache "^4.1.1"
- mississippi "^2.0.0"
- mkdirp "^0.5.1"
- move-concurrently "^1.0.1"
- promise-inflight "^1.0.1"
- rimraf "^2.6.2"
- ssri "^5.2.4"
- unique-filename "^1.1.0"
- y18n "^4.0.0"
-
-cacache@^11.2.0:
- version "11.2.0"
- resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.2.0.tgz#617bdc0b02844af56310e411c0878941d5739965"
- integrity sha512-IFWl6lfK6wSeYCHUXh+N1lY72UDrpyrYQJNIVQf48paDuWbv5RbAtJYf/4gUQFObTCHZwdZ5sI8Iw7nqwP6nlQ==
- dependencies:
- bluebird "^3.5.1"
- chownr "^1.0.1"
- figgy-pudding "^3.1.0"
- glob "^7.1.2"
- graceful-fs "^4.1.11"
- lru-cache "^4.1.3"
+ bluebird "^3.5.3"
+ chownr "^1.1.1"
+ figgy-pudding "^3.5.1"
+ glob "^7.1.3"
+ graceful-fs "^4.1.15"
+ lru-cache "^5.1.1"
mississippi "^3.0.0"
mkdirp "^0.5.1"
move-concurrently "^1.0.1"
promise-inflight "^1.0.1"
rimraf "^2.6.2"
- ssri "^6.0.0"
- unique-filename "^1.1.0"
+ ssri "^6.0.1"
+ unique-filename "^1.1.1"
y18n "^4.0.0"
cache-base@^1.0.1:
@@ -1882,6 +1852,13 @@ cache-base@^1.0.1:
union-value "^1.0.0"
unset-value "^1.0.0"
+caller-callsite@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134"
+ integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=
+ dependencies:
+ callsites "^2.0.0"
+
caller-path@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f"
@@ -1889,6 +1866,13 @@ caller-path@^0.1.0:
dependencies:
callsites "^0.2.0"
+caller-path@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4"
+ integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=
+ dependencies:
+ caller-callsite "^2.0.0"
+
callsites@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca"
@@ -1899,33 +1883,30 @@ callsites@^2.0.0:
resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50"
integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=
-camelcase-keys@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7"
- integrity sha1-MIvur/3ygRkFHvodkyITyRuPkuc=
- dependencies:
- camelcase "^2.0.0"
- map-obj "^1.0.0"
-
-camelcase@^2.0.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f"
- integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=
-
-camelcase@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a"
- integrity sha1-MvxLn82vhF/N9+c7uXysImHwqwo=
-
camelcase@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=
-caniuse-lite@^1.0.30000823, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30000864, caniuse-lite@^1.0.30000884:
- version "1.0.30000885"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000885.tgz#e889e9f8e7e50e769f2a49634c932b8aee622984"
- integrity sha512-cXKbYwpxBLd7qHyej16JazPoUacqoVuDhvR61U7Fr5vSxMUiodzcYa1rQYRYfZ5GexV03vGZHd722vNPLjPJGQ==
+camelcase@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.0.0.tgz#03295527d58bd3cd4aa75363f35b2e8d97be2f42"
+ integrity sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==
+
+caniuse-api@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0"
+ integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==
+ dependencies:
+ browserslist "^4.0.0"
+ caniuse-lite "^1.0.0"
+ lodash.memoize "^4.1.2"
+ lodash.uniq "^4.5.0"
+
+caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000921, caniuse-lite@^1.0.30000925:
+ version "1.0.30000926"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000926.tgz#4361a99d818ca6e521dbe89a732de62a194a789c"
+ integrity sha512-diMkEvxfFw09SkbErCLmw/1Fx1ZZe9xfWm4aeA2PUffB48x1tfZeMsK5j4BW7zN7Y4PdqmPVVdG2eYjE5IRTag==
capture-exit@^1.2.0:
version "1.2.0"
@@ -1939,9 +1920,9 @@ caseless@~0.12.0:
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
-chalk@^1.1.1, chalk@^1.1.3:
+chalk@^1.1.3:
version "1.1.3"
- resolved "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=
dependencies:
ansi-styles "^2.2.1"
@@ -1950,7 +1931,7 @@ chalk@^1.1.1, chalk@^1.1.3:
strip-ansi "^3.0.0"
supports-color "^2.0.0"
-chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.2, chalk@^2.4.1:
+chalk@^2.0, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.2, chalk@^2.4.1:
version "2.4.1"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e"
integrity sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==
@@ -1959,11 +1940,6 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.2, chalk@^2.4
escape-string-regexp "^1.0.5"
supports-color "^5.3.0"
-chardet@^0.4.0:
- version "0.4.2"
- resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2"
- integrity sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=
-
chardet@^0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
@@ -2006,10 +1982,10 @@ chokidar@^2.0.0, chokidar@^2.0.2:
optionalDependencies:
fsevents "^1.2.2"
-chownr@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181"
- integrity sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=
+chownr@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494"
+ integrity sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==
chrome-trace-event@^1.0.0:
version "1.0.0"
@@ -2019,9 +1995,9 @@ chrome-trace-event@^1.0.0:
tslib "^1.9.0"
ci-info@^1.5.0:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.5.1.tgz#17e8eb5de6f8b2b6038f0cbb714d410bfa9f3030"
- integrity sha512-fKFIKXaYiL1exImwJ0AhR/6jxFPSKQBk2ayV5NiNoruUs2+rxC2kNw0EG+1Z9dugZRdCrppskQ8DN2cyaUM1Hw==
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497"
+ integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==
cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
version "1.0.4"
@@ -2091,16 +2067,20 @@ clone-deep@^2.0.1:
kind-of "^6.0.0"
shallow-clone "^1.0.0"
-clone@^1.0.2:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
- integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4=
-
co@^4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=
+coa@~2.0.1:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3"
+ integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==
+ dependencies:
+ "@types/q" "^1.5.1"
+ chalk "^2.4.1"
+ q "^1.1.2"
+
code-point-at@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
@@ -2114,19 +2094,24 @@ collection-visit@^1.0.0:
map-visit "^1.0.0"
object-visit "^1.0.0"
-color-convert@^1.8.2, color-convert@^1.9.0:
+color-convert@^1.9.0, color-convert@^1.9.1:
version "1.9.3"
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
dependencies:
color-name "1.1.3"
-color-name@1.1.3, color-name@^1.0.0:
+color-name@1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
-color-string@^1.4.0:
+color-name@^1.0.0:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
+ integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+
+color-string@^1.5.2:
version "1.5.3"
resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc"
integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==
@@ -2134,35 +2119,30 @@ color-string@^1.4.0:
color-name "^1.0.0"
simple-swizzle "^0.2.2"
-color@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/color/-/color-1.0.3.tgz#e48e832d85f14ef694fb468811c2d5cfe729b55d"
- integrity sha1-5I6DLYXxTvaU+0aIEcLVz+cptV0=
+color@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/color/-/color-3.1.0.tgz#d8e9fb096732875774c84bf922815df0308d0ffc"
+ integrity sha512-CwyopLkuRYO5ei2EpzpIh6LqJMt6Mt+jZhO5VI5f/wJLZriXQE32/SSqzmrh+QB+AZT81Cj8yv+7zwToW8ahZg==
dependencies:
- color-convert "^1.8.2"
- color-string "^1.4.0"
+ color-convert "^1.9.1"
+ color-string "^1.5.2"
-colors@0.5.x:
- version "0.5.1"
- resolved "https://registry.yarnpkg.com/colors/-/colors-0.5.1.tgz#7d0023eaeb154e8ee9fce75dcb923d0ed1667774"
- integrity sha1-fQAj6usVTo7p/Oddy5I9DtFmd3Q=
+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.5, combined-stream@~1.0.5, combined-stream@~1.0.6:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818"
- integrity sha1-cj599ugBrFYTETp+RFqbactjKBg=
+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==
dependencies:
delayed-stream "~1.0.0"
-commander@^2.11.0, commander@^2.13.0, commander@^2.8.1:
- version "2.18.0"
- resolved "https://registry.yarnpkg.com/commander/-/commander-2.18.0.tgz#2bf063ddee7c7891176981a2cc798e5754bc6970"
- integrity sha512-6CYPa+JP2ftfRU2qkDK+UTVeQYosOg/2GbcjIcKPHfinyOLPVGXu/ovN86RP49Re5ndJK1N0kuiidFFuepc4ZQ==
-
-commander@~2.13.0:
- version "2.13.0"
- resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c"
- integrity sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==
+commander@^2.11.0, commander@^2.18.0, commander@^2.19.0:
+ version "2.19.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a"
+ integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==
commander@~2.17.1:
version "2.17.1"
@@ -2180,11 +2160,11 @@ component-emitter@^1.2.1:
integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=
compressible@~2.0.14:
- version "2.0.14"
- resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.14.tgz#326c5f507fbb055f54116782b969a81b67a29da7"
- integrity sha1-MmxfUH+7BV9UEWeCuWmoG2einac=
+ version "2.0.15"
+ resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.15.tgz#857a9ab0a7e5a07d8d837ed43fe2defff64fe212"
+ integrity sha512-4aE67DL33dSW9gw4CI2H/yTxqHLNcxp0yS6jB+4h+wr3e43+1z7vm0HU9qXOH8j+qjKuL8+UtkOxYQSMq60Ylw==
dependencies:
- mime-db ">= 1.34.0 < 2"
+ mime-db ">= 1.36.0 < 2"
compression-webpack-plugin@^2.0.0:
version "2.0.0"
@@ -2216,7 +2196,7 @@ concat-map@0.0.1:
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
-concat-stream@^1.5.0, concat-stream@^1.6.0:
+concat-stream@^1.5.0:
version "1.6.2"
resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==
@@ -2303,9 +2283,9 @@ core-js@^1.0.0:
integrity sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=
core-js@^2.4.0, core-js@^2.5.0:
- version "2.5.7"
- resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e"
- integrity sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==
+ version "2.6.1"
+ resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.1.tgz#87416ae817de957a3f249b3b5ca475d4aaed6042"
+ integrity sha512-L72mmmEayPJBejKIWe2pYtGis5r0tQ5NaJekdhyXgeMQTpJoBsH0NL4ElY2LfSoV15xeQWKQ+XTTOZdyero5Xg==
core-util-is@1.0.2, core-util-is@~1.0.0:
version "1.0.2"
@@ -2322,11 +2302,12 @@ cosmiconfig@^4.0.0:
parse-json "^4.0.0"
require-from-string "^2.0.1"
-cosmiconfig@^5.0.5:
- version "5.0.6"
- resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.0.6.tgz#dca6cf680a0bd03589aff684700858c81abeeb39"
- integrity sha512-6DWfizHriCrFWURP1/qyhsiFvYdlJzbCzmtFWh744+KyWsJo5+kPzUZZaMRSSItoYc0pxFX7gEO7ZC1/gN/7AQ==
+cosmiconfig@^5.0.0, cosmiconfig@^5.0.5:
+ version "5.0.7"
+ resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.0.7.tgz#39826b292ee0d78eda137dfa3173bd1c21a43b04"
+ integrity sha512-PcLqxTKiDmNT6pSpy4N6KtuPwb53W+2tzNvwOZw0WH9N6O0vLIBq0x8aj8Oj75ere4YcGi48bDFCL+3fRJdlNA==
dependencies:
+ import-fresh "^2.0.0"
is-directory "^0.3.1"
js-yaml "^3.9.0"
parse-json "^4.0.0"
@@ -2339,9 +2320,19 @@ create-ecdh@^4.0.0:
bn.js "^4.1.0"
elliptic "^6.0.0"
+create-emotion@^10.0.4:
+ version "10.0.5"
+ resolved "https://registry.yarnpkg.com/create-emotion/-/create-emotion-10.0.5.tgz#22487f19b59a7ed10144f808289eadffebcfab06"
+ integrity sha512-MIOSeFiMtPrAULEtd2GFYGZEzeN2xnCFoiHrjvUYjxruYCJfGqUOBmh4YEN1yU+Ww5yXr+DIZibFl7FEOP57iA==
+ dependencies:
+ "@emotion/cache" "10.0.0"
+ "@emotion/serialize" "^0.11.3"
+ "@emotion/sheet" "0.9.2"
+ "@emotion/utils" "0.11.1"
+
create-hash@^1.1.0, create-hash@^1.1.2:
version "1.2.0"
- resolved "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196"
+ resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196"
integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==
dependencies:
cipher-base "^1.0.1"
@@ -2352,7 +2343,7 @@ create-hash@^1.1.0, create-hash@^1.1.2:
create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4:
version "1.1.7"
- resolved "http://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff"
+ resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff"
integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==
dependencies:
cipher-base "^1.0.3"
@@ -2362,15 +2353,6 @@ 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"
-create-react-class@^15.5.2:
- version "15.6.3"
- resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.3.tgz#2d73237fb3f970ae6ebe011a9e66f46dbca80036"
- integrity sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg==
- dependencies:
- fbjs "^0.8.9"
- loose-envify "^1.3.1"
- object-assign "^4.1.1"
-
cross-env@^5.1.4:
version "5.2.0"
resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-5.2.0.tgz#6ecd4c015d5773e614039ee529076669b9d126f2"
@@ -2379,15 +2361,7 @@ cross-env@^5.1.4:
cross-spawn "^6.0.5"
is-windows "^1.0.0"
-cross-spawn@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982"
- integrity sha1-ElYDfsufDF9549bvE14wdwGEuYI=
- dependencies:
- lru-cache "^4.0.1"
- which "^1.2.9"
-
-cross-spawn@^5.0.1, cross-spawn@^5.1.0:
+cross-spawn@^5.0.1:
version "5.1.0"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=
@@ -2407,13 +2381,6 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5:
shebang-command "^1.2.0"
which "^1.2.9"
-cryptiles@2.x.x:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8"
- integrity sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=
- dependencies:
- boom "2.x.x"
-
crypto-browserify@^3.11.0:
version "3.12.0"
resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec"
@@ -2431,6 +2398,19 @@ crypto-browserify@^3.11.0:
randombytes "^2.0.0"
randomfill "^1.0.3"
+css-color-names@0.0.4, css-color-names@^0.0.4:
+ version "0.0.4"
+ resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0"
+ integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=
+
+css-declaration-sorter@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22"
+ integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==
+ dependencies:
+ postcss "^7.0.1"
+ timsort "^0.3.0"
+
css-font-size-keywords@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/css-font-size-keywords/-/css-font-size-keywords-1.0.0.tgz#854875ace9aca6a8d2ee0d345a44aae9bb6db6cb"
@@ -2463,23 +2443,36 @@ css-list-helpers@^1.0.1:
dependencies:
tcomb "^2.5.0"
-css-loader@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-1.0.0.tgz#9f46aaa5ca41dbe31860e3b62b8e23c42916bf56"
- integrity sha512-tMXlTYf3mIMt3b0dDCOQFJiVvxbocJ5Ho577WiGPYPZcqVEO218L2iU22pDXzkTZCLDE+9AmGSUkWxeh/nZReA==
+css-loader@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-2.1.0.tgz#42952ac22bca5d076978638e9813abce49b8f0cc"
+ integrity sha512-MoOu+CStsGrSt5K2OeZ89q3Snf+IkxRfAIt9aAKg4piioTrhtP1iEFPu+OVn3Ohz24FO6L+rw9UJxBILiSBw5Q==
dependencies:
- babel-code-frame "^6.26.0"
- css-selector-tokenizer "^0.7.0"
- icss-utils "^2.1.0"
- loader-utils "^1.0.2"
- lodash.camelcase "^4.3.0"
- postcss "^6.0.23"
- postcss-modules-extract-imports "^1.2.0"
- postcss-modules-local-by-default "^1.2.0"
- postcss-modules-scope "^1.1.0"
- postcss-modules-values "^1.3.0"
+ icss-utils "^4.0.0"
+ loader-utils "^1.2.1"
+ lodash "^4.17.11"
+ postcss "^7.0.6"
+ postcss-modules-extract-imports "^2.0.0"
+ postcss-modules-local-by-default "^2.0.3"
+ postcss-modules-scope "^2.0.0"
+ postcss-modules-values "^2.0.0"
postcss-value-parser "^3.3.0"
- source-list-map "^2.0.0"
+ schema-utils "^1.0.0"
+
+css-select-base-adapter@~0.1.0:
+ 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==
+ dependencies:
+ boolbase "^1.0.0"
+ css-what "^2.1.2"
+ domutils "^1.7.0"
+ nth-check "^1.0.2"
css-select@~1.2.0:
version "1.2.0"
@@ -2492,9 +2485,9 @@ css-select@~1.2.0:
nth-check "~1.0.1"
css-selector-tokenizer@^0.7.0:
- version "0.7.0"
- resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz#e6988474ae8c953477bf5e7efecfceccd9cf4c86"
- integrity sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=
+ version "0.7.1"
+ resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz#a177271a8bca5019172f4f891fc6eed9cbf68d5d"
+ integrity sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA==
dependencies:
cssesc "^0.1.0"
fastparse "^1.1.1"
@@ -2505,21 +2498,122 @@ 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-what@2.1:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd"
- integrity sha1-lGfQMsOM+u+58teVASUwYvh/ob0=
+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==
+ dependencies:
+ mdn-data "~1.1.0"
+ source-map "^0.5.3"
-cssdb@^1.6.0:
- version "1.6.0"
- resolved "http://registry.npmjs.org/cssdb/-/cssdb-1.6.0.tgz#3360c4163e07cf4d1efe58c1bc15170535f4d393"
- integrity sha512-KBxrzWDyY0aFA3DkAH0SDWhIKp1or83pBLqacXq4VWNrOCwf/G9An+VDXIW8qAGJz11o9nO8mQezq1ZJOdaF8A==
+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==
+ dependencies:
+ mdn-data "~1.1.0"
+ source-map "^0.5.3"
+
+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-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@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4"
integrity sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=
+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==
+
+cssnano-preset-default@^4.0.6:
+ version "4.0.6"
+ resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.6.tgz#92379e2a6db4a91c0ea727f5f556eeac693eab6a"
+ integrity sha512-UPboYbFaJFtDUhJ4fqctThWbbyF4q01/7UhsZbLzp35l+nUxtzh1SifoVlEfyLM3n3Z0htd8B1YlCxy9i+bQvg==
+ dependencies:
+ css-declaration-sorter "^4.0.1"
+ cssnano-util-raw-cache "^4.0.1"
+ postcss "^7.0.0"
+ postcss-calc "^7.0.0"
+ postcss-colormin "^4.0.2"
+ postcss-convert-values "^4.0.1"
+ postcss-discard-comments "^4.0.1"
+ postcss-discard-duplicates "^4.0.2"
+ postcss-discard-empty "^4.0.1"
+ postcss-discard-overridden "^4.0.1"
+ postcss-merge-longhand "^4.0.10"
+ postcss-merge-rules "^4.0.2"
+ postcss-minify-font-values "^4.0.2"
+ postcss-minify-gradients "^4.0.1"
+ postcss-minify-params "^4.0.1"
+ postcss-minify-selectors "^4.0.1"
+ postcss-normalize-charset "^4.0.1"
+ postcss-normalize-display-values "^4.0.1"
+ postcss-normalize-positions "^4.0.1"
+ postcss-normalize-repeat-style "^4.0.1"
+ postcss-normalize-string "^4.0.1"
+ postcss-normalize-timing-functions "^4.0.1"
+ postcss-normalize-unicode "^4.0.1"
+ postcss-normalize-url "^4.0.1"
+ postcss-normalize-whitespace "^4.0.1"
+ postcss-ordered-values "^4.1.1"
+ postcss-reduce-initial "^4.0.2"
+ postcss-reduce-transforms "^4.0.1"
+ postcss-svgo "^4.0.1"
+ postcss-unique-selectors "^4.0.1"
+
+cssnano-util-get-arguments@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f"
+ integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=
+
+cssnano-util-get-match@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d"
+ integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=
+
+cssnano-util-raw-cache@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282"
+ integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==
+ dependencies:
+ postcss "^7.0.0"
+
+cssnano-util-same-parent@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3"
+ integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==
+
+cssnano@^4.1.8:
+ version "4.1.8"
+ resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.8.tgz#8014989679d5fd42491e4499a521dbfb85c95fd1"
+ integrity sha512-5GIY0VzAHORpbKiL3rMXp4w4M1Ki+XlXgEXyuWXVd3h6hlASb+9Vo76dNP56/elLMVBBsUfusCo1q56uW0UWig==
+ dependencies:
+ cosmiconfig "^5.0.0"
+ cssnano-preset-default "^4.0.6"
+ 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==
+ dependencies:
+ css-tree "1.0.0-alpha.29"
+
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"
@@ -2532,17 +2626,10 @@ cssstyle@^1.0.0:
dependencies:
cssom "0.3.x"
-csstype@^2.2.0:
- version "2.5.6"
- resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.5.6.tgz#2ae1db2319642d8b80a668d2d025c6196071e788"
- integrity sha512-tKPyhy0FmfYD2KQYXD5GzkvAYLYj96cMLXr648CKGd3wBe0QqoPipImjGiLze9c8leJK8J3n7ap90tpk3E6HGQ==
-
-currently-unhandled@^0.4.1:
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea"
- integrity sha1-mI3zP+qxke95mmE2nddsF635V+o=
- dependencies:
- array-find-index "^1.0.1"
+csstype@^2.2.0, csstype@^2.5.7:
+ version "2.6.0"
+ resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.0.tgz#6cf7b2fa7fc32aab3d746802c244d4eda71371a2"
+ integrity sha512-by8hi8BlLbowQq0qtkx54d9aN73R9oUW20HISpka5kmgsR9F7nnxgfsemuR2sdCKZh+CDNf5egW9UZMm4mgJRg==
cyclist@~0.2.2:
version "0.2.2"
@@ -2569,12 +2656,12 @@ dashdash@^1.12.0:
assert-plus "^1.0.0"
data-urls@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.0.1.tgz#d416ac3896918f29ca84d81085bc3705834da579"
- integrity sha512-0HdcMZzK6ubMUnsMmQmG0AcLQPvbvb47R0+7CCZQCYgcd8OUWG91CG7sM6GoXgjz+WLl4ArFzHtBMy/QqSF4eg==
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe"
+ integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==
dependencies:
abab "^2.0.0"
- whatwg-mimetype "^2.1.0"
+ whatwg-mimetype "^2.2.0"
whatwg-url "^7.0.0"
date-now@^0.1.4:
@@ -2582,7 +2669,7 @@ date-now@^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.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.6, debug@^2.6.8, debug@^2.6.9:
+debug@2.6.9, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9:
version "2.6.9"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
@@ -2596,14 +2683,21 @@ debug@=3.1.0:
dependencies:
ms "2.0.0"
-debug@^3.1.0:
- version "3.2.5"
- resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.5.tgz#c2418fbfd7a29f4d4f70ff4cea604d4b64c46407"
- integrity sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==
+debug@^3.1.0, debug@^3.2.5:
+ version "3.2.6"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
+ integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==
dependencies:
ms "^2.1.1"
-decamelize@^1.1.1, decamelize@^1.1.2:
+debug@^4.0.1, debug@^4.1.0:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791"
+ integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==
+ dependencies:
+ ms "^2.1.1"
+
+decamelize@^1.1.1, decamelize@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
@@ -2655,14 +2749,7 @@ default-require-extensions@^1.0.0:
dependencies:
strip-bom "^2.0.0"
-defaults@^1.0.2:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d"
- integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=
- dependencies:
- clone "^1.0.2"
-
-define-properties@^1.1.1, define-properties@^1.1.2:
+define-properties@^1.1.1, define-properties@^1.1.2, define-properties@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
@@ -2691,19 +2778,6 @@ define-property@^2.0.2:
is-descriptor "^1.0.2"
isobject "^3.0.1"
-del@^2.0.2:
- version "2.2.2"
- resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8"
- integrity sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=
- dependencies:
- globby "^5.0.0"
- is-path-cwd "^1.0.0"
- is-path-in-cwd "^1.0.0"
- object-assign "^4.0.1"
- pify "^2.0.0"
- pinkie-promise "^2.0.0"
- rimraf "^2.2.8"
-
del@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5"
@@ -2726,12 +2800,7 @@ delegates@^1.0.0:
resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=
-depd@1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359"
- integrity sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=
-
-depd@~1.1.1, depd@~1.1.2:
+depd@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=
@@ -2756,7 +2825,7 @@ detect-indent@^4.0.0:
dependencies:
repeating "^2.0.0"
-detect-libc@^1.0.2:
+detect-libc@^1.0.2, detect-libc@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=
@@ -2766,7 +2835,7 @@ detect-newline@^2.1.0:
resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2"
integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=
-detect-node@^2.0.3:
+detect-node@^2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c"
integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==
@@ -2783,7 +2852,7 @@ diff@^3.2.0:
diffie-hellman@^5.0.0:
version "5.0.3"
- resolved "http://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875"
+ resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875"
integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==
dependencies:
bn.js "^4.1.0"
@@ -2831,9 +2900,11 @@ doctrine@^2.1.0:
esutils "^2.0.2"
dom-helpers@^3.2.1, dom-helpers@^3.3.1:
- version "3.3.1"
- resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.3.1.tgz#fc1a4e15ffdf60ddde03a480a9c0fece821dd4a6"
- integrity sha512-2Sm+JaYn74OiTM2wHvxJOo3roiq/h25Yi69Fqk269cNUwIXsCvATB6CRSFC9Am/20G2b28hGv/+7NiWydIrPvg==
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.4.0.tgz#e9b369700f959f62ecde5a6babde4bccd9169af8"
+ integrity sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==
+ dependencies:
+ "@babel/runtime" "^7.1.2"
dom-serializer@0, dom-serializer@~0.1.0:
version "0.1.0"
@@ -2849,9 +2920,9 @@ domain-browser@^1.1.1:
integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==
domelementtype@1, domelementtype@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2"
- integrity sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=
+ 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"
@@ -2880,7 +2951,7 @@ domutils@1.5.1:
dom-serializer "0"
domelementtype "1"
-domutils@^1.5.1:
+domutils@^1.5.1, domutils@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a"
integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==
@@ -2895,10 +2966,10 @@ dot-prop@^4.1.1:
dependencies:
is-obj "^1.0.0"
-dotenv@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-4.0.0.tgz#864ef1379aced55ce6f95debecdce179f7a0cd1d"
- integrity sha1-hk7xN5rO1Vzm+V3r7NzhefegzR0=
+dotenv@^6.2.0:
+ version "6.2.0"
+ resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-6.2.0.tgz#941c0410535d942c8becf28d3f357dbd9d476064"
+ integrity sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w==
double-ended-queue@^2.1.0-0:
version "2.1.0-0"
@@ -2907,13 +2978,13 @@ double-ended-queue@^2.1.0-0:
duplexer@^0.1.1:
version "0.1.1"
- resolved "http://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1"
+ resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1"
integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=
duplexify@^3.4.2, duplexify@^3.6.0:
- version "3.6.0"
- resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.6.0.tgz#592903f5d80b38d037220541264d69a198fb3410"
- integrity sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==
+ version "3.6.1"
+ resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.6.1.tgz#b1a7a29c4abfd639585efaecce80d666b1e34125"
+ integrity sha512-vM58DwdnKmty+FSPzT14K9JXb90H+j5emaR4KYbr2KTIz00WHGbWOe5ghQTx233ZCLZtrGDALzKwcjEtSt35mA==
dependencies:
end-of-stream "^1.0.0"
inherits "^2.0.1"
@@ -2933,15 +3004,15 @@ ee-first@1.1.1:
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
-ejs@^2.3.4, ejs@^2.5.7:
+ejs@^2.3.4, ejs@^2.6.1:
version "2.6.1"
resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.6.1.tgz#498ec0d495655abc6f23cd61868d926464071aa0"
integrity sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ==
-electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.62:
- version "1.3.66"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.66.tgz#1410d8f8768a14dcd09d96222990f43c969af270"
- integrity sha512-EXfLtc9JxX2AZxISZ10o6hXEXTtnLtj7il5eye5YMgmDf4HbBbg+QDXpUEspsFrUcUugJZd5QJ4iIkRrmQQqIg==
+electron-to-chromium@^1.3.96:
+ version "1.3.96"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.96.tgz#25770ec99b8b07706dedf3a5f43fa50cb54c4f9a"
+ integrity sha512-ZUXBUyGLeoJxp4Nt6G/GjBRLnyz8IKQGexZ2ndWaoegThgMGFO1tdDYID5gBV32/1S83osjJHyfzvanE/8HY4Q==
elliptic@^6.0.0:
version "6.4.1"
@@ -2989,7 +3060,7 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0:
dependencies:
once "^1.4.0"
-enhanced-resolve@^4.0.0, enhanced-resolve@^4.1.0:
+enhanced-resolve@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f"
integrity sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==
@@ -2999,36 +3070,37 @@ enhanced-resolve@^4.0.0, enhanced-resolve@^4.1.0:
tapable "^1.0.0"
entities@^1.1.1, entities@~1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0"
- integrity sha1-blwtClYhtdra7O+AuQ7ftc13cvA=
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56"
+ integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==
-enzyme-adapter-react-16@^1.5.0:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.5.0.tgz#50af8d76a45fe0915de932bd95d34cdca75c0be3"
- integrity sha512-R2LcVvMB2UwPH763d5jDtVedAIcEj+uZjOnq0nd1sOUs6z8TDbyHDvt8VwfrS4wMt7CawoyPmH0XzC8MtEqqDw==
+enzyme-adapter-react-16@^1.7.1:
+ version "1.7.1"
+ resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.7.1.tgz#c37c4cb0fd75e88a063154a7a88096474914496a"
+ integrity sha512-OQXKgfHWyHN3sFu2nKj3mhgRcqIPIJX6aOzq5AHVFES4R9Dw/vCBZFMPyaG81g2AZ5DogVh39P3MMNUbqNLTcw==
dependencies:
- enzyme-adapter-utils "^1.8.0"
+ enzyme-adapter-utils "^1.9.0"
function.prototype.name "^1.1.0"
object.assign "^4.1.0"
object.values "^1.0.4"
prop-types "^15.6.2"
- react-is "^16.4.2"
+ react-is "^16.6.1"
react-test-renderer "^16.0.0-0"
-enzyme-adapter-utils@^1.8.0:
- version "1.8.0"
- resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.8.0.tgz#ee9f07250663a985f1f2caaf297720787da559f1"
- integrity sha512-K9U2RGr1pvWPGEAIRQRVH4UdlqzpfLsKonuHyAK6lxu46yfGsMDVlO3+YvQwQpVjVw8eviEVIOmlFAnMbIhv/w==
+enzyme-adapter-utils@^1.9.0:
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.9.0.tgz#3997c20f3387fdcd932b155b3740829ea10aa86c"
+ integrity sha512-uMe4xw4l/Iloh2Fz+EO23XUYMEQXj5k/5ioLUXCNOUCI8Dml5XQMO9+QwUq962hBsY5qftfHHns+d990byWHvg==
dependencies:
function.prototype.name "^1.1.0"
object.assign "^4.1.0"
prop-types "^15.6.2"
+ semver "^5.6.0"
-enzyme@^3.6.0:
- version "3.6.0"
- resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-3.6.0.tgz#d213f280a258f61e901bc663d4cc2d6fd9a9dec8"
- integrity sha512-onsINzVLGqKIapTVfWkkw6bYvm1o4CyJ9s8POExtQhAkVa4qFDW6DGCQGRy/5bfZYk+gmUbMNyayXiWDzTkHFQ==
+enzyme@^3.8.0:
+ version "3.8.0"
+ resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-3.8.0.tgz#646d2d5d0798cb98fdec39afcee8a53237b47ad5"
+ integrity sha512-bfsWo5nHyZm1O1vnIsbwdfhU989jk+squU9NKvB+Puwo5j6/Wg9pN5CO0YJelm98Dao3NPjkDZk+vvgwpMwYxw==
dependencies:
array.prototype.flat "^1.2.1"
cheerio "^1.0.0-rc.2"
@@ -3064,7 +3136,7 @@ error-ex@^1.2.0, error-ex@^1.3.1:
dependencies:
is-arrayish "^0.2.1"
-es-abstract@^1.10.0, es-abstract@^1.5.0, es-abstract@^1.5.1, es-abstract@^1.6.1, es-abstract@^1.7.0:
+es-abstract@^1.10.0, es-abstract@^1.11.0, es-abstract@^1.12.0, es-abstract@^1.5.0, es-abstract@^1.5.1, es-abstract@^1.6.1, es-abstract@^1.7.0:
version "1.12.0"
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.12.0.tgz#9dbbdd27c6856f0001421ca18782d786bf8a6165"
integrity sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==
@@ -3076,13 +3148,13 @@ es-abstract@^1.10.0, es-abstract@^1.5.0, es-abstract@^1.5.1, es-abstract@^1.6.1,
is-regex "^1.0.4"
es-to-primitive@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d"
- integrity sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377"
+ integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==
dependencies:
- is-callable "^1.1.1"
+ is-callable "^1.1.4"
is-date-object "^1.0.1"
- is-symbol "^1.0.1"
+ is-symbol "^1.0.2"
es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14:
version "0.10.46"
@@ -3148,7 +3220,7 @@ eslint-module-utils@^2.2.0:
debug "^2.6.8"
pkg-dir "^1.0.0"
-eslint-plugin-import@^2.8.0:
+eslint-plugin-import@~2.14.0:
version "2.14.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.14.0.tgz#6b17626d2e3e6ad52cfce8807a845d15e22111a8"
integrity sha512-FpuRtniD/AY6sXByma2Wr0TXvXJ4nA/2/04VPlfpmUDPOpOY264x+ILiwnrk/k4RINgDAyFZByxqPUbSQ5YE7g==
@@ -3164,10 +3236,10 @@ eslint-plugin-import@^2.8.0:
read-pkg-up "^2.0.0"
resolve "^1.6.0"
-eslint-plugin-jsx-a11y@^6.0.3:
- version "6.1.1"
- resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.1.1.tgz#7bf56dbe7d47d811d14dbb3ddff644aa656ce8e1"
- integrity sha512-JsxNKqa3TwmPypeXNnI75FntkUktGzI1wSa1LgNZdSOMI+B4sxnr1lSF8m8lPiz4mKiC+14ysZQM4scewUrP7A==
+eslint-plugin-jsx-a11y@~6.1.2:
+ version "6.1.2"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.1.2.tgz#69bca4890b36dcf0fe16dd2129d2d88b98f33f88"
+ integrity sha512-7gSSmwb3A+fQwtw0arguwMdOdzmKUgnUcbSNlo+GjKLAQFuC2EZxWqG9XHRI8VscBJD5a8raz3RuxQNFW+XJbw==
dependencies:
aria-query "^3.0.0"
array-includes "^3.0.3"
@@ -3178,21 +3250,23 @@ eslint-plugin-jsx-a11y@^6.0.3:
has "^1.0.3"
jsx-ast-utils "^2.0.1"
-eslint-plugin-promise@^3.8.0:
- version "3.8.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-3.8.0.tgz#65ebf27a845e3c1e9d6f6a5622ddd3801694b621"
- integrity sha512-JiFL9UFR15NKpHyGii1ZcvmtIqa3UTwiDAGb8atSffe43qJ3+1czVGN6UtkklpcJ2DVnqvTMzEKRaJdBkAL2aQ==
+eslint-plugin-promise@~4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.0.1.tgz#2d074b653f35a23d1ba89d8e976a985117d1c6a2"
+ integrity sha512-Si16O0+Hqz1gDHsys6RtFRrW7cCTB6P7p3OJmKp3Y3dxpQE2qwOA7d3xnV+0mBmrPoi0RBnxlCKvqu70te6wjg==
-eslint-plugin-react@^7.8.2:
- version "7.11.1"
- resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.11.1.tgz#c01a7af6f17519457d6116aa94fc6d2ccad5443c"
- integrity sha512-cVVyMadRyW7qsIUh3FHp3u6QHNhOgVrLQYdQEB1bPWBsgbNCHdFAeNMquBMCcZJu59eNthX053L70l7gRt4SCw==
+eslint-plugin-react@~7.12.1:
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.12.1.tgz#b9c4639f72469ff317ac31e3bd630d22d0dbf8f4"
+ integrity sha512-1YyXVhp6KSB+xRC1BWzmlA4BH9Wp9jMMBE6AJizxuk+bg/KUJpQGRwsU1/q1pV8rM6oEdLCxunXn7Nfh2BOWBg==
dependencies:
array-includes "^3.0.3"
doctrine "^2.1.0"
has "^1.0.3"
jsx-ast-utils "^2.0.1"
+ object.fromentries "^2.0.0"
prop-types "^15.6.2"
+ resolve "^1.9.0"
eslint-scope@3.7.1:
version "3.7.1"
@@ -3202,14 +3276,6 @@ eslint-scope@3.7.1:
esrecurse "^4.1.0"
estraverse "^4.1.1"
-eslint-scope@^3.7.1:
- version "3.7.3"
- resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.3.tgz#bb507200d3d17f60247636160b4826284b108535"
- integrity sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==
- dependencies:
- esrecurse "^4.1.0"
- estraverse "^4.1.1"
-
eslint-scope@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.0.tgz#50bf3071e9338bcdc43331794a0cb533f0136172"
@@ -3218,62 +3284,67 @@ eslint-scope@^4.0.0:
esrecurse "^4.1.0"
estraverse "^4.1.1"
+eslint-utils@^1.3.1:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.3.1.tgz#9a851ba89ee7c460346f97cf8939c7298827e512"
+ integrity sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q==
+
eslint-visitor-keys@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d"
integrity sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==
-eslint@^4.19.1:
- version "4.19.1"
- resolved "http://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz#32d1d653e1d90408854bfb296f076ec7e186a300"
- integrity sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==
+eslint@^5.11.1:
+ version "5.11.1"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.11.1.tgz#8deda83db9f354bf9d3f53f9677af7e0e13eadda"
+ integrity sha512-gOKhM8JwlFOc2acbOrkYR05NW8M6DCMSvfcJiBB5NDxRE1gv8kbvxKaC9u69e6ZGEMWXcswA/7eKR229cEIpvg==
dependencies:
- ajv "^5.3.0"
- babel-code-frame "^6.22.0"
+ "@babel/code-frame" "^7.0.0"
+ ajv "^6.5.3"
chalk "^2.1.0"
- concat-stream "^1.6.0"
- cross-spawn "^5.1.0"
- debug "^3.1.0"
+ cross-spawn "^6.0.5"
+ debug "^4.0.1"
doctrine "^2.1.0"
- eslint-scope "^3.7.1"
+ eslint-scope "^4.0.0"
+ eslint-utils "^1.3.1"
eslint-visitor-keys "^1.0.0"
- espree "^3.5.4"
- esquery "^1.0.0"
+ espree "^5.0.0"
+ esquery "^1.0.1"
esutils "^2.0.2"
file-entry-cache "^2.0.0"
functional-red-black-tree "^1.0.1"
glob "^7.1.2"
- globals "^11.0.1"
- ignore "^3.3.3"
+ globals "^11.7.0"
+ ignore "^4.0.6"
imurmurhash "^0.1.4"
- inquirer "^3.0.6"
- is-resolvable "^1.0.0"
- js-yaml "^3.9.1"
+ inquirer "^6.1.0"
+ js-yaml "^3.12.0"
json-stable-stringify-without-jsonify "^1.0.1"
levn "^0.3.0"
- lodash "^4.17.4"
- minimatch "^3.0.2"
+ lodash "^4.17.5"
+ minimatch "^3.0.4"
mkdirp "^0.5.1"
natural-compare "^1.4.0"
optionator "^0.8.2"
path-is-inside "^1.0.2"
pluralize "^7.0.0"
progress "^2.0.0"
- regexpp "^1.0.1"
+ regexpp "^2.0.1"
require-uncached "^1.0.3"
- semver "^5.3.0"
+ semver "^5.5.1"
strip-ansi "^4.0.0"
- strip-json-comments "~2.0.1"
- table "4.0.2"
- text-table "~0.2.0"
+ strip-json-comments "^2.0.1"
+ table "^5.0.2"
+ text-table "^0.2.0"
-espree@^3.5.4:
- version "3.5.4"
- resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7"
- integrity sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==
+espree@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.0.tgz#fc7f984b62b36a0f543b13fb9cd7b9f4a7f5b65c"
+ integrity sha512-1MpUfwsdS9MMoN7ZXqAr9e9UKdVHDcvrJpyx7mm1WuQlx/ygErEQBzgi5Nh5qBHIoYweprhtMkTCb9GhcAIcsA==
dependencies:
- acorn "^5.5.0"
- acorn-jsx "^3.0.0"
+ acorn "^6.0.2"
+ acorn-jsx "^5.0.0"
+ eslint-visitor-keys "^1.0.0"
esprima@^3.1.3:
version "3.1.3"
@@ -3285,7 +3356,7 @@ esprima@^4.0.0:
resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
-esquery@^1.0.0:
+esquery@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708"
integrity sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==
@@ -3324,12 +3395,12 @@ events@^1.0.0:
resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924"
integrity sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=
-eventsource@0.1.6:
- version "0.1.6"
- resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-0.1.6.tgz#0acede849ed7dd1ccc32c811bb11b944d4f29232"
- integrity sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=
+eventsource@^1.0.7:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0"
+ integrity sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==
dependencies:
- original ">=0.0.5"
+ original "^1.0.0"
evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
version "1.0.3"
@@ -3372,6 +3443,19 @@ execa@^0.7.0:
signal-exit "^3.0.0"
strip-eof "^1.0.0"
+execa@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8"
+ integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==
+ dependencies:
+ cross-spawn "^6.0.0"
+ get-stream "^4.0.0"
+ is-stream "^1.1.0"
+ npm-run-path "^2.0.0"
+ p-finally "^1.0.0"
+ signal-exit "^3.0.0"
+ strip-eof "^1.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"
@@ -3421,14 +3505,14 @@ expect@^23.6.0:
jest-message-util "^23.4.0"
jest-regex-util "^23.3.0"
-express@^4.16.2:
- version "4.16.3"
- resolved "http://registry.npmjs.org/express/-/express-4.16.3.tgz#6af8a502350db3246ecc4becf6b5a34d22f7ed53"
- integrity sha1-avilAjUNsyRuzEvs9rWjTSL37VM=
+express@^4.16.2, express@^4.16.3, express@^4.16.4:
+ version "4.16.4"
+ resolved "https://registry.yarnpkg.com/express/-/express-4.16.4.tgz#fddef61926109e24c515ea97fd2f1bdbf62df12e"
+ integrity sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==
dependencies:
accepts "~1.3.5"
array-flatten "1.1.1"
- body-parser "1.18.2"
+ body-parser "1.18.3"
content-disposition "0.5.2"
content-type "~1.0.4"
cookie "0.3.1"
@@ -3445,10 +3529,10 @@ express@^4.16.2:
on-finished "~2.3.0"
parseurl "~1.3.2"
path-to-regexp "0.1.7"
- proxy-addr "~2.0.3"
- qs "6.5.1"
+ proxy-addr "~2.0.4"
+ qs "6.5.2"
range-parser "~1.2.0"
- safe-buffer "5.1.1"
+ safe-buffer "5.1.2"
send "0.16.2"
serve-static "1.13.2"
setprototypeof "1.1.0"
@@ -3472,20 +3556,11 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2:
assign-symbols "^1.0.0"
is-extendable "^1.0.1"
-extend@~3.0.0, extend@~3.0.1, extend@~3.0.2:
+extend@~3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
-external-editor@^2.0.4:
- version "2.2.0"
- resolved "http://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5"
- integrity sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==
- dependencies:
- chardet "^0.4.0"
- iconv-lite "^0.4.17"
- tmp "^0.0.33"
-
external-editor@^3.0.0:
version "3.0.3"
resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.3.tgz#5866db29a97826dbe4bf3afd24070ead9ea43a27"
@@ -3526,11 +3601,6 @@ extsprintf@^1.2.0:
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=
-fast-deep-equal@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614"
- integrity sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=
-
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"
@@ -3547,9 +3617,9 @@ fast-levenshtein@~2.0.4:
integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
fastparse@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8"
- integrity sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9"
+ integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==
faye-websocket@^0.10.0:
version "0.10.0"
@@ -3558,7 +3628,7 @@ faye-websocket@^0.10.0:
dependencies:
websocket-driver ">=0.5.1"
-faye-websocket@~0.11.0:
+faye-websocket@~0.11.1:
version "0.11.1"
resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.1.tgz#f0efe18c4f56e4f40afc7e06c719fd5ee6188f38"
integrity sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=
@@ -3572,7 +3642,7 @@ fb-watchman@^2.0.0:
dependencies:
bser "^2.0.0"
-fbjs@^0.8.4, fbjs@^0.8.9:
+fbjs@^0.8.4:
version "0.8.17"
resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd"
integrity sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=
@@ -3585,7 +3655,14 @@ fbjs@^0.8.4, fbjs@^0.8.9:
setimmediate "^1.0.5"
ua-parser-js "^0.7.18"
-figgy-pudding@^3.1.0, figgy-pudding@^3.5.1:
+fibers@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/fibers/-/fibers-3.1.1.tgz#0238902ca938347bd779523692fbeefdf4f688ab"
+ integrity sha512-dl3Ukt08rHVQfY8xGD0ODwyjwrRALtaghuqGH2jByYX1wpY+nAnRQjJ6Dbqq0DnVgNVQ9yibObzbF4IlPyiwPw==
+ dependencies:
+ detect-libc "^1.0.3"
+
+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==
@@ -3605,10 +3682,10 @@ file-entry-cache@^2.0.0:
flat-cache "^1.2.1"
object-assign "^4.0.1"
-file-loader@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-2.0.0.tgz#39749c82f020b9e85901dcff98e8004e6401cfde"
- integrity sha512-YCsBfd1ZGCyonOKLxPiKPdu+8ld9HAaMEvJewzz+b2eTF7uL5Zm/HdBF6FjCrpCMRq25Mi0U1gl4pwn2TlH7hQ==
+file-loader@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-3.0.1.tgz#f8e0ba0b599918b51adfe45d66d1e771ad560faa"
+ integrity sha512-4sNIOXgtH/9WZq4NvlfU3Opn5ynUsqBwSLyM+I7UOwdGigTBYfVVQEwe/msZNX/j4pCJTIM14Fsw66Svo1oVrw==
dependencies:
loader-utils "^1.0.2"
schema-utils "^1.0.0"
@@ -3626,7 +3703,7 @@ fileset@^2.0.2:
glob "^7.0.3"
minimatch "^3.0.3"
-filesize@^3.5.11:
+filesize@^3.6.1:
version "3.6.1"
resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317"
integrity sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==
@@ -3706,20 +3783,15 @@ find-up@^3.0.0:
locate-path "^3.0.0"
flat-cache@^1.2.1:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481"
- integrity sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=
+ version "1.3.4"
+ resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.4.tgz#2c2ef77525cc2929007dfffa1dd314aa9c9dee6f"
+ integrity sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==
dependencies:
circular-json "^0.3.1"
- del "^2.0.2"
graceful-fs "^4.1.2"
+ rimraf "~2.6.2"
write "^0.2.1"
-flatten@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782"
- integrity sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=
-
flush-write-stream@^1.0.0:
version "1.0.3"
resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.3.tgz#c5d586ef38af6097650b49bc41b55fabb19f35bd"
@@ -3728,10 +3800,10 @@ flush-write-stream@^1.0.0:
inherits "^2.0.1"
readable-stream "^2.0.4"
-follow-redirects@^1.0.0, follow-redirects@^1.2.3:
- version "1.5.8"
- resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.8.tgz#1dbfe13e45ad969f813e86c00e5296f525c885a1"
- integrity sha512-sy1mXPmv7kLAMKW/8XofG7o9T+6gAjzdZK4AJF6ryqQYUa/hnzgiypoeUecZ53x7XiqKNEpNqLtS97MshW2nxg==
+follow-redirects@^1.0.0, follow-redirects@^1.3.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.6.0.tgz#d12452c031e8c67eb6637d861bfc7a8090167933"
+ integrity sha512-4Oh4eI3S9OueVV41AgJ1oLjpaJUhbJ7JDGOMhe0AFqoSejl5Q2nn3eGglAzRUKVKZE8jG5MNn66TjCJMAnpsWA==
dependencies:
debug "=3.1.0"
@@ -3769,22 +3841,13 @@ forever-agent@~0.6.1:
resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
-form-data@~2.1.1:
- version "2.1.4"
- resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1"
- integrity sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=
+form-data@~2.3.2:
+ version "2.3.3"
+ resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6"
+ integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==
dependencies:
asynckit "^0.4.0"
- combined-stream "^1.0.5"
- mime-types "^2.1.12"
-
-form-data@~2.3.1, form-data@~2.3.2:
- version "2.3.2"
- resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099"
- integrity sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=
- dependencies:
- asynckit "^0.4.0"
- combined-stream "1.0.6"
+ combined-stream "^1.0.6"
mime-types "^2.1.12"
forwarded@~0.1.2:
@@ -3812,15 +3875,6 @@ from2@^2.1.0:
inherits "^2.0.1"
readable-stream "^2.0.0"
-fs-extra@^7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.0.tgz#8cc3f47ce07ef7b3593a11b9fb245f7e34c041d6"
- integrity sha512-EglNDLRpmaTWiD/qraZn6HREAEAHJcJOmxNEYwq6xeMKnVMAy3GUcFB+wXt2C6k4CNvB/mP1y/U3dzvKKj5OtQ==
- dependencies:
- graceful-fs "^4.1.2"
- jsonfile "^4.0.0"
- universalify "^0.1.0"
-
fs-minipass@^1.2.5:
version "1.2.5"
resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d"
@@ -3851,25 +3905,6 @@ fsevents@*, fsevents@^1.2.2, fsevents@^1.2.3:
nan "^2.9.2"
node-pre-gyp "^0.10.0"
-fstream-ignore@^1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105"
- integrity sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=
- dependencies:
- fstream "^1.0.0"
- inherits "2"
- minimatch "^3.0.0"
-
-fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2:
- version "1.0.11"
- resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171"
- integrity sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=
- dependencies:
- graceful-fs "^4.1.2"
- inherits "~2.0.0"
- mkdirp ">=0.5 0"
- rimraf "2"
-
function-bind@^1.0.2, function-bind@^1.1.0, function-bind@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
@@ -3903,13 +3938,6 @@ gauge@~2.7.3:
strip-ansi "^3.0.1"
wide-align "^1.1.0"
-gaze@^1.0.0:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.3.tgz#c441733e13b927ac8c0ff0b4c3b033f28812924a"
- integrity sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==
- dependencies:
- globule "^1.0.0"
-
generic-pool@2.4.3:
version "2.4.3"
resolved "https://registry.yarnpkg.com/generic-pool/-/generic-pool-2.4.3.tgz#780c36f69dfad05a5a045dd37be7adca11a4f6ff"
@@ -3920,16 +3948,18 @@ get-caller-file@^1.0.1:
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a"
integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==
-get-stdin@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe"
- integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=
-
get-stream@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=
+get-stream@^4.0.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
+ integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==
+ 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"
@@ -3965,7 +3995,7 @@ glob-parent@^3.1.0:
is-glob "^3.1.0"
path-dirname "^1.0.0"
-glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@~7.1.1:
+glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3:
version "7.1.3"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1"
integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==
@@ -3977,33 +4007,21 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@~7.1.1:
once "^1.3.0"
path-is-absolute "^1.0.0"
-global-modules-path@^2.1.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/global-modules-path/-/global-modules-path-2.3.0.tgz#b0e2bac6beac39745f7db5c59d26a36a0b94f7dc"
- integrity sha512-HchvMJNYh9dGSCy8pOQ2O8u/hoXaL+0XhnrwH0RyLiSXMMTl9W3N6KUU73+JFOg5PGjtzl6VZzUQsnrpm7Szag==
+global-modules-path@^2.3.0:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/global-modules-path/-/global-modules-path-2.3.1.tgz#e541f4c800a1a8514a990477b267ac67525b9931"
+ integrity sha512-y+shkf4InI7mPRHSo2b/k6ix6+NLDtyccYv86whhxrSGX9wjPX1VMITmrDbE1eh7zkzhiWtW2sHklJYoQ62Cxg==
-globals@^11.0.1, globals@^11.1.0:
- version "11.7.0"
- resolved "https://registry.yarnpkg.com/globals/-/globals-11.7.0.tgz#a583faa43055b1aca771914bf68258e2fc125673"
- integrity sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==
+globals@^11.1.0, globals@^11.7.0:
+ version "11.9.0"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-11.9.0.tgz#bde236808e987f290768a93d065060d78e6ab249"
+ integrity sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg==
globals@^9.18.0:
version "9.18.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==
-globby@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d"
- integrity sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=
- dependencies:
- array-union "^1.0.1"
- arrify "^1.0.0"
- glob "^7.0.3"
- object-assign "^4.0.1"
- pify "^2.0.0"
- pinkie-promise "^2.0.0"
-
globby@^6.1.0:
version "6.1.0"
resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c"
@@ -4015,44 +4033,28 @@ globby@^6.1.0:
pify "^2.0.0"
pinkie-promise "^2.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==
- dependencies:
- glob "~7.1.1"
- lodash "~4.17.10"
- minimatch "~3.0.2"
-
-gonzales-pe@^4.0.3:
- version "4.2.3"
- resolved "https://registry.yarnpkg.com/gonzales-pe/-/gonzales-pe-4.2.3.tgz#41091703625433285e0aee3aa47829fc1fbeb6f2"
- integrity sha512-Kjhohco0esHQnOiqqdJeNz/5fyPkOMD/d6XVjwTAoPGUFh0mCollPUTUTa2OZy4dYNAqlPIQdTiNzJTWdd9Htw==
- dependencies:
- minimist "1.1.x"
-
-graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6:
- version "4.1.11"
- resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
- integrity sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=
+graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2:
+ 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==
growly@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081"
integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=
-gzip-size@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-4.1.0.tgz#8ae096257eabe7d69c45be2b67c448124ffb517c"
- integrity sha1-iuCWJX6r59acRb4rZ8RIEk/7UXw=
+gzip-size@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.0.0.tgz#a55ecd99222f4c48fd8c01c625ce3b349d0a0e80"
+ integrity sha512-5iI7omclyqrnWw4XbXAmGhPsABkSIDQonv2K0h61lybgofWa6iZyvrI3r2zsJH4P8Nb64fFVzlvfhs0g7BBxAA==
dependencies:
duplexer "^0.1.1"
pify "^3.0.0"
-handle-thing@^1.2.5:
- version "1.2.5"
- resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-1.2.5.tgz#fd7aad726bf1a5fd16dfc29b2f7a6601d27139c4"
- integrity sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=
+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.0.3:
version "4.0.12"
@@ -4065,38 +4067,17 @@ handlebars@^4.0.3:
optionalDependencies:
uglify-js "^3.1.4"
-har-schema@^1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e"
- integrity sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=
-
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@~4.2.1:
- version "4.2.1"
- resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a"
- integrity sha1-M0gdDxu/9gDdID11gSpqX7oALio=
- dependencies:
- ajv "^4.9.1"
- har-schema "^1.0.5"
-
-har-validator@~5.0.3:
- version "5.0.3"
- resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd"
- integrity sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=
- dependencies:
- ajv "^5.1.0"
- har-schema "^2.0.0"
-
har-validator@~5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.0.tgz#44657f5688a22cfd4b72486e81b3a3fb11742c29"
- integrity sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==
+ version "5.1.3"
+ resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080"
+ integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==
dependencies:
- ajv "^5.3.0"
+ ajv "^6.5.5"
har-schema "^2.0.0"
has-ansi@^2.0.0:
@@ -4157,7 +4138,7 @@ has-values@^1.0.0:
is-number "^3.0.0"
kind-of "^4.0.0"
-has@^1.0.1, has@^1.0.3:
+has@^1.0.0, has@^1.0.1, has@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
@@ -4173,22 +4154,17 @@ hash-base@^3.0.0:
safe-buffer "^5.0.1"
hash.js@^1.0.0, hash.js@^1.0.3:
- version "1.1.5"
- resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.5.tgz#e38ab4b85dfb1e0c40fe9265c0e9b54854c23812"
- integrity sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==
+ version "1.1.7"
+ resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42"
+ integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==
dependencies:
inherits "^2.0.3"
minimalistic-assert "^1.0.1"
-hawk@3.1.3, hawk@~3.1.3:
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4"
- integrity sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=
- dependencies:
- boom "2.x.x"
- cryptiles "2.x.x"
- hoek "2.x.x"
- sntp "1.x.x"
+hex-color-regex@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e"
+ integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==
history@^4.7.2:
version "4.7.2"
@@ -4210,16 +4186,18 @@ hmac-drbg@^1.0.0:
minimalistic-assert "^1.0.0"
minimalistic-crypto-utils "^1.0.1"
-hoek@2.x.x:
- version "2.16.3"
- resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
- integrity sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=
-
-hoist-non-react-statics@^2.5.0:
+hoist-non-react-statics@^2.5.0, hoist-non-react-statics@^2.5.5:
version "2.5.5"
resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz#c5903cf409c0dfd908f388e619d86b9c1174cb47"
integrity sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==
+hoist-non-react-statics@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.2.1.tgz#c09c0555c84b38a7ede6912b61efddafd6e75e1e"
+ integrity sha512-TFsu3TV3YLY+zFTZDrN8L2DTFanObwmBLpWvJs1qfUuEQ5bTAdFcwfx2T/bsCXfM9QHSLvjfP+nihEl0yvozxw==
+ dependencies:
+ react-is "^16.3.2"
+
home-or-tmp@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8"
@@ -4228,6 +4206,11 @@ home-or-tmp@^2.0.0:
os-homedir "^1.0.0"
os-tmpdir "^1.0.1"
+hoopy@^0.1.2:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d"
+ 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"
@@ -4243,6 +4226,21 @@ hpack.js@^2.1.6:
readable-stream "^2.0.1"
wbuf "^1.1.0"
+hsl-regex@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e"
+ integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=
+
+hsla-regex@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38"
+ integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg=
+
+html-comment-regex@^1.1.0:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7"
+ integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==
+
html-encoding-sniffer@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8"
@@ -4256,35 +4254,25 @@ html-entities@^1.2.0:
integrity sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=
htmlparser2@^3.9.1:
- version "3.9.2"
- resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.9.2.tgz#1bdf87acca0f3f9e53fa4fcceb0f4b4cbb00b338"
- integrity sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=
+ version "3.10.0"
+ resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.0.tgz#5f5e422dcf6119c0d983ed36260ce9ded0bee464"
+ integrity sha512-J1nEUGv+MkXS0weHNWVKJJ+UrLfePxRWpN3C9bEi9fLxL2+ggW94DQvgYVXsaT30PGwYRIZKNZXuyMhp3Di4bQ==
dependencies:
domelementtype "^1.3.0"
domhandler "^2.3.0"
domutils "^1.5.1"
entities "^1.1.1"
inherits "^2.0.1"
- readable-stream "^2.0.2"
+ readable-stream "^3.0.6"
http-deceiver@^1.2.7:
version "1.2.7"
resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87"
integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=
-http-errors@1.6.2:
- version "1.6.2"
- resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736"
- integrity sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=
- dependencies:
- depd "1.1.1"
- inherits "2.0.3"
- setprototypeof "1.0.3"
- statuses ">= 1.3.1 < 2"
-
-http-errors@~1.6.2:
+http-errors@1.6.3, http-errors@~1.6.2, http-errors@~1.6.3:
version "1.6.3"
- resolved "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d"
+ resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d"
integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=
dependencies:
depd "~1.1.2"
@@ -4292,19 +4280,19 @@ http-errors@~1.6.2:
setprototypeof "1.1.0"
statuses ">= 1.4.0 < 2"
-http-link-header@^0.8.0:
- version "0.8.0"
- resolved "https://registry.yarnpkg.com/http-link-header/-/http-link-header-0.8.0.tgz#a22b41a0c9b1e2d8fac1bf1b697c6bd532d5f5e4"
- integrity sha1-oitBoMmx4tj6wb8baXxr1TLV9eQ=
+http-link-header@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/http-link-header/-/http-link-header-1.0.2.tgz#bea50f02e1c7996021f1013b428c63f77e0f4e11"
+ integrity sha512-z6YOZ8ZEnejkcCWlGZzYXNa6i+ZaTfiTg3WhlV/YvnNya3W/RbX1bMVUMTuCrg/DrtTCQxaFCkXCz4FtLpcebg==
http-parser-js@>=0.4.0:
- version "0.4.13"
- resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.13.tgz#3bd6d6fde6e3172c9334c3b33b6c193d80fe1137"
- integrity sha1-O9bW/ebjFyyTNMOzO2wZPYD+ETc=
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.0.tgz#d65edbede84349d0dc30320815a15d39cc3cbbd8"
+ integrity sha512-cZdEF7r4gfRIq7ezX9J0T+kQmJNOub71dWbgAXVHDct80TKP4MCETtZQ31xyv38UwgzkWPYF/Xc0ge55dW9Z9w==
http-proxy-middleware@~0.18.0:
version "0.18.0"
- resolved "http://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz#0987e6bb5a5606e5a69168d8f967a87f15dd8aab"
+ resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz#0987e6bb5a5606e5a69168d8f967a87f15dd8aab"
integrity sha512-Fs25KVMPAIIcgjMZkVHJoKg9VcXcC1C8yb9JUgeDvVXY0S/zgVIhMb+qVswDIgtJe2DfckMSY2d6TuTEutlk6Q==
dependencies:
http-proxy "^1.16.2"
@@ -4321,15 +4309,6 @@ http-proxy@^1.16.2:
follow-redirects "^1.0.0"
requires-port "^1.0.0"
-http-signature@~1.1.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf"
- integrity sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=
- dependencies:
- assert-plus "^0.2.0"
- jsprim "^1.2.2"
- sshpk "^1.7.0"
-
http-signature@~1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
@@ -4344,11 +4323,6 @@ 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.19:
- version "0.4.19"
- resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b"
- integrity sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==
-
iconv-lite@0.4.23:
version "0.4.23"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63"
@@ -4356,7 +4330,7 @@ iconv-lite@0.4.23:
dependencies:
safer-buffer ">= 2.1.2 < 3"
-iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@~0.4.13:
+iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@~0.4.13:
version "0.4.24"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
@@ -4368,12 +4342,12 @@ icss-replace-symbols@^1.1.0:
resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded"
integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=
-icss-utils@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-2.1.0.tgz#83f0a0ec378bf3246178b6c2ad9136f135b1c962"
- integrity sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=
+icss-utils@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.0.0.tgz#d52cf4bcdcfa1c45c2dbefb4ffdf6b00ef608098"
+ integrity sha512-bA/xGiwWM17qjllIs9X/y0EjsB7e0AV08F3OL8UPsoNkNRibIuu8f1eKTnQ8QO1DteKKTxTUAn+IEWUToIwGOA==
dependencies:
- postcss "^6.0.1"
+ postcss "^7.0.5"
ieee754@^1.1.4:
version "1.1.12"
@@ -4392,10 +4366,10 @@ ignore-walk@^3.0.1:
dependencies:
minimatch "^3.0.4"
-ignore@^3.3.3:
- version "3.3.10"
- resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043"
- integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==
+ignore@^4.0.6:
+ version "4.0.6"
+ resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
+ integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
immutable@^3.8.2:
version "3.8.2"
@@ -4409,6 +4383,14 @@ import-cwd@^2.0.0:
dependencies:
import-from "^2.1.0"
+import-fresh@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546"
+ integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY=
+ dependencies:
+ caller-path "^2.0.0"
+ resolve-from "^3.0.0"
+
import-from@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1"
@@ -4445,18 +4427,6 @@ imurmurhash@^0.1.4:
resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
-in-publish@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.0.tgz#e20ff5e3a2afc2690320b6dc552682a9c7fadf51"
- integrity sha1-4g/146KvwmkDILbcVSaCqcf631E=
-
-indent-string@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80"
- integrity sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=
- dependencies:
- repeating "^2.0.0"
-
indexes-of@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607"
@@ -4475,7 +4445,7 @@ inflight@^1.0.4:
once "^1.3.0"
wrappy "1"
-inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3:
+inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
@@ -4490,30 +4460,10 @@ ini@~1.3.0:
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==
-inquirer@^3.0.6:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9"
- integrity sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==
- dependencies:
- ansi-escapes "^3.0.0"
- chalk "^2.0.0"
- cli-cursor "^2.1.0"
- cli-width "^2.0.0"
- external-editor "^2.0.4"
- figures "^2.0.0"
- lodash "^4.3.0"
- mute-stream "0.0.7"
- run-async "^2.2.0"
- rx-lite "^4.0.8"
- rx-lite-aggregates "^4.0.8"
- string-width "^2.1.0"
- strip-ansi "^4.0.0"
- through "^2.3.6"
-
-inquirer@^6.0.0:
- version "6.2.0"
- resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.2.0.tgz#51adcd776f661369dc1e894859c2560a224abdd8"
- integrity sha512-QIEQG4YyQ2UYZGDC4srMZ7BjHOmNk1lR2JQj5UknBapklm6WHA+VVH7N+sUdX3A7NeCfGF8o4X1S3Ao7nAcIeg==
+inquirer@^6.1.0:
+ version "6.2.1"
+ resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.2.1.tgz#9943fc4882161bdb0b0c9276769c75b32dbfcd52"
+ integrity sha512-088kl3DRT2dLU5riVMKKr1DlImd6X7smDhpXUCkJDCKvTEJeRiXh0G132HG9u5a+6Ylw9plFRY7RuTnwohYSpg==
dependencies:
ansi-escapes "^3.0.0"
chalk "^2.0.0"
@@ -4526,7 +4476,7 @@ inquirer@^6.0.0:
run-async "^2.2.0"
rxjs "^6.1.0"
string-width "^2.1.0"
- strip-ansi "^4.0.0"
+ strip-ansi "^5.0.0"
through "^2.3.6"
internal-ip@^3.0.1:
@@ -4538,14 +4488,14 @@ internal-ip@^3.0.1:
ipaddr.js "^1.5.2"
interpret@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614"
- integrity sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296"
+ integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==
-intersection-observer@^0.5.0:
- version "0.5.0"
- resolved "https://registry.yarnpkg.com/intersection-observer/-/intersection-observer-0.5.0.tgz#9fe8bee3953c755b1485c38efd9633d535775ea6"
- integrity sha512-8Zgt4ijlyvIrQVTA7MPb2W9+KhoetrAbxlh0RmTGxpx0+ZsAXvy7IsbNnZIrqZ6TddAdWeQj49x7Ph7Ir6KRkA==
+intersection-observer@^0.5.1:
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/intersection-observer/-/intersection-observer-0.5.1.tgz#e340fc56ce74290fe2b2394d1ce88c4353ac6dfa"
+ integrity sha512-Zd7Plneq82kiXFixs7bX62YnuZ0BMRci9br7io88LwDyF3V43cQMI+G5IiTlTNTt+LsDUppl19J/M2Fp9UkH6g==
intl-format-cache@^2.0.5:
version "2.1.0"
@@ -4564,7 +4514,7 @@ intl-messageformat@^2.0.0, intl-messageformat@^2.1.0, intl-messageformat@^2.2.0:
dependencies:
intl-messageformat-parser "1.4.0"
-intl-relativeformat@^2.0.0, intl-relativeformat@^2.1.0:
+intl-relativeformat@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/intl-relativeformat/-/intl-relativeformat-2.1.0.tgz#010f1105802251f40ac47d0e3e1a201348a255df"
integrity sha1-AQ8RBYAiUfQKxH0OPhogE0iiVd8=
@@ -4576,7 +4526,7 @@ intl@^1.2.5:
resolved "https://registry.yarnpkg.com/intl/-/intl-1.2.5.tgz#82244a2190c4e419f8371f5aa34daa3420e2abde"
integrity sha1-giRKIZDE5Bn4Nx9ao02qNCDiq94=
-invariant@^2.0.0, invariant@^2.1.1, invariant@^2.2.1, invariant@^2.2.2, invariant@^2.2.4:
+invariant@^2.1.1, invariant@^2.2.1, invariant@^2.2.2, invariant@^2.2.4:
version "2.2.4"
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
@@ -4613,6 +4563,11 @@ ipaddr.js@^1.5.2:
resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.1.tgz#fa4b79fa47fd3def5e3b159825161c0a519c9427"
integrity sha1-+kt5+kf9Pe9eOxWYJRYcClGclCc=
+is-absolute-url@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6"
+ integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=
+
is-accessor-descriptor@^0.1.6:
version "0.1.6"
resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"
@@ -4661,7 +4616,7 @@ is-builtin-module@^1.0.0:
dependencies:
builtin-modules "^1.0.0"
-is-callable@^1.1.1, is-callable@^1.1.3, is-callable@^1.1.4:
+is-callable@^1.1.3, is-callable@^1.1.4:
version "1.1.4"
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75"
integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==
@@ -4673,6 +4628,18 @@ is-ci@^1.0.10:
dependencies:
ci-info "^1.5.0"
+is-color-stop@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345"
+ integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=
+ dependencies:
+ css-color-names "^0.0.4"
+ hex-color-regex "^1.1.0"
+ hsl-regex "^1.0.0"
+ hsla-regex "^1.0.0"
+ rgb-regex "^1.0.1"
+ rgba-regex "^1.0.0"
+
is-data-descriptor@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
@@ -4827,7 +4794,7 @@ is-number@^4.0.0:
is-obj@^1.0.0:
version "1.0.1"
- resolved "http://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
+ resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8=
is-path-cwd@^1.0.0:
@@ -4898,10 +4865,19 @@ is-subset@^0.1.1:
resolved "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6"
integrity sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY=
-is-symbol@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572"
- integrity sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=
+is-svg@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75"
+ integrity sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==
+ dependencies:
+ html-comment-regex "^1.1.0"
+
+is-symbol@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38"
+ integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==
+ dependencies:
+ has-symbols "^1.0.0"
is-typedarray@~1.0.0:
version "1.0.0"
@@ -5350,15 +5326,15 @@ jest@^23.6.0:
import-local "^1.0.0"
jest-cli "^23.6.0"
-js-base64@^2.1.8, js-base64@^2.1.9:
- version "2.4.9"
- resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.9.tgz#748911fb04f48a60c4771b375cac45a80df11c03"
- integrity sha512-xcinL3AuDJk7VSzsHgb9DvvIXayBbadtMZ4HFPx8rUszbW1MuNMlwYVC4zzCZ6e1sqZpnNS5ZFYOhXqA39T7LQ==
+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==
js-levenshtein@^1.1.3:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.3.tgz#3ef627df48ec8cf24bacf05c0f184ff30ef413c5"
- integrity sha512-/812MXr9RBtMObviZ8gQBhHO8MOrGj8HlEE+4ccMTElNA/6I3u39u+bhny55Lk921yn44nSZFy9naNLElL5wgQ==
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.4.tgz#3a56e3cbf589ca0081eb22cd9ba0b1290a16d26e"
+ integrity sha512-PxfGzSs0ztShKrUYPIn5r0MtyAhYcCwmndozzpz8YObbPnD1jFxzlBGbRnX2mIu6Z13xN6+PTu05TQFnZFlzow==
js-string-escape@1.0.1:
version "1.0.1"
@@ -5375,7 +5351,7 @@ js-tokens@^3.0.2:
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls=
-js-yaml@^3.11.0, js-yaml@^3.7.0, js-yaml@^3.9.0, js-yaml@^3.9.1:
+js-yaml@^3.11.0, js-yaml@^3.12.0, js-yaml@^3.7.0, js-yaml@^3.9.0:
version "3.12.0"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1"
integrity sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==
@@ -5426,9 +5402,9 @@ jsesc@^1.3.0:
integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s=
jsesc@^2.5.1:
- version "2.5.1"
- resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.1.tgz#e421a2a8e20d6b0819df28908f782526b96dd1fe"
- integrity sha1-5CGiqOINawgZ3yiQj3glJrlt0f4=
+ version "2.5.2"
+ resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
+ integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
jsesc@~0.5.0:
version "0.5.0"
@@ -5440,11 +5416,6 @@ json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2:
resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
-json-schema-traverse@^0.3.0:
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340"
- integrity sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=
-
json-schema-traverse@^0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
@@ -5482,12 +5453,19 @@ json5@^0.5.0, json5@^0.5.1:
resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=
-jsonfile@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
- integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=
- optionalDependencies:
- graceful-fs "^4.1.6"
+json5@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe"
+ integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==
+ 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==
+ dependencies:
+ minimist "^1.2.0"
jsonify@~0.0.0:
version "0.0.0"
@@ -5604,9 +5582,9 @@ load-json-file@^2.0.0:
strip-bom "^3.0.0"
loader-runner@^2.3.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2"
- integrity sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.1.tgz#026f12fe7c3115992896ac02ba022ba92971b979"
+ integrity sha512-By6ZFY7ETWOc9RFaAIb23IjJVcM4dvJC/N57nmdz9RSkMXvAXGI7SyVlAw3v8vjtDRlqThgVDVmTnr9fqMlxkw==
loader-utils@0.2.x:
version "0.2.17"
@@ -5618,14 +5596,14 @@ loader-utils@0.2.x:
json5 "^0.5.0"
object-assign "^4.0.1"
-loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd"
- integrity sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=
+loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.1:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7"
+ integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==
dependencies:
- big.js "^3.1.3"
+ big.js "^5.2.2"
emojis-list "^2.0.0"
- json5 "^0.5.0"
+ json5 "^1.0.1"
locate-path@^2.0.0:
version "2.0.0"
@@ -5643,31 +5621,6 @@ locate-path@^3.0.0:
p-locate "^3.0.0"
path-exists "^3.0.0"
-lodash-es@^4.17.5, lodash-es@^4.2.1:
- version "4.17.10"
- resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.10.tgz#62cd7104cdf5dd87f235a837f0ede0e8e5117e05"
- integrity sha512-iesFYPmxYYGTcmQK0sL8bX3TGHyM6b2qREaB4kamHfQyfPJP0xgoGxp19nsH16nsfquLdiyKyX3mQkfiSGV8Rg==
-
-lodash._reinterpolate@~3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
- integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=
-
-lodash.assign@^4.2.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7"
- integrity sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=
-
-lodash.camelcase@^4.3.0:
- version "4.3.0"
- resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
- integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY=
-
-lodash.clonedeep@^4.3.2:
- version "4.5.0"
- resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
- integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=
-
lodash.debounce@^4.0.8:
version "4.0.8"
resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
@@ -5688,15 +5641,35 @@ lodash.flattendeep@^4.4.0:
resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2"
integrity sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=
+lodash.get@^4.0:
+ version "4.4.2"
+ resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99"
+ integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=
+
+lodash.has@^4.0:
+ version "4.5.2"
+ resolved "https://registry.yarnpkg.com/lodash.has/-/lodash.has-4.5.2.tgz#d19f4dc1095058cccbe2b0cdf4ee0fe4aa37c862"
+ integrity sha1-0Z9NwQlQWMzL4rDN9O4P5Ko3yGI=
+
+lodash.isboolean@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6"
+ integrity sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=
+
lodash.isequal@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0"
integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA=
-lodash.mergewith@^4.6.0:
- version "4.6.1"
- resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz#639057e726c3afbdb3e7d42741caa8d6e4335927"
- integrity sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==
+lodash.isobject@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/lodash.isobject/-/lodash.isobject-3.0.2.tgz#3c8fb8d5b5bf4bf90ae06e14f2a530a4ed935e1d"
+ integrity sha1-PI+41bW/S/kK4G4U8qUwpO2TXh0=
+
+lodash.memoize@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
+ integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=
lodash.sortby@^4.7.0:
version "4.7.0"
@@ -5708,54 +5681,43 @@ lodash.tail@^4.1.1:
resolved "https://registry.yarnpkg.com/lodash.tail/-/lodash.tail-4.1.1.tgz#d2333a36d9e7717c8ad2f7cacafec7c32b444664"
integrity sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=
-lodash.template@^4.2.4:
- version "4.4.0"
- resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.4.0.tgz#e73a0385c8355591746e020b99679c690e68fba0"
- integrity sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A=
- dependencies:
- lodash._reinterpolate "~3.0.0"
- lodash.templatesettings "^4.0.0"
+lodash.uniq@^4.5.0:
+ version "4.5.0"
+ resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
+ integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
-lodash.templatesettings@^4.0.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz#2b4d4e95ba440d915ff08bc899e4553666713316"
- integrity sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=
- dependencies:
- lodash._reinterpolate "~3.0.0"
-
-"lodash@>=3.5 <5", lodash@^4.0.0, lodash@^4.13.1, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1, lodash@^4.3.0, lodash@~4.17.10:
- version "4.17.10"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7"
- integrity sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==
+lodash@^4.13.1, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.7.11:
+ version "4.17.11"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
+ integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==
loglevel@^1.4.1:
version "1.6.1"
resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.1.tgz#e0fc95133b6ef276cdc8887cdaf24aa6f156f8fa"
integrity sha1-4PyVEztu8nbNyIh82vJKpvFW+Po=
-loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1:
+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"
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
dependencies:
js-tokens "^3.0.0 || ^4.0.0"
-loud-rejection@^1.0.0, loud-rejection@^1.6.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f"
- integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=
- dependencies:
- currently-unhandled "^0.4.1"
- signal-exit "^3.0.0"
-
-lru-cache@^4.0.1, lru-cache@^4.1.1, lru-cache@^4.1.3:
- version "4.1.3"
- resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.3.tgz#a1175cf3496dfc8436c156c334b4955992bce69c"
- integrity sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==
+lru-cache@^4.0.1:
+ version "4.1.5"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd"
+ integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==
dependencies:
pseudomap "^1.0.2"
yallist "^2.1.2"
+lru-cache@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920"
+ integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==
+ dependencies:
+ yallist "^3.0.2"
+
make-dir@^1.0.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c"
@@ -5770,15 +5732,10 @@ 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.2"
- resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.2.tgz#098fb15538fd3dbe461f12745b0ca8568d4e3f74"
- integrity sha512-UN1dNocxQq44IhJyMI4TU8phc2m9BddacHRPRjKGLYaF0jqd3xLz0jS0skpAU9WgYyoR4gHtUpzytNBS385FWQ==
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a"
+ integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==
dependencies:
p-defer "^1.0.0"
@@ -5787,11 +5744,6 @@ map-cache@^0.2.2:
resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=
-map-obj@^1.0.0, map-obj@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d"
- integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=
-
map-visit@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f"
@@ -5804,10 +5756,10 @@ mark-loader@^0.1.6:
resolved "https://registry.yarnpkg.com/mark-loader/-/mark-loader-0.1.6.tgz#0abb477dca7421d70e20128ff6489f5cae8676d5"
integrity sha1-CrtHfcp0IdcOIBKP9kifXK6GdtU=
-marky@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/marky/-/marky-1.2.0.tgz#9617ed647bbbea8f45d19526da33dec70606df42"
- integrity sha1-lhftZHu76o9F0ZUm2jPexwYG30I=
+marky@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/marky/-/marky-1.2.1.tgz#a3fcf82ffd357756b8b8affec9fdbf3a30dc1b02"
+ integrity sha512-md9k+Gxa3qLH6sUKpeC2CNkJK/Ld+bEz5X96nYwloqphQE0CKCVEKco/6jxEZixinqNdz5RFi/KaCyfbMDMAXQ==
math-random@^1.0.1:
version "1.0.1"
@@ -5815,12 +5767,18 @@ math-random@^1.0.1:
integrity sha1-izqsWIuKZuSXXjzepn97sylgH6w=
md5.js@^1.3.4:
- version "1.3.4"
- resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d"
- integrity sha1-6b296UogpawYsENA/Fdk1bCdkB0=
+ version "1.3.5"
+ resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f"
+ integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==
dependencies:
hash-base "^3.0.0"
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==
media-typer@0.3.0:
version "0.3.0"
@@ -5843,6 +5801,11 @@ mem@^4.0.0:
mimic-fn "^1.0.0"
p-is-promise "^1.1.0"
+memoize-one@^4.0.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-4.1.0.tgz#a2387c58c03fff27ca390c31b764a79addf3f906"
+ integrity sha512-2GApq0yI/b22J2j9rhbrAlsHb0Qcz+7yWxeLG8h+95sl1XPUgeLimQSOdur4Vw7cUhrBHwaUZxWFZueojqNRzA==
+
memory-fs@^0.4.0, memory-fs@~0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552"
@@ -5851,22 +5814,6 @@ memory-fs@^0.4.0, memory-fs@~0.4.1:
errno "^0.1.3"
readable-stream "^2.0.1"
-meow@^3.7.0:
- version "3.7.0"
- resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb"
- integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=
- dependencies:
- camelcase-keys "^2.0.0"
- decamelize "^1.1.2"
- loud-rejection "^1.0.0"
- map-obj "^1.0.1"
- minimist "^1.1.3"
- normalize-package-data "^2.3.4"
- object-assign "^4.0.1"
- read-pkg-up "^1.0.1"
- redent "^1.0.0"
- trim-newlines "^1.0.0"
-
merge-descriptors@1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
@@ -5880,9 +5827,9 @@ merge-stream@^1.0.1:
readable-stream "^2.0.1"
merge@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da"
- integrity sha1-dTHjnUlJwoGma4xabgJl6LBYlNo=
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145"
+ integrity sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==
methods@~1.1.2:
version "1.1.2"
@@ -5908,7 +5855,7 @@ micromatch@^2.3.11:
parse-glob "^3.0.4"
regex-cache "^0.4.2"
-micromatch@^3.1.4, micromatch@^3.1.8, micromatch@^3.1.9:
+micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8, micromatch@^3.1.9:
version "3.1.10"
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==
@@ -5935,17 +5882,17 @@ miller-rabin@^4.0.0:
bn.js "^4.0.0"
brorand "^1.0.1"
-"mime-db@>= 1.34.0 < 2", mime-db@~1.36.0:
- version "1.36.0"
- resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.36.0.tgz#5020478db3c7fe93aad7bbcc4dcf869c43363397"
- integrity sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw==
+"mime-db@>= 1.36.0 < 2", 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.17, mime-types@~2.1.18, mime-types@~2.1.19, mime-types@~2.1.7:
- version "2.1.20"
- resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.20.tgz#930cb719d571e903738520f8470911548ca2cc19"
- integrity sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==
+mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.18, 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==
dependencies:
- mime-db "~1.36.0"
+ mime-db "~1.37.0"
mime@1.4.1:
version "1.4.1"
@@ -5953,19 +5900,19 @@ mime@1.4.1:
integrity sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==
mime@^2.3.1:
- version "2.3.1"
- resolved "https://registry.yarnpkg.com/mime/-/mime-2.3.1.tgz#b1621c54d63b97c47d3cfe7f7215f7d64517c369"
- integrity sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.0.tgz#e051fd881358585f3279df333fe694da0bcffdd6"
+ integrity sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w==
mimic-fn@^1.0.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==
-mini-css-extract-plugin@^0.4.2:
- version "0.4.2"
- resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.2.tgz#b3ecc0d6b1bbe5ff14add42b946a7b200cf78651"
- integrity sha512-ots7URQH4wccfJq9Ssrzu2+qupbncAce4TmTzunI9CIwlQMp2XI+WNUw6xWF6MMAGAm1cbUVINrSjATaVMyKXg==
+mini-css-extract-plugin@^0.5.0:
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.5.0.tgz#ac0059b02b9692515a637115b0cc9fed3a35c7b0"
+ integrity sha512-IuaLjruM0vMKhUUT51fQdQzBYTX49dLj8w68ALEAe2A4iYNpIC4eMac67mt3NzycvjOlf07/kYxJDc0RTl1Wqw==
dependencies:
loader-utils "^1.1.0"
schema-utils "^1.0.0"
@@ -5981,7 +5928,7 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1:
resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=
-minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.2:
+minimatch@^3.0.3, minimatch@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
@@ -5990,55 +5937,34 @@ minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatc
minimist@0.0.8:
version "0.0.8"
- resolved "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
+ 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 "http://registry.npmjs.org/minimist/-/minimist-1.1.3.tgz#3bedfd91a92d39016fcfaa1c681e8faa1a1efda8"
- integrity sha1-O+39kaktOQFvz6ocaB6Pqhoe/ag=
-
-minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0:
+minimist@^1.1.1, minimist@^1.2.0:
version "1.2.0"
- resolved "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=
minimist@~0.0.1:
version "0.0.10"
- resolved "http://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=
-minipass@^2.2.1, minipass@^2.3.3:
- version "2.3.4"
- resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.4.tgz#4768d7605ed6194d6d576169b9e12ef71e9d9957"
- integrity sha512-mlouk1OHlaUE8Odt1drMtG1bAJA4ZA6B/ehysgV0LUIrDHdKgo1KorZq3pK0b/7Z7LJIQ12MNM6aC+Tn6lUZ5w==
+minipass@^2.2.1, minipass@^2.3.4:
+ version "2.3.5"
+ resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848"
+ integrity sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==
dependencies:
safe-buffer "^5.1.2"
yallist "^3.0.0"
-minizlib@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.0.tgz#11e13658ce46bc3a70a267aac58359d1e0c29ceb"
- integrity sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==
+minizlib@^1.1.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614"
+ integrity sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==
dependencies:
minipass "^2.2.1"
-mississippi@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-2.0.0.tgz#3442a508fafc28500486feea99409676e4ee5a6f"
- integrity sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==
- dependencies:
- concat-stream "^1.5.0"
- duplexify "^3.4.2"
- end-of-stream "^1.1.0"
- flush-write-stream "^1.0.0"
- from2 "^2.1.0"
- parallel-transform "^1.1.0"
- pump "^2.0.1"
- pumpify "^1.3.3"
- stream-each "^1.1.0"
- through2 "^2.0.0"
-
mississippi@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022"
@@ -6071,9 +5997,9 @@ mixin-object@^2.0.1:
for-in "^0.1.3"
is-extendable "^0.1.1"
-mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0:
+mkdirp@0.5.x, mkdirp@^0.5, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1:
version "0.5.1"
- resolved "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
+ resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
dependencies:
minimist "0.0.8"
@@ -6128,10 +6054,10 @@ mute-stream@0.0.7:
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=
-nan@^2.0.0, nan@^2.10.0, nan@^2.9.2:
- version "2.11.0"
- resolved "https://registry.yarnpkg.com/nan/-/nan-2.11.0.tgz#574e360e4d954ab16966ec102c0c049fd961a099"
- integrity sha512-F4miItu2rGnV2ySkXOQoA8FKz/SR2Q2sWP0sbTxNxz/tuokeC8WxOhPMcwi0qIyGtVn/rrSeLbvVkznqCdwYnw==
+nan@^2.9.2:
+ version "2.12.1"
+ resolved "https://registry.yarnpkg.com/nan/-/nan-2.12.1.tgz#7b1aa193e9aa86057e3c7bbd0ac448e770925552"
+ integrity sha512-JY7V6lRkStKcKTvHO5NVSQRv+RV+FIL5pvDoLiAtSL9pKlC5x9PKQcZDsq7m4FO4d57mkhC6Z+QhAh3Jdk5JFw==
nanomatch@^1.2.9:
version "1.2.13"
@@ -6156,20 +6082,20 @@ natural-compare@^1.4.0:
integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
nearley@^2.7.10:
- version "2.15.1"
- resolved "https://registry.yarnpkg.com/nearley/-/nearley-2.15.1.tgz#965e4e6ec9ed6b80fc81453e161efbcebb36d247"
- integrity sha512-8IUY/rUrKz2mIynUGh8k+tul1awMKEjeHHC5G3FHvvyAW6oq4mQfNp2c0BMea+sYZJvYcrrM6GmZVIle/GRXGw==
+ version "2.16.0"
+ resolved "https://registry.yarnpkg.com/nearley/-/nearley-2.16.0.tgz#77c297d041941d268290ec84b739d0ee297e83a7"
+ integrity sha512-Tr9XD3Vt/EujXbZBv6UAHYoLUSMQAxSsTnm9K3koXzjzNWY195NqALeyrzLZBKzAkL3gl92BcSogqrHjD8QuUg==
dependencies:
+ commander "^2.19.0"
moo "^0.4.3"
- nomnom "~1.6.2"
railroad-diagrams "^1.0.0"
randexp "0.4.6"
semver "^5.4.1"
needle@^2.2.1:
- version "2.2.3"
- resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.3.tgz#c1b04da378cd634d8befe2de965dc2cfb0fd65ca"
- integrity sha512-GPL22d/U9cai87FcCPO6e+MT3vyHS2j+zwotakDc7kE2DtUAqFKMXLJCTtRp+5S75vXIwQPvIxkvlctxf9q4gQ==
+ version "2.2.4"
+ resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.4.tgz#51931bff82533b1928b7d1d69e01f1b00ffd2a4e"
+ integrity sha512-HyoqEb4wr/rsoaIDfTH2aVL9nWtQqba2/HvMv+++m8u0dz808MaagKILxtfeSN7QU7nvbQ79zk3vYOJp9zsNEA==
dependencies:
debug "^2.1.2"
iconv-lite "^0.4.4"
@@ -6181,9 +6107,9 @@ negotiator@0.6.1:
integrity sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=
neo-async@^2.5.0:
- version "2.5.2"
- resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.5.2.tgz#489105ce7bc54e709d736b195f82135048c50fcc"
- integrity sha512-vdqTKI9GBIYcAEbFAcpKPErKINfPF5zIuz3/niBfq8WUZjpT2tytLlFVrBgWdOtqI4uaA/Rb6No0hux39XXDuw==
+ version "2.6.0"
+ resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.0.tgz#b9d15e4d71c6762908654b5183ed38b753340835"
+ integrity sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==
next-tick@1:
version "1.0.0"
@@ -6208,24 +6134,6 @@ node-forge@0.7.5:
resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.5.tgz#6c152c345ce11c52f465c2abd957e8639cd674df"
integrity sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ==
-node-gyp@^3.8.0:
- version "3.8.0"
- resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c"
- integrity sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==
- dependencies:
- fstream "^1.0.0"
- glob "^7.0.3"
- graceful-fs "^4.1.2"
- mkdirp "^0.5.0"
- nopt "2 || 3"
- npmlog "0 || 1 || 2 || 3 || 4"
- osenv "0"
- request "^2.87.0"
- rimraf "2"
- semver "~5.3.0"
- tar "^2.0.0"
- which "1"
-
node-int64@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b"
@@ -6261,12 +6169,12 @@ node-libs-browser@^2.0.0:
vm-browserify "0.0.4"
node-notifier@^5.2.1:
- version "5.2.1"
- resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.2.1.tgz#fa313dd08f5517db0e2502e5758d664ac69f9dea"
- integrity sha512-MIBs+AAd6dJ2SklbbE8RUDRlIVhU8MaNLh1A9SUZDUHPiZkWLFde6UNwG41yQHZEToHgJMXqyVZ9UcS/ReOVTg==
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.3.0.tgz#c77a4a7b84038733d5fb351aafd8a268bfe19a01"
+ integrity sha512-AhENzCSGZnZJgBARsUjnQ7DnZbzyP+HxlVXuD0xqAnvL8q+OqtSX7lGg9e8nHzwXkMMXNdVeqq4E2M3EUAqX6Q==
dependencies:
growly "^1.3.0"
- semver "^5.4.1"
+ semver "^5.5.0"
shellwords "^0.1.1"
which "^1.3.0"
@@ -6286,80 +6194,13 @@ node-pre-gyp@^0.10.0:
semver "^5.3.0"
tar "^4"
-node-pre-gyp@^0.6.4:
- version "0.6.39"
- resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz#c00e96860b23c0e1420ac7befc5044e1d78d8649"
- integrity sha512-OsJV74qxnvz/AMGgcfZoDaeDXKD3oY3QVIbBmwszTFkRisTSXbMQyn4UWzUMOtA5SVhrBZOTp0wcoSBgfMfMmQ==
- dependencies:
- detect-libc "^1.0.2"
- hawk "3.1.3"
- mkdirp "^0.5.1"
- nopt "^4.0.1"
- npmlog "^4.0.2"
- rc "^1.1.7"
- request "2.81.0"
- rimraf "^2.6.1"
- semver "^5.3.0"
- tar "^2.2.1"
- tar-pack "^3.4.0"
-
-node-releases@^1.0.0-alpha.11:
- version "1.0.0-alpha.11"
- resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.0.0-alpha.11.tgz#73c810acc2e5b741a17ddfbb39dfca9ab9359d8a"
- integrity sha512-CaViu+2FqTNYOYNihXa5uPS/zry92I3vPU4nCB6JB3OeZ2UGtOpF5gRwuN4+m3hbEcL47bOXyun1jX2iC+3uEQ==
+node-releases@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.3.tgz#aad9ce0dcb98129c753f772c0aa01360fb90fbd2"
+ integrity sha512-6VrvH7z6jqqNFY200kdB6HdzkgM96Oaj9v3dqGfgp6mF+cHmU4wyQKZ2/WPDRVoR0Jz9KqbamaBN0ZhdUaysUQ==
dependencies:
semver "^5.3.0"
-node-sass@^4.9.2:
- version "4.9.3"
- resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.9.3.tgz#f407cf3d66f78308bb1e346b24fa428703196224"
- integrity sha512-XzXyGjO+84wxyH7fV6IwBOTrEBe2f0a6SBze9QWWYR/cL74AcQUks2AsqcCZenl/Fp/JVbuEaLpgrLtocwBUww==
- dependencies:
- async-foreach "^0.1.3"
- chalk "^1.1.1"
- cross-spawn "^3.0.0"
- gaze "^1.0.0"
- get-stdin "^4.0.1"
- glob "^7.0.3"
- in-publish "^2.0.0"
- lodash.assign "^4.2.0"
- lodash.clonedeep "^4.3.2"
- lodash.mergewith "^4.6.0"
- meow "^3.7.0"
- mkdirp "^0.5.1"
- nan "^2.10.0"
- node-gyp "^3.8.0"
- npmlog "^4.0.0"
- request "2.87.0"
- sass-graph "^2.2.4"
- stdout-stream "^1.4.0"
- "true-case-path" "^1.0.2"
-
-node-zopfli@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/node-zopfli/-/node-zopfli-2.0.2.tgz#a7a473ae92aaea85d4c68d45bbf2c944c46116b8"
- integrity sha1-p6RzrpKq6oXUxo1Fu/LJRMRhFrg=
- dependencies:
- commander "^2.8.1"
- defaults "^1.0.2"
- nan "^2.0.0"
- node-pre-gyp "^0.6.4"
-
-nomnom@~1.6.2:
- version "1.6.2"
- resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.6.2.tgz#84a66a260174408fc5b77a18f888eccc44fb6971"
- integrity sha1-hKZqJgF0QI/Ft3oY+IjszET7aXE=
- dependencies:
- colors "0.5.x"
- underscore "~1.4.4"
-
-"nopt@2 || 3":
- version "3.0.6"
- resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9"
- integrity sha1-xkZdvwirzU2zWTF/eaxopkayj/k=
- dependencies:
- abbrev "1"
-
nopt@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d"
@@ -6368,7 +6209,7 @@ nopt@^4.0.1:
abbrev "1"
osenv "^0.1.4"
-normalize-package-data@^2.3.2, normalize-package-data@^2.3.4:
+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==
@@ -6390,15 +6231,20 @@ normalize-range@^0.1.2:
resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=
+normalize-url@^3.0.0:
+ version "3.3.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.5"
resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.5.tgz#3c1732b7ba936b3a10325aef616467c0ccbcc979"
integrity sha512-m/e6jgWu8/v5niCUKQi9qQl8QdeEduFA96xHDDzFGqly0OOjI7c+60KM/2sppfnUU9JJagf+zs+yGhqSOFj71g==
npm-packlist@^1.1.6:
- version "1.1.11"
- resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.11.tgz#84e8c683cbe7867d34b1d357d893ce29e28a02de"
- integrity sha512-CxKlZ24urLkJk+9kCm48RTQ7L4hsmgSVzEk0TLGPzzyuFxD7VNgy5Sl24tOLMzQv773a/NeJ1ce1DKeacqffEA==
+ version "1.1.12"
+ resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.12.tgz#22bde2ebc12e72ca482abd67afc51eb49377243a"
+ integrity sha512-WJKFOVMeAlsU/pjXuqVdzU0WfgtIBCupkEVwn+1Y0ERAbUfWw8R4GjgVbaKnUjRoD2FoQbHOCbOyT5Mbs9Lw4g==
dependencies:
ignore-walk "^3.0.1"
npm-bundled "^1.0.1"
@@ -6410,7 +6256,7 @@ npm-run-path@^2.0.0:
dependencies:
path-key "^2.0.0"
-"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.2, npmlog@^4.1.2:
+npmlog@^4.0.2, 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==
@@ -6420,10 +6266,10 @@ npm-run-path@^2.0.0:
gauge "~2.7.3"
set-blocking "~2.0.0"
-nth-check@~1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.1.tgz#9929acdf628fc2c41098deab82ac580cf149aae4"
- integrity sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=
+nth-check@^1.0.2, nth-check@~1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c"
+ integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==
dependencies:
boolbase "~1.0.0"
@@ -6442,11 +6288,6 @@ nwsapi@^2.0.7:
resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.0.9.tgz#77ac0cdfdcad52b6a1151a84e73254edc33ed016"
integrity sha512-nlWFSCTYQcHk/6A9FFnfhKc14c3aFhfdNBXgo8Qgi9QTBu/qg3Ww+Uiz9wMzXd1T8GFxPc2QIHB6Qtf2XFryFQ==
-oauth-sign@~0.8.1, oauth-sign@~0.8.2:
- version "0.8.2"
- resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
- integrity sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=
-
oauth-sign@~0.9.0:
version "0.9.0"
resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
@@ -6509,13 +6350,23 @@ object.assign@^4.1.0:
object-keys "^1.0.11"
object.entries@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.0.4.tgz#1bf9a4dd2288f5b33f3a993d257661f05d161a5f"
- integrity sha1-G/mk3SKI9bM/Opk9JXZh8F0WGl8=
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.0.tgz#2024fc6d6ba246aee38bdb0ffd5cfbcf371b7519"
+ integrity sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA==
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.12.0"
+ function-bind "^1.1.1"
+ has "^1.0.3"
+
+object.fromentries@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.0.tgz#49a543d92151f8277b3ac9600f1e930b189d30ab"
+ integrity sha512-9iLiI6H083uiqUuvzyY6qrlmc/Gz8hLQFOcb/Ri/0xXFkSNS3ctV+CbE6yM2+AnkYfOB3dGjdzC0wrMLIhQICA==
dependencies:
define-properties "^1.1.2"
- es-abstract "^1.6.1"
- function-bind "^1.1.0"
+ es-abstract "^1.11.0"
+ function-bind "^1.1.1"
has "^1.0.1"
object.getownpropertydescriptors@^2.0.3:
@@ -6551,15 +6402,15 @@ object.values@^1.0.4:
function-bind "^1.1.0"
has "^1.0.1"
-obuf@^1.0.0, obuf@^1.1.1:
+obuf@^1.0.0, obuf@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e"
integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==
-offline-plugin@^5.0.5:
- version "5.0.5"
- resolved "https://registry.yarnpkg.com/offline-plugin/-/offline-plugin-5.0.5.tgz#e9b16c569d19899af9c923f5bc260705578ffeba"
- integrity sha1-6bFsVp0ZiZr5ySP1vCYHBVeP/ro=
+offline-plugin@^5.0.6:
+ version "5.0.6"
+ resolved "https://registry.yarnpkg.com/offline-plugin/-/offline-plugin-5.0.6.tgz#7a7b244220cddb8a8cabecb172ec5c0be03e74b2"
+ integrity sha512-qvcDmeI30xmvSlmqjopAj7QCuM1MEzvmDyuMTN2saDReSay5nUqCpKysexH1KUNXv5H/TfmHd+rngNPkRFj3YA==
dependencies:
deep-extend "^0.5.1"
ejs "^2.3.4"
@@ -6579,7 +6430,7 @@ on-headers@~1.0.1:
resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7"
integrity sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=
-once@^1.3.0, once@^1.3.1, once@^1.3.3, once@^1.4.0:
+once@^1.3.0, once@^1.3.1, once@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
@@ -6593,15 +6444,15 @@ onetime@^2.0.0:
dependencies:
mimic-fn "^1.0.0"
-opener@^1.4.3:
+opener@^1.5.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz#6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed"
integrity sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA==
opn@^5.1.0:
- version "5.3.0"
- resolved "https://registry.yarnpkg.com/opn/-/opn-5.3.0.tgz#64871565c863875f052cfdf53d3e3cb5adb53b1c"
- integrity sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==
+ version "5.4.0"
+ resolved "https://registry.yarnpkg.com/opn/-/opn-5.4.0.tgz#cb545e7aab78562beb11aa3bfabc7042e1761035"
+ integrity sha512-YF9MNdVy/0qvJvDtunAOzFw9iasOQHpVthTCvGzxt61Il64AYSGdK+rYwld7NAfk9qJ7dt+hymBNSc9LNYS+Sw==
dependencies:
is-wsl "^1.1.0"
@@ -6625,7 +6476,7 @@ optionator@^0.8.1, optionator@^0.8.2:
type-check "~0.3.2"
wordwrap "~1.0.0"
-original@>=0.0.5:
+original@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f"
integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==
@@ -6642,13 +6493,6 @@ os-homedir@^1.0.0:
resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M=
-os-locale@^1.4.0:
- version "1.4.0"
- resolved "http://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9"
- integrity sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=
- dependencies:
- lcid "^1.0.0"
-
os-locale@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2"
@@ -6659,11 +6503,11 @@ os-locale@^2.0.0:
mem "^1.1.0"
os-locale@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.0.1.tgz#3b014fbf01d87f60a1e5348d80fe870dc82c4620"
- integrity sha512-7g5e7dmXPtzcP4bgsZ8ixDVqA7oWYuEz4lOSujeWyliPai4gfVDiFIcwBg3aGCPnmSGfzOKTK3ccPn0CKv3DBw==
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a"
+ integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==
dependencies:
- execa "^0.10.0"
+ execa "^1.0.0"
lcid "^2.0.0"
mem "^4.0.0"
@@ -6672,7 +6516,7 @@ os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~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, osenv@^0.1.4:
+osenv@^0.1.4:
version "0.1.5"
resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410"
integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==
@@ -6703,9 +6547,9 @@ p-limit@^1.1.0:
p-try "^1.0.0"
p-limit@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.0.0.tgz#e624ed54ee8c460a778b3c9f3670496ff8a57aec"
- integrity sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.1.0.tgz#1d5a0d20fb12707c758a655f6bbc4386b5930d68"
+ integrity sha512-NhURkNcrVB+8hNfLuysU8enY5xn2KXphsHBaC2YmRNTZRc7RWusw6apSpdEj3jo4CMb6W9nrF6tTnsJsJeyu6g==
dependencies:
p-try "^2.0.0"
@@ -6744,9 +6588,9 @@ packet-reader@0.3.1:
integrity sha1-zWLmCvjX/qinBexP+ZCHHEaHHyc=
pako@~1.0.5:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258"
- integrity sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.7.tgz#2473439021b57f1516c82f58be7275ad8ef1bb27"
+ integrity sha512-3HNK5tW4x8o5mO8RuHZp3Ydw9icZXx0RANAOMzlMzx7LVXhMJ4mo3MOBpzyd7r/+RUu8BmndP47LXT+vzjtWcQ==
parallel-transform@^1.1.0:
version "1.1.0"
@@ -6759,7 +6603,7 @@ parallel-transform@^1.1.0:
parse-asn1@^5.0.0:
version "5.1.1"
- resolved "http://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz#f6bf293818332bd0dab54efb16087724745e6ca8"
+ resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.1.tgz#f6bf293818332bd0dab54efb16087724745e6ca8"
integrity sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==
dependencies:
asn1.js "^4.0.0"
@@ -6872,7 +6716,7 @@ 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-parse@^1.0.5:
+path-parse@^1.0.5, path-parse@^1.0.6:
version "1.0.6"
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
@@ -6906,9 +6750,9 @@ path-type@^2.0.0:
pify "^2.0.0"
pbkdf2@^3.0.3:
- version "3.0.16"
- resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.16.tgz#7404208ec6b01b62d85bf83853a8064f8d9c2a5c"
- integrity sha512-y4CXP3thSxqf7c0qmOF+9UeOTrifiVTIM+u7NWlq+PRsHbr7r7dpCmvzrZxa96JJUNi0Y5w9VqG5ZNeCVMoDcA==
+ version "3.0.17"
+ resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6"
+ integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==
dependencies:
create-hash "^1.1.2"
create-hmac "^1.1.4"
@@ -6976,7 +6820,7 @@ pgpass@1.*:
dependencies:
split "^1.0.0"
-pify@^2.0.0, pify@^2.3.0:
+pify@^2.0.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw=
@@ -7030,9 +6874,9 @@ pn@^1.1.0:
integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==
portfinder@^1.0.9:
- version "1.0.17"
- resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.17.tgz#a8a1691143e46c4735edefcf4fbcccedad26456a"
- integrity sha512-syFcRIRzVI1BoEFOCaAiizwDolh1S1YXSodsVhncbhjzjZQulhczNRbqnUl9N31Q4dKGOXsNDqxC2BWBgSMqeQ==
+ version "1.0.20"
+ resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.20.tgz#bea68632e54b2e13ab7b0c4775e9b41bf270e44a"
+ integrity sha512-Yxe4mTyDzTd59PZJY4ojZR8F+E5e97iq2ZOHPz3HDgSvYC5siNad2tLooQ5y5QHyQhc3xVqvyk/eNA3wuoa7Sw==
dependencies:
async "^1.5.2"
debug "^2.2.0"
@@ -7043,139 +6887,62 @@ posix-character-classes@^0.1.0:
resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
-postcss-advanced-variables@^2.3.3:
- version "2.3.3"
- resolved "https://registry.yarnpkg.com/postcss-advanced-variables/-/postcss-advanced-variables-2.3.3.tgz#80ac5b05988d02f63352974491e319910f33337e"
- integrity sha512-X7nwaP4yDVu3ZWsftQVuVcd/+thKsXTeQ2zQL9ivtgdpXu/ERlSGiOA8D7O/b0jnYj6oO4WpfvOCw7cOnGYEow==
+postcss-calc@^7.0.0:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.1.tgz#36d77bab023b0ecbb9789d84dcb23c4941145436"
+ integrity sha512-oXqx0m6tb4N3JGdmeMSc/i91KppbYsFZKdH0xMOqK8V1rJlzrKlTdokz8ozUXLVejydRN6u2IddxpcijRj2FqQ==
dependencies:
- "@csstools/sass-import-resolve" "^1"
- postcss "^6"
+ 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-apply@^0.9.0:
- version "0.9.0"
- resolved "https://registry.yarnpkg.com/postcss-apply/-/postcss-apply-0.9.0.tgz#a152e6e34a6c55d0895751929319c262c5d8c289"
- integrity sha512-Ysel7CyF7FiZQno9oADqKXsfZw4DvTcQXtFvN1nLZQA3woRiVYV2M5kGJSrqQVWGjp/zqNUjUpXHs24TgxFjxg==
+postcss-colormin@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.2.tgz#93cd1fa11280008696887db1a528048b18e7ed99"
+ integrity sha512-1QJc2coIehnVFsz0otges8kQLsryi4lo19WD+U5xCWvXd0uw/Z+KKYnbiNDCnO9GP+PvErPHCG0jNvWTngk9Rw==
dependencies:
- babel-runtime "^6.23.0"
- balanced-match "^0.4.2"
- postcss "^6.0.0"
+ browserslist "^4.0.0"
+ color "^3.0.0"
+ has "^1.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
-postcss-atroot@^0.1.3:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/postcss-atroot/-/postcss-atroot-0.1.3.tgz#6752c0230c745140549345b2b0e30ebeda01a405"
- integrity sha1-Z1LAIwx0UUBUk0WysOMOvtoBpAU=
- dependencies:
- postcss "^5.0.5"
-
-postcss-attribute-case-insensitive@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-2.0.0.tgz#94dc422c8f90997f16bd33a3654bbbec084963b4"
- integrity sha1-lNxCLI+QmX8WvTOjZUu77AhJY7Q=
- dependencies:
- postcss "^6.0.0"
- postcss-selector-parser "^2.2.3"
-
-postcss-color-hex-alpha@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-3.0.0.tgz#1e53e6c8acb237955e8fd08b7ecdb1b8b8309f95"
- integrity sha1-HlPmyKyyN5Vej9CLfs2xuLgwn5U=
- dependencies:
- color "^1.0.3"
- postcss "^6.0.1"
- postcss-message-helpers "^2.0.0"
-
-postcss-color-mod-function@^2.4.2:
- version "2.4.3"
- resolved "https://registry.yarnpkg.com/postcss-color-mod-function/-/postcss-color-mod-function-2.4.3.tgz#14a97f5b17a5f19396e9dea7ffcb5be732592baf"
- integrity sha512-TEATRHN1m2+vM4efwRoPyrAQTbBA4xgx1jSMPv64oLcwVFC4qr6d4o9DAD5LxygIMeBBBugQHvXoSIM+87NaFQ==
- dependencies:
- "@csstools/convert-colors" "^1.4.0"
- postcss "^6.0.23"
- postcss-values-parser "^1.5.0"
-
-postcss-color-rebeccapurple@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-3.1.0.tgz#ce1269ecc2d0d8bf92aab44bd884e633124c33ec"
- integrity sha512-212hJUk9uSsbwO5ECqVjmh/iLsmiVL1xy9ce9TVf+X3cK/ZlUIlaMdoxje/YpsL9cmUH3I7io+/G2LyWx5rg1g==
- dependencies:
- postcss "^6.0.22"
- postcss-values-parser "^1.5.0"
-
-postcss-color-rgb@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/postcss-color-rgb/-/postcss-color-rgb-2.0.0.tgz#14539c8a7131494b482e0dd1cc265ff6514b5263"
- integrity sha1-FFOcinExSUtILg3RzCZf9lFLUmM=
- dependencies:
- postcss "^6.0.1"
- postcss-value-parser "^3.3.0"
-
-postcss-custom-media@^6.0.0:
- version "6.0.0"
- resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-6.0.0.tgz#be532784110ecb295044fb5395a18006eb21a737"
- integrity sha1-vlMnhBEOyylQRPtTlaGABushpzc=
- dependencies:
- postcss "^6.0.1"
-
-postcss-custom-properties@^7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-7.0.0.tgz#24dc4fbe6d6ed550ea4fd3b11204660e9ffa3b33"
- integrity sha512-dl/CNaM6z2RBa0vZZqsV6Hunj4HD6Spu7FcAkiVp5B2tgm6xReKKYzI7x7QNx3wTMBNj5v+ylfVcQGMW4xdkHw==
- dependencies:
- balanced-match "^1.0.0"
- postcss "^6.0.18"
-
-postcss-custom-selectors@^4.0.1:
+postcss-convert-values@^4.0.1:
version "4.0.1"
- resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-4.0.1.tgz#781382f94c52e727ef5ca4776ea2adf49a611382"
- integrity sha1-eBOC+UxS5yfvXKR3bqKt9JphE4I=
+ resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f"
+ integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==
dependencies:
- postcss "^6.0.1"
- postcss-selector-matches "^3.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
-postcss-dir-pseudo-class@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-3.0.0.tgz#31a18af3b9b1b33be635599b998a9829896c3fed"
- integrity sha512-iEVgue59Xs6vz9CQZtlyonW/BmVfpqWglcUyIP2rQaBpH1a2T8Iax61eXY2NjTAq5r3Xjxwk4lrA84acoAiWHw==
+postcss-discard-comments@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.1.tgz#30697735b0c476852a7a11050eb84387a67ef55d"
+ integrity sha512-Ay+rZu1Sz6g8IdzRjUgG2NafSNpp2MSMOQUb+9kkzzzP+kh07fP0yNbhtFejURnyVXSX3FYy2nVNW1QTnNjgBQ==
dependencies:
- postcss "^6.0.20"
- postcss-selector-parser "^3.1.1"
+ postcss "^7.0.0"
-postcss-extend-rule@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/postcss-extend-rule/-/postcss-extend-rule-1.1.0.tgz#11e4d590ffe4253b853ef1fc03be7167da607d38"
- integrity sha512-+NXtLOY49Xcx9173SJAYj41esTRTpihSLoKpj5yzoBki9PZK4HF37AH9AVyCeLFJL9fzhh0YFuk/3eyeZ9d/jw==
+postcss-discard-duplicates@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb"
+ integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==
dependencies:
- postcss "^6.0.11"
- postcss-nesting "^4.2.1"
+ postcss "^7.0.0"
-postcss-focus-visible@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-2.0.0.tgz#a6b9881f6710f6251790e2f151c94b161e23eeb6"
- integrity sha512-nJaq5CK2YBWB1fu1SeK0qXAk0TJncY3Ms7iwFov+J3sNetecvTeCQuSxQCf9U9T9Vjusnb3zzThBs5XwP/eb/g==
+postcss-discard-empty@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765"
+ integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==
dependencies:
- postcss "^6.0"
+ postcss "^7.0.0"
-postcss-font-family-system-ui@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/postcss-font-family-system-ui/-/postcss-font-family-system-ui-3.0.0.tgz#675fe7a9e029669f05f8dba2e44c2225ede80623"
- integrity sha512-58G/hTxMSSKlIRpcPUjlyo6hV2MEzvcVO2m4L/T7Bb2fJTG4DYYfQjQeRvuimKQh1V1sOzCIz99g+H2aFNtlQw==
+postcss-discard-overridden@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57"
+ integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==
dependencies:
- postcss "^6.0"
-
-postcss-font-variant@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-3.0.0.tgz#08ccc88f6050ba82ed8ef2cc76c0c6a6b41f183e"
- integrity sha1-CMzIj2BQuoLtjvLMdsDGprQfGD4=
- dependencies:
- postcss "^6.0.1"
-
-postcss-initial@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-2.0.0.tgz#72715f7336e0bb79351d99ee65c4a253a8441ba4"
- integrity sha1-cnFfczbgu3k1HZnuZcSiU6hEG6Q=
- dependencies:
- lodash.template "^4.2.4"
- postcss "^6.0.1"
+ postcss "^7.0.0"
postcss-load-config@^2.0.0:
version "2.0.0"
@@ -7195,70 +6962,180 @@ postcss-loader@^3.0.0:
postcss-load-config "^2.0.0"
schema-utils "^1.0.0"
-postcss-logical@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-1.1.1.tgz#bcabf0638d8aa747743b32bc52f9d90d4a3313d2"
- integrity sha512-ZJgyLJlp3uPKae9+6sJKFjD06UZzb/m3M1LPeHsaBMvvyatcNWwCfOZVIq00fJdxUqa9QeuQO6RZElKmRdWMEg==
+postcss-merge-longhand@^4.0.10:
+ version "4.0.10"
+ resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.10.tgz#c4d63ab57bdc054ab4067ab075d488c8c2978380"
+ integrity sha512-hME10s6CSjm9nlVIcO1ukR7Jr5RisTaaC1y83jWCivpuBtPohA3pZE7cGTIVSYjXvLnXozHTiVOkG4dnnl756g==
dependencies:
- postcss "^6.0.20"
+ css-color-names "0.0.4"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+ stylehacks "^4.0.0"
-postcss-media-minmax@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-3.0.0.tgz#675256037a43ef40bc4f0760bfd06d4dc69d48d2"
- integrity sha1-Z1JWA3pD70C8Twdgv9BtTcadSNI=
+postcss-merge-rules@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.2.tgz#2be44401bf19856f27f32b8b12c0df5af1b88e74"
+ integrity sha512-UiuXwCCJtQy9tAIxsnurfF0mrNHKc4NnNx6NxqmzNNjXpQwLSukUxELHTRF0Rg1pAmcoKLih8PwvZbiordchag==
dependencies:
- postcss "^6.0.1"
+ browserslist "^4.0.0"
+ caniuse-api "^3.0.0"
+ cssnano-util-same-parent "^4.0.0"
+ postcss "^7.0.0"
+ postcss-selector-parser "^3.0.0"
+ vendors "^1.0.0"
-postcss-message-helpers@^2.0.0:
+postcss-minify-font-values@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6"
+ integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==
+ dependencies:
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+postcss-minify-gradients@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.1.tgz#6da95c6e92a809f956bb76bf0c04494953e1a7dd"
+ integrity sha512-pySEW3E6Ly5mHm18rekbWiAjVi/Wj8KKt2vwSfVFAWdW6wOIekgqxKxLU7vJfb107o3FDNPkaYFCxGAJBFyogA==
+ dependencies:
+ cssnano-util-get-arguments "^4.0.0"
+ is-color-stop "^1.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+postcss-minify-params@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.1.tgz#5b2e2d0264dd645ef5d68f8fec0d4c38c1cf93d2"
+ integrity sha512-h4W0FEMEzBLxpxIVelRtMheskOKKp52ND6rJv+nBS33G1twu2tCyurYj/YtgU76+UDCvWeNs0hs8HFAWE2OUFg==
+ dependencies:
+ alphanum-sort "^1.0.0"
+ browserslist "^4.0.0"
+ cssnano-util-get-arguments "^4.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+ uniqs "^2.0.0"
+
+postcss-minify-selectors@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.1.tgz#a891c197977cc37abf60b3ea06b84248b1c1e9cd"
+ integrity sha512-8+plQkomve3G+CodLCgbhAKrb5lekAnLYuL1d7Nz+/7RANpBEVdgBkPNwljfSKvZ9xkkZTZITd04KP+zeJTJqg==
+ dependencies:
+ alphanum-sort "^1.0.0"
+ has "^1.0.0"
+ postcss "^7.0.0"
+ postcss-selector-parser "^3.0.0"
+
+postcss-modules-extract-imports@^2.0.0:
version "2.0.0"
- resolved "https://registry.yarnpkg.com/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz#a4f2f4fab6e4fe002f0aed000478cdf52f9ba60e"
- integrity sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=
-
-postcss-modules-extract-imports@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz#66140ecece38ef06bf0d3e355d69bf59d141ea85"
- integrity sha1-ZhQOzs447wa/DT41XWm/WdFB6oU=
+ resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e"
+ integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==
dependencies:
- postcss "^6.0.1"
+ postcss "^7.0.5"
-postcss-modules-local-by-default@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069"
- integrity sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=
+postcss-modules-local-by-default@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-2.0.3.tgz#6a199d596ec3ef57b8f5ced96d786b8cb16a7dec"
+ integrity sha512-jv4CQ8IQ0+TkaAIP7H4kgu/jQbrjte8xU61SYJAIOby+o3H0MGWX6eN1WXUKHccK6/EEjcAERjyIP8MXzAWAbQ==
dependencies:
css-selector-tokenizer "^0.7.0"
- postcss "^6.0.1"
+ postcss "^7.0.6"
+ postcss-value-parser "^3.3.1"
-postcss-modules-scope@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90"
- integrity sha1-1upkmUx5+XtipytCb75gVqGUu5A=
+postcss-modules-scope@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.0.1.tgz#2c0f2394cde4cd09147db054c68917e38f6d43a4"
+ integrity sha512-7+6k9c3/AuZ5c596LJx9n923A/j3nF3ormewYBF1RrIQvjvjXe1xE8V8A1KFyFwXbvnshT6FBZFX0k/F1igneg==
dependencies:
css-selector-tokenizer "^0.7.0"
- postcss "^6.0.1"
+ postcss "^7.0.6"
-postcss-modules-values@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20"
- integrity sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=
+postcss-modules-values@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-2.0.0.tgz#479b46dc0c5ca3dc7fa5270851836b9ec7152f64"
+ integrity sha512-Ki7JZa7ff1N3EIMlPnGTZfUMe69FFwiQPnVSXC9mnn3jozCRBYIxiZd44yJOV2AmabOo4qFf8s0dC/+lweG7+w==
dependencies:
icss-replace-symbols "^1.1.0"
- postcss "^6.0.1"
+ postcss "^7.0.6"
-postcss-nested@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-3.0.0.tgz#cde40bd07a078565f3df72e2dc2665871c724852"
- integrity sha512-1xxmLHSfubuUi6xZZ0zLsNoiKfk3BWQj6fkNMaBJC529wKKLcdeCxXt6KJmDLva+trNyQNwEaE/ZWMA7cve1fA==
+postcss-normalize-charset@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4"
+ integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==
dependencies:
- postcss "^6.0.14"
- postcss-selector-parser "^3.1.1"
+ postcss "^7.0.0"
-postcss-nesting@^4.2.1:
- version "4.2.1"
- resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-4.2.1.tgz#0483bce338b3f0828ced90ff530b29b98b00300d"
- integrity sha512-IkyWXICwagCnlaviRexi7qOdwPw3+xVVjgFfGsxmztvRVaNxAlrypOIKqDE5mxY+BVxnId1rnUKBRQoNE2VDaA==
+postcss-normalize-display-values@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.1.tgz#d9a83d47c716e8a980f22f632c8b0458cfb48a4c"
+ integrity sha512-R5mC4vaDdvsrku96yXP7zak+O3Mm9Y8IslUobk7IMP+u/g+lXvcN4jngmHY5zeJnrQvE13dfAg5ViU05ZFDwdg==
dependencies:
- postcss "^6.0.11"
+ cssnano-util-get-match "^4.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+postcss-normalize-positions@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.1.tgz#ee2d4b67818c961964c6be09d179894b94fd6ba1"
+ integrity sha512-GNoOaLRBM0gvH+ZRb2vKCIujzz4aclli64MBwDuYGU2EY53LwiP7MxOZGE46UGtotrSnmarPPZ69l2S/uxdaWA==
+ dependencies:
+ cssnano-util-get-arguments "^4.0.0"
+ has "^1.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+postcss-normalize-repeat-style@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.1.tgz#5293f234b94d7669a9f805495d35b82a581c50e5"
+ integrity sha512-fFHPGIjBUyUiswY2rd9rsFcC0t3oRta4wxE1h3lpwfQZwFeFjXFSiDtdJ7APCmHQOnUZnqYBADNRPKPwFAONgA==
+ dependencies:
+ cssnano-util-get-arguments "^4.0.0"
+ cssnano-util-get-match "^4.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+postcss-normalize-string@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.1.tgz#23c5030c2cc24175f66c914fa5199e2e3c10fef3"
+ integrity sha512-IJoexFTkAvAq5UZVxWXAGE0yLoNN/012v7TQh5nDo6imZJl2Fwgbhy3J2qnIoaDBrtUP0H7JrXlX1jjn2YcvCQ==
+ dependencies:
+ has "^1.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+postcss-normalize-timing-functions@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.1.tgz#8be83e0b9cb3ff2d1abddee032a49108f05f95d7"
+ integrity sha512-1nOtk7ze36+63ONWD8RCaRDYsnzorrj+Q6fxkQV+mlY5+471Qx9kspqv0O/qQNMeApg8KNrRf496zHwJ3tBZ7w==
+ dependencies:
+ cssnano-util-get-match "^4.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+postcss-normalize-unicode@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb"
+ integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==
+ dependencies:
+ browserslist "^4.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+postcss-normalize-url@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1"
+ integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==
+ dependencies:
+ is-absolute-url "^2.0.0"
+ normalize-url "^3.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+postcss-normalize-whitespace@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.1.tgz#d14cb639b61238418ac8bc8d3b7bdd65fc86575e"
+ integrity sha512-U8MBODMB2L+nStzOk6VvWWjZgi5kQNShCyjRhMT3s+W9Jw93yIjOnrEkKYD3Ul7ChWbEcjDWmXq0qOL9MIAnAw==
+ dependencies:
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
postcss-object-fit-images@^1.1.2:
version "1.1.2"
@@ -7269,111 +7146,36 @@ postcss-object-fit-images@^1.1.2:
postcss "^5.0.16"
quote "^0.4.0"
-postcss-page-break@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/postcss-page-break/-/postcss-page-break-1.0.0.tgz#09a63b6e03db092d38569b33dcba42a343ace60b"
- integrity sha512-FgjJ7q/cQFbfQFdmm15XDu+DjNb6Tcn7LYm+o1CxyHV5p6pCm0jkRhuU+PF6FaMrSTfy5nF8nuWhwOtUQyWiYA==
+postcss-ordered-values@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.1.tgz#2e3b432ef3e489b18333aeca1f1295eb89be9fc2"
+ integrity sha512-PeJiLgJWPzkVF8JuKSBcylaU+hDJ/TX3zqAMIjlghgn1JBi6QwQaDZoDIlqWRcCAI8SxKrt3FCPSRmOgKRB97Q==
dependencies:
- postcss "^6.0.16"
+ cssnano-util-get-arguments "^4.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
-postcss-preset-env@^3.2.2:
- version "3.5.0"
- resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-3.5.0.tgz#b3aae2c65e5b3fa61d735b70392fa758a665b785"
- integrity sha512-1I7ve+XzmNLJMZDORLOjSpY28t2H1qADEUcp2tQzuLBxAsbWMBUTDpSPsCKBduoqd4zWuH4bI/04W4T4hveHQw==
+postcss-reduce-initial@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.2.tgz#bac8e325d67510ee01fa460676dc8ea9e3b40f15"
+ integrity sha512-epUiC39NonKUKG+P3eAOKKZtm5OtAtQJL7Ye0CBN1f+UQTHzqotudp+hki7zxXm7tT0ZAKDMBj1uihpPjP25ug==
dependencies:
- "@csstools/postcss-image-set-function" "^1.0.0"
- browserslist "^3.2.4"
- caniuse-lite "^1.0.30000823"
- cssdb "^1.6.0"
- postcss "^6.0.21"
- postcss-apply "^0.9.0"
- postcss-attribute-case-insensitive "^2.0.0"
- postcss-color-hex-alpha "^3.0.0"
- postcss-color-mod-function "^2.4.2"
- postcss-color-rebeccapurple "^3.0.0"
- postcss-color-rgb "^2.0.0"
- postcss-custom-media "^6.0.0"
- postcss-custom-properties "^7.0.0"
- postcss-custom-selectors "^4.0.1"
- postcss-dir-pseudo-class "^3.0.0"
- postcss-focus-visible "^2.0.0"
- postcss-font-family-system-ui "^3.0.0"
- postcss-font-variant "^3.0.0"
- postcss-initial "^2.0.0"
- postcss-logical "^1.1.1"
- postcss-media-minmax "^3.0.0"
- postcss-nesting "^4.2.1"
- postcss-page-break "^1.0.0"
- postcss-pseudo-class-any-link "^4.0.0"
- postcss-replace-overflow-wrap "^2.0.0"
- postcss-selector-matches "^3.0.1"
- postcss-selector-not "^3.0.1"
+ browserslist "^4.0.0"
+ caniuse-api "^3.0.0"
+ has "^1.0.0"
+ postcss "^7.0.0"
-postcss-property-lookup@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/postcss-property-lookup/-/postcss-property-lookup-2.0.0.tgz#c995d1df42a75420f2aea834c2cbe296b2c15922"
- integrity sha512-KUb53a7UZWDMVb0SRODOonc4H1wlbgQ0VfYwmJaR1xWPorhariEz0U7x0ri3W/imFs6HqLYWP7hl2yMvi5Ty+w==
+postcss-reduce-transforms@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.1.tgz#8600d5553bdd3ad640f43bff81eb52f8760d4561"
+ integrity sha512-sZVr3QlGs0pjh6JAIe6DzWvBaqYw05V1t3d9Tp+VnFRT5j+rsqoWsysh/iSD7YNsULjq9IAylCznIwVd5oU/zA==
dependencies:
- object-assign "^4.0.1"
- postcss "^6.0.6"
- tcomb "^3.2.21"
+ cssnano-util-get-match "^4.0.0"
+ has "^1.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
-postcss-pseudo-class-any-link@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-4.0.0.tgz#9152a0613d3450720513e8892854bae42d0ee68e"
- integrity sha1-kVKgYT00UHIFE+iJKFS65C0O5o4=
- dependencies:
- postcss "^6.0.1"
- postcss-selector-parser "^2.2.3"
-
-postcss-replace-overflow-wrap@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-2.0.0.tgz#794db6faa54f8db100854392a93af45768b4e25b"
- integrity sha1-eU22+qVPjbEAhUOSqTr0V2i04ls=
- dependencies:
- postcss "^6.0.1"
-
-postcss-sass@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/postcss-sass/-/postcss-sass-0.2.0.tgz#e55516441e9526ba4b380a730d3a02e9eaa78c7a"
- integrity sha512-cUmYzkP747fPCQE6d+CH2l1L4VSyIlAzZsok3HPjb5Gzsq3jE+VjpAdGlPsnQ310WKWI42sw+ar0UNN59/f3hg==
- dependencies:
- gonzales-pe "^4.0.3"
- postcss "^6.0.6"
-
-postcss-scss@^1.0.2:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-1.0.6.tgz#ab903f3bb20161bc177896462293a53d4bff5f7a"
- integrity sha512-4EFYGHcEw+H3E06PT/pQQri06u/1VIIPjeJQaM8skB80vZuXMhp4cSNV5azmdNkontnOID/XYWEvEEELLFB1ww==
- dependencies:
- postcss "^6.0.23"
-
-postcss-selector-matches@^3.0.0, postcss-selector-matches@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/postcss-selector-matches/-/postcss-selector-matches-3.0.1.tgz#e5634011e13950881861bbdd58c2d0111ffc96ab"
- integrity sha1-5WNAEeE5UIgYYbvdWMLQER/8lqs=
- dependencies:
- balanced-match "^0.4.2"
- postcss "^6.0.1"
-
-postcss-selector-not@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-3.0.1.tgz#2e4db2f0965336c01e7cec7db6c60dff767335d9"
- integrity sha1-Lk2y8JZTNsAefOx9tsYN/3ZzNdk=
- dependencies:
- balanced-match "^0.4.2"
- postcss "^6.0.1"
-
-postcss-selector-parser@^2.2.3:
- version "2.2.3"
- resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90"
- integrity sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=
- dependencies:
- flatten "^1.0.2"
- indexes-of "^1.0.1"
- uniq "^1.0.1"
-
-postcss-selector-parser@^3.1.1:
+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=
@@ -7382,38 +7184,40 @@ postcss-selector-parser@^3.1.1:
indexes-of "^1.0.1"
uniq "^1.0.1"
-postcss-smart-import@^0.7.6:
- version "0.7.6"
- resolved "https://registry.yarnpkg.com/postcss-smart-import/-/postcss-smart-import-0.7.6.tgz#259deb84aa28f138458218ecc0e9a84c61ada6a4"
- integrity sha512-9OpXaQ1uMMHWafUh0RWIpAKa3xxUDC2yyxicUPpGffH33nzbZG4/z+nk5Ocw5gGZ+3qkXV91iDV23Cmxf2Jhew==
+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:
- babel-runtime "^6.26.0"
- lodash "^4.17.4"
- object-assign "^4.1.1"
- postcss "^6.0.14"
- postcss-sass "^0.2.0"
- postcss-scss "^1.0.2"
- postcss-value-parser "^3.3.0"
- promise-each "^2.2.0"
- read-cache "^1.0.0"
- resolve "^1.5.0"
- sugarss "^1.0.1"
-
-postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15"
- integrity sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=
-
-postcss-values-parser@^1.5.0:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-1.5.0.tgz#5d9fa63e2bcb0179ce48f3235303765eb89f3047"
- integrity sha512-3M3p+2gMp0AH3da530TlX8kiO1nxdTnc3C6vr8dMxRLIlh8UYkz0/wcwptSXjhtx2Fr0TySI7a+BHDQ8NL7LaQ==
- dependencies:
- flatten "^1.0.2"
+ cssesc "^2.0.0"
indexes-of "^1.0.1"
uniq "^1.0.1"
-postcss@^5.0.16, postcss@^5.0.5:
+postcss-svgo@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.1.tgz#5628cdb38f015de6b588ce6d0bf0724b492b581d"
+ integrity sha512-YD5uIk5NDRySy0hcI+ZJHwqemv2WiqqzDgtvgMzO8EGSkK5aONyX8HMVFRFJSdO8wUWTuisUFn/d7yRRbBr5Qw==
+ dependencies:
+ is-svg "^3.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+ svgo "^1.0.0"
+
+postcss-unique-selectors@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac"
+ integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==
+ dependencies:
+ alphanum-sort "^1.0.0"
+ postcss "^7.0.0"
+ uniqs "^2.0.0"
+
+postcss-value-parser@^3.0.0, postcss-value-parser@^3.3.0, postcss-value-parser@^3.3.1:
+ 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@^5.0.16:
version "5.2.18"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5"
integrity sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==
@@ -7423,28 +7227,19 @@ postcss@^5.0.16, postcss@^5.0.5:
source-map "^0.5.6"
supports-color "^3.2.3"
-postcss@^6, postcss@^6.0, postcss@^6.0.0, postcss@^6.0.1, postcss@^6.0.11, postcss@^6.0.14, postcss@^6.0.16, postcss@^6.0.18, postcss@^6.0.19, postcss@^6.0.20, postcss@^6.0.21, postcss@^6.0.22, postcss@^6.0.23, postcss@^6.0.6:
- version "6.0.23"
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324"
- integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==
+postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.5, postcss@^7.0.6:
+ version "7.0.7"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.7.tgz#2754d073f77acb4ef08f1235c36c5721a7201614"
+ integrity sha512-HThWSJEPkupqew2fnuQMEI2YcTj/8gMV3n80cMdJsKxfIh5tHf7nM5JigNX6LxVMqo6zkgQNAI88hyFvBk41Pg==
dependencies:
chalk "^2.4.1"
source-map "^0.6.1"
- supports-color "^5.4.0"
-
-postcss@^7.0.0:
- version "7.0.2"
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.2.tgz#7b5a109de356804e27f95a960bef0e4d5bc9bb18"
- integrity sha512-fmaUY5370keLUTx+CnwRxtGiuFTcNBLQBqr1oE3WZ/euIYmGAo0OAgOhVJ3ByDnVmOR3PK+0V9VebzfjRIUcqw==
- dependencies:
- chalk "^2.4.1"
- source-map "^0.6.1"
- supports-color "^5.4.0"
+ supports-color "^5.5.0"
postgres-array@~1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-1.0.2.tgz#8e0b32eb03bf77a5c0a7851e0441c169a256a238"
- integrity sha1-jgsy6wO/d6XAp4UeBEHBaaJWojg=
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-1.0.3.tgz#c561fc3b266b21451fc6555384f4986d78ec80f5"
+ integrity sha512-5wClXrAP0+78mcsNX3/ithQ5exKvCyK5lr5NEEEeGwwM6NJdQgzIJBVxLvRW+huFpX92F2QnZ5CcokH0VhK2qQ==
postgres-bytea@~1.0.0:
version "1.0.0"
@@ -7468,19 +7263,6 @@ precond@0.2:
resolved "https://registry.yarnpkg.com/precond/-/precond-0.2.3.tgz#aa9591bcaa24923f1e0f4849d240f47efc1075ac"
integrity sha1-qpWRvKokkj8eD0hJ0kD0fvwQdaw=
-precss@^3.1.2:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/precss/-/precss-3.1.2.tgz#c82c0aa4ca5fe1e879799d697db0fac6d15d23bc"
- integrity sha512-TAEKJjzNyKIwyDeJ3yuaTl1x0CoFw+VyycR3dO18Kl2rGU/rPNocCYH1cry1sstWwGKl3RpJhDfZ2ZdzscM0IQ==
- dependencies:
- postcss "^6.0.19"
- postcss-advanced-variables "^2.3.3"
- postcss-atroot "^0.1.3"
- postcss-extend-rule "^1.1.0"
- postcss-nested "^3.0.0"
- postcss-preset-env "^3.2.2"
- postcss-property-lookup "^2.0.0"
-
prelude-ls@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
@@ -7515,16 +7297,9 @@ process@^0.11.10:
integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI=
progress@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f"
- integrity sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=
-
-promise-each@^2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/promise-each/-/promise-each-2.2.0.tgz#3353174eff2694481037e04e01f77aa0fb6d1b60"
- integrity sha1-M1MXTv8mlEgQN+BOAfd6oPttG2A=
- dependencies:
- any-promise "^0.1.0"
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
+ integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
promise-inflight@^1.0.1:
version "1.0.1"
@@ -7554,7 +7329,7 @@ prop-types-extra@^1.0.1:
react-is "^16.3.2"
warning "^3.0.0"
-prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.5.6, prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2:
+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:
version "15.6.2"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102"
integrity sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==
@@ -7562,7 +7337,7 @@ prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.5.6, prop-types@^15.5.8,
loose-envify "^1.3.1"
object-assign "^4.1.1"
-proxy-addr@~2.0.3:
+proxy-addr@~2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.4.tgz#ecfc733bf22ff8c6f407fa275327b9ab67e48b93"
integrity sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==
@@ -7580,23 +7355,24 @@ pseudomap@^1.0.2:
resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM=
-psl@^1.1.24:
- version "1.1.29"
- resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.29.tgz#60f580d360170bb722a797cc704411e6da850c67"
- integrity sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==
+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==
public-encrypt@^4.0.0:
- version "4.0.2"
- resolved "http://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.2.tgz#46eb9107206bf73489f8b85b69d91334c6610994"
- integrity sha512-4kJ5Esocg8X3h8YgJsKAuoesBgB7mqH3eowiDzMUPKiRDDE7E/BqqZD1hnTByIaAFiwAw246YEltSq7tdrOH0Q==
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0"
+ integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==
dependencies:
bn.js "^4.1.0"
browserify-rsa "^4.0.0"
create-hash "^1.1.0"
parse-asn1 "^5.0.0"
randombytes "^2.0.1"
+ safe-buffer "^5.1.2"
-pump@^2.0.0, pump@^2.0.1:
+pump@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909"
integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==
@@ -7631,22 +7407,17 @@ punycode@^1.2.4, punycode@^1.4.1:
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
integrity sha1-wNWmOycYgArY4esPpSachN1BhF4=
-punycode@^2.1.0:
+punycode@^2.1.0, punycode@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
-qs@6.5.1:
- version "6.5.1"
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"
- integrity sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==
+q@^1.1.2:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
+ integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=
-qs@~6.4.0:
- version "6.4.0"
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233"
- integrity sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=
-
-qs@~6.5.1, qs@~6.5.2:
+qs@6.5.2, qs@~6.5.2:
version "6.5.2"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==
@@ -7662,19 +7433,19 @@ querystring@0.2.0:
integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=
querystringify@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.0.0.tgz#fa3ed6e68eb15159457c89b37bc6472833195755"
- integrity sha512-eTPo5t/4bgaMNZxyjWx6N2a6AuE0mq51KWvpc7nU/MAqixcI6v6KrGUKES0HaomdnolQBBXU/++X6/QQ9KL4tw==
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.0.tgz#7ded8dfbf7879dcc60d0a644ac6754b283ad17ef"
+ integrity sha512-sluvZZ1YiTLD5jsqZcDmFyV2EwToyXZBfpoVOmktMmW+VEnhgakFHnasVph65fOjGPTWN0Nw3+XQaSeMayr0kg==
quote@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/quote/-/quote-0.4.0.tgz#10839217f6c1362b89194044d29b233fd7f32f01"
integrity sha1-EIOSF/bBNiuJGUBE0psjP9fzLwE=
-raf@^3.1.0, raf@^3.4.0:
- version "3.4.0"
- resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.0.tgz#a28876881b4bc2ca9117d4138163ddb80f781575"
- integrity sha512-pDP/NMRAXoTfrhCfyfSEwJAKLaxBU9eApMeBPB1TkDouZmvPerIClV8lTAd+uF8ZiTaVl69e1FCxQrAd/VTjGw==
+raf@^3.1.0, raf@^3.4.0, raf@^3.4.1:
+ version "3.4.1"
+ resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39"
+ integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==
dependencies:
performance-now "^2.1.0"
@@ -7683,10 +7454,10 @@ 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.0:
- version "5.2.1"
- resolved "https://registry.yarnpkg.com/rails-ujs/-/rails-ujs-5.2.1.tgz#2869c6d54fdfefac3aaa257f4efe211d8f5a7169"
- integrity sha512-kOsSdmBATcilfMzBCYgbefQ+5eUG6BAr9rDy+GC09Cvqx0017XBVp1Xu/Ksvwr6r7fHzgNkEUpKnQoOflpNz+A==
+rails-ujs@^5.2.2:
+ version "5.2.2"
+ resolved "https://registry.yarnpkg.com/rails-ujs/-/rails-ujs-5.2.2.tgz#ab01dd087a323975637b50e93e7afcc0f9068568"
+ integrity sha512-tJl7MdysGrQEKmwF7BJkz5XwUOkdnI9E7SvSbT39yO7pdFc96D4hWKm6Sb15pU4n5mt4rLPb/6kkyTQujP1k7Q==
randexp@0.4.6:
version "0.4.6"
@@ -7697,9 +7468,9 @@ randexp@0.4.6:
ret "~0.1.10"
randomatic@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.0.tgz#36f2ca708e9e567f5ed2ec01949026d50aa10116"
- integrity sha512-KnGPVE0lo2WoXxIZ7cPR8YBpiol4gsSuOwDSg410oHh80ZMp5EiypNqL2K4Z77vJn6lB5rap7IkAmcUlalcnBQ==
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed"
+ integrity sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==
dependencies:
is-number "^4.0.0"
kind-of "^6.0.0"
@@ -7725,17 +7496,17 @@ range-parser@^1.0.3, range-parser@~1.2.0:
resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e"
integrity sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=
-raw-body@2.3.2:
- version "2.3.2"
- resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89"
- integrity sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=
+raw-body@2.3.3:
+ version "2.3.3"
+ resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.3.tgz#1b324ece6b5706e153855bc1148c65bb7f6ea0c3"
+ integrity sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==
dependencies:
bytes "3.0.0"
- http-errors "1.6.2"
- iconv-lite "0.4.19"
+ http-errors "1.6.3"
+ iconv-lite "0.4.23"
unpipe "1.0.0"
-rc@^1.1.7, rc@^1.2.7:
+rc@^1.2.7:
version "1.2.8"
resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
@@ -7745,34 +7516,35 @@ rc@^1.1.7, rc@^1.2.7:
minimist "^1.2.0"
strip-json-comments "~2.0.1"
-react-dom@^16.5.0:
- version "16.5.0"
- resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.5.0.tgz#57704e5718669374b182a17ea79a6d24922cb27d"
- integrity sha512-qgsQdjFH54pQ1AGLCBKsqjPxib4Pnp+cOsNxGPlkHn5YnsSt43sBvHSif6FheY7NMMS6HPeSJOxXf6ECanjacA==
+react-dom@^16.7.0:
+ version "16.7.0"
+ resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.7.0.tgz#a17b2a7ca89ee7390bc1ed5eb81783c7461748b8"
+ integrity sha512-D0Ufv1ExCAmF38P2Uh1lwpminZFRXEINJe53zRAbm4KPwSyd6DY/uDoS0Blj9jvPpn1+wivKpZYc8aAAN/nAkg==
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
prop-types "^15.6.2"
- schedule "^0.3.0"
+ scheduler "^0.12.0"
react-event-listener@^0.6.0:
- version "0.6.3"
- resolved "https://registry.yarnpkg.com/react-event-listener/-/react-event-listener-0.6.3.tgz#8eab88129a76e095ed8aa684c29679eded1e843d"
- integrity sha512-21ubz0vpzPL/8YPGkcDs/LFIemxMFPhpXnFKvrm15IA7x/kYzh1Bru3ww/lsZJJ0hCqyhJGjv7Txl/U00Je5SA==
+ version "0.6.5"
+ resolved "https://registry.yarnpkg.com/react-event-listener/-/react-event-listener-0.6.5.tgz#d374dbe5da485c9f9d4702f0e76971afbe9b6b2e"
+ integrity sha512-//lCxOM3DQ0+xmTa/u9mI9mm55zCPdIKp89d8MGjlNsOOnXQ5sFDD1eed+sMBzQXKiRBLBMtSg/2T9RJFtfovw==
dependencies:
- "@babel/runtime" "7.0.0-rc.1"
+ "@babel/runtime" "7.2.0"
prop-types "^15.6.0"
warning "^4.0.1"
-react-hotkeys@^0.10.0:
- version "0.10.0"
- resolved "https://registry.yarnpkg.com/react-hotkeys/-/react-hotkeys-0.10.0.tgz#d1e78bd63f16d6db58d550d33c8eb071f35d94fb"
- integrity sha1-0eeL1j8W1ttY1VDTPI6wcfNdlPs=
+react-hotkeys@^1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/react-hotkeys/-/react-hotkeys-1.1.4.tgz#a0712aa2e0c03a759fd7885808598497a4dace72"
+ integrity sha1-oHEqouDAOnWf14hYCFmEl6TaznI=
dependencies:
- create-react-class "^15.5.2"
- lodash "^4.13.1"
+ lodash.isboolean "^3.0.3"
+ lodash.isequal "^4.5.0"
+ lodash.isobject "^3.0.2"
mousetrap "^1.5.2"
- prop-types "^15.5.8"
+ prop-types "^15.6.0"
react-immutable-proptypes@^2.1.0:
version "2.1.0"
@@ -7786,6 +7558,13 @@ react-immutable-pure-component@^1.1.1:
optionalDependencies:
"@types/react" "16.4.6"
+react-input-autosize@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/react-input-autosize/-/react-input-autosize-2.2.1.tgz#ec428fa15b1592994fb5f9aa15bb1eb6baf420f8"
+ integrity sha512-3+K4CD13iE4lQQ2WlF8PuV5htfmTRLH6MDnfndHM6LuBRszuXnuyIfE7nhSKt8AzRBZ50bu0sAhkNMeS5pxQQA==
+ dependencies:
+ prop-types "^15.5.8"
+
react-intl-translations-manager@^5.0.3:
version "5.0.3"
resolved "https://registry.yarnpkg.com/react-intl-translations-manager/-/react-intl-translations-manager-5.0.3.tgz#aee010ecf35975673e033ca5d7d3f4147894324d"
@@ -7796,22 +7575,23 @@ react-intl-translations-manager@^5.0.3:
json-stable-stringify "^1.0.1"
mkdirp "^0.5.1"
-react-intl@^2.4.0:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/react-intl/-/react-intl-2.4.0.tgz#66c14dc9df9a73b2fbbfbd6021726e80a613eb15"
- integrity sha1-ZsFNyd+ac7L7v71gIXJugKYT6xU=
+react-intl@^2.7.2:
+ version "2.7.2"
+ resolved "https://registry.yarnpkg.com/react-intl/-/react-intl-2.7.2.tgz#efe97e3fc0e99b4e88a6e6150854d3d1852a4381"
+ integrity sha512-3dcNGLqEw2FKkX+1L2WYLgjP0MVJkvWuVd1uLcnwifIQe8JQvnd9Bss4hb4Gvg/YhBIRcs4LM6C2bAgyklucjw==
dependencies:
+ hoist-non-react-statics "^2.5.5"
intl-format-cache "^2.0.5"
intl-messageformat "^2.1.0"
- intl-relativeformat "^2.0.0"
+ intl-relativeformat "^2.1.0"
invariant "^2.1.1"
-react-is@^16.3.2, react-is@^16.4.2, react-is@^16.5.0:
- version "16.5.0"
- resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.5.0.tgz#2ec7c192709698591efe13722fab3ef56144ba55"
- integrity sha512-kpkCGLsChXTEQJVmowQqHpCjHKJFwB4SIChYaaaiAkq8OtE2aBg5pQe8/xnFlGmz9KmMx1H4oQRUyxP7qC9v5A==
+react-is@^16.3.2, react-is@^16.6.1, react-is@^16.6.3, react-is@^16.7.0:
+ version "16.7.0"
+ resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.7.0.tgz#c1bd21c64f1f1364c6f70695ec02d69392f41bfa"
+ integrity sha512-Z0VRQdF4NPDoI0tsXVMLkJLiwEBa+RP66g0xDHxgxysxSoCUccSten4RTF/UFvZF1dZvZ9Zu1sx+MDXwcOR34g==
-react-lifecycles-compat@^3.0.4:
+react-lifecycles-compat@^3.0.2, react-lifecycles-compat@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362"
integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==
@@ -7844,24 +7624,25 @@ react-overlays@^0.8.3:
react-transition-group "^2.2.0"
warning "^3.0.0"
-react-redux-loading-bar@^2.9.3:
- version "2.9.3"
- resolved "https://registry.yarnpkg.com/react-redux-loading-bar/-/react-redux-loading-bar-2.9.3.tgz#65865dddcbf597169e787edec15eec7ebfb84149"
- integrity sha1-ZYZd3cv1lxaeeH7ewV7sfr+4QUk=
+react-redux-loading-bar@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/react-redux-loading-bar/-/react-redux-loading-bar-4.1.0.tgz#3ca460569d979450d9d1dc992328efa449c10a7a"
+ integrity sha512-9L51ZvPqnlPs97j44FZLio6maQ/2BMP8xXFPArDWxByyLyGYs2fXpSZw+Lby9qr8Px3SsH9dylfC8HfQrmc/Mw==
dependencies:
- prop-types "^15.5.6"
+ prop-types "^15.6.2"
+ react-lifecycles-compat "^3.0.2"
-react-redux@^5.0.4:
- version "5.0.7"
- resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-5.0.7.tgz#0dc1076d9afb4670f993ffaef44b8f8c1155a4c8"
- integrity sha512-5VI8EV5hdgNgyjfmWzBbdrqUkrVRKlyTKk1sGH3jzM2M2Mhj/seQgPXaz6gVAj2lz/nz688AdTqMO18Lr24Zhg==
+react-redux@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-6.0.0.tgz#09e86eeed5febb98e9442458ad2970c8f1a173ef"
+ integrity sha512-EmbC3uLl60pw2VqSSkj6HpZ6jTk12RMrwXMBdYtM6niq0MdEaRq9KYCwpJflkOZj349BLGQm1MI/JO1W96kLWQ==
dependencies:
- hoist-non-react-statics "^2.5.0"
- invariant "^2.0.0"
- lodash "^4.17.5"
- lodash-es "^4.17.5"
- loose-envify "^1.1.0"
- prop-types "^15.6.0"
+ "@babel/runtime" "^7.2.0"
+ hoist-non-react-statics "^3.2.1"
+ invariant "^2.2.4"
+ loose-envify "^1.4.0"
+ prop-types "^15.6.2"
+ react-is "^16.6.3"
react-router-dom@^4.1.1:
version "4.3.1"
@@ -7896,6 +7677,19 @@ react-router@^4.3.1:
prop-types "^15.6.1"
warning "^4.0.1"
+react-select@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/react-select/-/react-select-2.2.0.tgz#67c8b5c2dcb8df0384f2a103efe952570f5d6b93"
+ integrity sha512-FOnsm/zrJ2pZvYsEfs58Xvru0SHL1jXAZTCFTWcOxmQSnRKgYuXUDFdpDiET90GLtJEF+t6BaZeD43bUH6/NZQ==
+ dependencies:
+ classnames "^2.2.5"
+ create-emotion "^10.0.4"
+ memoize-one "^4.0.0"
+ prop-types "^15.6.0"
+ raf "^3.4.0"
+ react-input-autosize "^2.2.1"
+ react-transition-group "^2.2.1"
+
react-sparklines@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/react-sparklines/-/react-sparklines-1.7.0.tgz#9b1d97e8c8610095eeb2ad658d2e1fcf91f91a60"
@@ -7903,53 +7697,54 @@ react-sparklines@^1.7.0:
dependencies:
prop-types "^15.5.10"
-react-swipeable-views-core@^0.12.17:
- version "0.12.17"
- resolved "https://registry.yarnpkg.com/react-swipeable-views-core/-/react-swipeable-views-core-0.12.17.tgz#0998f55fd2f8595bcd01bead1c19516dc561c1cf"
- integrity sha512-KfQ+BPfLVBe7kxb+0zbVJp3eGQfZlt1gn5J+GYAgnYoZ29GrqkTfiQFKmrG4tmVnhxvRiXFA7Q0q9EBMYTc/FA==
+react-swipeable-views-core@^0.13.0:
+ version "0.13.0"
+ resolved "https://registry.yarnpkg.com/react-swipeable-views-core/-/react-swipeable-views-core-0.13.0.tgz#6bf8a8132a756355444537672a14e84b1e3b53c2"
+ integrity sha512-MAe119eSN4obiqsIp+qoUWtLbyjz+dWEfz+qPurPvyIFoXxuxpBnsDy36+C7cBaCi5z4dRmfoMlm1dBAdIzvig==
dependencies:
"@babel/runtime" "7.0.0"
warning "^4.0.1"
-react-swipeable-views-utils@^0.12.17:
- version "0.12.17"
- resolved "https://registry.yarnpkg.com/react-swipeable-views-utils/-/react-swipeable-views-utils-0.12.17.tgz#5219faa766b683d907288cdd7b86c0a14b577b7f"
- integrity sha512-S0ERcHcTdOPz7LC/z+fDpJW1Z03b71V+MpG0RcY2mtEfsK7BJHqyIuht4KIJKApVrngxV9xWLBOYqeP7R86gWA==
+react-swipeable-views-utils@^0.13.0:
+ version "0.13.0"
+ resolved "https://registry.yarnpkg.com/react-swipeable-views-utils/-/react-swipeable-views-utils-0.13.0.tgz#0ea17aa67f88a69d534c79d591f8d82ef98346a4"
+ integrity sha512-1I4BhDqA6qkRdW0nexnudh/QdvVAVy0a7M5OyU2TrjaTovg6ufBouzqfqjZfUZUxVdOftTkPtisHmcqqZ+b1TA==
dependencies:
"@babel/runtime" "7.0.0"
fbjs "^0.8.4"
keycode "^2.1.7"
prop-types "^15.6.0"
react-event-listener "^0.6.0"
- react-swipeable-views-core "^0.12.17"
+ react-swipeable-views-core "^0.13.0"
-react-swipeable-views@^0.12.17:
- version "0.12.17"
- resolved "https://registry.yarnpkg.com/react-swipeable-views/-/react-swipeable-views-0.12.17.tgz#4d6a9bf4b667ce7b7aac3112d696598b94a1cf30"
- integrity sha512-+egPdA4vqe1h4a9OIFWHKZER9aMPVrggiZ7PtXRyovsuLCDsoiIgGjNujuEOKVEskNjN1LHtQjQsPWinT7UD6A==
+react-swipeable-views@^0.13.0:
+ version "0.13.0"
+ resolved "https://registry.yarnpkg.com/react-swipeable-views/-/react-swipeable-views-0.13.0.tgz#a200cef1005d55af6a27b97048afe9a4056e0ab8"
+ integrity sha512-r6H8lbtcI99oKykpLxYrI6O9im1lJ4D5/hf8bkNeQLdHZ9ftxS03qgEtguy3GpT5VB9yS4gErYWeaTrhCrysEg==
dependencies:
"@babel/runtime" "7.0.0"
dom-helpers "^3.2.1"
prop-types "^15.5.4"
- react-swipeable-views-core "^0.12.17"
- react-swipeable-views-utils "^0.12.17"
+ react-swipeable-views-core "^0.13.0"
+ react-swipeable-views-utils "^0.13.0"
warning "^4.0.1"
-react-test-renderer@^16.0.0-0, react-test-renderer@^16.5.0:
- version "16.5.0"
- resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.5.0.tgz#1aeca0edc4f27f63265dcaed80ba82e11e762f56"
- integrity sha512-cuN9BoZ1p6T3oxrjxN7pQDSmgWzAxWBi8gtCHcViMYcw/1xqOIyatt2YFhiCWg7115TPQqkTKEu+F44YjFE4ig==
+react-test-renderer@^16.0.0-0, react-test-renderer@^16.7.0:
+ version "16.7.0"
+ resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.7.0.tgz#1ca96c2b450ab47c36ba92cd8c03fcefc52ea01c"
+ integrity sha512-tFbhSjknSQ6+ttzmuGdv+SjQfmvGcq3PFKyPItohwhhOBmRoTf1We3Mlt3rJtIn85mjPXOkKV+TaKK4irvk9Yg==
dependencies:
object-assign "^4.1.1"
prop-types "^15.6.2"
- react-is "^16.5.0"
- schedule "^0.3.0"
+ react-is "^16.7.0"
+ scheduler "^0.12.0"
-react-textarea-autosize@^5.2.1:
- version "5.2.1"
- resolved "https://registry.yarnpkg.com/react-textarea-autosize/-/react-textarea-autosize-5.2.1.tgz#2b78f9067180f41b08ac59f78f1581abadd61e54"
- integrity sha512-bx6z2I35aapr71ggw2yZIA4qhmqeTa4ZVsSaTeFvtf9kfcZppDBh2PbMt8lvbdmzEk7qbSFhAxR9vxEVm6oiMg==
+react-textarea-autosize@^7.1.0:
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/react-textarea-autosize/-/react-textarea-autosize-7.1.0.tgz#3132cb77e65d94417558d37c0bfe415a5afd3445"
+ integrity sha512-c2FlR/fP0qbxmlrW96SdrbgP/v0XZMTupqB90zybvmDVDutytUgPl7beU35klwcTeMepUIQEpQUn3P3bdshGPg==
dependencies:
+ "@babel/runtime" "^7.1.2"
prop-types "^15.6.0"
react-toggle@^4.0.1:
@@ -7959,32 +7754,25 @@ react-toggle@^4.0.1:
dependencies:
classnames "^2.2.5"
-react-transition-group@^2.2.0:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-2.4.0.tgz#1d9391fabfd82e016f26fabd1eec329dbd922b5a"
- integrity sha512-Xv5d55NkJUxUzLCImGSanK8Cl/30sgpOEMGc5m86t8+kZwrPxPCPcFqyx83kkr+5Lz5gs6djuvE5By+gce+VjA==
+react-transition-group@^2.2.0, react-transition-group@^2.2.1:
+ version "2.5.2"
+ resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-2.5.2.tgz#9457166a9ba6ce697a3e1b076b3c049b9fb2c408"
+ integrity sha512-vwHP++S+f6KL7rg8V1mfs62+MBKtbMeZDR8KiNmD7v98Gs3UPGsDZDahPJH2PVprFW5YHJfh6cbNim3zPndaSQ==
dependencies:
dom-helpers "^3.3.1"
- loose-envify "^1.3.1"
+ loose-envify "^1.4.0"
prop-types "^15.6.2"
react-lifecycles-compat "^3.0.4"
-react@^16.5.0:
- version "16.5.0"
- resolved "https://registry.yarnpkg.com/react/-/react-16.5.0.tgz#f2c1e754bf9751a549d9c6d9aca41905beb56575"
- integrity sha512-nw/yB/L51kA9PsAy17T1JrzzGRk+BlFCJwFF7p+pwVxgqwPjYNeZEkkH7LXn9dmflolrYMXLWMTkQ77suKPTNQ==
+react@^16.7.0:
+ version "16.7.0"
+ resolved "https://registry.yarnpkg.com/react/-/react-16.7.0.tgz#b674ec396b0a5715873b350446f7ea0802ab6381"
+ integrity sha512-StCz3QY8lxTb5cl2HJxjwLFOXPIFQp+p+hxQfc8WE0QiLfCtIlKj8/+5tjjKm8uSTlAW+fCPaavGFS06V9Ar3A==
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
prop-types "^15.6.2"
- schedule "^0.3.0"
-
-read-cache@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774"
- integrity sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=
- dependencies:
- pify "^2.3.0"
+ scheduler "^0.12.0"
read-pkg-up@^1.0.1:
version "1.0.1"
@@ -8020,9 +7808,9 @@ read-pkg@^2.0.0:
normalize-package-data "^2.3.2"
path-type "^2.0.0"
-"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.3, readable-stream@^2.3.6:
+"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, 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 "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==
dependencies:
core-util-is "~1.0.0"
@@ -8033,15 +7821,23 @@ read-pkg@^2.0.0:
string_decoder "~1.1.1"
util-deprecate "~1.0.1"
-readdirp@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78"
- integrity sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=
+readable-stream@^3.0.6:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.1.1.tgz#ed6bbc6c5ba58b090039ff18ce670515795aeb06"
+ integrity sha512-DkN66hPyqDhnIQ6Jcsvx9bFjhw214O4poMBcIMgPVpQvNy9a0e0Uhg5SqySyDKAmUlwt8LonTBz1ezOnM8pUdA==
dependencies:
- graceful-fs "^4.1.2"
- minimatch "^3.0.2"
+ inherits "^2.0.3"
+ string_decoder "^1.1.1"
+ util-deprecate "^1.0.1"
+
+readdirp@^2.0.0:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525"
+ integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==
+ dependencies:
+ graceful-fs "^4.1.11"
+ micromatch "^3.1.10"
readable-stream "^2.0.2"
- set-immediate-shim "^1.0.1"
realpath-native@^1.0.0:
version "1.0.2"
@@ -8050,18 +7846,10 @@ realpath-native@^1.0.0:
dependencies:
util.promisify "^1.0.0"
-redent@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde"
- integrity sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=
- dependencies:
- indent-string "^2.1.0"
- strip-indent "^1.0.1"
-
redis-commands@^1.2.0:
- version "1.3.5"
- resolved "https://registry.yarnpkg.com/redis-commands/-/redis-commands-1.3.5.tgz#4495889414f1e886261180b1442e7295602d83a2"
- integrity sha512-foGF8u6MXGFF++1TZVC6icGXuMYPftKXt1FBT2vrfU9ZATNtZJ8duRC5d1lEfE8hyVe3jhelHGB91oB7I6qLsA==
+ 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"
@@ -8087,15 +7875,13 @@ redux-thunk@^2.2.0:
resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.3.0.tgz#51c2c19a185ed5187aaa9a2d08b666d0d6467622"
integrity sha512-km6dclyFnmcvxhAcrQV2AkZmPQjzPDjgVlQtR0EQjxZPyJ0BnMf3in1ryuR8A2qU0HldVRfxYXbFSKlI3N7Slw==
-redux@^3.7.1:
- version "3.7.2"
- resolved "https://registry.yarnpkg.com/redux/-/redux-3.7.2.tgz#06b73123215901d25d065be342eb026bc1c8537b"
- integrity sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==
+redux@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/redux/-/redux-4.0.1.tgz#436cae6cc40fbe4727689d7c8fae44808f1bfef5"
+ integrity sha512-R7bAtSkk7nY6O/OYMVR9RiBI+XghjF9rlbl5806HJbQph0LJVHZrU5oaO4q70eUKiqMRqm4y07KLTlMZ2BlVmg==
dependencies:
- lodash "^4.2.1"
- lodash-es "^4.2.1"
- loose-envify "^1.1.0"
- symbol-observable "^1.0.3"
+ loose-envify "^1.4.0"
+ symbol-observable "^1.2.0"
regenerate-unicode-properties@^7.0.0:
version "7.0.0"
@@ -8141,10 +7927,10 @@ regex-not@^1.0.0, regex-not@^1.0.2:
extend-shallow "^3.0.2"
safe-regex "^1.1.0"
-regexpp@^1.0.1:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-1.1.0.tgz#0e3516dd0b7904f413d2d4193dce4618c3a689ab"
- integrity sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==
+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@^1.0.0:
version "1.0.0"
@@ -8156,14 +7942,14 @@ regexpu-core@^1.0.0:
regjsparser "^0.1.4"
regexpu-core@^4.1.3, regexpu-core@^4.2.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.2.0.tgz#a3744fa03806cffe146dea4421a3e73bdcc47b1d"
- integrity sha512-Z835VSnJJ46CNBttalHD/dB+Sj2ezmY6Xp38npwU87peK6mqOzOpV8eYktdkLTEkzzD+JsTcxd84ozd8I14+rw==
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.4.0.tgz#8d43e0d1266883969720345e70c275ee0aec0d32"
+ integrity sha512-eDDWElbwwI3K0Lo6CqbQbA6FwgtCz4kYTarrri1okfkRLZAqstU+B3voZBCjg8Fl6iq0gXrJG6MvRgLthfvgOA==
dependencies:
regenerate "^1.4.0"
regenerate-unicode-properties "^7.0.0"
- regjsgen "^0.4.0"
- regjsparser "^0.3.0"
+ regjsgen "^0.5.0"
+ regjsparser "^0.6.0"
unicode-match-property-ecmascript "^1.0.4"
unicode-match-property-value-ecmascript "^1.0.2"
@@ -8172,10 +7958,10 @@ regjsgen@^0.2.0:
resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7"
integrity sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=
-regjsgen@^0.4.0:
- version "0.4.0"
- resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.4.0.tgz#c1eb4c89a209263f8717c782591523913ede2561"
- integrity sha512-X51Lte1gCYUdlwhF28+2YMO0U6WeN0GLpgpA7LK7mbdDnkQYiwvEpmpe0F/cv5L14EbxgrdayAG3JETBv0dbXA==
+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==
regjsparser@^0.1.4:
version "0.1.5"
@@ -8184,17 +7970,17 @@ regjsparser@^0.1.4:
dependencies:
jsesc "~0.5.0"
-regjsparser@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.3.0.tgz#3c326da7fcfd69fa0d332575a41c8c0cdf588c96"
- integrity sha512-zza72oZBBHzt64G7DxdqrOo/30bhHkwMUoT0WqfGu98XLd7N+1tsy5MJ96Bk4MD0y74n629RhmrGW6XlnLLwCA==
+regjsparser@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c"
+ integrity sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==
dependencies:
jsesc "~0.5.0"
-rellax@^1.6.2:
- version "1.6.2"
- resolved "https://registry.yarnpkg.com/rellax/-/rellax-1.6.2.tgz#b22c8715f56324fa8b396465d3dca9953b711f30"
- integrity sha512-JVHA7Stzxfc9XB7HTLfl9SgbFSKKdAMYUOkRlijaK7XGiYZ28L7gmXOVLRTN6z2F9v/ybWyMf3er0mlkaNJtmA==
+rellax@^1.7.1:
+ version "1.7.1"
+ resolved "https://registry.yarnpkg.com/rellax/-/rellax-1.7.1.tgz#2f82aaa1c1d8116eef08fc533c59655a097c8be2"
+ integrity sha512-z31r9RjKeK5wJU5C6hKBupreKQ7xi+lQHda6ttlc0N1VEyL2ZCPMyckTtvliGRsxqTPqhdCasdhexs8N5aZ4+A==
remove-trailing-separator@^1.0.1:
version "1.1.0"
@@ -8234,60 +8020,6 @@ request-promise-native@^1.0.5:
stealthy-require "^1.1.0"
tough-cookie ">=2.3.3"
-request@2.81.0:
- version "2.81.0"
- resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0"
- integrity sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=
- dependencies:
- aws-sign2 "~0.6.0"
- aws4 "^1.2.1"
- caseless "~0.12.0"
- combined-stream "~1.0.5"
- extend "~3.0.0"
- forever-agent "~0.6.1"
- form-data "~2.1.1"
- har-validator "~4.2.1"
- hawk "~3.1.3"
- http-signature "~1.1.0"
- is-typedarray "~1.0.0"
- isstream "~0.1.2"
- json-stringify-safe "~5.0.1"
- mime-types "~2.1.7"
- oauth-sign "~0.8.1"
- performance-now "^0.2.0"
- qs "~6.4.0"
- safe-buffer "^5.0.1"
- stringstream "~0.0.4"
- tough-cookie "~2.3.0"
- tunnel-agent "^0.6.0"
- uuid "^3.0.0"
-
-request@2.87.0:
- version "2.87.0"
- resolved "https://registry.yarnpkg.com/request/-/request-2.87.0.tgz#32f00235cd08d482b4d0d68db93a829c0ed5756e"
- integrity sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==
- dependencies:
- aws-sign2 "~0.7.0"
- aws4 "^1.6.0"
- caseless "~0.12.0"
- combined-stream "~1.0.5"
- extend "~3.0.1"
- forever-agent "~0.6.1"
- form-data "~2.3.1"
- har-validator "~5.0.3"
- http-signature "~1.2.0"
- is-typedarray "~1.0.0"
- isstream "~0.1.2"
- json-stringify-safe "~5.0.1"
- mime-types "~2.1.17"
- oauth-sign "~0.8.2"
- performance-now "^2.1.0"
- qs "~6.5.1"
- safe-buffer "^5.1.1"
- tough-cookie "~2.3.3"
- tunnel-agent "^0.6.0"
- uuid "^3.1.0"
-
request@^2.87.0:
version "2.88.0"
resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef"
@@ -8316,7 +8048,7 @@ request@^2.87.0:
requestidlecallback@^0.3.0:
version "0.3.0"
- resolved "http://registry.npmjs.org/requestidlecallback/-/requestidlecallback-0.3.0.tgz#6fb74e0733f90df3faa4838f9f6a2a5f9b742ac5"
+ resolved "https://registry.yarnpkg.com/requestidlecallback/-/requestidlecallback-0.3.0.tgz#6fb74e0733f90df3faa4838f9f6a2a5f9b742ac5"
integrity sha1-b7dOBzP5DfP6pIOPn2oqX5t0KsU=
require-directory@^2.1.1:
@@ -8352,10 +8084,10 @@ requires-port@^1.0.0:
resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=
-reselect@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/reselect/-/reselect-3.0.1.tgz#efdaa98ea7451324d092b2b2163a6a1d7a9a2147"
- integrity sha1-79qpjqdFEyTQkrKyFjpqHXqaIUc=
+reselect@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/reselect/-/reselect-4.0.0.tgz#f2529830e5d3d0e021408b246a206ef4ea4437f7"
+ integrity sha512-qUgANli03jjAyGlnbYVAV5vvnOmJnODyABz51RdBN7M4WaVu8mecZWgyQNkG8Yqe3KRGRt0l4K4B3XVEULC4CA==
resolve-cwd@^2.0.0:
version "2.0.0"
@@ -8389,12 +8121,12 @@ resolve@1.1.7:
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=
-resolve@^1.3.2, resolve@^1.5.0, resolve@^1.6.0, resolve@^1.8.1:
- version "1.8.1"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26"
- integrity sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==
+resolve@^1.3.2, resolve@^1.5.0, resolve@^1.6.0, resolve@^1.8.1, resolve@^1.9.0:
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.9.0.tgz#a14c6fdfa8f92a7df1d996cb7105fa744658ea06"
+ integrity sha512-TZNye00tI67lwYvzxCxHGjwTNlUV70io54/Ed4j6PscB8xVfuBJpRenI/o6dVk0cY0PYTY27AgCoGGxRnYuItQ==
dependencies:
- path-parse "^1.0.5"
+ path-parse "^1.0.6"
restore-cursor@^2.0.0:
version "2.0.0"
@@ -8409,7 +8141,17 @@ ret@~0.1.10:
resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==
-rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2:
+rgb-regex@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1"
+ integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE=
+
+rgba-regex@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3"
+ integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=
+
+rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@~2.6.2:
version "2.6.2"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"
integrity sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==
@@ -8451,30 +8193,13 @@ run-queue@^1.0.0, run-queue@^1.0.3:
dependencies:
aproba "^1.1.1"
-rx-lite-aggregates@^4.0.8:
- version "4.0.8"
- resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be"
- integrity sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=
- dependencies:
- rx-lite "*"
-
-rx-lite@*, rx-lite@^4.0.8:
- version "4.0.8"
- resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444"
- integrity sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=
-
rxjs@^6.1.0:
- version "6.3.2"
- resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.3.2.tgz#6a688b16c4e6e980e62ea805ec30648e1c60907f"
- integrity sha512-hV7criqbR0pe7EeL3O66UYVg92IR0XsA97+9y+BWTePK9SKmEI5Qd3Zj6uPnGkNzXsBywBQWTvujPl+1Kn9Zjw==
+ version "6.3.3"
+ resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.3.3.tgz#3c6a7fa420e844a81390fb1158a9ec614f4bad55"
+ integrity sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==
dependencies:
tslib "^1.9.0"
-safe-buffer@5.1.1:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
- integrity sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==
-
safe-buffer@5.1.2, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
version "5.1.2"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
@@ -8508,16 +8233,6 @@ sane@^2.0.0:
optionalDependencies:
fsevents "^1.2.3"
-sass-graph@^2.2.4:
- version "2.2.4"
- resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.4.tgz#13fbd63cd1caf0908b9fd93476ad43a51d1e0b49"
- integrity sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=
- dependencies:
- glob "^7.0.0"
- lodash "^4.0.0"
- scss-tokenizer "^0.2.3"
- yargs "^7.0.0"
-
sass-loader@^7.0.3:
version "7.1.0"
resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-7.1.0.tgz#16fd5138cb8b424bf8a759528a1972d72aad069d"
@@ -8530,19 +8245,27 @@ sass-loader@^7.0.3:
pify "^3.0.0"
semver "^5.5.0"
-sax@^1.2.4:
+sass@^1.15.2:
+ version "1.15.2"
+ resolved "https://registry.yarnpkg.com/sass/-/sass-1.15.2.tgz#539f464a61e29a9e4f560ec9dc2ccc5236db8474"
+ integrity sha512-YFncPpx3ewKEhMg9sWdCxKUpPN/jwVLa0Q9iO2tcV5Y5Z/YAlFV6k6JaQwq3tmbN6FXKjUYElXRHcG0g4D1zkQ==
+ dependencies:
+ chokidar "^2.0.0"
+
+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==
-schedule@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/schedule/-/schedule-0.3.0.tgz#1be2ab2fc2e768536269ce7326efb478d6c045e8"
- integrity sha512-20+1KVo517sR7Nt+bYBN8a+bEJDKLPEx7Ohtts1kX05E4/HY53YUNuhfkVNItmWAnBYHcpG9vsd2/CJxG+aPCQ==
+scheduler@^0.12.0:
+ version "0.12.0"
+ resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.12.0.tgz#8ab17699939c0aedc5a196a657743c496538647b"
+ integrity sha512-t7MBR28Akcp4Jm+QoR63XgAi9YgCUmgvDHqf5otgAj4QvdoBE4ImCX0ffehefePPG+aitiYHp0g/mW6s4Tp+dw==
dependencies:
+ loose-envify "^1.1.0"
object-assign "^4.1.1"
-schema-utils@^0.4.4, schema-utils@^0.4.5:
+schema-utils@^0.4.4:
version "0.4.7"
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187"
integrity sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==
@@ -8567,41 +8290,28 @@ scroll-behavior@^0.9.1:
dom-helpers "^3.2.1"
invariant "^2.2.2"
-scss-tokenizer@^0.2.3:
- version "0.2.3"
- resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1"
- integrity sha1-jrBtualyMzOCTT9VMGQRSYR85dE=
- dependencies:
- js-base64 "^2.1.8"
- source-map "^0.4.2"
-
select-hose@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca"
integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=
selfsigned@^1.9.1:
- version "1.10.3"
- resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.3.tgz#d628ecf9e3735f84e8bafba936b3cf85bea43823"
- integrity sha512-vmZenZ+8Al3NLHkWnhBQ0x6BkML1eCP2xEi3JE+f3D9wW9fipD9NNJHYtE9XJM4TsPaHGZJIamrSI6MTg1dU2Q==
+ version "1.10.4"
+ resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.4.tgz#cdd7eccfca4ed7635d47a08bf2d5d3074092e2cd"
+ integrity sha512-9AukTiDmHXGXWtWjembZ5NDmVvP2695EtpgbCsxCa68w3c88B+alqbmZ4O3hZ4VWGXeGWzEVdvqgAJD8DQPCDw==
dependencies:
node-forge "0.7.5"
-"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0:
- version "5.5.1"
- resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.1.tgz#7dfdd8814bdb7cabc7be0fb1d734cfb66c940477"
- integrity sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==
+"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:
+ version "5.6.0"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004"
+ integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==
semver@4.3.2:
version "4.3.2"
resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.2.tgz#c7a07158a80bedd052355b770d82d6640f803be7"
integrity sha1-x6BxWKgL7dBSNVt3DYLWZA+AO+c=
-semver@~5.3.0:
- version "5.3.0"
- resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
- integrity sha1-myzl094C0XxgEq0yaqa00M9U+U8=
-
send@0.16.2:
version "0.16.2"
resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1"
@@ -8622,9 +8332,9 @@ send@0.16.2:
statuses "~1.4.0"
serialize-javascript@^1.4.0:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.5.0.tgz#1aa336162c88a890ddad5384baebc93a655161fe"
- integrity sha512-Ga8c8NjAAp46Br4+0oZ2WxJCwIzwP60Gq1YPgU+39PiTVxyed/iKE/zyZI6+UlVYH5Q4PaQdHhcegIFPZTUfoQ==
+ version "1.6.1"
+ resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.6.1.tgz#4d1f697ec49429a847ca6f442a2a755126c4d879"
+ integrity sha512-A5MOagrPFga4YaKQSWHryl7AXvbQkEqpw4NNYMTNYUNV51bA8ABHgYFpqKx+YFFrw59xMV1qGH1R4AgoNIVgCw==
serve-index@^1.7.2:
version "1.9.1"
@@ -8654,11 +8364,6 @@ set-blocking@^2.0.0, set-blocking@~2.0.0:
resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
-set-immediate-shim@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61"
- integrity sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=
-
set-value@^0.4.3:
version "0.4.3"
resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1"
@@ -8684,11 +8389,6 @@ setimmediate@^1.0.4, setimmediate@^1.0.5:
resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=
-setprototypeof@1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04"
- integrity sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=
-
setprototypeof@1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656"
@@ -8696,7 +8396,7 @@ setprototypeof@1.1.0:
sha.js@^2.4.0, sha.js@^2.4.8:
version "2.4.11"
- resolved "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7"
+ resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7"
integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==
dependencies:
inherits "^2.0.1"
@@ -8750,11 +8450,13 @@ slash@^1.0.0:
resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=
-slice-ansi@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d"
- integrity sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==
+slice-ansi@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.0.0.tgz#5373bdb8559b45676e8541c66916cdd6251612e7"
+ integrity sha512-4j2WTWjp3GsZ+AOagyzVbzp4vWGtZ0hEZ/gDY/uTvm6MTxUfTUIsnMIFb1bn8o0RuXiqUw15H1bue8f22Vw2oQ==
dependencies:
+ ansi-styles "^3.2.0"
+ astral-regex "^1.0.0"
is-fullwidth-code-point "^2.0.0"
snapdragon-node@^2.0.1:
@@ -8787,24 +8489,17 @@ snapdragon@^0.8.1:
source-map-resolve "^0.5.0"
use "^3.1.0"
-sntp@1.x.x:
- version "1.0.9"
- resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198"
- integrity sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=
+sockjs-client@1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.3.0.tgz#12fc9d6cb663da5739d3dc5fb6e8687da95cb177"
+ integrity sha512-R9jxEzhnnrdxLCNln0xg5uGHqMnkhPSTzUZH2eXcR03S/On9Yvoq2wyUZILRUhZCNVu2PmwWVoyuiPz8th8zbg==
dependencies:
- hoek "2.x.x"
-
-sockjs-client@1.1.5:
- version "1.1.5"
- resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.5.tgz#1bb7c0f7222c40f42adf14f4442cbd1269771a83"
- integrity sha1-G7fA9yIsQPQq3xT0RCy9Eml3GoM=
- dependencies:
- debug "^2.6.6"
- eventsource "0.1.6"
- faye-websocket "~0.11.0"
- inherits "^2.0.1"
+ debug "^3.2.5"
+ eventsource "^1.0.7"
+ faye-websocket "~0.11.1"
+ inherits "^2.0.3"
json3 "^3.3.2"
- url-parse "^1.1.8"
+ url-parse "^1.4.3"
sockjs@0.3.19:
version "0.3.19"
@@ -8815,9 +8510,9 @@ sockjs@0.3.19:
uuid "^3.0.1"
source-list-map@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085"
- integrity sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34"
+ integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==
source-map-resolve@^0.5.0:
version "0.5.2"
@@ -8837,7 +8532,7 @@ source-map-support@^0.4.15:
dependencies:
source-map "^0.5.6"
-source-map-support@^0.5.6:
+source-map-support@^0.5.6, 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==
@@ -8850,13 +8545,6 @@ source-map-url@^0.4.0:
resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3"
integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=
-source-map@^0.4.2:
- version "0.4.4"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b"
- integrity sha1-66T12pwNyZneaAMti092FzZSA2s=
- dependencies:
- amdefine ">=0.0.4"
-
source-map@^0.5.0, source-map@^0.5.3, 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"
@@ -8868,17 +8556,17 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1:
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
spdx-correct@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82"
- integrity sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4"
+ integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==
dependencies:
spdx-expression-parse "^3.0.0"
spdx-license-ids "^3.0.0"
spdx-exceptions@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9"
- integrity sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977"
+ integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==
spdx-expression-parse@^3.0.0:
version "3.0.0"
@@ -8889,34 +8577,32 @@ spdx-expression-parse@^3.0.0:
spdx-license-ids "^3.0.0"
spdx-license-ids@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.1.tgz#e2a303236cac54b04031fa7a5a79c7e701df852f"
- integrity sha512-TfOfPcYGBB5sDuPn3deByxPhmfegAhpDYKSOXZQN81Oyrrif8ZCodOLzK3AesELnCx03kikhyDwh0pfvvQvF8w==
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.3.tgz#81c0ce8f21474756148bbb5f3bfc0f36bf15d76e"
+ integrity sha512-uBIcIl3Ih6Phe3XHK1NqboJLdGfwr1UN3k6wSD1dZpmPsIkb8AGNbZYJ1fOBk834+Gxy8rpfDxrS6XLEMZMY2g==
-spdy-transport@^2.0.18:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-2.1.0.tgz#4bbb15aaffed0beefdd56ad61dbdc8ba3e2cb7a1"
- integrity sha512-bpUeGpZcmZ692rrTiqf9/2EUakI6/kXX1Rpe0ib/DyOzbiexVfXkw6GnvI9hVGvIwVaUhkaBojjCZwLNRGQg1g==
+spdy-transport@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31"
+ integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==
dependencies:
- debug "^2.6.8"
- detect-node "^2.0.3"
+ debug "^4.1.0"
+ detect-node "^2.0.4"
hpack.js "^2.1.6"
- obuf "^1.1.1"
- readable-stream "^2.2.9"
- safe-buffer "^5.0.1"
- wbuf "^1.7.2"
+ obuf "^1.1.2"
+ readable-stream "^3.0.6"
+ wbuf "^1.7.3"
-spdy@^3.4.1:
- version "3.4.7"
- resolved "https://registry.yarnpkg.com/spdy/-/spdy-3.4.7.tgz#42ff41ece5cc0f99a3a6c28aabb73f5c3b03acbc"
- integrity sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=
+spdy@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.0.tgz#81f222b5a743a329aa12cea6a390e60e9b613c52"
+ integrity sha512-ot0oEGT/PGUpzf/6uk4AWLqkq+irlqHXkrdbk51oWONh3bxQmBuljxPNl66zlRRcIJStWq0QkLUCPOPjgjvU0Q==
dependencies:
- debug "^2.6.8"
- handle-thing "^1.2.5"
+ debug "^4.1.0"
+ handle-thing "^2.0.0"
http-deceiver "^1.2.7"
- safe-buffer "^5.0.1"
select-hose "^2.0.0"
- spdy-transport "^2.0.18"
+ spdy-transport "^3.0.0"
split-string@^3.0.1, split-string@^3.0.2:
version "3.1.0"
@@ -8938,39 +8624,36 @@ sprintf-js@~1.0.2:
integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
sshpk@^1.7.0:
- version "1.14.2"
- resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.2.tgz#c6fc61648a3d9c4e764fd3fcdf4ea105e492ba98"
- integrity sha1-xvxhZIo9nE52T9P8306hBeSSupg=
+ 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==
dependencies:
asn1 "~0.2.3"
assert-plus "^1.0.0"
- dashdash "^1.12.0"
- getpass "^0.1.1"
- safer-buffer "^2.0.2"
- optionalDependencies:
bcrypt-pbkdf "^1.0.0"
+ dashdash "^1.12.0"
ecc-jsbn "~0.1.1"
+ getpass "^0.1.1"
jsbn "~0.1.0"
+ safer-buffer "^2.0.2"
tweetnacl "~0.14.0"
-ssri@^5.2.4:
- version "5.3.0"
- resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06"
- integrity sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==
- dependencies:
- safe-buffer "^5.1.1"
-
-ssri@^6.0.0:
+ssri@^6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8"
integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==
dependencies:
figgy-pudding "^3.5.1"
+stable@~0.1.6:
+ version "0.1.8"
+ resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf"
+ integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==
+
stack-utils@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.1.tgz#d4f33ab54e8e38778b0ca5cfd3b3afb12db68620"
- integrity sha1-1PM6tU6OOHeLDKXP07OvsS22hiA=
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.2.tgz#33eba3897788558bebfc2db059dc158ec36cebb8"
+ integrity sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA==
static-extend@^0.1.1:
version "0.1.2"
@@ -8980,7 +8663,7 @@ static-extend@^0.1.1:
define-property "^0.2.5"
object-copy "^0.1.0"
-"statuses@>= 1.3.1 < 2", "statuses@>= 1.4.0 < 2":
+"statuses@>= 1.4.0 < 2":
version "1.5.0"
resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
@@ -8990,13 +8673,6 @@ statuses@~1.4.0:
resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087"
integrity sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==
-stdout-stream@^1.4.0:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.1.tgz#5ac174cdd5cd726104aa0c0b2bd83815d8d535de"
- integrity sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==
- dependencies:
- readable-stream "^2.0.1"
-
stealthy-require@^1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b"
@@ -9042,7 +8718,7 @@ string-length@^2.0.0:
astral-regex "^1.0.0"
strip-ansi "^4.0.0"
-string-width@^1.0.1, string-width@^1.0.2:
+string-width@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=
@@ -9068,22 +8744,26 @@ string.prototype.trim@^1.1.2:
es-abstract "^1.5.0"
function-bind "^1.0.2"
-string_decoder@^1.0.0, string_decoder@~1.1.1:
+string_decoder@^1.0.0, string_decoder@^1.1.1:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d"
+ integrity sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w==
+ dependencies:
+ safe-buffer "~5.1.0"
+
+string_decoder@~1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
dependencies:
safe-buffer "~5.1.0"
-stringstream@~0.0.4:
- version "0.0.6"
- resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.6.tgz#7880225b0d4ad10e30927d167a1d6f2fd3b33a72"
- integrity sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA==
-
-stringz@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/stringz/-/stringz-0.3.0.tgz#58a311a8c791eee1a68f5f188b3db5e66ff49360"
- integrity sha512-sQmNkR3Pv3ZtJzR6heG+VxxW5ESgQJDPyrE7xmprY+0dRJYjWFG9/FghHQL6JQoWqN9Vueabu4c5W/jbzPU3HA==
+stringz@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/stringz/-/stringz-1.0.0.tgz#d2acba994e4ce3c725ee15c86fff4281280d2025"
+ integrity sha512-oaqFaIAmw1MJmdPNiBqocHHrC0VzJTL3CI1z5uXm3NQSE3AyDU152ZPTSJSOKk+9z1Cm3LZzgLFjCTb8SXZvag==
+ dependencies:
+ unicode-astral-regex "^1.0.1"
strip-ansi@^3.0.0, strip-ansi@^3.0.1:
version "3.0.1"
@@ -9099,6 +8779,13 @@ strip-ansi@^4.0.0:
dependencies:
ansi-regex "^3.0.0"
+strip-ansi@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.0.0.tgz#f78f68b5d0866c20b2c9b8c61b5298508dc8756f"
+ integrity sha512-Uu7gQyZI7J7gn5qLn1Np3G9vcYGTVqB+lFTytnDJv83dd8T22aGH451P3jueT2/QemInJDfxHB5Tde5OzgG1Ow==
+ dependencies:
+ ansi-regex "^4.0.0"
+
strip-bom@3.0.0, strip-bom@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
@@ -9116,38 +8803,33 @@ strip-eof@^1.0.0:
resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=
-strip-indent@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2"
- integrity sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=
- dependencies:
- get-stdin "^4.0.1"
-
-strip-json-comments@~2.0.1:
+strip-json-comments@^2.0.1, 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=
-style-loader@^0.23.0:
- version "0.23.0"
- resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.23.0.tgz#8377fefab68416a2e05f1cabd8c3a3acfcce74f1"
- integrity sha512-uCcN7XWHkqwGVt7skpInW6IGO1tG6ReyFQ1Cseh0VcN6VdcFQi62aG/2F3Y9ueA8x4IVlfaSUxpmQXQD9QrEuQ==
+style-loader@0.23.1:
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.23.1.tgz#cb9154606f3e771ab6c4ab637026a1049174d925"
+ integrity sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==
dependencies:
loader-utils "^1.1.0"
- schema-utils "^0.4.5"
+ schema-utils "^1.0.0"
+
+stylehacks@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.1.tgz#3186595d047ab0df813d213e51c8b94e0b9010f2"
+ integrity sha512-TK5zEPeD9NyC1uPIdjikzsgWxdQQN/ry1X3d1iOz1UkYDCmcr928gWD1KHgyC27F50UnE0xCTrBOO1l6KR8M4w==
+ dependencies:
+ browserslist "^4.0.0"
+ postcss "^7.0.0"
+ postcss-selector-parser "^3.0.0"
substring-trie@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/substring-trie/-/substring-trie-1.0.2.tgz#7b42592391628b4f2cb17365c6cce4257c7b7af5"
integrity sha1-e0JZI5Fii08ssXNlxszkJXx7evU=
-sugarss@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/sugarss/-/sugarss-1.0.1.tgz#be826d9003e0f247735f92365dc3fd7f1bae9e44"
- integrity sha512-3qgLZytikQQEVn1/FrhY7B68gPUUGY3R1Q1vTiD5xT+Ti1DP/8iZuwFet9ONs5+bmL8pZoDQ6JrQHVgrNlK6mA==
- dependencies:
- postcss "^6.0.14"
-
supports-color@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
@@ -9160,14 +8842,34 @@ supports-color@^3.1.2, supports-color@^3.2.3:
dependencies:
has-flag "^1.0.0"
-supports-color@^5.1.0, supports-color@^5.3.0, supports-color@^5.4.0:
+supports-color@^5.1.0, supports-color@^5.3.0, supports-color@^5.5.0:
version "5.5.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
dependencies:
has-flag "^3.0.0"
-symbol-observable@^1.0.3:
+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==
+ dependencies:
+ coa "~2.0.1"
+ colors "~1.1.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"
+ mkdirp "~0.5.1"
+ object.values "^1.0.4"
+ sax "~1.2.4"
+ stable "~0.1.6"
+ unquote "~1.1.1"
+ util.promisify "~1.0.0"
+
+symbol-observable@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804"
integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==
@@ -9177,55 +8879,30 @@ symbol-tree@^3.2.2:
resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6"
integrity sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=
-table@4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36"
- integrity sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==
+table@^5.0.2:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/table/-/table-5.1.1.tgz#92030192f1b7b51b6eeab23ed416862e47b70837"
+ integrity sha512-NUjapYb/qd4PeFW03HnAuOJ7OMcBkJlqeClWxeNlQ0lXGSb52oZXGzkO0/I0ARegQ2eUT1g2VDJH0eUxDRcHmw==
dependencies:
- ajv "^5.2.3"
- ajv-keywords "^2.1.0"
- chalk "^2.1.0"
- lodash "^4.17.4"
- slice-ansi "1.0.0"
+ ajv "^6.6.1"
+ lodash "^4.17.11"
+ slice-ansi "2.0.0"
string-width "^2.1.1"
-tapable@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.0.tgz#0d076a172e3d9ba088fd2272b2668fb8d194b78c"
- integrity sha512-IlqtmLVaZA2qab8epUXbVWRn3aB1imbDMJtjB3nu4X0NqPkcY/JH9ZtCBWKHWPxs8Svi9tyo8w2dBoi07qZbBA==
-
-tar-pack@^3.4.0:
- version "3.4.1"
- resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f"
- integrity sha512-PPRybI9+jM5tjtCbN2cxmmRU7YmqT3Zv/UDy48tAh2XRkLa9bAORtSWLkVc13+GJF+cdTh1yEnHEk3cpTaL5Kg==
- dependencies:
- debug "^2.2.0"
- fstream "^1.0.10"
- fstream-ignore "^1.0.5"
- once "^1.3.3"
- readable-stream "^2.1.4"
- rimraf "^2.5.1"
- tar "^2.2.1"
- uid-number "^0.0.6"
-
-tar@^2.0.0, tar@^2.2.1:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1"
- integrity sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=
- dependencies:
- block-stream "*"
- fstream "^1.0.2"
- inherits "2"
+tapable@^1.0.0, tapable@^1.1.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.1.tgz#4d297923c5a72a42360de2ab52dadfaaec00018e"
+ integrity sha512-9I2ydhj8Z9veORCw5PRm4u9uebCn0mcCa6scWoNcbZ6dAtoo2618u9UUzxgmsCOreJpqDDuv61LvwofW7hLcBA==
tar@^4:
- version "4.4.6"
- resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.6.tgz#63110f09c00b4e60ac8bcfe1bf3c8660235fbc9b"
- integrity sha512-tMkTnh9EdzxyfW+6GK6fCahagXsnYk6kE6S9Gr9pjVdys769+laCTbodXDhPAjzVtEBazRgP0gYqOjnk9dQzLg==
+ version "4.4.8"
+ resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.8.tgz#b19eec3fde2a96e64666df9fdb40c5ca1bc3747d"
+ integrity sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==
dependencies:
- chownr "^1.0.1"
+ chownr "^1.1.1"
fs-minipass "^1.2.5"
- minipass "^2.3.3"
- minizlib "^1.1.0"
+ minipass "^2.3.4"
+ minizlib "^1.1.1"
mkdirp "^0.5.0"
safe-buffer "^5.1.2"
yallist "^3.0.2"
@@ -9235,10 +8912,28 @@ tcomb@^2.5.0:
resolved "https://registry.yarnpkg.com/tcomb/-/tcomb-2.7.0.tgz#10d62958041669a5d53567b9a4ee8cde22b1c2b0"
integrity sha1-ENYpWAQWaaXVNWe5pO6M3iKxwrA=
-tcomb@^3.2.21:
- version "3.2.27"
- resolved "https://registry.yarnpkg.com/tcomb/-/tcomb-3.2.27.tgz#f4928bfc536b959d21a47e5f5f1ca2b2e4b7188a"
- integrity sha512-XWdJW7F/M3YzXhDEUP8ycmNWoYymBtsHwCHoda0YF44RthJsls95TqDrmpAlC1sB/KXaCvkdBlcNRq+AaV6klA==
+terser-webpack-plugin@^1.1.0:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.2.1.tgz#7545da9ae5f4f9ae6a0ac961eb46f5e7c845cc26"
+ integrity sha512-GGSt+gbT0oKcMDmPx4SRSfJPE1XaN3kQRWG4ghxKQw9cn5G9x6aCKSsgYdvyM0na9NJ4Drv0RG6jbBByZ5CMjw==
+ dependencies:
+ cacache "^11.0.2"
+ find-cache-dir "^2.0.0"
+ schema-utils "^1.0.0"
+ serialize-javascript "^1.4.0"
+ source-map "^0.6.1"
+ terser "^3.8.1"
+ webpack-sources "^1.1.0"
+ worker-farm "^1.5.2"
+
+terser@^3.8.1:
+ version "3.14.0"
+ resolved "https://registry.yarnpkg.com/terser/-/terser-3.14.0.tgz#49a8ddf34a1308a901d787dab03a42c51b557447"
+ integrity sha512-KQC1QNKbC/K1ZUjLIWsezW7wkTJuB4v9ptQQUNOzAPVHuVf2LrwEcB0I9t2HTEYUwAFVGiiS6wc+P4ClLDc5FQ==
+ dependencies:
+ commander "~2.17.1"
+ source-map "~0.6.1"
+ source-map-support "~0.5.6"
test-exclude@^4.2.1:
version "4.2.3"
@@ -9251,7 +8946,7 @@ test-exclude@^4.2.1:
read-pkg-up "^1.0.1"
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=
@@ -9269,22 +8964,22 @@ throng@^4.0.0:
lodash.defaults "^4.0.1"
through2@^2.0.0:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be"
- integrity sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
+ integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==
dependencies:
- readable-stream "^2.1.5"
+ readable-stream "~2.3.6"
xtend "~4.0.1"
through@2, through@^2.3.6:
version "2.3.8"
- resolved "http://registry.npmjs.org/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
+ resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
thunky@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.0.2.tgz#a862e018e3fb1ea2ec3fce5d55605cf57f247371"
- integrity sha1-qGLgGOP7HqLsP85dVWBc9X8kc3E=
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.0.3.tgz#f5df732453407b09191dae73e2a8cc73f381a826"
+ integrity sha512-YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow==
timers-browserify@^2.0.4:
version "2.0.10"
@@ -9293,6 +8988,11 @@ timers-browserify@^2.0.4:
dependencies:
setimmediate "^1.0.4"
+timsort@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4"
+ integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=
+
tiny-queue@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/tiny-queue/-/tiny-queue-0.2.1.tgz#25a67f2c6e253b2ca941977b5ef7442ef97a6046"
@@ -9350,7 +9050,15 @@ to-regex@^3.0.1, to-regex@^3.0.2:
regex-not "^1.0.2"
safe-regex "^1.1.0"
-tough-cookie@>=2.3.3, tough-cookie@^2.3.4, tough-cookie@~2.4.3:
+tough-cookie@>=2.3.3, tough-cookie@^2.3.4:
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"
+ integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==
+ dependencies:
+ 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==
@@ -9358,13 +9066,6 @@ tough-cookie@>=2.3.3, tough-cookie@^2.3.4, tough-cookie@~2.4.3:
psl "^1.1.24"
punycode "^1.4.1"
-tough-cookie@~2.3.0, tough-cookie@~2.3.3:
- version "2.3.4"
- resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655"
- integrity sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==
- dependencies:
- punycode "^1.4.1"
-
tr46@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09"
@@ -9372,23 +9073,11 @@ tr46@^1.0.1:
dependencies:
punycode "^2.1.0"
-trim-newlines@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613"
- integrity sha1-WIeWa7WCpFA6QetST301ARgVphM=
-
trim-right@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=
-"true-case-path@^1.0.2":
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.3.tgz#f813b5a8c86b40da59606722b144e3225799f47d"
- integrity sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==
- dependencies:
- glob "^7.1.2"
-
tryer@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8"
@@ -9423,7 +9112,7 @@ type-check@~0.3.2:
dependencies:
prelude-ls "~1.1.2"
-type-is@~1.6.15, type-is@~1.6.16:
+type-is@~1.6.16:
version "1.6.16"
resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194"
integrity sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==
@@ -9437,19 +9126,11 @@ typedarray@^0.0.6:
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
ua-parser-js@^0.7.18:
- version "0.7.18"
- resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.18.tgz#a7bfd92f56edfb117083b69e31d2aa8882d4b1ed"
- integrity sha512-LtzwHlVHwFGTptfNSgezHp7WUlwiqb0gA9AALRbKaERfxwJoiX0A73QbTToxteIAuIaFshhgIZfqK8s7clqgnA==
+ version "0.7.19"
+ resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.19.tgz#94151be4c0a7fb1d001af7022fdaca4642659e4b"
+ integrity sha512-T3PVJ6uz8i0HzPxOF9SWzWAlfN/DavlpQqepn22xgve/5QecC+XMCAtmUNnY7C9StehaV6exjUCI801lOI7QlQ==
-uglify-es@^3.3.4:
- version "3.3.9"
- resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677"
- integrity sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==
- dependencies:
- commander "~2.13.0"
- source-map "~0.6.1"
-
-uglify-js@^3.1.4:
+uglify-js@^3.0.0, uglify-js@^3.1.4:
version "3.4.9"
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.9.tgz#af02f180c1207d76432e473ed24a28f4a782bae3"
integrity sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==
@@ -9457,29 +9138,24 @@ uglify-js@^3.1.4:
commander "~2.17.1"
source-map "~0.6.1"
-uglifyjs-webpack-plugin@^1.2.4, uglifyjs-webpack-plugin@^1.2.7:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz#75f548160858163a08643e086d5fefe18a5d67de"
- integrity sha512-ovHIch0AMlxjD/97j9AYovZxG5wnHOPkL7T1GKochBADp/Zwc44pEWNqpKl1Loupp1WhFg7SlYmHZRUfdAacgw==
+uglifyjs-webpack-plugin@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-2.1.1.tgz#6937d7513a37280d4792f1fb536bef35e08e420a"
+ integrity sha512-TQEcyMNkObX/H+FfcKjiDgs5RcXX8vW2UUUrDTOfQgg3lrafztfeM5WAwXo+AzqozJK6NP9w98xNpG/dutzSsg==
dependencies:
- cacache "^10.0.4"
- find-cache-dir "^1.0.0"
- schema-utils "^0.4.5"
+ cacache "^11.2.0"
+ find-cache-dir "^2.0.0"
+ schema-utils "^1.0.0"
serialize-javascript "^1.4.0"
source-map "^0.6.1"
- uglify-es "^3.3.4"
+ uglify-js "^3.0.0"
webpack-sources "^1.1.0"
worker-farm "^1.5.2"
-uid-number@^0.0.6:
- version "0.0.6"
- resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81"
- integrity sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=
-
-underscore@~1.4.4:
- version "1.4.4"
- resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.4.4.tgz#61a6a32010622afa07963bf325203cf12239d604"
- integrity sha1-YaajIBBiKvoHljvzJSA88SI51gQ=
+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"
@@ -9519,31 +9195,31 @@ uniq@^1.0.1:
resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff"
integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=
-unique-filename@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.0.tgz#d05f2fe4032560871f30e93cbe735eea201514f3"
- integrity sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=
+uniqs@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02"
+ integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI=
+
+unique-filename@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230"
+ integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==
dependencies:
unique-slug "^2.0.0"
unique-slug@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.0.tgz#db6676e7c7cc0629878ff196097c78855ae9f4ab"
- integrity sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.1.tgz#5e9edc6d1ce8fb264db18a507ef9bd8544451ca6"
+ integrity sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg==
dependencies:
imurmurhash "^0.1.4"
-universalify@^0.1.0:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
- integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
-
unpipe@1.0.0, unpipe@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=
-unquote@^1.1.0:
+unquote@^1.1.0, unquote@~1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544"
integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=
@@ -9573,15 +9249,10 @@ urix@^0.1.0:
resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=
-url-join@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/url-join/-/url-join-4.0.0.tgz#4d3340e807d3773bda9991f8305acdcc2a665d2a"
- integrity sha1-TTNA6AfTdzvamZH4MFrNzCpmXSo=
-
-url-parse@^1.1.8, url-parse@^1.4.3:
- version "1.4.3"
- resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.3.tgz#bfaee455c889023219d757e045fa6a684ec36c15"
- integrity sha512-rh+KuAW36YKo0vClhQzLLveoj8FwPJNu65xLb7Mrt+eZht0IPT0IXgSv8gcMegZ6NvjJUALf6Mf25POlMwD1Fw==
+url-parse@^1.4.3:
+ version "1.4.4"
+ resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.4.tgz#cac1556e95faa0303691fec5cf9d5a1bc34648f8"
+ integrity sha512-/92DTTorg4JjktLNLe6GPS2/RvAd/RGr6LuktmWSMLEOa6rjnlrFXNgSbSmkNvCoL2T028A0a1JaJLzRMlFoHg==
dependencies:
querystringify "^2.0.0"
requires-port "^1.0.0"
@@ -9599,12 +9270,12 @@ use@^3.1.0:
resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==
-util-deprecate@~1.0.1:
+util-deprecate@^1.0.1, util-deprecate@~1.0.1:
version "1.0.2"
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, 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==
@@ -9631,7 +9302,7 @@ 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.0, uuid@^3.0.1, uuid@^3.1.0, uuid@^3.3.2:
+uuid@^3.0.1, uuid@^3.1.0, uuid@^3.3.2:
version "3.3.2"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131"
integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==
@@ -9641,7 +9312,7 @@ uws@10.148.0:
resolved "https://registry.yarnpkg.com/uws/-/uws-10.148.0.tgz#3fcd35f083ca515e091cd33b2d78f0f51a666215"
integrity sha512-aJpFgMMyxubiE/ll4nj9nWoQbv0HzZZDWXfwyu78nuFObX0Zoyv3TWjkqKPQ1vb2sMPZoz67tri7QNE6dybNmQ==
-v8-compile-cache@^2.0.0:
+v8-compile-cache@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.2.tgz#a428b28bb26790734c4fc8bc9fa106fccebf6a6c"
integrity sha512-1wFuMUIM16MDJRCrpbpuEPTUGmM5QMUg0cr3KFwra2XgOgFcPGDQHDh3CszSCD2Zewc/dh/pamNEW8CbfDebUw==
@@ -9664,6 +9335,11 @@ vary@~1.1.2:
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
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==
+
verror@1.10.0:
version "1.10.0"
resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
@@ -9725,7 +9401,7 @@ watchpack@^1.5.0:
graceful-fs "^4.1.2"
neo-async "^2.5.0"
-wbuf@^1.1.0, wbuf@^1.7.2:
+wbuf@^1.1.0, wbuf@^1.7.3:
version "1.7.3"
resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df"
integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==
@@ -9737,58 +9413,67 @@ webidl-conversions@^4.0.2:
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad"
integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==
-webpack-bundle-analyzer@^2.13.1:
- version "2.13.1"
- resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-2.13.1.tgz#07d2176c6e86c3cdce4c23e56fae2a7b6b4ad526"
- integrity sha512-rwxyfecTAxoarCC9VlHlIpfQCmmJ/qWD5bpbjkof+7HrNhTNZIwZITxN6CdlYL2axGmwNUQ+tFgcSOiNXMf/sQ==
+webpack-assets-manifest@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/webpack-assets-manifest/-/webpack-assets-manifest-3.1.1.tgz#39bbc3bf2ee57fcd8ba07cda51c9ba4a3c6ae1de"
+ integrity sha512-JV9V2QKc5wEWQptdIjvXDUL1ucbPLH2f27toAY3SNdGZp+xSaStAgpoMcvMZmqtFrBc9a5pTS1058vxyMPOzRQ==
dependencies:
- acorn "^5.3.0"
- bfj-node4 "^5.2.0"
- chalk "^2.3.0"
- commander "^2.13.0"
- ejs "^2.5.7"
- express "^4.16.2"
- filesize "^3.5.11"
- gzip-size "^4.1.0"
- lodash "^4.17.4"
- mkdirp "^0.5.1"
- opener "^1.4.3"
- ws "^4.0.0"
+ chalk "^2.0"
+ lodash.get "^4.0"
+ lodash.has "^4.0"
+ mkdirp "^0.5"
+ schema-utils "^1.0.0"
+ tapable "^1.0.0"
+ webpack-sources "^1.0.0"
-webpack-cli@^3.0.8:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.1.0.tgz#d71a83687dcfeb758fdceeb0fe042f96bcf62994"
- integrity sha512-p5NeKDtYwjZozUWq6kGNs9w+Gtw/CPvyuXjXn2HMdz8Tie+krjEg8oAtonvIyITZdvpF7XG9xDHwscLr2c+ugQ==
+webpack-bundle-analyzer@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.0.3.tgz#dbc7fff8f52058b6714a20fddf309d0790e3e0a0"
+ integrity sha512-naLWiRfmtH4UJgtUktRTLw6FdoZJ2RvCR9ePbwM9aRMsS/KjFerkPZG9epEvXRAw5d5oPdrs9+3p+afNjxW8Xw==
+ dependencies:
+ acorn "^5.7.3"
+ bfj "^6.1.1"
+ chalk "^2.4.1"
+ commander "^2.18.0"
+ ejs "^2.6.1"
+ express "^4.16.3"
+ filesize "^3.6.1"
+ gzip-size "^5.0.0"
+ lodash "^4.17.10"
+ mkdirp "^0.5.1"
+ opener "^1.5.1"
+ ws "^6.0.0"
+
+webpack-cli@^3.1.2:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.1.2.tgz#17d7e01b77f89f884a2bbf9db545f0f6a648e746"
+ integrity sha512-Cnqo7CeqeSvC6PTdts+dywNi5CRlIPbLx1AoUPK2T6vC1YAugMG3IOoO9DmEscd+Dghw7uRlnzV1KwOe5IrtgQ==
dependencies:
chalk "^2.4.1"
cross-spawn "^6.0.5"
- enhanced-resolve "^4.0.0"
- global-modules-path "^2.1.0"
- import-local "^1.0.0"
- inquirer "^6.0.0"
+ enhanced-resolve "^4.1.0"
+ global-modules-path "^2.3.0"
+ import-local "^2.0.0"
interpret "^1.1.0"
loader-utils "^1.1.0"
- supports-color "^5.4.0"
- v8-compile-cache "^2.0.0"
- yargs "^12.0.1"
+ supports-color "^5.5.0"
+ v8-compile-cache "^2.0.2"
+ yargs "^12.0.2"
-webpack-dev-middleware@3.2.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.2.0.tgz#a20ceef194873710052da678f3c6ee0aeed92552"
- integrity sha512-YJLMF/96TpKXaEQwaLEo+Z4NDK8aV133ROF6xp9pe3gQoS7sxfpXh4Rv9eC+8vCvWfmDjRQaMSlRPbO+9G6jgA==
+webpack-dev-middleware@3.4.0:
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.4.0.tgz#1132fecc9026fd90f0ecedac5cbff75d1fb45890"
+ integrity sha512-Q9Iyc0X9dP9bAsYskAVJ/hmIZZQwf/3Sy4xCAZgL5cUkjZmUZLt4l5HpbST/Pdgjn3u6pE7u5OdGd1apgzRujA==
dependencies:
- loud-rejection "^1.6.0"
memory-fs "~0.4.1"
mime "^2.3.1"
- path-is-absolute "^1.0.0"
range-parser "^1.0.3"
- url-join "^4.0.0"
webpack-log "^2.0.0"
-webpack-dev-server@^3.1.8:
- version "3.1.8"
- resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.1.8.tgz#eb7a95945d1108170f902604fb3b939533d9daeb"
- integrity sha512-c+tcJtDqnPdxCAzEEZKdIPmg3i5i7cAHe+B+0xFNK0BlCc2HF/unYccbU7xTgfGc5xxhCztCQzFmsqim+KhI+A==
+webpack-dev-server@^3.1.14:
+ version "3.1.14"
+ resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.1.14.tgz#60fb229b997fc5a0a1fc6237421030180959d469"
+ integrity sha512-mGXDgz5SlTxcF3hUpfC8hrQ11yhAttuUQWf1Wmb+6zo3x6rb7b9mIfuQvAPLdfDRCGRGvakBWHdHOa0I9p/EVQ==
dependencies:
ansi-html "0.0.7"
bonjour "^3.5.0"
@@ -9809,13 +9494,15 @@ webpack-dev-server@^3.1.8:
portfinder "^1.0.9"
schema-utils "^1.0.0"
selfsigned "^1.9.1"
+ semver "^5.6.0"
serve-index "^1.7.2"
sockjs "0.3.19"
- sockjs-client "1.1.5"
- spdy "^3.4.1"
+ sockjs-client "1.3.0"
+ spdy "^4.0.0"
strip-ansi "^3.0.0"
supports-color "^5.1.0"
- webpack-dev-middleware "3.2.0"
+ url "^0.11.0"
+ webpack-dev-middleware "3.4.0"
webpack-log "^2.0.0"
yargs "12.0.2"
@@ -9827,39 +9514,30 @@ webpack-log@^2.0.0:
ansi-colors "^3.0.0"
uuid "^3.3.2"
-webpack-manifest-plugin@^2.0.4:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/webpack-manifest-plugin/-/webpack-manifest-plugin-2.0.4.tgz#e4ca2999b09557716b8ba4475fb79fab5986f0cd"
- integrity sha512-nejhOHexXDBKQOj/5v5IZSfCeTO3x1Dt1RZEcGfBSul891X/eLIcIVH31gwxPDdsi2Z8LKKFGpM4w9+oTBOSCg==
- dependencies:
- fs-extra "^7.0.0"
- lodash ">=3.5 <5"
- tapable "^1.0.0"
-
-webpack-merge@^4.1.3:
- version "4.1.4"
- resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.1.4.tgz#0fde38eabf2d5fd85251c24a5a8c48f8a3f4eb7b"
- integrity sha512-TmSe1HZKeOPey3oy1Ov2iS3guIZjWvMT2BBJDzzT5jScHTjVC3mpjJofgueEzaEd6ibhxRDD6MIblDr8tzh8iQ==
+webpack-merge@^4.1.5:
+ version "4.1.5"
+ resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.1.5.tgz#2be31e846c20767d1bef56bdca64c328a681190a"
+ integrity sha512-sVcM+MMJv6DO0C0GLLltx8mUlGMKXE0zBsuMqZ9jz2X9gsekALw6Rs0cAfTWc97VuWS6NpVUa78959zANnMMLQ==
dependencies:
lodash "^4.17.5"
-webpack-sources@^1.0.1, webpack-sources@^1.1.0, webpack-sources@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.2.0.tgz#18181e0d013fce096faf6f8e6d41eeffffdceac2"
- integrity sha512-9BZwxR85dNsjWz3blyxdOhTgtnQvv3OEs5xofI0wPYTwu5kaWxS08UuD1oI7WLBLpRO+ylf0ofnXLXWmGb2WMw==
+webpack-sources@^1.0.0, webpack-sources@^1.0.1, webpack-sources@^1.1.0, webpack-sources@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85"
+ integrity sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==
dependencies:
source-list-map "^2.0.0"
source-map "~0.6.1"
-webpack@^4.18.0:
- version "4.18.0"
- resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.18.0.tgz#7dafaaf309c12e63080d3960fba7ed94afdcbe84"
- integrity sha512-XOGIV1FuGSisuX0gJwoANpR0+rUnlDWf2dadNfdT8ftaM8QzIMsJin2vK9XaYuhsji321C6dnCV4bxbIwq9jrg==
+webpack@^4.28.3:
+ version "4.28.3"
+ resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.28.3.tgz#8acef6e77fad8a01bfd0c2b25aa3636d46511874"
+ integrity sha512-vLZN9k5I7Nr/XB1IDG9GbZB4yQd1sPuvufMFgJkx0b31fi2LD97KQIjwjxE7xytdruAYfu5S0FLBLjdxmwGJCg==
dependencies:
- "@webassemblyjs/ast" "1.7.6"
- "@webassemblyjs/helper-module-context" "1.7.6"
- "@webassemblyjs/wasm-edit" "1.7.6"
- "@webassemblyjs/wasm-parser" "1.7.6"
+ "@webassemblyjs/ast" "1.7.11"
+ "@webassemblyjs/helper-module-context" "1.7.11"
+ "@webassemblyjs/wasm-edit" "1.7.11"
+ "@webassemblyjs/wasm-parser" "1.7.11"
acorn "^5.6.2"
acorn-dynamic-import "^3.0.0"
ajv "^6.1.0"
@@ -9876,10 +9554,10 @@ webpack@^4.18.0:
neo-async "^2.5.0"
node-libs-browser "^2.0.0"
schema-utils "^0.4.4"
- tapable "^1.0.0"
- uglifyjs-webpack-plugin "^1.2.4"
+ tapable "^1.1.0"
+ terser-webpack-plugin "^1.1.0"
watchpack "^1.5.0"
- webpack-sources "^1.2.0"
+ webpack-sources "^1.3.0"
websocket-driver@>=0.5.1:
version "0.7.0"
@@ -9902,21 +9580,21 @@ websocket.js@^0.1.12:
backoff "^2.4.1"
whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.4.tgz#63fb016b7435b795d9025632c086a5209dbd2621"
- integrity sha512-vM9KWN6MP2mIHZ86ytcyIv7e8Cj3KTfO2nd2c8PFDqcI4bxFmQp83ibq4wadq7rL9l9sZV6o9B0LTt8ygGAAXg==
+ 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.23"
+ iconv-lite "0.4.24"
whatwg-fetch@>=0.10.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz#fc804e458cc460009b1a2b966bc8817d2578aefb"
integrity sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==
-whatwg-mimetype@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.1.0.tgz#f0f21d76cbba72362eb609dbed2a30cd17fcc7d4"
- integrity sha512-FKxhYLytBQiUKjkYteN71fAUA3g6KpNXoho1isLiLSB3N1G4F35Q5vUxWfKFhBwi5IWF27VE6WxhrnnC+m0Mew==
+whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.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"
@@ -9936,17 +9614,12 @@ whatwg-url@^7.0.0:
tr46 "^1.0.1"
webidl-conversions "^4.0.2"
-which-module@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f"
- integrity sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=
-
which-module@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=
-which@1, which@^1.2.12, which@^1.2.9, which@^1.3.0:
+which@^1.2.12, which@^1.2.9, which@^1.3.0:
version "1.3.1"
resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
@@ -9979,7 +9652,7 @@ worker-farm@^1.5.2:
wrap-ansi@^2.0.0:
version "2.1.0"
- resolved "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=
dependencies:
string-width "^1.0.1"
@@ -10006,14 +9679,6 @@ write@^0.2.1:
dependencies:
mkdirp "^0.5.1"
-ws@^4.0.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/ws/-/ws-4.1.0.tgz#a979b5d7d4da68bf54efe0408967c324869a7289"
- integrity sha512-ZGh/8kF9rrRNffkLFV4AzhvooEclrOH0xaugmqGsIfFgOE/pIz4fMc4Ef+5HSQqTEug2S9JZIWDR47duDSLfaA==
- dependencies:
- async-limiter "~1.0.0"
- safe-buffer "~5.1.0"
-
ws@^5.2.0:
version "5.2.2"
resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f"
@@ -10021,6 +9686,13 @@ ws@^5.2.0:
dependencies:
async-limiter "~1.0.0"
+ws@^6.0.0:
+ version "6.1.2"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.2.tgz#3cc7462e98792f0ac679424148903ded3b9c3ad8"
+ integrity sha512-rfUqzvz0WxmSXtJpPMX2EeASXabOrSMk1ruMOV3JBTBjo4ac2lDjGGsbQSyxj8Odhw5fBib8ZKEjDNvgouNKYw==
+ dependencies:
+ async-limiter "~1.0.0"
+
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"
@@ -10052,9 +9724,9 @@ yallist@^2.1.2:
integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
yallist@^3.0.0, yallist@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9"
- integrity sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9"
+ integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==
yargs-parser@^10.1.0:
version "10.1.0"
@@ -10063,12 +9735,13 @@ yargs-parser@^10.1.0:
dependencies:
camelcase "^4.1.0"
-yargs-parser@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a"
- integrity sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=
+yargs-parser@^11.1.1:
+ version "11.1.1"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4"
+ integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==
dependencies:
- camelcase "^3.0.0"
+ camelcase "^5.0.0"
+ decamelize "^1.2.0"
yargs-parser@^7.0.0:
version "7.0.0"
@@ -10084,7 +9757,7 @@ yargs-parser@^9.0.2:
dependencies:
camelcase "^4.1.0"
-yargs@12.0.2, yargs@^12.0.1:
+yargs@12.0.2:
version "12.0.2"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.2.tgz#fe58234369392af33ecbef53819171eff0f5aadc"
integrity sha512-e7SkEx6N6SIZ5c5H22RTZae61qtn3PYUE8JYbBFlK9sYmh3DMQ6E5ygtaG/2BW0JZi4WGgTR2IV5ChqlqrDGVQ==
@@ -10104,7 +9777,7 @@ yargs@12.0.2, yargs@^12.0.1:
yargs@^11.0.0:
version "11.1.0"
- resolved "http://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz#90b869934ed6e871115ea2ff58b03f4724ed2d77"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.1.0.tgz#90b869934ed6e871115ea2ff58b03f4724ed2d77"
integrity sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==
dependencies:
cliui "^4.0.0"
@@ -10120,24 +9793,23 @@ yargs@^11.0.0:
y18n "^3.2.1"
yargs-parser "^9.0.2"
-yargs@^7.0.0:
- version "7.1.0"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8"
- integrity sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=
+yargs@^12.0.2:
+ version "12.0.5"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13"
+ integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==
dependencies:
- camelcase "^3.0.0"
- cliui "^3.2.0"
- decamelize "^1.1.1"
+ cliui "^4.0.0"
+ decamelize "^1.2.0"
+ find-up "^3.0.0"
get-caller-file "^1.0.1"
- os-locale "^1.4.0"
- read-pkg-up "^1.0.1"
+ os-locale "^3.0.0"
require-directory "^2.1.1"
require-main-filename "^1.0.1"
set-blocking "^2.0.0"
- string-width "^1.0.2"
- which-module "^1.0.0"
- y18n "^3.2.1"
- yargs-parser "^5.0.0"
+ string-width "^2.0.0"
+ which-module "^2.0.0"
+ y18n "^3.2.1 || ^4.0.0"
+ yargs-parser "^11.1.1"
yargs@^8.0.2:
version "8.0.2"