-
-
+
+
- {!onCloseVideo && }
- {(!fullscreen && onOpenVideo) && }
- {onCloseVideo && }
-
+ {!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 24313cf71..7de65f91f 100644
--- a/app/javascript/mastodon/locales/ar.json
+++ b/app/javascript/mastodon/locales/ar.json
@@ -1,5 +1,5 @@
{
- "account.add_or_remove_from_list": "اضافو أو حذف مِن القوائم",
+ "account.add_or_remove_from_list": "أضيف/ي أو أحذف/ي من القائمة",
"account.badges.bot": "روبوت",
"account.block": "حظر @{name}",
"account.block_domain": "إخفاء كل شيئ قادم من إسم النطاق {domain}",
@@ -8,30 +8,30 @@
"account.disclaimer_full": "قد لا تعكس المعلومات أدناه الملف الشخصي الكامل للمستخدم.",
"account.domain_blocked": "النطاق مخفي",
"account.edit_profile": "تعديل الملف الشخصي",
- "account.endorse": "إبرازه على الملف الشخصي",
+ "account.endorse": "خاصّية على الملف الشخصي",
"account.follow": "تابِع",
- "account.followers": "المتابعون",
+ "account.followers": "متابعون",
"account.followers.empty": "لا أحد يتبع هذا الحساب بعد.",
"account.follows": "يتبع",
- "account.follows.empty": "هذا المستخدِم لا يتبع أحدًا بعد.",
+ "account.follows.empty": "هذا الحساب لا يتبع أحدًا بعد.",
"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.link_verified_on": "تم التحقق مِن مِلْكية هذا الرابط بتاريخ {date}",
+ "account.locked_info": "تم تأمين خصوصية هذا الحساب عبر قفل. صاحب الحساب يُراجِع يدويا طلبات المتابَعة و الاشتراك بحسابه.",
"account.media": "وسائط",
- "account.mention": "أُذكُر @{name}",
+ "account.mention": "أُذكُر/ي @{name}",
"account.moved_to": "{name} إنتقل إلى :",
- "account.mute": "أكتم @{name}",
- "account.mute_notifications": "كتم إخطارات @{name}",
+ "account.mute": "كتم @{name}",
+ "account.mute_notifications": "كتم الإخطارات من @{name}",
"account.muted": "مكتوم",
"account.posts": "التبويقات",
"account.posts_with_replies": "التبويقات و الردود",
- "account.report": "أبلغ عن @{name}",
- "account.requested": "في انتظار الموافقة",
- "account.share": "مشاركة @{name}'s profile",
+ "account.report": "أبلغ/ي عن @{name}",
+ "account.requested": "في انتظار الموافقة. اضْغَطْ/ي لإلغاء طلب المتابعة",
+ "account.share": "مشاركة حساب @{name}",
"account.show_reblogs": "عرض ترقيات @{name}",
"account.unblock": "إلغاء الحظر عن @{name}",
- "account.unblock_domain": "فك حظر {domain}",
+ "account.unblock_domain": "فك الخْفى عن {domain}",
"account.unendorse": "إزالة ترويجه مِن الملف الشخصي",
"account.unfollow": "إلغاء المتابعة",
"account.unmute": "إلغاء الكتم عن @{name}",
@@ -39,7 +39,7 @@
"account.view_full_profile": "عرض الملف الشخصي كاملا",
"alert.unexpected.message": "لقد طرأ هناك خطأ غير متوقّع.",
"alert.unexpected.title": "المعذرة !",
- "boost_modal.combo": "يمكنك ضغط {combo} لتخطّي هذه في المرّة القادمة",
+ "boost_modal.combo": "يمكنك/ي ضغط {combo} لتخطّي هذه في المرّة القادمة",
"bundle_column_error.body": "لقد وقع هناك خطأ أثناء عملية تحميل هذا العنصر.",
"bundle_column_error.retry": "إعادة المحاولة",
"bundle_column_error.title": "خطأ في الشبكة",
@@ -47,7 +47,7 @@
"bundle_modal_error.message": "لقد وقع هناك خطأ أثناء عملية تحميل هذا العنصر.",
"bundle_modal_error.retry": "إعادة المحاولة",
"column.blocks": "الحسابات المحجوبة",
- "column.community": "الخيط العام المحلي",
+ "column.community": "التَسَلْسُل الزَمني المحلي",
"column.direct": "الرسائل المباشرة",
"column.domain_blocks": "النطاقات المخفية",
"column.favourites": "المفضلة",
@@ -132,8 +132,8 @@
"follow_request.authorize": "ترخيص",
"follow_request.reject": "رفض",
"getting_started.developers": "المُطوِّرون",
- "getting_started.directory": "Profile directory",
- "getting_started.documentation": "Documentation",
+ "getting_started.directory": "دليل المستخدِمين والمستخدِمات",
+ "getting_started.documentation": "الدليل",
"getting_started.heading": "إستعدّ للبدء",
"getting_started.invite": "دعوة أشخاص",
"getting_started.open_source_notice": "ماستدون برنامج مفتوح المصدر. يمكنك المساهمة، أو الإبلاغ عن تقارير الأخطاء، على جيت هب {github}.",
@@ -142,6 +142,8 @@
"hashtag.column_header.tag_mode.all": "و {additional}",
"hashtag.column_header.tag_mode.any": "أو {additional}",
"hashtag.column_header.tag_mode.none": "بدون {additional}",
+ "hashtag.column_settings.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
"hashtag.column_settings.tag_mode.all": "كلها",
"hashtag.column_settings.tag_mode.any": "أي كان مِن هذه",
"hashtag.column_settings.tag_mode.none": "لا شيء مِن هذه",
@@ -149,23 +151,23 @@
"home.column_settings.basic": "أساسية",
"home.column_settings.show_reblogs": "عرض الترقيات",
"home.column_settings.show_replies": "عرض الردود",
- "introduction.federation.action": "Next",
+ "introduction.federation.action": "التالي",
"introduction.federation.federated.headline": "Federated",
- "introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
+ "introduction.federation.federated.text": "كافة المنشورات التي نُشِرت إلى العامة على الخوادم الأخرى للفديفرس سوف يتم عرضها على الخيط المُوحَّد.",
"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.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": "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.",
+ "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": "للترقية",
@@ -204,6 +206,7 @@
"lists.account.remove": "إحذف من القائمة",
"lists.delete": "Delete list",
"lists.edit": "تعديل القائمة",
+ "lists.edit.submit": "Change title",
"lists.new.create": "إنشاء قائمة",
"lists.new.title_placeholder": "عنوان القائمة الجديدة",
"lists.search": "إبحث في قائمة الحسابات التي تُتابِعها",
@@ -242,20 +245,20 @@
"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.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": "All",
- "notifications.filter.boosts": "Boosts",
- "notifications.filter.favourites": "Favourites",
- "notifications.filter.follows": "Follows",
- "notifications.filter.mentions": "Mentions",
+ "notifications.filter.all": "الكل",
+ "notifications.filter.boosts": "الترقيات",
+ "notifications.filter.favourites": "المفضلة",
+ "notifications.filter.follows": "يتابِع",
+ "notifications.filter.mentions": "الإشارات",
"notifications.group": "{count} إشعارات",
"privacy.change": "إضبط خصوصية المنشور",
"privacy.direct.long": "أنشر إلى المستخدمين المشار إليهم فقط",
@@ -292,9 +295,12 @@
"search_results.statuses": "التبويقات",
"search_results.total": "{count, number} {count, plural, one {result} و {results}}",
"standalone.public_title": "نظرة على ...",
+ "status.admin_account": "افتح الواجهة الإدارية لـ @{name}",
+ "status.admin_status": "افتح هذا المنشور على واجهة الإشراف",
"status.block": "Block @{name}",
"status.cancel_reblog_private": "إلغاء الترقية",
"status.cannot_reblog": "تعذرت ترقية هذا المنشور",
+ "status.copy": "Copy link to status",
"status.delete": "إحذف",
"status.detailed_status": "تفاصيل المحادثة",
"status.direct": "رسالة خاصة إلى @{name}",
@@ -340,6 +346,7 @@
"ui.beforeunload": "سوف تفقد مسودتك إن تركت ماستدون.",
"upload_area.title": "إسحب ثم أفلت للرفع",
"upload_button.label": "إضافة وسائط (JPEG، PNG، GIF، WebM، MP4، MOV)",
+ "upload_error.limit": "File upload limit exceeded.",
"upload_form.description": "وصف للمعاقين بصريا",
"upload_form.focus": "قص",
"upload_form.undo": "حذف",
diff --git a/app/javascript/mastodon/locales/ast.json b/app/javascript/mastodon/locales/ast.json
index e38c45963..1e7ecb550 100644
--- a/app/javascript/mastodon/locales/ast.json
+++ b/app/javascript/mastodon/locales/ast.json
@@ -142,6 +142,8 @@
"hashtag.column_header.tag_mode.all": "and {additional}",
"hashtag.column_header.tag_mode.any": "or {additional}",
"hashtag.column_header.tag_mode.none": "without {additional}",
+ "hashtag.column_settings.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
"hashtag.column_settings.tag_mode.all": "All of these",
"hashtag.column_settings.tag_mode.any": "Any of these",
"hashtag.column_settings.tag_mode.none": "None of these",
@@ -204,6 +206,7 @@
"lists.account.remove": "Desaniciar de la llista",
"lists.delete": "Desaniciar la llista",
"lists.edit": "Editar la llista",
+ "lists.edit.submit": "Change title",
"lists.new.create": "Add list",
"lists.new.title_placeholder": "Títulu nuevu de la llista",
"lists.search": "Guetar ente la xente que sigues",
@@ -292,9 +295,12 @@
"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": "Dexar de compartir",
"status.cannot_reblog": "Esti artículu nun pue compartise",
+ "status.copy": "Copy link to status",
"status.delete": "Delete",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Unviar un mensaxe direutu a @{name}",
@@ -340,6 +346,7 @@
"ui.beforeunload": "El borrador va perdese si coles de Mastodon.",
"upload_area.title": "Drag & drop to upload",
"upload_button.label": "Add media",
+ "upload_error.limit": "File upload limit exceeded.",
"upload_form.description": "Descripción pa discapacitaos visuales",
"upload_form.focus": "Crop",
"upload_form.undo": "Desaniciar",
diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json
index b15e20813..9e5d46503 100644
--- a/app/javascript/mastodon/locales/bg.json
+++ b/app/javascript/mastodon/locales/bg.json
@@ -142,6 +142,8 @@
"hashtag.column_header.tag_mode.all": "and {additional}",
"hashtag.column_header.tag_mode.any": "or {additional}",
"hashtag.column_header.tag_mode.none": "without {additional}",
+ "hashtag.column_settings.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
"hashtag.column_settings.tag_mode.all": "All of these",
"hashtag.column_settings.tag_mode.any": "Any of these",
"hashtag.column_settings.tag_mode.none": "None of these",
@@ -204,6 +206,7 @@
"lists.account.remove": "Remove from list",
"lists.delete": "Delete list",
"lists.edit": "Edit list",
+ "lists.edit.submit": "Change title",
"lists.new.create": "Add list",
"lists.new.title_placeholder": "New list title",
"lists.search": "Search among people you follow",
@@ -292,9 +295,12 @@
"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.copy": "Copy link to status",
"status.delete": "Изтриване",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
@@ -340,6 +346,7 @@
"ui.beforeunload": "Your draft will be lost if you leave Mastodon.",
"upload_area.title": "Drag & drop to upload",
"upload_button.label": "Добави медия",
+ "upload_error.limit": "File upload limit exceeded.",
"upload_form.description": "Describe for the visually impaired",
"upload_form.focus": "Crop",
"upload_form.undo": "Отмяна",
diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json
index f24439312..8d1d4777b 100644
--- a/app/javascript/mastodon/locales/ca.json
+++ b/app/javascript/mastodon/locales/ca.json
@@ -8,7 +8,7 @@
"account.disclaimer_full": "La informació següent pot reflectir incompleta el perfil de l'usuari.",
"account.domain_blocked": "Domini ocult",
"account.edit_profile": "Editar el perfil",
- "account.endorse": "Característica del perfil",
+ "account.endorse": "Recomanar en el teu perfil",
"account.follow": "Segueix",
"account.followers": "Seguidors",
"account.followers.empty": "Encara ningú no segueix aquest usuari.",
@@ -132,7 +132,7 @@
"follow_request.authorize": "Autoritzar",
"follow_request.reject": "Rebutjar",
"getting_started.developers": "Desenvolupadors",
- "getting_started.directory": "Profile directory",
+ "getting_started.directory": "Directori de perfils",
"getting_started.documentation": "Documentació",
"getting_started.heading": "Començant",
"getting_started.invite": "Convida gent",
@@ -142,6 +142,8 @@
"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.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
"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",
@@ -149,23 +151,23 @@
"home.column_settings.basic": "Bàsic",
"home.column_settings.show_reblogs": "Mostrar impulsos",
"home.column_settings.show_replies": "Mostrar respostes",
- "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.action": "Següent",
+ "introduction.federation.federated.headline": "Federada",
+ "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": "Inici",
+ "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": "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.",
+ "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",
@@ -204,6 +206,7 @@
"lists.account.remove": "Treure de la llista",
"lists.delete": "Delete list",
"lists.edit": "Editar llista",
+ "lists.edit.submit": "Change title",
"lists.new.create": "Afegir llista",
"lists.new.title_placeholder": "Nova llista",
"lists.search": "Cercar entre les persones que segueixes",
@@ -242,20 +245,20 @@
"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": "Display all categories",
- "notifications.column_settings.filter_bar.category": "Quick filter bar",
- "notifications.column_settings.filter_bar.show": "Show",
+ "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": "All",
- "notifications.filter.boosts": "Boosts",
- "notifications.filter.favourites": "Favourites",
- "notifications.filter.follows": "Follows",
- "notifications.filter.mentions": "Mentions",
+ "notifications.filter.all": "Tots",
+ "notifications.filter.boosts": "Impulsos",
+ "notifications.filter.favourites": "Favorits",
+ "notifications.filter.follows": "Seguiments",
+ "notifications.filter.mentions": "Mencions",
"notifications.group": "{count} notificacions",
"privacy.change": "Ajusta l'estat de privacitat",
"privacy.direct.long": "Publicar només per als usuaris esmentats",
@@ -292,9 +295,12 @@
"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": "Obre l'interfície de moderació per a @{name}",
+ "status.admin_status": "Obre aquest estat a la interfície de moderació",
"status.block": "Block @{name}",
"status.cancel_reblog_private": "Desfer l'impuls",
"status.cannot_reblog": "Aquesta publicació no pot ser retootejada",
+ "status.copy": "Copy link to status",
"status.delete": "Esborrar",
"status.detailed_status": "Visualització detallada de la conversa",
"status.direct": "Missatge directe @{name}",
@@ -340,8 +346,9 @@
"ui.beforeunload": "El vostre esborrany es perdrà si sortiu de Mastodon.",
"upload_area.title": "Arrossega i deixa anar per carregar",
"upload_button.label": "Afegir multimèdia (JPEG, PNG, GIF, WebM, MP4, MOV)",
+ "upload_error.limit": "File upload limit exceeded.",
"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 39ca5b7ae..c308d807a 100644
--- a/app/javascript/mastodon/locales/co.json
+++ b/app/javascript/mastodon/locales/co.json
@@ -128,11 +128,11 @@
"empty_column.lists": "Ùn avete manc'una lista. Quandu farete una, sarà mustrata quì.",
"empty_column.mutes": "Per avà ùn avete manc'un utilizatore piattatu.",
"empty_column.notifications": "Ùn avete ancu nisuna nutificazione. Interact with others to start the conversation.",
- "empty_column.public": "Ùn c'hè nunda quì! Scrivete qualcosa in pubblicu o seguitate utilizatori d'altre istanze per empie a linea pubblica",
+ "empty_column.public": "Ùn c'hè nunda quì! Scrivete qualcosa in pubblicu o seguitate utilizatori d'altri servori per empie a linea pubblica",
"follow_request.authorize": "Auturizà",
"follow_request.reject": "Righjittà",
"getting_started.developers": "Sviluppatori",
- "getting_started.directory": "Profile directory",
+ "getting_started.directory": "Annuariu di i prufili",
"getting_started.documentation": "Documentation",
"getting_started.heading": "Per principià",
"getting_started.invite": "Invità ghjente",
@@ -142,30 +142,32 @@
"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.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
"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": "Include additional tags in this column",
+ "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": "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.",
+ "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",
@@ -204,6 +206,7 @@
"lists.account.remove": "Toglie di a lista",
"lists.delete": "Supprime a lista",
"lists.edit": "Mudificà a lista",
+ "lists.edit.submit": "Change title",
"lists.new.create": "Aghjustà una lista",
"lists.new.title_placeholder": "Titulu di a lista",
"lists.search": "Circà indè i vostr'abbunamenti",
@@ -224,7 +227,7 @@
"navigation_bar.favourites": "Favuriti",
"navigation_bar.filters": "Parolle silenzate",
"navigation_bar.follow_requests": "Dumande d'abbunamentu",
- "navigation_bar.info": "À prupositu di l'istanza",
+ "navigation_bar.info": "À prupositu di u servore",
"navigation_bar.keyboard_shortcuts": "Accorte cù a tastera",
"navigation_bar.lists": "Liste",
"navigation_bar.logout": "Scunnettassi",
@@ -242,20 +245,20 @@
"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": "Display all categories",
- "notifications.column_settings.filter_bar.category": "Quick filter bar",
- "notifications.column_settings.filter_bar.show": "Show",
+ "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": "All",
- "notifications.filter.boosts": "Boosts",
- "notifications.filter.favourites": "Favourites",
- "notifications.filter.follows": "Follows",
- "notifications.filter.mentions": "Mentions",
+ "notifications.filter.all": "Tuttu",
+ "notifications.filter.boosts": "Spartere",
+ "notifications.filter.favourites": "Favuriti",
+ "notifications.filter.follows": "Abbunamenti",
+ "notifications.filter.mentions": "Minzione",
"notifications.group": "{count} nutificazione",
"privacy.change": "Mudificà a cunfidenzialità di u statutu",
"privacy.direct.long": "Mandà solu à quelli chì so mintuvati",
@@ -276,7 +279,7 @@
"reply_indicator.cancel": "Annullà",
"report.forward": "Trasferisce à {target}",
"report.forward_hint": "U contu hè nant'à un'altru servore. Vulete ancu mandà una copia anonima di u signalamentu quallà?",
- "report.hint": "U signalamentu sarà mandatu à i muderatori di l'istanza. Pudete spiegà perchè avete palisatu stu contu quì sottu:",
+ "report.hint": "U signalamentu sarà mandatu à i muderatori di u servore. Pudete spiegà perchè avete palisatu stu contu quì sottu:",
"report.placeholder": "Altri cummenti",
"report.submit": "Mandà",
"report.target": "Signalamentu",
@@ -292,9 +295,12 @@
"search_results.statuses": "Statuti",
"search_results.total": "{count, number} {count, plural, one {risultatu} other {risultati}}",
"standalone.public_title": "Una vista à l'internu...",
+ "status.admin_account": "Apre l'interfaccia di muderazione per @{name}",
+ "status.admin_status": "Apre stu statutu in l'interfaccia di muderazione",
"status.block": "Bluccà @{name}",
"status.cancel_reblog_private": "Ùn sparte più",
"status.cannot_reblog": "Stu statutu ùn pò micca esse spartutu",
+ "status.copy": "Cupià ligame indè u statutu",
"status.delete": "Toglie",
"status.detailed_status": "Vista in ditagliu di a cunversazione",
"status.direct": "Mandà un missaghju @{name}",
@@ -340,8 +346,9 @@
"ui.beforeunload": "A bruttacopia sarà persa s'ellu hè chjosu Mastodon.",
"upload_area.title": "Drag & drop per caricà un fugliale",
"upload_button.label": "Aghjunghje un media (JPEG, PNG, GIF, WebM, MP4, MOV)",
+ "upload_error.limit": "Limita di caricamentu di fugliali trapassata.",
"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 49a1b09fb..d26ef8284 100644
--- a/app/javascript/mastodon/locales/cs.json
+++ b/app/javascript/mastodon/locales/cs.json
@@ -10,9 +10,9 @@
"account.edit_profile": "Upravit profil",
"account.endorse": "Představit na profilu",
"account.follow": "Sledovat",
- "account.followers": "Sledovatelé",
+ "account.followers": "Sledující",
"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}",
@@ -70,8 +70,8 @@
"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.",
- "compose_form.lock_disclaimer.lock": "zamčený",
+ "compose_form.lock_disclaimer": "Váš účet není {locked}. Kdokoliv vás může sledovat a vidět vaše příspěvky pouze pro sledující.",
+ "compose_form.lock_disclaimer.lock": "uzamčen",
"compose_form.placeholder": "Co máte na mysli?",
"compose_form.publish": "Tootnout",
"compose_form.publish_loud": "{publish}!",
@@ -88,7 +88,7 @@
"confirmations.delete_list.confirm": "Smazat",
"confirmations.delete_list.message": "Jste si jistý/á, že chcete tento seznam navždy vymazat?",
"confirmations.domain_block.confirm": "Skrýt celou doménu",
- "confirmations.domain_block.message": "Jste si opravdu, opravdu jistý/á, že chcete blokovat celou {domain}? Ve většině případů stačí zablokovat nebo ignorovat pár konkrétních uživatelů, což se doporučuje. Z této domény neuvidíte obsah v žádné veřejné časové ose ani v oznámeních. Vaši sledovatelé z této domény budou odstraněni.",
+ "confirmations.domain_block.message": "Jste si opravdu, opravdu jistý/á, že chcete blokovat celou doménu {domain}? Ve většině případů stačí zablokovat nebo ignorovat pár konkrétních uživatelů, což se doporučuje. Z této domény neuvidíte obsah v žádné veřejné časové ose ani v oznámeních. Vaši sledující z této domény budou odstraněni.",
"confirmations.mute.confirm": "Ignorovat",
"confirmations.mute.message": "Jste si jistý/á, že chcete ignorovat uživatele {name}?",
"confirmations.redraft.confirm": "Vymazat a přepsat",
@@ -105,7 +105,7 @@
"emoji_button.food": "Jídla a nápoje",
"emoji_button.label": "Vložit emoji",
"emoji_button.nature": "Příroda",
- "emoji_button.not_found": "Žádné emoji!! (╯°□°)╯︵ ┻━┻",
+ "emoji_button.not_found": "Žádná emoji!! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "Předměty",
"emoji_button.people": "Lidé",
"emoji_button.recent": "Často používané",
@@ -128,11 +128,11 @@
"empty_column.lists": "Ještě nemáte žádný seznam. Pokud nějaký vytvoříte, zobrazí se zde.",
"empty_column.mutes": "Ještě neignorujete žádné uživatele.",
"empty_column.notifications": "Ještě nemáte žádná oznámení. Začněte konverzaci komunikováním s ostatními.",
- "empty_column.public": "Tady nic není! Napište něco veřejně, nebo manuálně začněte sledovat uživatele z jiných instancí, aby tu něco přibylo",
+ "empty_column.public": "Tady nic není! Napište něco veřejně, nebo začněte ručně sledovat uživatele z jiných serverů, aby tu něco přibylo",
"follow_request.authorize": "Autorizovat",
"follow_request.reject": "Odmítnout",
"getting_started.developers": "Vývojáři",
- "getting_started.directory": "Profile directory",
+ "getting_started.directory": "Adresář profilů",
"getting_started.documentation": "Dokumentace",
"getting_started.heading": "Začínáme",
"getting_started.invite": "Pozvat lidi",
@@ -142,30 +142,32 @@
"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.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
"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",
+ "hashtag.column_settings.tag_toggle": "Zahrnout v tomto sloupci dodatečné tagy",
"home.column_settings.basic": "Základní",
"home.column_settings.show_reblogs": "Zobrazit boosty",
"home.column_settings.show_replies": "Zobrazit odpovědi",
- "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.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": "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.",
+ "introduction.interactions.reblog.text": "Boostnutím můžete sdílet tooty jiných lidí s vašimi sledujícími.",
+ "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í",
@@ -204,6 +206,7 @@
"lists.account.remove": "Odebrat ze seznamu",
"lists.delete": "Smazat seznam",
"lists.edit": "Upravit seznam",
+ "lists.edit.submit": "Change title",
"lists.new.create": "Přidat seznam",
"lists.new.title_placeholder": "Název nového seznamu",
"lists.search": "Hledejte mezi lidmi, které sledujete",
@@ -224,10 +227,10 @@
"navigation_bar.favourites": "Oblíbené",
"navigation_bar.filters": "Skrytá slova",
"navigation_bar.follow_requests": "Požadavky o sledování",
- "navigation_bar.info": "O této instanci",
+ "navigation_bar.info": "O tomto serveru",
"navigation_bar.keyboard_shortcuts": "Klávesové zkratky",
"navigation_bar.lists": "Seznamy",
- "navigation_bar.logout": "Odhlásit se",
+ "navigation_bar.logout": "Odhlásit",
"navigation_bar.mutes": "Ignorovaní uživatelé",
"navigation_bar.personal": "Osobní",
"navigation_bar.pins": "Připnuté tooty",
@@ -242,26 +245,26 @@
"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": "Display all categories",
- "notifications.column_settings.filter_bar.category": "Quick filter bar",
- "notifications.column_settings.filter_bar.show": "Show",
- "notifications.column_settings.follow": "Noví sledovatelé:",
+ "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í sledující:",
"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": "All",
- "notifications.filter.boosts": "Boosts",
- "notifications.filter.favourites": "Favourites",
- "notifications.filter.follows": "Follows",
- "notifications.filter.mentions": "Mentions",
+ "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í",
"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ý",
- "privacy.private.long": "Odeslat pouze sledovatelům",
- "privacy.private.short": "Pouze pro sledovatele",
+ "privacy.private.long": "Odeslat pouze sledujícím",
+ "privacy.private.short": "Pouze pro sledující",
"privacy.public.long": "Odeslat na veřejné časové osy",
"privacy.public.short": "Veřejný",
"privacy.unlisted.long": "Neodeslat na veřejné časové osy",
@@ -276,7 +279,7 @@
"reply_indicator.cancel": "Zrušit",
"report.forward": "Přeposlat na {target}",
"report.forward_hint": "Tento účet je z jiného serveru. Chcete na něj také poslat anonymizovanou kopii?",
- "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.hint": "Toto nahlášení bude zasláno moderátorům vašeho serveru. Níže můžete uvést, proč tento účet nahlašujete:",
"report.placeholder": "Dodatečné komentáře",
"report.submit": "Odeslat",
"report.target": "Nahlášení uživatele {target}",
@@ -292,9 +295,12 @@
"search_results.statuses": "Tooty",
"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": "Otevřít moderační rozhraní pro uživatele @{name}",
+ "status.admin_status": "Otevřít tento příspěvek v moderačním rozhraní",
"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.copy": "Kopírovat odkaz k příspěvku",
"status.delete": "Smazat",
"status.detailed_status": "Detailní zobrazení konverzace",
"status.direct": "Poslat přímou zprávu uživateli @{name}",
@@ -340,8 +346,9 @@
"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_error.limit": "Byl překročen limit nahraných souborů.",
"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 e386e7ec0..95c8632f7 100644
--- a/app/javascript/mastodon/locales/cy.json
+++ b/app/javascript/mastodon/locales/cy.json
@@ -1,5 +1,5 @@
{
- "account.add_or_remove_from_list": "Add or Remove from lists",
+ "account.add_or_remove_from_list": "Ychwanegu neu Dileu o'r rhestrau",
"account.badges.bot": "Bot",
"account.block": "Blocio @{name}",
"account.block_domain": "Cuddio popeth rhag {domain}",
@@ -17,7 +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.locked_info": "Mae'r statws preifatrwydd cyfrif hwn wedi'i osod i gloi. Mae'r perchennog yn adolygu'r sawl sy'n gallu eu dilyn.",
"account.media": "Cyfryngau",
"account.mention": "Crybwyll @{name}",
"account.moved_to": "Mae @{name} wedi symud i:",
@@ -84,7 +84,7 @@
"confirmations.block.confirm": "Blocio",
"confirmations.block.message": "Ydych chi'n sicr eich bod eisiau blocio {name}?",
"confirmations.delete.confirm": "Dileu",
- "confirmations.delete.message": "Ydych chi'n sicr eich bod eisiau dileu y statws hwn?",
+ "confirmations.delete.message": "Ydych chi'n sicr eich bod eisiau dileu y tŵt hwn?",
"confirmations.delete_list.confirm": "Dileu",
"confirmations.delete_list.message": "Ydych chi'n sicr eich bod eisiau dileu y rhestr hwn am byth?",
"confirmations.domain_block.confirm": "Cuddio parth cyfan",
@@ -92,12 +92,12 @@
"confirmations.mute.confirm": "Tawelu",
"confirmations.mute.message": "Ydych chi'n sicr eich bod am ddistewi {name}?",
"confirmations.redraft.confirm": "Dileu & ailddrafftio",
- "confirmations.redraft.message": "Ydych chi'n siwr eich bod eisiau dileu y statws hwn a'i ailddrafftio? Bydd ffefrynnau a bwstiau'n cael ei colli, a bydd ymatebion i'r statws gwreiddiol yn cael eu hamddifadu.",
+ "confirmations.redraft.message": "Ydych chi'n siwr eich bod eisiau dileu y tŵt hwn a'i ailddrafftio? Bydd ffefrynnau a bwstiau'n cael ei colli, a bydd ymatebion i'r tŵt gwreiddiol yn cael eu hamddifadu.",
"confirmations.reply.confirm": "Ateb",
"confirmations.reply.message": "Bydd ateb nawr yn cymryd lle y neges yr ydych yn cyfansoddi ar hyn o bryd. Ydych chi'n sicr yr ydych am barhau?",
"confirmations.unfollow.confirm": "Dad-ddilynwch",
"confirmations.unfollow.message": "Ydych chi'n sicr eich bod am ddad-ddilyn {name}?",
- "embed.instructions": "Mewnblannwch y statws hwn ar eich gwefan drwy gopïo'r côd isod.",
+ "embed.instructions": "Mewnblannwch y tŵt hwn ar eich gwefan drwy gopïo'r côd isod.",
"embed.preview": "Dyma sut olwg fydd arno:",
"emoji_button.activity": "Gweithgarwch",
"emoji_button.custom": "Unigryw",
@@ -132,49 +132,51 @@
"follow_request.authorize": "Caniatau",
"follow_request.reject": "Gwrthod",
"getting_started.developers": "Datblygwyr",
- "getting_started.directory": "Profile directory",
+ "getting_started.directory": "Cyfeiriadur proffil",
"getting_started.documentation": "Dogfennaeth",
"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_header.tag_mode.all": "a {additional}",
+ "hashtag.column_header.tag_mode.any": "neu {additional}",
+ "hashtag.column_header.tag_mode.none": "heb {additional}",
+ "hashtag.column_settings.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
+ "hashtag.column_settings.tag_mode.all": "Pob un o'r rhain",
+ "hashtag.column_settings.tag_mode.any": "Unrhyw un o'r rhain",
+ "hashtag.column_settings.tag_mode.none": "Dim o'r rhain",
"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.action": "Nesaf",
+ "introduction.federation.federated.headline": "Ffederasiwn",
"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.action": "Gorffen tiwtorial!",
+ "introduction.interactions.favourite.headline": "Ffefryn",
"introduction.interactions.favourite.text": "You can save a toot for later, and let the author know that you liked it, by favouriting it.",
- "introduction.interactions.reblog.headline": "Boost",
+ "introduction.interactions.reblog.headline": "Hwb",
"introduction.interactions.reblog.text": "You can share other people's toots with your followers by boosting them.",
- "introduction.interactions.reply.headline": "Reply",
+ "introduction.interactions.reply.headline": "Ateb",
"introduction.interactions.reply.text": "You can reply to other people's and your own toots, which will chain them together in a conversation.",
- "introduction.welcome.action": "Let's go!",
- "introduction.welcome.headline": "First steps",
+ "introduction.welcome.action": "Awn ni!",
+ "introduction.welcome.headline": "Camau cyntaf",
"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",
- "keyboard_shortcuts.column": "i ffocysu statws yn un o'r colofnau",
+ "keyboard_shortcuts.column": "i ffocysu tŵt yn un o'r colofnau",
"keyboard_shortcuts.compose": "i ffocysu yr ardal cyfansoddi testun",
"keyboard_shortcuts.description": "Disgrifiad",
"keyboard_shortcuts.direct": "i agor colofn negeseuon preifat",
"keyboard_shortcuts.down": "i symud lawr yn y rhestr",
- "keyboard_shortcuts.enter": "i agor statws",
+ "keyboard_shortcuts.enter": "i agor tŵt",
"keyboard_shortcuts.favourite": "i hoffi",
"keyboard_shortcuts.favourites": "i agor rhestr hoffi",
"keyboard_shortcuts.federated": "i agor ffrwd y ffederasiwn",
@@ -204,6 +206,7 @@
"lists.account.remove": "Dileu o'r rhestr",
"lists.delete": "Dileu rhestr",
"lists.edit": "Golygwch rhestr",
+ "lists.edit.submit": "Change title",
"lists.new.create": "Ychwanegu rhestr",
"lists.new.title_placeholder": "Teitl rhestr newydd",
"lists.search": "Chwilio ymysg pobl yr ydych yn ei ddilyn",
@@ -234,30 +237,30 @@
"navigation_bar.preferences": "Dewisiadau",
"navigation_bar.public_timeline": "Ffrwd y ffederasiwn",
"navigation_bar.security": "Diogelwch",
- "notification.favourite": "hoffodd {name} eich statws",
+ "notification.favourite": "hoffodd {name} eich tŵt",
"notification.follow": "dilynodd {name} chi",
"notification.mention": "Soniodd {name} amdanoch chi",
- "notification.reblog": "{name} boosted your status",
+ "notification.reblog": "Hysbysebodd {name} eich tŵt",
"notifications.clear": "Clirio hysbysiadau",
"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.filter_bar.advanced": "Dangos pob categori",
+ "notifications.column_settings.filter_bar.category": "Bar hidlo",
+ "notifications.column_settings.filter_bar.show": "Dangos",
"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.reblog": "Hybiadau:",
"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.filter.all": "Pob",
+ "notifications.filter.boosts": "Hybiadau",
+ "notifications.filter.favourites": "Ffefrynnau",
+ "notifications.filter.follows": "Yn dilyn",
+ "notifications.filter.mentions": "Crybwylliadau",
"notifications.group": "{count} o hysbysiadau",
- "privacy.change": "Addasu preifatrwdd y statws",
+ "privacy.change": "Addasu preifatrwdd y tŵt",
"privacy.direct.long": "Cyhoeddi i'r defnyddwyr sy'n cael eu crybwyll yn unig",
"privacy.direct.short": "Uniongyrchol",
"privacy.private.long": "Cyhoeddi i ddilynwyr yn unig",
@@ -284,30 +287,33 @@
"search_popout.search_format": "Fformat chwilio uwch",
"search_popout.tips.full_text": "Mae testun syml yn dychwelyd tŵtiau yr ydych wedi ysgrifennu, hoffi, wedi'u bŵstio, neu wedi'ch crybwyll ynddynt, ynghyd a chyfateb a enwau defnyddwyr, enwau arddangos ac hashnodau.",
"search_popout.tips.hashtag": "hashnod",
- "search_popout.tips.status": "statws",
+ "search_popout.tips.status": "tŵt",
"search_popout.tips.text": "Mae testun syml yn dychwelyd enwau arddangos, enwau defnyddwyr a hashnodau sy'n cyfateb",
"search_popout.tips.user": "defnyddiwr",
"search_results.accounts": "Pobl",
"search_results.hashtags": "Hanshnodau",
"search_results.statuses": "Tŵtiau",
- "search_results.total": "{count, number} {count, plural, one {result} other {results}}",
+ "search_results.total": "{count, number} {count, plural, one {result} arall {results}}",
"standalone.public_title": "Golwg tu fewn...",
+ "status.admin_account": "Open moderation interface for @{name}",
+ "status.admin_status": "Open this tŵt in the moderation interface",
"status.block": "Blocio @{name}",
"status.cancel_reblog_private": "Dadfŵstio",
"status.cannot_reblog": "Ni ellir sbarduno'r tŵt hwn",
+ "status.copy": "Copy link to status",
"status.delete": "Dileu",
"status.detailed_status": "Golwg manwl o'r sgwrs",
"status.direct": "Neges breifat @{name}",
"status.embed": "Plannu",
"status.favourite": "Hoffi",
- "status.filtered": "Filtered",
+ "status.filtered": "Wedi'i hidlo",
"status.load_more": "Llwythwch mwy",
"status.media_hidden": "Cyfryngau wedi'u cuddio",
"status.mention": "Crybwyll @{name}",
"status.more": "Mwy",
"status.mute": "Tawelu @{name}",
"status.mute_conversation": "Tawelu sgwrs",
- "status.open": "Ehangu'r statws hwn",
+ "status.open": "Ehangu'r tŵt hwn",
"status.pin": "Pinio ar y proffil",
"status.pinned": "Pinio tŵt",
"status.read_more": "Darllen mwy",
@@ -326,12 +332,12 @@
"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.show_thread": "Dangos edefyn",
"status.unmute_conversation": "Dad-dawelu sgwrs",
"status.unpin": "Dadbinio o'r proffil",
- "suggestions.dismiss": "Dismiss suggestion",
- "suggestions.header": "You might be interested in…",
- "tabs_bar.federated_timeline": "Wedi'i ffedereiddio",
+ "suggestions.dismiss": "Diswyddo",
+ "suggestions.header": "Efallai y bydd gennych ddiddordeb mewn…",
+ "tabs_bar.federated_timeline": "Ffederasiwn",
"tabs_bar.home": "Hafan",
"tabs_bar.local_timeline": "Lleol",
"tabs_bar.notifications": "Hysbysiadau",
@@ -340,8 +346,9 @@
"ui.beforeunload": "Mi fyddwch yn colli eich drafft os gadewch Mastodon.",
"upload_area.title": "Llusgwch & gollwing i uwchlwytho",
"upload_button.label": "Ychwanegwch gyfryngau (JPEG, PNG, GIF, WebM, MP4, MOV)",
+ "upload_error.limit": "File upload limit exceeded.",
"upload_form.description": "Disgrifio i'r rheini a nam ar ei golwg",
- "upload_form.focus": "Cropio",
+ "upload_form.focus": "Newid rhagolwg",
"upload_form.undo": "Dileu",
"upload_progress.label": "Uwchlwytho...",
"video.close": "Cau fideo",
diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json
index 3f350d9f9..f383f2c9c 100644
--- a/app/javascript/mastodon/locales/da.json
+++ b/app/javascript/mastodon/locales/da.json
@@ -142,6 +142,8 @@
"hashtag.column_header.tag_mode.all": "and {additional}",
"hashtag.column_header.tag_mode.any": "or {additional}",
"hashtag.column_header.tag_mode.none": "without {additional}",
+ "hashtag.column_settings.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
"hashtag.column_settings.tag_mode.all": "All of these",
"hashtag.column_settings.tag_mode.any": "Any of these",
"hashtag.column_settings.tag_mode.none": "None of these",
@@ -149,7 +151,7 @@
"home.column_settings.basic": "Grundlæggende",
"home.column_settings.show_reblogs": "Vis fremhævelser",
"home.column_settings.show_replies": "Vis svar",
- "introduction.federation.action": "Next",
+ "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",
@@ -204,6 +206,7 @@
"lists.account.remove": "Fjern fra liste",
"lists.delete": "Slet liste",
"lists.edit": "Rediger liste",
+ "lists.edit.submit": "Change title",
"lists.new.create": "Tilføj liste",
"lists.new.title_placeholder": "Ny liste titel",
"lists.search": "Søg iblandt folk du følger",
@@ -251,10 +254,10 @@
"notifications.column_settings.reblog": "Fremhævelser:",
"notifications.column_settings.show": "Vis i kolonne",
"notifications.column_settings.sound": "Afspil lyd",
- "notifications.filter.all": "All",
+ "notifications.filter.all": "Alle",
"notifications.filter.boosts": "Boosts",
- "notifications.filter.favourites": "Favourites",
- "notifications.filter.follows": "Follows",
+ "notifications.filter.favourites": "Favoritter",
+ "notifications.filter.follows": "Følger",
"notifications.filter.mentions": "Mentions",
"notifications.group": "{count} notifikationer",
"privacy.change": "Ændre status privatliv",
@@ -292,9 +295,12 @@
"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",
+ "status.copy": "Copy link to status",
"status.delete": "Slet",
"status.detailed_status": "Detaljeret visning af samtale",
"status.direct": "Send direkte besked til @{name}",
@@ -340,6 +346,7 @@
"ui.beforeunload": "Din kladde vil gå tabt hvis du forlader Mastodon.",
"upload_area.title": "Træk og slip for at uploade",
"upload_button.label": "Tilføj medie (JPEG, PNG, GIF, WebM, MP4, MOV)",
+ "upload_error.limit": "File upload limit exceeded.",
"upload_form.description": "Beskriv for de svagtseende",
"upload_form.focus": "Beskær",
"upload_form.undo": "Slet",
diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json
index 350d4d71e..18e496b0e 100644
--- a/app/javascript/mastodon/locales/de.json
+++ b/app/javascript/mastodon/locales/de.json
@@ -17,7 +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": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
+ "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:",
@@ -92,7 +92,7 @@
"confirmations.mute.confirm": "Stummschalten",
"confirmations.mute.message": "Bist du dir sicher, dass du {name} stummschalten möchtest?",
"confirmations.redraft.confirm": "Löschen und neu erstellen",
- "confirmations.redraft.message": "Bist du dir sicher, dass du diesen Status löschen und neu machen möchtest? Favoriten und Boosts werden verloren gehen und Antworten zu diesem Post werden verwaist sein.",
+ "confirmations.redraft.message": "Bist du dir sicher, dass du diesen Beitrag löschen und neu machen möchtest? Favoriten und Boosts werden verloren gehen und Antworten zu diesem Beitrag werden verwaist sein.",
"confirmations.reply.confirm": "Antworten",
"confirmations.reply.message": "Wenn du jetzt antwortest wird es die gesamte Nachricht verwerfen, die du gerade schreibst. Möchtest du wirklich fortfahren?",
"confirmations.unfollow.confirm": "Entfolgen",
@@ -128,11 +128,11 @@
"empty_column.lists": "Du hast noch keine Listen. Wenn du eine anlegst, wird sie hier angezeigt.",
"empty_column.mutes": "Du hast keine Profile stummgeschaltet.",
"empty_column.notifications": "Du hast noch keine Mitteilungen. Interagiere mit anderen, um ins Gespräch zu kommen.",
- "empty_column.public": "Hier ist nichts zu sehen! Schreibe etwas öffentlich oder folge Profilen von anderen Instanzen, um die Zeitleiste aufzufüllen",
+ "empty_column.public": "Hier ist nichts zu sehen! Schreibe etwas öffentlich oder folge Profilen von anderen Servern, um die Zeitleiste aufzufüllen",
"follow_request.authorize": "Erlauben",
"follow_request.reject": "Ablehnen",
"getting_started.developers": "Entwickler",
- "getting_started.directory": "Profile directory",
+ "getting_started.directory": "Profilverzeichnis",
"getting_started.documentation": "Dokumentation",
"getting_started.heading": "Erste Schritte",
"getting_started.invite": "Leute einladen",
@@ -142,6 +142,8 @@
"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.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
"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",
@@ -149,26 +151,26 @@
"home.column_settings.basic": "Einfach",
"home.column_settings.show_reblogs": "Geteilte Beiträge anzeigen",
"home.column_settings.show_replies": "Antworten anzeigen",
- "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.action": "Weiter",
+ "introduction.federation.federated.headline": "Föderiert",
+ "introduction.federation.federated.text": "Öffentliche Beiträge von anderen Servern im Fediverse erscheinen in der föderierten Zeitleiste.",
"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.",
+ "introduction.federation.home.text": "Beiträge von Leuten, denen du folgst, erscheinen in deiner Start-Zeitleiste. Du kannst Menschen auf beliebigen Servern folgen!",
+ "introduction.federation.local.headline": "Lokal",
+ "introduction.federation.local.text": "Öffentliche Beiträge von Leuten auf demselben Server wie du erscheinen in der lokalen Zeitleiste.",
+ "introduction.interactions.action": "Tutorial beenden!",
+ "introduction.interactions.favourite.headline": "Favorisieren",
+ "introduction.interactions.favourite.text": "Du kannst Beitrage für später speichern und ihre AutorInnen wissen lassen, dass sie dir gefallen haben, indem du sie favorisierst.",
+ "introduction.interactions.reblog.headline": "Teilen",
+ "introduction.interactions.reblog.text": "Du kannst Beiträge anderer mit deinen Followern teilen, indem du sie boostest.",
+ "introduction.interactions.reply.headline": "Antworten",
+ "introduction.interactions.reply.text": "Du kannst auf die Beiträge anderer antworten und die Beiträge werden dann in einer Unterhaltung zusammengefasst.",
+ "introduction.welcome.action": "Lass 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",
+ "keyboard_shortcuts.boost": "teilen",
"keyboard_shortcuts.column": "einen Status in einer der Spalten fokussieren",
"keyboard_shortcuts.compose": "fokussiere das Eingabefeld",
"keyboard_shortcuts.description": "Beschreibung",
@@ -204,6 +206,7 @@
"lists.account.remove": "Von der Liste entfernen",
"lists.delete": "Delete list",
"lists.edit": "Liste bearbeiten",
+ "lists.edit.submit": "Change title",
"lists.new.create": "Liste hinzufügen",
"lists.new.title_placeholder": "Neuer Titel der Liste",
"lists.search": "Suche nach Leuten denen du folgst",
@@ -224,7 +227,7 @@
"navigation_bar.favourites": "Favoriten",
"navigation_bar.filters": "Stummgeschaltene Wörter",
"navigation_bar.follow_requests": "Folgeanfragen",
- "navigation_bar.info": "Über diese Instanz",
+ "navigation_bar.info": "Über diesen Server",
"navigation_bar.keyboard_shortcuts": "Tastenkombinationen",
"navigation_bar.lists": "Listen",
"navigation_bar.logout": "Abmelden",
@@ -242,20 +245,20 @@
"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": "Display all categories",
- "notifications.column_settings.filter_bar.category": "Quick filter bar",
- "notifications.column_settings.filter_bar.show": "Show",
+ "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": "All",
- "notifications.filter.boosts": "Boosts",
- "notifications.filter.favourites": "Favourites",
- "notifications.filter.follows": "Follows",
- "notifications.filter.mentions": "Mentions",
+ "notifications.filter.all": "Alle",
+ "notifications.filter.boosts": "Erneut geteilte Beiträge",
+ "notifications.filter.favourites": "Favoriten",
+ "notifications.filter.follows": "Folgende",
+ "notifications.filter.mentions": "Erwähnungen",
"notifications.group": "{count} Benachrichtigungen",
"privacy.change": "Sichtbarkeit des Beitrags anpassen",
"privacy.direct.long": "Beitrag nur an erwähnte Profile",
@@ -276,7 +279,7 @@
"reply_indicator.cancel": "Abbrechen",
"report.forward": "An {target} weiterleiten",
"report.forward_hint": "Dieses Konto ist von einem anderen Server. Soll eine anonymisierte Kopie des Berichts auch dorthin geschickt werden?",
- "report.hint": "Der Bericht wird an die Moderatoren deiner Instanz geschickt. Du kannst hier eine Erklärung angeben, warum du dieses Konto meldest:",
+ "report.hint": "Der Bericht wird an die Moderatoren des Servers geschickt. Du kannst hier eine Erklärung angeben, warum du dieses Konto meldest:",
"report.placeholder": "Zusätzliche Kommentare",
"report.submit": "Absenden",
"report.target": "{target} melden",
@@ -292,9 +295,12 @@
"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": "Öffne Moderationsoberfläche für @{name}",
+ "status.admin_status": "Öffne diesen Status in der Moderationsoberfläche",
"status.block": "Blockiere @{name}",
"status.cancel_reblog_private": "Nicht mehr teilen",
"status.cannot_reblog": "Dieser Beitrag kann nicht geteilt werden",
+ "status.copy": "Kopiere Link zum Status",
"status.delete": "Löschen",
"status.detailed_status": "Detaillierte Ansicht der Konversation",
"status.direct": "Direktnachricht @{name}",
@@ -314,7 +320,7 @@
"status.reblog": "Teilen",
"status.reblog_private": "An das eigentliche Publikum teilen",
"status.reblogged_by": "{name} teilte",
- "status.reblogs.empty": "Diesen Beitrag hat noch niemand geboostet. Sobald es jemand tun, wird er hier angezeigt.",
+ "status.reblogs.empty": "Diesen Beitrag hat noch niemand geteilt. Sobald es jemand tut, wird die Person hier angezeigt.",
"status.redraft": "Löschen und neu erstellen",
"status.reply": "Antworten",
"status.replyAll": "Auf Thread antworten",
@@ -340,8 +346,9 @@
"ui.beforeunload": "Dein Entwurf geht verloren, wenn du Mastodon verlässt.",
"upload_area.title": "Zum Hochladen hereinziehen",
"upload_button.label": "Mediendatei hinzufügen (JPEG, PNG, GIF, WebM, MP4, MOV)",
+ "upload_error.limit": "Dateiupload-Limit erreicht.",
"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 0d66a3706..157b69847 100644
--- a/app/javascript/mastodon/locales/defaultMessages.json
+++ b/app/javascript/mastodon/locales/defaultMessages.json
@@ -12,6 +12,15 @@
],
"path": "app/javascript/mastodon/actions/alerts.json"
},
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "File upload limit exceeded.",
+ "id": "upload_error.limit"
+ }
+ ],
+ "path": "app/javascript/mastodon/actions/compose.json"
+ },
{
"descriptors": [
{
@@ -302,6 +311,18 @@
{
"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"
+ },
+ {
+ "defaultMessage": "Copy link to status",
+ "id": "status.copy"
}
],
"path": "app/javascript/mastodon/components/status_action_bar.json"
@@ -594,6 +615,10 @@
"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"
@@ -1263,7 +1288,7 @@
"id": "getting_started.security"
},
{
- "defaultMessage": "About this instance",
+ "defaultMessage": "About this server",
"id": "navigation_bar.info"
},
{
@@ -1295,6 +1320,14 @@
},
{
"descriptors": [
+ {
+ "defaultMessage": "Enter hashtags…",
+ "id": "hashtag.column_settings.select.placeholder"
+ },
+ {
+ "defaultMessage": "No suggestions found",
+ "id": "hashtag.column_settings.select.no_options_message"
+ },
{
"defaultMessage": "Any of these",
"id": "hashtag.column_settings.tag_mode.any"
@@ -1436,7 +1469,7 @@
"id": "introduction.interactions.favourite.text"
},
{
- "defaultMessage": "Finish tutorial!",
+ "defaultMessage": "Finish toot-orial!",
"id": "introduction.interactions.action"
}
],
@@ -1597,6 +1630,15 @@
],
"path": "app/javascript/mastodon/features/list_editor/components/account.json"
},
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "Change title",
+ "id": "lists.edit.submit"
+ }
+ ],
+ "path": "app/javascript/mastodon/features/list_editor/components/edit_list_form.json"
+ },
{
"descriptors": [
{
@@ -1816,7 +1858,7 @@
"id": "column.public"
},
{
- "defaultMessage": "There is nothing here! Write something publicly, or manually follow users from other instances to fill it up",
+ "defaultMessage": "There is nothing here! Write something publicly, or manually follow users from other servers to fill it up",
"id": "empty_column.public"
}
],
@@ -1926,10 +1968,59 @@
{
"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"
+ },
+ {
+ "defaultMessage": "Copy link to status",
+ "id": "status.copy"
}
],
"path": "app/javascript/mastodon/features/status/components/action_bar.json"
},
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "Delete",
+ "id": "confirmations.delete.confirm"
+ },
+ {
+ "defaultMessage": "Are you sure you want to delete this status?",
+ "id": "confirmations.delete.message"
+ },
+ {
+ "defaultMessage": "Delete & redraft",
+ "id": "confirmations.redraft.confirm"
+ },
+ {
+ "defaultMessage": "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.",
+ "id": "confirmations.redraft.message"
+ },
+ {
+ "defaultMessage": "Block",
+ "id": "confirmations.block.confirm"
+ },
+ {
+ "defaultMessage": "Reply",
+ "id": "confirmations.reply.confirm"
+ },
+ {
+ "defaultMessage": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
+ "id": "confirmations.reply.message"
+ },
+ {
+ "defaultMessage": "Are you sure you want to block {name}?",
+ "id": "confirmations.block.message"
+ }
+ ],
+ "path": "app/javascript/mastodon/features/status/containers/detailed_status_container.json"
+ },
{
"descriptors": [
{
@@ -2118,7 +2209,7 @@
"id": "report.target"
},
{
- "defaultMessage": "The report will be sent to your instance moderators. You can provide an explanation of why you are reporting this account below:",
+ "defaultMessage": "The report will be sent to your server moderators. You can provide an explanation of why you are reporting this account below:",
"id": "report.hint"
},
{
diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json
index e46318f18..a36f41ce5 100644
--- a/app/javascript/mastodon/locales/el.json
+++ b/app/javascript/mastodon/locales/el.json
@@ -7,7 +7,7 @@
"account.direct": "Προσωπικό μήνυμα προς @{name}",
"account.disclaimer_full": "Οι παρακάτω πληροφορίες μπορει να μην αντανακλούν το προφίλ του χρήστη επαρκως.",
"account.domain_blocked": "Κρυμμένος τομέας",
- "account.edit_profile": "Επεξεργάσου το προφίλ",
+ "account.edit_profile": "Επεξεργασία προφίλ",
"account.endorse": "Προβολή στο προφίλ",
"account.follow": "Ακολούθησε",
"account.followers": "Ακόλουθοι",
@@ -128,11 +128,11 @@
"empty_column.lists": "Δεν έχεις καμία λίστα ακόμα. Μόλις φτιάξεις μια, θα εμφανιστεί εδώ.",
"empty_column.mutes": "Δεν έχεις αποσιωπήσει κανένα χρήστη ακόμα.",
"empty_column.notifications": "Δεν έχεις ειδοποιήσεις ακόμα. Αλληλεπίδρασε με άλλους χρήστες για να ξεκινήσεις την κουβέντα.",
- "empty_column.public": "Δεν υπάρχει τίποτα εδώ! Γράψε κάτι δημόσιο, ή ακολούθησε χειροκίνητα χρήστες από άλλα instances για να τη γεμίσεις",
+ "empty_column.public": "Δεν υπάρχει τίποτα εδώ! Γράψε κάτι δημόσιο, ή ακολούθησε χειροκίνητα χρήστες από άλλους κόμβους για να τη γεμίσεις",
"follow_request.authorize": "Ενέκρινε",
"follow_request.reject": "Απέρριψε",
"getting_started.developers": "Ανάπτυξη",
- "getting_started.directory": "Profile directory",
+ "getting_started.directory": "Κατάλογος λογαριασμών",
"getting_started.documentation": "Τεκμηρίωση",
"getting_started.heading": "Αφετηρία",
"getting_started.invite": "Προσκάλεσε κόσμο",
@@ -142,30 +142,32 @@
"hashtag.column_header.tag_mode.all": "και {additional}",
"hashtag.column_header.tag_mode.any": "ή {additional}",
"hashtag.column_header.tag_mode.none": "χωρίς {additional}",
+ "hashtag.column_settings.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
"hashtag.column_settings.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",
+ "hashtag.column_settings.tag_toggle": "Προσθήκη επιπλέον ταμπελών για την κολώνα",
"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.",
+ "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": "προώθηση",
@@ -204,6 +206,7 @@
"lists.account.remove": "Βγάλε από τη λίστα",
"lists.delete": "Διαγραφή λίστας",
"lists.edit": "Επεξεργασία λίστας",
+ "lists.edit.submit": "Change title",
"lists.new.create": "Προσθήκη λίστας",
"lists.new.title_placeholder": "Τίτλος νέας λίστα",
"lists.search": "Αναζήτησε μεταξύ των ανθρώπων που ακουλουθείς",
@@ -242,20 +245,20 @@
"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.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": "All",
- "notifications.filter.boosts": "Boosts",
- "notifications.filter.favourites": "Favourites",
- "notifications.filter.follows": "Follows",
- "notifications.filter.mentions": "Mentions",
+ "notifications.filter.all": "Όλες",
+ "notifications.filter.boosts": "Προωθήσεις",
+ "notifications.filter.favourites": "Αγαπημένα",
+ "notifications.filter.follows": "Ακόλουθοι",
+ "notifications.filter.mentions": "Αναφορές",
"notifications.group": "{count} ειδοποιήσεις",
"privacy.change": "Προσαρμογή ιδιωτικότητας δημοσίευσης",
"privacy.direct.long": "Δημοσίευση μόνο σε όσους και όσες αναφέρονται",
@@ -276,7 +279,7 @@
"reply_indicator.cancel": "Άκυρο",
"report.forward": "Προώθηση προς {target}",
"report.forward_hint": "Ο λογαριασμός είναι από διαφορετικό διακομιστή. Να σταλεί ανώνυμο αντίγραφο της καταγγελίας κι εκεί;",
- "report.hint": "Η καταγγελία θα σταλεί στους διαχειριστές του κόμβου σου. Μπορείς να περιγράψεις γιατί καταγγέλεις το λογαριασμό παρακάτω:",
+ "report.hint": "Η καταγγελία θα σταλεί στους διαχειριστές του κόμβου σου. Μπορείς να περιγράψεις γιατί καταγγέλεις αυτόν το λογαριασμό παρακάτω:",
"report.placeholder": "Επιπλέον σχόλια",
"report.submit": "Υποβολή",
"report.target": "Καταγγελία {target}",
@@ -290,11 +293,14 @@
"search_results.accounts": "Άνθρωποι",
"search_results.hashtags": "Ταμπέλες",
"search_results.statuses": "Τουτ",
- "search_results.total": "{count, number} {count, plural, ένα {result} υπόλοιπα {results}}",
+ "search_results.total": "{count, number} {count, plural, zero {αποτελέσματα} one {αποτέλεσμα} other {αποτελέσματα}}",
"standalone.public_title": "Μια πρώτη γεύση...",
+ "status.admin_account": "Άνοιγμα λειτουργίας διαμεσολάβησης για τον/την @{name}",
+ "status.admin_status": "Άνοιγμα αυτής της δημοσίευσης στη λειτουργία διαμεσολάβησης",
"status.block": "Αποκλεισμός @{name}",
"status.cancel_reblog_private": "Ακύρωσε την προώθηση",
"status.cannot_reblog": "Αυτή η δημοσίευση δεν μπορεί να προωθηθεί",
+ "status.copy": "Αντιγραφή συνδέσμου της δημοσίευσης",
"status.delete": "Διαγραφή",
"status.detailed_status": "Προβολή λεπτομερειών συζήτησης",
"status.direct": "Προσωπικό μήνυμα προς @{name}",
@@ -340,8 +346,9 @@
"ui.beforeunload": "Το προσχέδιό σου θα χαθεί αν φύγεις από το Mastodon.",
"upload_area.title": "Drag & drop για να ανεβάσεις",
"upload_button.label": "Πρόσθεσε πολυμέσα (JPEG, PNG, GIF, WebM, MP4, MOV)",
+ "upload_error.limit": "Υπέρβαση ορίου μεγέθους ανεβασμένων αρχείων.",
"upload_form.description": "Περιέγραψε για όσους & όσες έχουν προβλήματα όρασης",
- "upload_form.focus": "Περικοπή",
+ "upload_form.focus": "Αλλαγή προεπισκόπησης",
"upload_form.undo": "Διαγραφή",
"upload_progress.label": "Ανεβαίνει...",
"video.close": "Κλείσε το βίντεο",
diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json
index 1e57b1c8a..7f7abf372 100644
--- a/app/javascript/mastodon/locales/en.json
+++ b/app/javascript/mastodon/locales/en.json
@@ -128,7 +128,7 @@
"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",
+ "empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other servers to fill it up",
"follow_request.authorize": "Authorize",
"follow_request.reject": "Reject",
"getting_started.developers": "Developers",
@@ -142,6 +142,8 @@
"hashtag.column_header.tag_mode.all": "and {additional}",
"hashtag.column_header.tag_mode.any": "or {additional}",
"hashtag.column_header.tag_mode.none": "without {additional}",
+ "hashtag.column_settings.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
"hashtag.column_settings.tag_mode.all": "All of these",
"hashtag.column_settings.tag_mode.any": "Any of these",
"hashtag.column_settings.tag_mode.none": "None of these",
@@ -204,6 +206,7 @@
"lists.account.remove": "Remove from list",
"lists.delete": "Delete list",
"lists.edit": "Edit list",
+ "lists.edit.submit": "Change title",
"lists.new.create": "Add list",
"lists.new.title_placeholder": "New list title",
"lists.search": "Search among people you follow",
@@ -224,7 +227,7 @@
"navigation_bar.favourites": "Favourites",
"navigation_bar.filters": "Muted words",
"navigation_bar.follow_requests": "Follow requests",
- "navigation_bar.info": "About this instance",
+ "navigation_bar.info": "About this server",
"navigation_bar.keyboard_shortcuts": "Hotkeys",
"navigation_bar.lists": "Lists",
"navigation_bar.logout": "Logout",
@@ -276,7 +279,7 @@
"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.hint": "The report will be sent to your server moderators. You can provide an explanation of why you are reporting this account below:",
"report.placeholder": "Additional comments",
"report.submit": "Submit",
"report.target": "Reporting {target}",
@@ -292,9 +295,12 @@
"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.copy": "Copy link to status",
"status.delete": "Delete",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
@@ -340,8 +346,9 @@
"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_error.limit": "File upload limit exceeded.",
"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 cfeec70b4..f8d427c80 100644
--- a/app/javascript/mastodon/locales/eo.json
+++ b/app/javascript/mastodon/locales/eo.json
@@ -11,13 +11,13 @@
"account.endorse": "Montri en profilo",
"account.follow": "Sekvi",
"account.followers": "Sekvantoj",
- "account.followers.empty": "Neniu ankoraŭ sekvas ĉi tiun uzanton.",
+ "account.followers.empty": "Ankoraŭ neniu sekvas tiun uzanton.",
"account.follows": "Sekvatoj",
- "account.follows.empty": "Ĉi tiu uzanto ne ankoraŭ sekvas iun.",
+ "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": "Proprieto de ĉi tiu ligilo estis kontrolita je {date}",
- "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
+ "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:",
@@ -92,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? Ĉiuj diskonigoj kaj stelumoj estos perditaj, kaj respondoj al la originala mesaĝo estos orfigitaj.",
+ "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 ke vi aktuale skribas. Ĉu vi certas ke vi volas daŭrigi?",
+ "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.",
@@ -114,34 +114,36 @@
"emoji_button.symbols": "Simboloj",
"emoji_button.travel": "Vojaĝoj kaj lokoj",
"empty_column.account_timeline": "Neniu mesaĝo ĉi tie!",
- "empty_column.blocks": "Vi ne ankoraŭ blokis iun uzanton.",
+ "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": "Ankoraŭ estas neniu domajno blokita.",
- "empty_column.favourited_statuses": "Vi ne ankoraŭ havas iun stelumitan mesaĝon. Kiam vi stelumos iun, tiu aperos ĉi tie.",
- "empty_column.favourites": "Neniu ankoraŭ stelumis ĉi tiun mesaĝon. Kiam iu faros ĝin, tiu aperos ĉi tie.",
+ "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.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",
+ "empty_column.public": "Estas nenio ĉi tie! Publike skribu ion, aŭ mane sekvu uzantojn de aliaj serviloj por plenigi la publikan tempolinion",
"follow_request.authorize": "Rajtigi",
"follow_request.reject": "Rifuzi",
"getting_started.developers": "Programistoj",
- "getting_started.directory": "Profile directory",
+ "getting_started.directory": "Profilujo",
"getting_started.documentation": "Dokumentado",
"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": "and {additional}",
- "hashtag.column_header.tag_mode.any": "or {additional}",
- "hashtag.column_header.tag_mode.none": "without {additional}",
+ "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.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
"hashtag.column_settings.tag_mode.all": "Ĉiuj",
"hashtag.column_settings.tag_mode.any": "Iu ajn",
"hashtag.column_settings.tag_mode.none": "Neniu",
@@ -149,23 +151,23 @@
"home.column_settings.basic": "Bazaj agordoj",
"home.column_settings.show_reblogs": "Montri diskonigojn",
"home.column_settings.show_replies": "Montri respondojn",
- "introduction.federation.action": "Next",
+ "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.federated.text": "Publikaj mesaĝoj el aliaj serviloj de la Fediverse aperos en la fratara tempolinio.",
"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.home.text": "Mesaĝoj de homoj, kiujn vi sekvas, aperos en via hejma fluo. Vi povas sekvi iun ajn de ajna servilo!",
"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.",
+ "introduction.federation.local.text": "Publikaj mesaĝoj de homoj de via servilo aperos en la loka tempolinio.",
+ "introduction.interactions.action": "Fini la lernilon!",
+ "introduction.interactions.favourite.headline": "Stelumi",
+ "introduction.interactions.favourite.text": "Vi povas konservi mesaĝon por posta uzo, kaj sciigi al ĝia aŭtoro ke vi ŝatis ĝin, per stelumo.",
+ "introduction.interactions.reblog.headline": "Diskonigi",
+ "introduction.interactions.reblog.text": "Vi povas diskonigi mesaĝojn al viaj sekvantoj per diskonigo.",
+ "introduction.interactions.reply.headline": "Respondi",
+ "introduction.interactions.reply.text": "Vi povas respondi al mesaĝoj aliulaj kaj viaj, kio kreos ĉenon de mesaĝoj nomata konversacio.",
+ "introduction.welcome.action": "Ek!",
+ "introduction.welcome.headline": "Unuaj paŝoj",
+ "introduction.welcome.text": "Bonvenon en Fediverse! Tre baldaŭ, vi povos disdoni mesaĝojn kaj paroli al viaj amikoj tra granda servila diverseco. Sed ĉi tiu servilo, {domain}, estas speciala: ĝi enhavas vian profilon, do memoru ĝian nomon.",
"keyboard_shortcuts.back": "por reveni",
"keyboard_shortcuts.blocked": "por malfermi la liston de blokitaj uzantoj",
"keyboard_shortcuts.boost": "por diskonigi",
@@ -204,6 +206,7 @@
"lists.account.remove": "Forigi de la listo",
"lists.delete": "Forigi la liston",
"lists.edit": "Redakti la liston",
+ "lists.edit.submit": "Change title",
"lists.new.create": "Aldoni liston",
"lists.new.title_placeholder": "Titolo de la nova listo",
"lists.search": "Serĉi inter la homoj, kiujn vi sekvas",
@@ -216,7 +219,7 @@
"navigation_bar.apps": "Telefonaj aplikaĵoj",
"navigation_bar.blocks": "Blokitaj uzantoj",
"navigation_bar.community_timeline": "Loka tempolinio",
- "navigation_bar.compose": "Redakti novan mesaĝon",
+ "navigation_bar.compose": "Skribi novan mesaĝon",
"navigation_bar.direct": "Rektaj mesaĝoj",
"navigation_bar.discover": "Esplori",
"navigation_bar.domain_blocks": "Kaŝitaj domajnoj",
@@ -224,7 +227,7 @@
"navigation_bar.favourites": "Stelumoj",
"navigation_bar.filters": "Silentigitaj vortoj",
"navigation_bar.follow_requests": "Petoj de sekvado",
- "navigation_bar.info": "Pri ĉi tiu nodo",
+ "navigation_bar.info": "Pri ĉi tiu servilo",
"navigation_bar.keyboard_shortcuts": "Rapidklavoj",
"navigation_bar.lists": "Listoj",
"navigation_bar.logout": "Elsaluti",
@@ -242,20 +245,20 @@
"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.filter_bar.advanced": "Montri ĉiujn kategoriojn",
+ "notifications.column_settings.filter_bar.category": "Rapida filtra breto",
+ "notifications.column_settings.filter_bar.show": "Montri",
"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.filter.all": "Ĉiuj",
+ "notifications.filter.boosts": "Diskonigoj",
+ "notifications.filter.favourites": "Stelumoj",
+ "notifications.filter.follows": "Sekvoj",
+ "notifications.filter.mentions": "Mencioj",
"notifications.group": "{count} sciigoj",
"privacy.change": "Agordi mesaĝan privatecon",
"privacy.direct.long": "Afiŝi nur al menciitaj uzantoj",
@@ -276,7 +279,7 @@
"reply_indicator.cancel": "Nuligi",
"report.forward": "Plusendi al {target}",
"report.forward_hint": "La konto estas en alia servilo. Ĉu sendi sennomigitan kopion de la signalo ankaŭ tien?",
- "report.hint": "La signalo estos sendita al la kontrolantoj de via nodo. Vi povas doni klarigon pri kial vi signalas ĉi tiun konton sube:",
+ "report.hint": "La signalo estos sendita al la kontrolantoj de via servilo. Vi povas doni klarigon pri kial vi signalas ĉi tiun konton sube:",
"report.placeholder": "Pliaj komentoj",
"report.submit": "Sendi",
"report.target": "Signali {target}",
@@ -292,9 +295,12 @@
"search_results.statuses": "Mesaĝoj",
"search_results.total": "{count, number} {count, plural, one {rezulto} other {rezultoj}}",
"standalone.public_title": "Enrigardo…",
+ "status.admin_account": "Malfermi la kontrolan interfacon por @{name}",
+ "status.admin_status": "Malfermi ĉi tiun mesaĝon en la kontrola interfaco",
"status.block": "Bloki @{name}",
"status.cancel_reblog_private": "Eksdiskonigi",
"status.cannot_reblog": "Ĉi tiu mesaĝo ne diskonigeblas",
+ "status.copy": "Kopii la ligilon al la mesaĝo",
"status.delete": "Forigi",
"status.detailed_status": "Detala konversacia vido",
"status.direct": "Rekte mesaĝi @{name}",
@@ -314,7 +320,7 @@
"status.reblog": "Diskonigi",
"status.reblog_private": "Diskonigi al la originala atentaro",
"status.reblogged_by": "{name} diskonigis",
- "status.reblogs.empty": "Neniu ankoraŭ diskonigis ĉi tiun mesaĝon. Kiam iu faris ĝin, tiu aperos ĉi tie.",
+ "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",
@@ -326,8 +332,8 @@
"status.show_less_all": "Malgrandigi ĉiujn",
"status.show_more": "Grandigi",
"status.show_more_all": "Grandigi ĉiujn",
- "status.show_thread": "Montri fadenon",
- "status.unmute_conversation": "Malsilentigi konversacion",
+ "status.show_thread": "Montri la fadenon",
+ "status.unmute_conversation": "Malsilentigi la konversacion",
"status.unpin": "Depingli de profilo",
"suggestions.dismiss": "Forigi la proponon",
"suggestions.header": "Vi povus interesiĝi pri…",
@@ -340,8 +346,9 @@
"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 (JPEG, PNG, GIF, WebM, MP4, MOV)",
+ "upload_error.limit": "Limo de dosiera alŝutado transpasita.",
"upload_form.description": "Priskribi por misvidantaj homoj",
- "upload_form.focus": "Stuci",
+ "upload_form.focus": "Antaŭvido de ŝanĝo",
"upload_form.undo": "Forigi",
"upload_progress.label": "Alŝutado…",
"video.close": "Fermi videon",
diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json
index e3c267b40..99dce8ffe 100644
--- a/app/javascript/mastodon/locales/es.json
+++ b/app/javascript/mastodon/locales/es.json
@@ -142,6 +142,8 @@
"hashtag.column_header.tag_mode.all": "and {additional}",
"hashtag.column_header.tag_mode.any": "or {additional}",
"hashtag.column_header.tag_mode.none": "without {additional}",
+ "hashtag.column_settings.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
"hashtag.column_settings.tag_mode.all": "All of these",
"hashtag.column_settings.tag_mode.any": "Any of these",
"hashtag.column_settings.tag_mode.none": "None of these",
@@ -204,6 +206,7 @@
"lists.account.remove": "Quitar de lista",
"lists.delete": "Delete list",
"lists.edit": "Editar lista",
+ "lists.edit.submit": "Change title",
"lists.new.create": "Añadir lista",
"lists.new.title_placeholder": "Título de la nueva lista",
"lists.search": "Buscar entre la gente a la que sigues",
@@ -292,9 +295,12 @@
"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",
+ "status.copy": "Copy link to status",
"status.delete": "Borrar",
"status.detailed_status": "Vista de conversación detallada",
"status.direct": "Mensaje directo a @{name}",
@@ -340,6 +346,7 @@
"ui.beforeunload": "Tu borrador se perderá si sales de Mastodon.",
"upload_area.title": "Arrastra y suelta para subir",
"upload_button.label": "Subir multimedia (JPEG, PNG, GIF, WebM, MP4, MOV)",
+ "upload_error.limit": "File upload limit exceeded.",
"upload_form.description": "Describir para los usuarios con dificultad visual",
"upload_form.focus": "Recortar",
"upload_form.undo": "Borrar",
diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json
index b882ae2a7..63a2354ae 100644
--- a/app/javascript/mastodon/locales/eu.json
+++ b/app/javascript/mastodon/locales/eu.json
@@ -128,11 +128,11 @@
"empty_column.lists": "Ez duzu zerrendarik oraindik. Baten bat sortzen duzunean hemen agertuko da.",
"empty_column.mutes": "Ez duzu erabiltzailerik mututu oraindik.",
"empty_column.notifications": "Ez duzu jakinarazpenik oraindik. Jarri besteekin harremanetan elkarrizketa abiatzeko.",
- "empty_column.public": "Ez dago ezer hemen! Idatzi zerbait publikoki edo jarraitu eskuz beste instantzia batzuetako erabiltzailean hau betetzeko",
+ "empty_column.public": "Ez dago ezer hemen! Idatzi zerbait publikoki edo jarraitu eskuz beste zerbitzari batzuetako erabiltzaileak hau betetzen joateko",
"follow_request.authorize": "Baimendu",
"follow_request.reject": "Ukatu",
"getting_started.developers": "Garatzaileak",
- "getting_started.directory": "Profile directory",
+ "getting_started.directory": "Profil-direktorioa",
"getting_started.documentation": "Dokumentazioa",
"getting_started.heading": "Menua",
"getting_started.invite": "Gonbidatu jendea",
@@ -142,6 +142,8 @@
"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.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
"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",
@@ -149,23 +151,23 @@
"home.column_settings.basic": "Oinarrizkoa",
"home.column_settings.show_reblogs": "Erakutsi bultzadak",
"home.column_settings.show_replies": "Erakutsi erantzunak",
- "introduction.federation.action": "Next",
+ "introduction.federation.action": "Hurrengoa",
"introduction.federation.federated.headline": "Federated",
- "introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
+ "introduction.federation.federated.text": "Fedibertsoko beste zerbitzarietako bidalketa publikoak federatutako denbora-lerroan agertuko dira.",
"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.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": "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.",
+ "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",
@@ -204,6 +206,7 @@
"lists.account.remove": "Kendu zerrendatik",
"lists.delete": "Ezabatu zerrenda",
"lists.edit": "Editatu zerrenda",
+ "lists.edit.submit": "Change title",
"lists.new.create": "Gehitu zerrenda",
"lists.new.title_placeholder": "Zerrenda berriaren izena",
"lists.search": "Bilatu jarraitzen dituzun pertsonen artean",
@@ -224,7 +227,7 @@
"navigation_bar.favourites": "Gogokoak",
"navigation_bar.filters": "Mutututako hitzak",
"navigation_bar.follow_requests": "Jarraitzeko eskariak",
- "navigation_bar.info": "Instantzia honi buruz",
+ "navigation_bar.info": "Zerbitzari honi buruz",
"navigation_bar.keyboard_shortcuts": "Laster-teklak",
"navigation_bar.lists": "Zerrendak",
"navigation_bar.logout": "Amaitu saioa",
@@ -242,20 +245,20 @@
"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": "Display all categories",
- "notifications.column_settings.filter_bar.category": "Quick filter bar",
- "notifications.column_settings.filter_bar.show": "Show",
+ "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": "All",
- "notifications.filter.boosts": "Boosts",
- "notifications.filter.favourites": "Favourites",
- "notifications.filter.follows": "Follows",
- "notifications.filter.mentions": "Mentions",
+ "notifications.filter.all": "Denak",
+ "notifications.filter.boosts": "Bultzadak",
+ "notifications.filter.favourites": "Gogokoak",
+ "notifications.filter.follows": "Jarraipenak",
+ "notifications.filter.mentions": "Aipamenak",
"notifications.group": "{count} jakinarazpen",
"privacy.change": "Doitu mezuaren pribatutasuna",
"privacy.direct.long": "Bidali aipatutako erabiltzaileei besterik ez",
@@ -276,7 +279,7 @@
"reply_indicator.cancel": "Utzi",
"report.forward": "Birbidali hona: {target}",
"report.forward_hint": "Kontu hau beste zerbitzari batekoa da. Bidali txostenaren kopia anonimo hara ere?",
- "report.hint": "Txostena zure instantziaren moderatzaileei bidaliko zaio. Kontu hau zergatik salatzen duzun behean azaldu dezakezu:",
+ "report.hint": "Txostena zure zerbitzariaren moderatzaileei bidaliko zaie. Kontu hau zergatik salatzen duzun behean azaldu dezakezu:",
"report.placeholder": "Iruzkin gehigarriak",
"report.submit": "Submit",
"report.target": "{target} salatzen",
@@ -292,9 +295,12 @@
"search_results.statuses": "Toot-ak",
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
"standalone.public_title": "Begiradatxo bat...",
+ "status.admin_account": "Ireki @{name} erabiltzailearen moderazio interfazea",
+ "status.admin_status": "Ireki mezu hau moderazio interfazean",
"status.block": "Block @{name}",
"status.cancel_reblog_private": "Kendu bultzada",
"status.cannot_reblog": "Mezu honi ezin zaio bultzada eman",
+ "status.copy": "Kopiatu mezuaren esteka",
"status.delete": "Ezabatu",
"status.detailed_status": "Elkarrizketaren ikuspegi xehetsua",
"status.direct": "Mezu zuzena @{name}(r)i",
@@ -340,8 +346,9 @@
"ui.beforeunload": "Zure zirriborroa galduko da Mastodon uzten baduzu.",
"upload_area.title": "Arrastatu eta jaregin igotzeko",
"upload_button.label": "Gehitu multimedia (JPEG, PNG, GIF, WebM, MP4, MOV)",
+ "upload_error.limit": "Fitxategi igoera muga gaindituta.",
"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 e2790d8b6..f2f144e78 100644
--- a/app/javascript/mastodon/locales/fa.json
+++ b/app/javascript/mastodon/locales/fa.json
@@ -1,5 +1,5 @@
{
- "account.add_or_remove_from_list": "Add or Remove from lists",
+ "account.add_or_remove_from_list": "افزودن یا برداشتن از فهرست",
"account.badges.bot": "ربات",
"account.block": "مسدودسازی @{name}",
"account.block_domain": "پنهانسازی همه چیز از سرور {domain}",
@@ -17,7 +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.locked_info": "این حساب خصوصی است. صاحب این حساب تصمیم میگیرد که چه کسی میتواند پیگیرش باشد.",
"account.media": "عکس و ویدیو",
"account.mention": "نامبردن از @{name}",
"account.moved_to": "{name} منتقل شده است به:",
@@ -113,7 +113,7 @@
"emoji_button.search_results": "نتایج جستجو",
"emoji_button.symbols": "نمادها",
"emoji_button.travel": "سفر و مکان",
- "empty_column.account_timeline": "No toots here!",
+ "empty_column.account_timeline": "هیچ بوقی اینجا نیست!",
"empty_column.blocks": "شما هنوز هیچ کسی را مسدود نکردهاید.",
"empty_column.community": "فهرست نوشتههای محلی خالی است. چیزی بنویسید تا چرخش بچرخد!",
"empty_column.direct": "شما هیچ پیغام مستقیمی ندارید. اگر چنین پیغامی بگیرید یا بفرستید اینجا نمایش خواهد یافت.",
@@ -128,44 +128,46 @@
"empty_column.lists": "شما هنوز هیچ فهرستی ندارید. اگر فهرستی بسازید، اینجا نمایش خواهد یافت.",
"empty_column.mutes": "شما هنوز هیچ کاربری را بیصدا نکردهاید.",
"empty_column.notifications": "هنوز هیچ اعلانی ندارید. به نوشتههای دیگران واکنش نشان دهید تا گفتگو آغاز شود.",
- "empty_column.public": "اینجا هنوز چیزی نیست! خودتان چیزی بنویسید یا کاربران دیگر را پی بگیرید تا اینجا پر شود",
+ "empty_column.public": "اینجا هنوز چیزی نیست! خودتان چیزی بنویسید یا کاربران سرورهای دیگر را پی بگیرید تا اینجا پر شود",
"follow_request.authorize": "اجازه دهید",
"follow_request.reject": "اجازه ندهید",
"getting_started.developers": "برای برنامهنویسان",
- "getting_started.directory": "Profile directory",
+ "getting_started.directory": "فهرست گزیدهٔ کاربران",
"getting_started.documentation": "راهنما",
"getting_started.heading": "آغاز کنید",
"getting_started.invite": "دعوت از دوستان",
"getting_started.open_source_notice": "ماستدون یک نرمافزار آزاد است. میتوانید در ساخت آن مشارکت کنید یا مشکلاتش را در {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",
+ "hashtag.column_header.tag_mode.all": "و {additional}",
+ "hashtag.column_header.tag_mode.any": "یا {additional}",
+ "hashtag.column_header.tag_mode.none": "بدون {additional}",
+ "hashtag.column_settings.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
+ "hashtag.column_settings.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": "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.",
+ "introduction.federation.action": "بعدی",
+ "introduction.federation.federated.headline": "فهرست همهٔ سرورها",
+ "introduction.federation.federated.text": "نوشتههای عمومی سرورهای دیگر در این فهرست نمایش مییابند.",
+ "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": "به دنیای شبکههای اجتماعی غیرمتمرکز خوش آمدید! به زودی میتوانید نوشتههای خودتان را منتشر کنید و با دوستانتان که روی سرورهای مختلفی هستند حرف بزنید. ولی این سرور، {domain}، با بقیه فرق دارد زیرا حساب شما روی آن ساخته شده است، پس نامش را یادتان نگه دارید.",
"keyboard_shortcuts.back": "برای بازگشت",
"keyboard_shortcuts.blocked": "برای گشودن کاربران بیصداشده",
"keyboard_shortcuts.boost": "برای بازبوقیدن",
@@ -204,6 +206,7 @@
"lists.account.remove": "پاککردن از فهرست",
"lists.delete": "حذف فهرست",
"lists.edit": "ویرایش فهرست",
+ "lists.edit.submit": "Change title",
"lists.new.create": "افزودن فهرست",
"lists.new.title_placeholder": "نام فهرست تازه",
"lists.search": "بین کسانی که پی میگیرید بگردید",
@@ -224,7 +227,7 @@
"navigation_bar.favourites": "پسندیدهها",
"navigation_bar.filters": "واژگان بیصداشده",
"navigation_bar.follow_requests": "درخواستهای پیگیری",
- "navigation_bar.info": "اطلاعات تکمیلی",
+ "navigation_bar.info": "دربارهٔ این سرور",
"navigation_bar.keyboard_shortcuts": "میانبرهای صفحهکلید",
"navigation_bar.lists": "فهرستها",
"navigation_bar.logout": "خروج",
@@ -242,20 +245,20 @@
"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.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": "All",
- "notifications.filter.boosts": "Boosts",
- "notifications.filter.favourites": "Favourites",
- "notifications.filter.follows": "Follows",
- "notifications.filter.mentions": "Mentions",
+ "notifications.filter.all": "همه",
+ "notifications.filter.boosts": "بازبوقها",
+ "notifications.filter.favourites": "پسندیدهها",
+ "notifications.filter.follows": "پیگیریها",
+ "notifications.filter.mentions": "نامبردنها",
"notifications.group": "{count} اعلان",
"privacy.change": "تنظیم حریم خصوصی نوشتهها",
"privacy.direct.long": "تنها به کاربران نامبردهشده نشان بده",
@@ -292,9 +295,12 @@
"search_results.statuses": "بوقها",
"search_results.total": "{count, number} {count, plural, one {نتیجه} other {نتیجه}}",
"standalone.public_title": "نگاهی به کاربران این سرور...",
+ "status.admin_account": "محیط مدیریت مربوط به @{name} را باز کن",
+ "status.admin_status": "این نوشته را در محیط مدیریت باز کن",
"status.block": "مسدودسازی @{name}",
"status.cancel_reblog_private": "حذف بازبوق",
"status.cannot_reblog": "این نوشته را نمیشود بازبوقید",
+ "status.copy": "رونوشتبرداری از نشانی این نوشته",
"status.delete": "پاککردن",
"status.detailed_status": "نمایش کامل گفتگو",
"status.direct": "پیغام مستقیم به @{name}",
@@ -326,11 +332,11 @@
"status.show_less_all": "نمایش کمتر همه",
"status.show_more": "نمایش",
"status.show_more_all": "نمایش بیشتر همه",
- "status.show_thread": "Show thread",
+ "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": "محلی",
@@ -340,6 +346,7 @@
"ui.beforeunload": "اگر از ماستدون خارج شوید پیشنویس شما پاک خواهد شد.",
"upload_area.title": "برای بارگذاری به اینجا بکشید",
"upload_button.label": "افزودن عکس و ویدیو (JPEG, PNG, GIF, WebM, MP4, MOV)",
+ "upload_error.limit": "از حد مجاز باگذاری فراتر رفتید.",
"upload_form.description": "نوشتهٔ توضیحی برای کمبینایان و نابینایان",
"upload_form.focus": "بریدن لبهها",
"upload_form.undo": "حذف",
diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json
index 84638af35..537280223 100644
--- a/app/javascript/mastodon/locales/fi.json
+++ b/app/javascript/mastodon/locales/fi.json
@@ -1,5 +1,5 @@
{
- "account.add_or_remove_from_list": "Add or Remove from lists",
+ "account.add_or_remove_from_list": "Lisää tai poista listoilta",
"account.badges.bot": "Botti",
"account.block": "Estä @{name}",
"account.block_domain": "Piilota kaikki sisältö verkkotunnuksesta {domain}",
@@ -17,7 +17,7 @@
"account.follows_you": "Seuraa sinua",
"account.hide_reblogs": "Piilota buustaukset käyttäjältä @{name}",
"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.locked_info": "Tämän tili on yksityinen. Käyttäjä vahvistaa itse kuka voi seurata häntä.",
"account.media": "Media",
"account.mention": "Mainitse @{name}",
"account.moved_to": "{name} on muuttanut instanssiin:",
@@ -113,7 +113,7 @@
"emoji_button.search_results": "Hakutulokset",
"emoji_button.symbols": "Symbolit",
"emoji_button.travel": "Matkailu",
- "empty_column.account_timeline": "No toots here!",
+ "empty_column.account_timeline": "Ei ole 'toots' täällä!",
"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ä.",
@@ -128,28 +128,30 @@
"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ä",
+ "empty_column.public": "Täällä ei ole mitään! Saat sisältöä, kun kirjoitat jotain julkisesti tai käyt seuraamassa muiden instanssien käyttäjiä",
"follow_request.authorize": "Valtuuta",
"follow_request.reject": "Hylkää",
"getting_started.developers": "Kehittäjille",
- "getting_started.directory": "Profile directory",
+ "getting_started.directory": "Profiili hakemisto",
"getting_started.documentation": "Documentation",
"getting_started.heading": "Aloitus",
"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": "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_header.tag_mode.all": "ja {additional}",
+ "hashtag.column_header.tag_mode.any": "tai {additional}",
+ "hashtag.column_header.tag_mode.none": "ilman {additional}",
+ "hashtag.column_settings.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
+ "hashtag.column_settings.tag_mode.all": "Kaikki",
+ "hashtag.column_settings.tag_mode.any": "Kaikki",
+ "hashtag.column_settings.tag_mode.none": "Ei mikään",
"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.action": "Seuraava",
"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",
@@ -204,6 +206,7 @@
"lists.account.remove": "Poista listasta",
"lists.delete": "Poista lista",
"lists.edit": "Muokkaa listaa",
+ "lists.edit.submit": "Change title",
"lists.new.create": "Lisää lista",
"lists.new.title_placeholder": "Uuden listan nimi",
"lists.search": "Etsi seuraamistasi henkilöistä",
@@ -292,9 +295,12 @@
"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",
+ "status.copy": "Copy link to status",
"status.delete": "Poista",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Viesti käyttäjälle @{name}",
@@ -340,6 +346,7 @@
"ui.beforeunload": "Luonnos häviää, jos poistut Mastodonista.",
"upload_area.title": "Lataa raahaamalla ja pudottamalla tähän",
"upload_button.label": "Lisää mediaa",
+ "upload_error.limit": "File upload limit exceeded.",
"upload_form.description": "Anna kuvaus näkörajoitteisia varten",
"upload_form.focus": "Rajaa",
"upload_form.undo": "Peru",
diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json
index 68ff6d8ee..f88f29b11 100644
--- a/app/javascript/mastodon/locales/fr.json
+++ b/app/javascript/mastodon/locales/fr.json
@@ -11,33 +11,33 @@
"account.endorse": "Figure sur le profil",
"account.follow": "Suivre",
"account.followers": "Abonné⋅e⋅s",
- "account.followers.empty": "Personne ne suit cet utilisateur pour l’instant.",
+ "account.followers.empty": "Personne ne suit cet utilisateur·rice pour l’instant.",
"account.follows": "Abonnements",
- "account.follows.empty": "Cet utilisateur ne suit personne pour l’instant.",
+ "account.follows.empty": "Cet·te utilisateur·rice ne suit personne pour l’instant.",
"account.follows_you": "Vous suit",
"account.hide_reblogs": "Masquer les partages de @{name}",
"account.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.mention": "Mentionner @{name}",
"account.moved_to": "{name} a déménagé vers :",
"account.mute": "Masquer @{name}",
"account.mute_notifications": "Ignorer les notifications de @{name}",
"account.muted": "Silencé",
"account.posts": "Pouets",
"account.posts_with_replies": "Pouets et réponses",
- "account.report": "Signaler",
+ "account.report": "Signaler @{name}",
"account.requested": "En attente d’approbation. Cliquez pour annuler la requête",
"account.share": "Partager le profil de @{name}",
"account.show_reblogs": "Afficher les partages de @{name}",
- "account.unblock": "Débloquer",
+ "account.unblock": "Débloquer @{name}",
"account.unblock_domain": "Ne plus masquer {domain}",
"account.unendorse": "Ne figure pas sur le profil",
"account.unfollow": "Ne plus suivre",
- "account.unmute": "Ne plus masquer",
+ "account.unmute": "Ne plus masquer @{name}",
"account.unmute_notifications": "Réactiver les notifications de @{name}",
"account.view_full_profile": "Afficher le profil complet",
- "alert.unexpected.message": "Une erreur non attendue s’est produite.",
+ "alert.unexpected.message": "Une erreur inattendue s’est produite.",
"alert.unexpected.title": "Oups !",
"boost_modal.combo": "Vous pouvez appuyer sur {combo} pour pouvoir passer ceci, la prochaine fois",
"bundle_column_error.body": "Une erreur s’est produite lors du chargement de ce composant.",
@@ -86,7 +86,7 @@
"confirmations.delete.confirm": "Supprimer",
"confirmations.delete.message": "Confirmez-vous la suppression de ce pouet ?",
"confirmations.delete_list.confirm": "Supprimer",
- "confirmations.delete_list.message": "Êtes-vous sûr de vouloir supprimer définitivement cette liste ?",
+ "confirmations.delete_list.message": "Êtes-vous sûr·e de vouloir supprimer définitivement cette liste ?",
"confirmations.domain_block.confirm": "Masquer le domaine entier",
"confirmations.domain_block.message": "Êtes-vous vraiment, vraiment sûr⋅e de vouloir bloquer {domain} en entier ? Dans la plupart des cas, quelques blocages ou masquages ciblés sont suffisants et préférables. Vous ne verrez plus de contenu provenant de ce domaine, ni dans fils publics, ni dans vos notifications. Vos abonné·e·s utilisant ce domaine seront retiré·e·s.",
"confirmations.mute.confirm": "Masquer",
@@ -114,7 +114,7 @@
"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.blocks": "Vous n’avez bloqué aucun·e utilisateur·rice 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.",
"empty_column.domain_blocks": "Il n’y a aucun domaine caché pour le moment.",
@@ -126,13 +126,13 @@
"empty_column.home.public_timeline": "le fil public",
"empty_column.list": "Il n’y a rien dans cette liste pour l’instant. Dès que des personnes de cette liste publieront de nouveaux statuts, ils apparaîtront ici.",
"empty_column.lists": "Vous n’avez pas encore de liste. Lorsque vous en créerez une, elle apparaîtra ici.",
- "empty_column.mutes": "Vous n’avez pas encore mis des utilisateurs en silence.",
+ "empty_column.mutes": "Vous n’avez pas encore mis d'utilisateur·rice·s en silence.",
"empty_column.notifications": "Vous n’avez pas encore de notification. Interagissez avec d’autres personnes pour débuter la conversation.",
"empty_column.public": "Il n’y a rien ici ! Écrivez quelque chose publiquement, ou bien suivez manuellement des personnes d’autres instances pour remplir le fil public",
"follow_request.authorize": "Accepter",
"follow_request.reject": "Rejeter",
- "getting_started.developers": "Développeurs",
- "getting_started.directory": "Profile directory",
+ "getting_started.developers": "Développeur·euse·s",
+ "getting_started.directory": "Annuaire des profils",
"getting_started.documentation": "Documentation",
"getting_started.heading": "Pour commencer",
"getting_started.invite": "Inviter des gens",
@@ -142,6 +142,8 @@
"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.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
"hashtag.column_settings.tag_mode.all": "Tous ces éléments",
"hashtag.column_settings.tag_mode.any": "Au moins un de ces éléments",
"hashtag.column_settings.tag_mode.none": "Aucun de ces éléments",
@@ -149,33 +151,33 @@
"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": "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": "revenir en arrière",
- "keyboard_shortcuts.blocked": "pour ouvrir une liste d’utilisateurs bloqués",
- "keyboard_shortcuts.boost": "partager",
- "keyboard_shortcuts.column": "focaliser un statut dans l’une des colonnes",
+ "introduction.federation.action": "Suivant",
+ "introduction.federation.federated.headline": "Fil public global",
+ "introduction.federation.federated.text": "Les messages publics provenant d'autres serveurs du fediverse apparaîtront dans le fil public global.",
+ "introduction.federation.home.headline": "Accueil",
+ "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": "Fil public 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 à son auteur·ice 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 abonné·e·s en les repartageant.",
+ "introduction.interactions.reply.headline": "Répondre",
+ "introduction.interactions.reply.text": "Vous pouvez répondre aux pouets d'autres personnes et à vos propres pouets, ce qui les enchaînera dans une conversation.",
+ "introduction.welcome.action": "Allons-y !",
+ "introduction.welcome.headline": "Premiers pas",
+ "introduction.welcome.text": "Bienvenue dans le 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": "pour revenir en arrière",
+ "keyboard_shortcuts.blocked": "pour ouvrir une liste d’utilisateur·rice·s bloqué·e·s",
+ "keyboard_shortcuts.boost": "pour partager",
+ "keyboard_shortcuts.column": "pour focaliser un statut dans l’une des colonnes",
"keyboard_shortcuts.compose": "pour centrer la zone de rédaction",
"keyboard_shortcuts.description": "Description",
"keyboard_shortcuts.direct": "pour ouvrir une colonne des messages directs",
"keyboard_shortcuts.down": "pour descendre dans la liste",
"keyboard_shortcuts.enter": "pour ouvrir le statut",
- "keyboard_shortcuts.favourite": "vers les favoris",
+ "keyboard_shortcuts.favourite": "pour ajouter aux favoris",
"keyboard_shortcuts.favourites": "pour ouvrir une liste de favoris",
"keyboard_shortcuts.federated": "pour ouvrir le fil public global",
"keyboard_shortcuts.heading": "Raccourcis clavier",
@@ -184,7 +186,7 @@
"keyboard_shortcuts.legend": "pour afficher cette légende",
"keyboard_shortcuts.local": "pour ouvrir le fil public local",
"keyboard_shortcuts.mention": "pour mentionner l’auteur·rice",
- "keyboard_shortcuts.muted": "pour ouvrir la liste des utilisateurs rendus muets",
+ "keyboard_shortcuts.muted": "pour ouvrir la liste des utilisateur·rice·s rendu·e·s muet·te·s",
"keyboard_shortcuts.my_profile": "pour ouvrir votre profil",
"keyboard_shortcuts.notifications": "pour ouvrir votre colonne de notifications",
"keyboard_shortcuts.pinned": "pour ouvrir une liste des pouets épinglés",
@@ -195,7 +197,7 @@
"keyboard_shortcuts.start": "pour ouvrir la colonne \"pour commencer\"",
"keyboard_shortcuts.toggle_hidden": "pour afficher/cacher un texte derrière CW",
"keyboard_shortcuts.toot": "pour démarrer un tout nouveau pouet",
- "keyboard_shortcuts.unfocus": "pour recentrer composer textarea/search",
+ "keyboard_shortcuts.unfocus": "pour quitter la zone de composition/recherche",
"keyboard_shortcuts.up": "pour remonter dans la liste",
"lightbox.close": "Fermer",
"lightbox.next": "Suivant",
@@ -204,6 +206,7 @@
"lists.account.remove": "Supprimer de la liste",
"lists.delete": "Effacer la liste",
"lists.edit": "Éditer la liste",
+ "lists.edit.submit": "Change title",
"lists.new.create": "Ajouter une liste",
"lists.new.title_placeholder": "Titre de la nouvelle liste",
"lists.search": "Rechercher parmi les gens que vous suivez",
@@ -225,36 +228,36 @@
"navigation_bar.filters": "Mots silenciés",
"navigation_bar.follow_requests": "Demandes de suivi",
"navigation_bar.info": "Plus d’informations",
- "navigation_bar.keyboard_shortcuts": "Raccourcis-clavier",
+ "navigation_bar.keyboard_shortcuts": "Raccourcis clavier",
"navigation_bar.lists": "Listes",
"navigation_bar.logout": "Déconnexion",
"navigation_bar.mutes": "Comptes masqués",
- "navigation_bar.personal": "Personal",
+ "navigation_bar.personal": "Personnel",
"navigation_bar.pins": "Pouets épinglés",
"navigation_bar.preferences": "Préférences",
"navigation_bar.public_timeline": "Fil public global",
"navigation_bar.security": "Sécurité",
"notification.favourite": "{name} a ajouté à ses favoris :",
"notification.follow": "{name} vous suit",
- "notification.mention": "{name} vous a mentionné⋅e :",
+ "notification.mention": "{name} vous a mentionné :",
"notification.reblog": "{name} a partagé votre statut :",
"notifications.clear": "Nettoyer les notifications",
"notifications.clear_confirmation": "Voulez-vous vraiment supprimer toutes vos notifications ?",
"notifications.column_settings.alert": "Notifications locales",
"notifications.column_settings.favourite": "Favoris :",
- "notifications.column_settings.filter_bar.advanced": "Display all categories",
- "notifications.column_settings.filter_bar.category": "Quick filter bar",
- "notifications.column_settings.filter_bar.show": "Show",
+ "notifications.column_settings.filter_bar.advanced": "Afficher toutes les catégories",
+ "notifications.column_settings.filter_bar.category": "Barre de filtrage rapide",
+ "notifications.column_settings.filter_bar.show": "Afficher",
"notifications.column_settings.follow": "Nouveaux⋅elles abonné⋅e·s :",
"notifications.column_settings.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": "All",
- "notifications.filter.boosts": "Boosts",
- "notifications.filter.favourites": "Favourites",
- "notifications.filter.follows": "Follows",
+ "notifications.filter.all": "Tout",
+ "notifications.filter.boosts": "Repartages",
+ "notifications.filter.favourites": "Favoris",
+ "notifications.filter.follows": "Abonné·e·s",
"notifications.filter.mentions": "Mentions",
"notifications.group": "{count} notifications",
"privacy.change": "Ajuster la confidentialité du message",
@@ -276,7 +279,7 @@
"reply_indicator.cancel": "Annuler",
"report.forward": "Transférer à {target}",
"report.forward_hint": "Le compte provient d’un autre serveur. Envoyez également une copie anonyme du rapport ?",
- "report.hint": "Le rapport sera envoyé aux modérateur·rice·s de votre instance. Vous pouvez expliquer pourquoi vous signalez le compte ci-dessous :",
+ "report.hint": "Le rapport sera envoyé aux modérateur·rice·s de votre instance. Vous pouvez expliquer pourquoi vous signalez le compte ci-dessous :",
"report.placeholder": "Commentaires additionnels",
"report.submit": "Envoyer",
"report.target": "Signalement",
@@ -291,10 +294,13 @@
"search_results.hashtags": "Hashtags",
"search_results.statuses": "Pouets",
"search_results.total": "{count, number} {count, plural, one {résultat} other {résultats}}",
- "standalone.public_title": "Un aperçu …",
- "status.block": "Block @{name}",
+ "standalone.public_title": "Un aperçu…",
+ "status.admin_account": "Ouvrir l'interface de modération pour @{name}",
+ "status.admin_status": "Ouvrir ce statut dans l'interface de modération",
+ "status.block": "Bloquer @{name}",
"status.cancel_reblog_private": "Dé-booster",
"status.cannot_reblog": "Cette publication ne peut être boostée",
+ "status.copy": "Copier le lien vers le pouet",
"status.delete": "Effacer",
"status.detailed_status": "Vue détaillée de la conversation",
"status.direct": "Envoyer un message direct à @{name}",
@@ -303,7 +309,7 @@
"status.filtered": "Filtré",
"status.load_more": "Charger plus",
"status.media_hidden": "Média caché",
- "status.mention": "Mentionner",
+ "status.mention": "Mentionner @{name}",
"status.more": "Plus",
"status.mute": "Masquer @{name}",
"status.mute_conversation": "Masquer la conversation",
@@ -326,11 +332,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.show_thread": "Lire le fil",
"status.unmute_conversation": "Ne plus masquer la conversation",
"status.unpin": "Retirer du profil",
"suggestions.dismiss": "Rejeter la suggestion",
- "suggestions.header": "Vous pourriez être intéressé par.…",
+ "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",
@@ -340,8 +346,9 @@
"ui.beforeunload": "Votre brouillon sera perdu si vous quittez Mastodon.",
"upload_area.title": "Glissez et déposez pour envoyer",
"upload_button.label": "Joindre un média (JPEG, PNG, GIF, WebM, MP4, MOV)",
+ "upload_error.limit": "Taille maximale d'envoi de fichier dépassée.",
"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 62cd1e9e1..789624d38 100644
--- a/app/javascript/mastodon/locales/gl.json
+++ b/app/javascript/mastodon/locales/gl.json
@@ -128,11 +128,11 @@
"empty_column.lists": "Aínda non ten listas. Cando cree unha, mostrarase aquí.",
"empty_column.mutes": "Non acalou ningunha usuaria polo de agora.",
"empty_column.notifications": "Aínda non ten notificacións. Interactúe con outras para iniciar unha conversa.",
- "empty_column.public": "Nada por aquí! Escriba algo de xeito público, ou siga manualmente usuarias de outras instancias para ir enchéndoa",
+ "empty_column.public": "Nada por aquí! Escriba algo de xeito público, ou siga manualmente usuarias de outros servidores para ir enchéndoa",
"follow_request.authorize": "Autorizar",
"follow_request.reject": "Rexeitar",
"getting_started.developers": "Desenvolvedoras",
- "getting_started.directory": "Profile directory",
+ "getting_started.directory": "Directorio do perfil",
"getting_started.documentation": "Documentation",
"getting_started.heading": "Comezando",
"getting_started.invite": "Convide a xente",
@@ -142,6 +142,8 @@
"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.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
"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",
@@ -149,23 +151,23 @@
"home.column_settings.basic": "Básico",
"home.column_settings.show_reblogs": "Mostrar repeticións",
"home.column_settings.show_replies": "Mostrar respostas",
- "introduction.federation.action": "Next",
+ "introduction.federation.action": "Seguinte",
"introduction.federation.federated.headline": "Federated",
- "introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
+ "introduction.federation.federated.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": "Posts from people you follow will appear in your home feed. You can follow anyone on any server!",
+ "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": "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.",
+ "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 seguidoras 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",
@@ -204,6 +206,7 @@
"lists.account.remove": "Eliminar da lista",
"lists.delete": "Delete list",
"lists.edit": "Editar lista",
+ "lists.edit.submit": "Change title",
"lists.new.create": "Engadir lista",
"lists.new.title_placeholder": "Novo título da lista",
"lists.search": "Procurar entre a xente que segues",
@@ -224,7 +227,7 @@
"navigation_bar.favourites": "Favoritas",
"navigation_bar.filters": "Palabras acaladas",
"navigation_bar.follow_requests": "Peticións de seguimento",
- "navigation_bar.info": "Sobre esta instancia",
+ "navigation_bar.info": "Sobre este servidor",
"navigation_bar.keyboard_shortcuts": "Atallos",
"navigation_bar.lists": "Listas",
"navigation_bar.logout": "Sair",
@@ -242,20 +245,20 @@
"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": "Display all categories",
- "notifications.column_settings.filter_bar.category": "Quick filter bar",
- "notifications.column_settings.filter_bar.show": "Show",
+ "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": "All",
- "notifications.filter.boosts": "Boosts",
- "notifications.filter.favourites": "Favourites",
- "notifications.filter.follows": "Follows",
- "notifications.filter.mentions": "Mentions",
+ "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",
"privacy.change": "Axustar a intimidade do estado",
"privacy.direct.long": "Enviar exclusivamente as usuarias mencionadas",
@@ -276,7 +279,7 @@
"reply_indicator.cancel": "Cancelar",
"report.forward": "Reenviar a {target}",
"report.forward_hint": "A conta pertence a outro servidor. Enviar unha copia anónima do informe alí tamén?",
- "report.hint": "O informe enviarase a moderación da súa instancia. Abaixo pode explicar a razón pola que está a información:",
+ "report.hint": "O informe enviarase a moderación do seu servidor. Abaixo pode explicar a razón pola que está a informar:",
"report.placeholder": "Comentarios adicionais",
"report.submit": "Enviar",
"report.target": "Informar {target}",
@@ -292,9 +295,12 @@
"search_results.statuses": "Toots",
"search_results.total": "{count, number} {count,plural,one {result} outros {results}}",
"standalone.public_title": "Ollada dentro...",
+ "status.admin_account": "Abrir interface de moderación para @{name}",
+ "status.admin_status": "Abrir este estado na interface de moderación",
"status.block": "Block @{name}",
"status.cancel_reblog_private": "Non promover",
"status.cannot_reblog": "Esta mensaxe non pode ser promovida",
+ "status.copy": "Copy link to status",
"status.delete": "Eliminar",
"status.detailed_status": "Vista detallada da conversa",
"status.direct": "Mensaxe directa @{name}",
@@ -340,8 +346,9 @@
"ui.beforeunload": "O borrador perderase se sae de Mastodon.",
"upload_area.title": "Arrastre e solte para subir",
"upload_button.label": "Engadir medios (JPEG, PNG, GIF, WebM, MP4, MOV)",
+ "upload_error.limit": "File upload limit exceeded.",
"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 d0fd75e5f..56d474170 100644
--- a/app/javascript/mastodon/locales/he.json
+++ b/app/javascript/mastodon/locales/he.json
@@ -142,6 +142,8 @@
"hashtag.column_header.tag_mode.all": "and {additional}",
"hashtag.column_header.tag_mode.any": "or {additional}",
"hashtag.column_header.tag_mode.none": "without {additional}",
+ "hashtag.column_settings.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
"hashtag.column_settings.tag_mode.all": "All of these",
"hashtag.column_settings.tag_mode.any": "Any of these",
"hashtag.column_settings.tag_mode.none": "None of these",
@@ -204,6 +206,7 @@
"lists.account.remove": "Remove from list",
"lists.delete": "Delete list",
"lists.edit": "Edit list",
+ "lists.edit.submit": "Change title",
"lists.new.create": "Add list",
"lists.new.title_placeholder": "New list title",
"lists.search": "Search among people you follow",
@@ -292,9 +295,12 @@
"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": "לא ניתן להדהד הודעה זו",
+ "status.copy": "Copy link to status",
"status.delete": "מחיקה",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
@@ -340,6 +346,7 @@
"ui.beforeunload": "הטיוטא תאבד אם תעזבו את מסטודון.",
"upload_area.title": "ניתן להעלות על ידי Drag & drop",
"upload_button.label": "הוספת מדיה",
+ "upload_error.limit": "File upload limit exceeded.",
"upload_form.description": "תיאור לכבדי ראיה",
"upload_form.focus": "Crop",
"upload_form.undo": "ביטול",
diff --git a/app/javascript/mastodon/locales/hr.json b/app/javascript/mastodon/locales/hr.json
index b5685a9a0..cc4f5725a 100644
--- a/app/javascript/mastodon/locales/hr.json
+++ b/app/javascript/mastodon/locales/hr.json
@@ -142,6 +142,8 @@
"hashtag.column_header.tag_mode.all": "and {additional}",
"hashtag.column_header.tag_mode.any": "or {additional}",
"hashtag.column_header.tag_mode.none": "without {additional}",
+ "hashtag.column_settings.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
"hashtag.column_settings.tag_mode.all": "All of these",
"hashtag.column_settings.tag_mode.any": "Any of these",
"hashtag.column_settings.tag_mode.none": "None of these",
@@ -204,6 +206,7 @@
"lists.account.remove": "Remove from list",
"lists.delete": "Delete list",
"lists.edit": "Edit list",
+ "lists.edit.submit": "Change title",
"lists.new.create": "Add list",
"lists.new.title_placeholder": "New list title",
"lists.search": "Search among people you follow",
@@ -292,9 +295,12 @@
"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",
+ "status.copy": "Copy link to status",
"status.delete": "Obriši",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
@@ -340,6 +346,7 @@
"ui.beforeunload": "Your draft will be lost if you leave Mastodon.",
"upload_area.title": "Povuci i spusti kako bi uploadao",
"upload_button.label": "Dodaj media",
+ "upload_error.limit": "File upload limit exceeded.",
"upload_form.description": "Describe for the visually impaired",
"upload_form.focus": "Crop",
"upload_form.undo": "Poništi",
diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json
index b87dcd597..a82b3e94d 100644
--- a/app/javascript/mastodon/locales/hu.json
+++ b/app/javascript/mastodon/locales/hu.json
@@ -142,6 +142,8 @@
"hashtag.column_header.tag_mode.all": "and {additional}",
"hashtag.column_header.tag_mode.any": "or {additional}",
"hashtag.column_header.tag_mode.none": "without {additional}",
+ "hashtag.column_settings.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
"hashtag.column_settings.tag_mode.all": "All of these",
"hashtag.column_settings.tag_mode.any": "Any of these",
"hashtag.column_settings.tag_mode.none": "None of these",
@@ -204,6 +206,7 @@
"lists.account.remove": "Eltávolít a listából",
"lists.delete": "Lista törlése",
"lists.edit": "Lista szerkesztése",
+ "lists.edit.submit": "Change title",
"lists.new.create": "Lista hozzáadása",
"lists.new.title_placeholder": "Új lista cím",
"lists.search": "Keresés a követtett személyek között",
@@ -292,9 +295,12 @@
"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ó",
+ "status.copy": "Copy link to status",
"status.delete": "Törlés",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
@@ -340,6 +346,7 @@
"ui.beforeunload": "A piszkozata el fog vesztődni ha elhagyja Mastodon-t.",
"upload_area.title": "Húzza ide a feltöltéshez",
"upload_button.label": "Média hozzáadása",
+ "upload_error.limit": "File upload limit exceeded.",
"upload_form.description": "Describe for the visually impaired",
"upload_form.focus": "Crop",
"upload_form.undo": "Mégsem",
diff --git a/app/javascript/mastodon/locales/hy.json b/app/javascript/mastodon/locales/hy.json
index 2fb96cbf3..07b239f87 100644
--- a/app/javascript/mastodon/locales/hy.json
+++ b/app/javascript/mastodon/locales/hy.json
@@ -142,6 +142,8 @@
"hashtag.column_header.tag_mode.all": "and {additional}",
"hashtag.column_header.tag_mode.any": "or {additional}",
"hashtag.column_header.tag_mode.none": "without {additional}",
+ "hashtag.column_settings.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
"hashtag.column_settings.tag_mode.all": "All of these",
"hashtag.column_settings.tag_mode.any": "Any of these",
"hashtag.column_settings.tag_mode.none": "None of these",
@@ -204,6 +206,7 @@
"lists.account.remove": "Հանել ցանկից",
"lists.delete": "Ջնջել ցանկը",
"lists.edit": "Փոփոխել ցանկը",
+ "lists.edit.submit": "Change title",
"lists.new.create": "Ավելացնել ցանկ",
"lists.new.title_placeholder": "Նոր ցանկի վերնագիր",
"lists.search": "Փնտրել քո հետեւած մարդկանց մեջ",
@@ -292,9 +295,12 @@
"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": "Այս թութը չի կարող տարածվել",
+ "status.copy": "Copy link to status",
"status.delete": "Ջնջել",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
@@ -340,6 +346,7 @@
"ui.beforeunload": "Քո սեւագիրը կկորի, եթե լքես Մաստոդոնը։",
"upload_area.title": "Քաշիր ու նետիր՝ վերբեռնելու համար",
"upload_button.label": "Ավելացնել մեդիա",
+ "upload_error.limit": "File upload limit exceeded.",
"upload_form.description": "Նկարագրություն ավելացրու տեսողական խնդիրներ ունեցողների համար",
"upload_form.focus": "Crop",
"upload_form.undo": "Հետարկել",
diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json
index 81fdbc711..a23c0a547 100644
--- a/app/javascript/mastodon/locales/id.json
+++ b/app/javascript/mastodon/locales/id.json
@@ -142,6 +142,8 @@
"hashtag.column_header.tag_mode.all": "and {additional}",
"hashtag.column_header.tag_mode.any": "or {additional}",
"hashtag.column_header.tag_mode.none": "without {additional}",
+ "hashtag.column_settings.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
"hashtag.column_settings.tag_mode.all": "All of these",
"hashtag.column_settings.tag_mode.any": "Any of these",
"hashtag.column_settings.tag_mode.none": "None of these",
@@ -204,6 +206,7 @@
"lists.account.remove": "Remove from list",
"lists.delete": "Delete list",
"lists.edit": "Edit list",
+ "lists.edit.submit": "Change title",
"lists.new.create": "Add list",
"lists.new.title_placeholder": "New list title",
"lists.search": "Search among people you follow",
@@ -292,9 +295,12 @@
"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",
+ "status.copy": "Copy link to status",
"status.delete": "Hapus",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
@@ -340,6 +346,7 @@
"ui.beforeunload": "Naskah anda akan hilang jika anda keluar dari Mastodon.",
"upload_area.title": "Seret & lepaskan untuk mengunggah",
"upload_button.label": "Tambahkan media",
+ "upload_error.limit": "File upload limit exceeded.",
"upload_form.description": "Deskripsikan untuk mereka yang tidak bisa melihat dengan jelas",
"upload_form.focus": "Potong",
"upload_form.undo": "Undo",
diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json
index e51b074ae..e375314bd 100644
--- a/app/javascript/mastodon/locales/io.json
+++ b/app/javascript/mastodon/locales/io.json
@@ -142,6 +142,8 @@
"hashtag.column_header.tag_mode.all": "and {additional}",
"hashtag.column_header.tag_mode.any": "or {additional}",
"hashtag.column_header.tag_mode.none": "without {additional}",
+ "hashtag.column_settings.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
"hashtag.column_settings.tag_mode.all": "All of these",
"hashtag.column_settings.tag_mode.any": "Any of these",
"hashtag.column_settings.tag_mode.none": "None of these",
@@ -204,6 +206,7 @@
"lists.account.remove": "Remove from list",
"lists.delete": "Delete list",
"lists.edit": "Edit list",
+ "lists.edit.submit": "Change title",
"lists.new.create": "Add list",
"lists.new.title_placeholder": "New list title",
"lists.search": "Search among people you follow",
@@ -292,9 +295,12 @@
"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",
+ "status.copy": "Copy link to status",
"status.delete": "Efacar",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
@@ -340,6 +346,7 @@
"ui.beforeunload": "Your draft will be lost if you leave Mastodon.",
"upload_area.title": "Tranar faligar por kargar",
"upload_button.label": "Adjuntar kontenajo",
+ "upload_error.limit": "File upload limit exceeded.",
"upload_form.description": "Describe for the visually impaired",
"upload_form.focus": "Crop",
"upload_form.undo": "Desfacar",
diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json
index b1208f382..6825d8d05 100644
--- a/app/javascript/mastodon/locales/it.json
+++ b/app/javascript/mastodon/locales/it.json
@@ -132,7 +132,7 @@
"follow_request.authorize": "Autorizza",
"follow_request.reject": "Rifiuta",
"getting_started.developers": "Sviluppatori",
- "getting_started.directory": "Profile directory",
+ "getting_started.directory": "Directory del profilo",
"getting_started.documentation": "Documentazione",
"getting_started.heading": "Come iniziare",
"getting_started.invite": "Invita qualcuno",
@@ -142,6 +142,8 @@
"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.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
"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",
@@ -149,23 +151,23 @@
"home.column_settings.basic": "Semplice",
"home.column_settings.show_reblogs": "Mostra post condivisi",
"home.column_settings.show_replies": "Mostra risposte",
- "introduction.federation.action": "Next",
+ "introduction.federation.action": "Avanti",
"introduction.federation.federated.headline": "Federated",
- "introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
+ "introduction.federation.federated.text": "I post pubblici provenienti da altri server del fediverse saranno mostrati nella timeline federata.",
"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.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": "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.",
+ "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",
@@ -204,6 +206,7 @@
"lists.account.remove": "Togli dalla lista",
"lists.delete": "Delete list",
"lists.edit": "Modifica lista",
+ "lists.edit.submit": "Change title",
"lists.new.create": "Aggiungi lista",
"lists.new.title_placeholder": "Titolo della nuova lista",
"lists.search": "Cerca tra le persone che segui",
@@ -242,20 +245,20 @@
"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": "Display all categories",
- "notifications.column_settings.filter_bar.category": "Quick filter bar",
- "notifications.column_settings.filter_bar.show": "Show",
+ "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": "All",
- "notifications.filter.boosts": "Boosts",
- "notifications.filter.favourites": "Favourites",
- "notifications.filter.follows": "Follows",
- "notifications.filter.mentions": "Mentions",
+ "notifications.filter.all": "Tutti",
+ "notifications.filter.boosts": "Condivisioni",
+ "notifications.filter.favourites": "Apprezzati",
+ "notifications.filter.follows": "Seguaci",
+ "notifications.filter.mentions": "Menzioni",
"notifications.group": "{count} notifiche",
"privacy.change": "Modifica privacy del post",
"privacy.direct.long": "Invia solo a utenti menzionati",
@@ -292,9 +295,12 @@
"search_results.statuses": "Toot",
"search_results.total": "{count} {count, plural, one {risultato} other {risultati}}",
"standalone.public_title": "Un'occhiata all'interno...",
+ "status.admin_account": "Apri interfaccia di moderazione per @{name}",
+ "status.admin_status": "Apri questo status nell'interfaccia di moderazione",
"status.block": "Block @{name}",
"status.cancel_reblog_private": "Annulla condivisione",
"status.cannot_reblog": "Questo post non può essere condiviso",
+ "status.copy": "Copy link to status",
"status.delete": "Elimina",
"status.detailed_status": "Vista conversazione dettagliata",
"status.direct": "Messaggio diretto @{name}",
@@ -340,8 +346,9 @@
"ui.beforeunload": "La bozza andrà persa se esci da Mastodon.",
"upload_area.title": "Trascina per caricare",
"upload_button.label": "Aggiungi file multimediale",
+ "upload_error.limit": "File upload limit exceeded.",
"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 4796581b9..4fb5d8e27 100644
--- a/app/javascript/mastodon/locales/ja.json
+++ b/app/javascript/mastodon/locales/ja.json
@@ -128,11 +128,11 @@
"empty_column.lists": "まだリストがありません。リストを作るとここに表示されます。",
"empty_column.mutes": "まだ誰もミュートしていません。",
"empty_column.notifications": "まだ通知がありません。他の人とふれ合って会話を始めましょう。",
- "empty_column.public": "ここにはまだ何もありません! 公開で何かを投稿したり、他のインスタンスのユーザーをフォローしたりしていっぱいにしましょう",
+ "empty_column.public": "ここにはまだ何もありません! 公開で何かを投稿したり、他のサーバーのユーザーをフォローしたりしていっぱいにしましょう",
"follow_request.authorize": "許可",
"follow_request.reject": "拒否",
"getting_started.developers": "開発",
- "getting_started.directory": "Profile directory",
+ "getting_started.directory": "ディレクトリ",
"getting_started.documentation": "ドキュメント",
"getting_started.heading": "スタート",
"getting_started.invite": "招待",
@@ -142,6 +142,8 @@
"hashtag.column_header.tag_mode.all": "と {additional}",
"hashtag.column_header.tag_mode.any": "か {additional}",
"hashtag.column_header.tag_mode.none": "({additional} を除く)",
+ "hashtag.column_settings.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
"hashtag.column_settings.tag_mode.all": "すべてを含む",
"hashtag.column_settings.tag_mode.any": "いずれかを含む",
"hashtag.column_settings.tag_mode.none": "これらを除く",
@@ -204,6 +206,7 @@
"lists.account.remove": "リストから外す",
"lists.delete": "リストを削除",
"lists.edit": "リストを編集",
+ "lists.edit.submit": "Change title",
"lists.new.create": "リストを作成",
"lists.new.title_placeholder": "新規リスト名",
"lists.search": "フォローしている人の中から検索",
@@ -224,7 +227,7 @@
"navigation_bar.favourites": "お気に入り",
"navigation_bar.filters": "フィルター設定",
"navigation_bar.follow_requests": "フォローリクエスト",
- "navigation_bar.info": "このインスタンスについて",
+ "navigation_bar.info": "このサーバーについて",
"navigation_bar.keyboard_shortcuts": "ホットキー",
"navigation_bar.lists": "リスト",
"navigation_bar.logout": "ログアウト",
@@ -257,7 +260,7 @@
"notifications.filter.follows": "フォロー",
"notifications.filter.mentions": "返信",
"notifications.group": "{count} 件の通知",
- "privacy.change": "投稿のプライバシーを変更",
+ "privacy.change": "公開範囲を変更",
"privacy.direct.long": "メンションしたユーザーだけに公開",
"privacy.direct.short": "ダイレクト",
"privacy.private.long": "フォロワーだけに公開",
@@ -275,8 +278,8 @@
"relative_time.seconds": "{number}秒前",
"reply_indicator.cancel": "キャンセル",
"report.forward": "{target} に転送する",
- "report.forward_hint": "このアカウントは別のインスタンスに所属しています。通報内容を匿名で転送しますか?",
- "report.hint": "通報内容はあなたのインスタンスのモデレーターへ送信されます。通報理由を入力してください。:",
+ "report.forward_hint": "このアカウントは別のサーバーに所属しています。通報内容を匿名で転送しますか?",
+ "report.hint": "通報内容はあなたのサーバーのモデレーターへ送信されます。通報理由を入力してください。:",
"report.placeholder": "追加コメント",
"report.submit": "通報する",
"report.target": "{target}さんを通報する",
@@ -292,9 +295,12 @@
"search_results.statuses": "トゥート",
"search_results.total": "{count, number}件の結果",
"standalone.public_title": "今こんな話をしています...",
+ "status.admin_account": "@{name} のモデレーション画面を開く",
+ "status.admin_status": "このトゥートをモデレーション画面で開く",
"status.block": "@{name}さんをブロック",
"status.cancel_reblog_private": "ブースト解除",
"status.cannot_reblog": "この投稿はブーストできません",
+ "status.copy": "トゥートへのリンクをコピー",
"status.delete": "削除",
"status.detailed_status": "詳細な会話ビュー",
"status.direct": "@{name}さんにダイレクトメッセージ",
@@ -340,6 +346,7 @@
"ui.beforeunload": "Mastodonから離れると送信前の投稿は失われます。",
"upload_area.title": "ドラッグ&ドロップでアップロード",
"upload_button.label": "メディアを追加 (JPEG, PNG, GIF, WebM, MP4, MOV)",
+ "upload_error.limit": "アップロードできる上限を超えています。",
"upload_form.description": "視覚障害者のための説明",
"upload_form.focus": "焦点",
"upload_form.undo": "削除",
diff --git a/app/javascript/mastodon/locales/ka.json b/app/javascript/mastodon/locales/ka.json
index 8a019a476..2f7cdc70d 100644
--- a/app/javascript/mastodon/locales/ka.json
+++ b/app/javascript/mastodon/locales/ka.json
@@ -142,6 +142,8 @@
"hashtag.column_header.tag_mode.all": "and {additional}",
"hashtag.column_header.tag_mode.any": "or {additional}",
"hashtag.column_header.tag_mode.none": "without {additional}",
+ "hashtag.column_settings.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
"hashtag.column_settings.tag_mode.all": "All of these",
"hashtag.column_settings.tag_mode.any": "Any of these",
"hashtag.column_settings.tag_mode.none": "None of these",
@@ -204,6 +206,7 @@
"lists.account.remove": "სიიდან ამოშლა",
"lists.delete": "სიის წაშლა",
"lists.edit": "სიის შეცვლა",
+ "lists.edit.submit": "Change title",
"lists.new.create": "სიის დამატება",
"lists.new.title_placeholder": "ახალი სიის სათაური",
"lists.search": "ძებნა ადამიანებს შორის რომელთაც მიჰყვებით",
@@ -292,9 +295,12 @@
"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": "ეს პოსტი ვერ დაიბუსტება",
+ "status.copy": "Copy link to status",
"status.delete": "წაშლა",
"status.detailed_status": "Detailed conversation view",
"status.direct": "პირდაპირი წერილი @{name}-ს",
@@ -340,6 +346,7 @@
"ui.beforeunload": "თქვენი დრაფტი გაუქმდება თუ დატოვებთ მასტოდონს.",
"upload_area.title": "გადმოწიეთ და ჩააგდეთ ასატვირთათ",
"upload_button.label": "მედიის დამატება",
+ "upload_error.limit": "File upload limit exceeded.",
"upload_form.description": "აღწერილობა ვიზუალურად უფასურისთვის",
"upload_form.focus": "კროპი",
"upload_form.undo": "გაუქმება",
diff --git a/app/javascript/mastodon/locales/kk.json b/app/javascript/mastodon/locales/kk.json
new file mode 100644
index 000000000..fc0c88dd9
--- /dev/null
+++ b/app/javascript/mastodon/locales/kk.json
@@ -0,0 +1,363 @@
+{
+ "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 servers 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.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
+ "hashtag.column_settings.tag_mode.all": "All of these",
+ "hashtag.column_settings.tag_mode.any": "Any of these",
+ "hashtag.column_settings.tag_mode.none": "None of these",
+ "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
+ "home.column_settings.basic": "Basic",
+ "home.column_settings.show_reblogs": "Show boosts",
+ "home.column_settings.show_replies": "Show replies",
+ "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 toot-orial!",
+ "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.edit.submit": "Change title",
+ "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 server",
+ "navigation_bar.keyboard_shortcuts": "Hotkeys",
+ "navigation_bar.lists": "Lists",
+ "navigation_bar.logout": "Logout",
+ "navigation_bar.mutes": "Muted users",
+ "navigation_bar.personal": "Personal",
+ "navigation_bar.pins": "Pinned toots",
+ "navigation_bar.preferences": "Preferences",
+ "navigation_bar.public_timeline": "Federated timeline",
+ "navigation_bar.security": "Security",
+ "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 server moderators. You can provide an explanation of why you are reporting this account below:",
+ "report.placeholder": "Additional comments",
+ "report.submit": "Submit",
+ "report.target": "Report {target}",
+ "search.placeholder": "Search",
+ "search_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.copy": "Copy link to status",
+ "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_error.limit": "File upload limit exceeded.",
+ "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/ko.json b/app/javascript/mastodon/locales/ko.json
index ce10a6550..040ada2c0 100644
--- a/app/javascript/mastodon/locales/ko.json
+++ b/app/javascript/mastodon/locales/ko.json
@@ -128,11 +128,11 @@
"empty_column.lists": "아직 리스트가 없습니다. 리스트를 만들면 여기에 나타납니다.",
"empty_column.mutes": "아직 아무도 뮤트하지 않았습니다.",
"empty_column.notifications": "아직 알림이 없습니다. 다른 사람과 대화를 시작해 보세요.",
- "empty_column.public": "여기엔 아직 아무 것도 없습니다! 공개적으로 무언가 포스팅하거나, 다른 인스턴스의 유저를 팔로우 해서 채워보세요",
+ "empty_column.public": "여기엔 아직 아무 것도 없습니다! 공개적으로 무언가 포스팅하거나, 다른 서버의 유저를 팔로우 해서 채워보세요",
"follow_request.authorize": "허가",
"follow_request.reject": "거부",
"getting_started.developers": "개발자",
- "getting_started.directory": "Profile directory",
+ "getting_started.directory": "프로필 디렉터리",
"getting_started.documentation": "문서",
"getting_started.heading": "시작",
"getting_started.invite": "초대",
@@ -142,6 +142,8 @@
"hashtag.column_header.tag_mode.all": "그리고 {additional}",
"hashtag.column_header.tag_mode.any": "또는 {additional}",
"hashtag.column_header.tag_mode.none": "({additional}를 제외)",
+ "hashtag.column_settings.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
"hashtag.column_settings.tag_mode.all": "모두",
"hashtag.column_settings.tag_mode.any": "아무것이든",
"hashtag.column_settings.tag_mode.none": "이것들을 제외하고",
@@ -149,23 +151,23 @@
"home.column_settings.basic": "기본 설정",
"home.column_settings.show_reblogs": "부스트 표시",
"home.column_settings.show_replies": "답글 표시",
- "introduction.federation.action": "Next",
+ "introduction.federation.action": "다음",
"introduction.federation.federated.headline": "Federated",
- "introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
+ "introduction.federation.federated.text": "페디버스의 다른 서버의 공개 게시물이 연합 타임라인에 나타납니다.",
"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.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": "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.",
+ "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": "부스트",
@@ -204,6 +206,7 @@
"lists.account.remove": "리스트에서 제거",
"lists.delete": "리스트 삭제",
"lists.edit": "리스트 편집",
+ "lists.edit.submit": "Change title",
"lists.new.create": "리스트 추가",
"lists.new.title_placeholder": "새 리스트의 이름",
"lists.search": "팔로우 중인 사람들 중에서 찾기",
@@ -224,7 +227,7 @@
"navigation_bar.favourites": "즐겨찾기",
"navigation_bar.filters": "뮤트",
"navigation_bar.follow_requests": "팔로우 요청",
- "navigation_bar.info": "이 인스턴스에 대해서",
+ "navigation_bar.info": "이 서버에 대해서",
"navigation_bar.keyboard_shortcuts": "단축키",
"navigation_bar.lists": "리스트",
"navigation_bar.logout": "로그아웃",
@@ -242,20 +245,20 @@
"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.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": "All",
- "notifications.filter.boosts": "Boosts",
- "notifications.filter.favourites": "Favourites",
- "notifications.filter.follows": "Follows",
- "notifications.filter.mentions": "Mentions",
+ "notifications.filter.all": "모두",
+ "notifications.filter.boosts": "부스트",
+ "notifications.filter.favourites": "즐겨찾기",
+ "notifications.filter.follows": "팔로우",
+ "notifications.filter.mentions": "멘션",
"notifications.group": "{count} 개의 알림",
"privacy.change": "포스트의 프라이버시 설정을 변경",
"privacy.direct.long": "멘션한 사용자에게만 공개",
@@ -292,9 +295,12 @@
"search_results.statuses": "툿",
"search_results.total": "{count, number}건의 결과",
"standalone.public_title": "지금 이런 이야기를 하고 있습니다…",
+ "status.admin_account": "@{name}에 대한 모더레이션 인터페이스 열기",
+ "status.admin_status": "모더레이션 인터페이스에서 이 게시물 열기",
"status.block": "@{name} 차단",
"status.cancel_reblog_private": "부스트 취소",
"status.cannot_reblog": "이 포스트는 부스트 할 수 없습니다",
+ "status.copy": "게시물 링크 복사",
"status.delete": "삭제",
"status.detailed_status": "대화 자세히 보기",
"status.direct": "@{name}에게 다이렉트 메시지",
@@ -340,8 +346,9 @@
"ui.beforeunload": "지금 나가면 저장되지 않은 항목을 잃게 됩니다.",
"upload_area.title": "드래그 & 드롭으로 업로드",
"upload_button.label": "미디어 추가 (JPEG, PNG, GIF, WebM, MP4, MOV)",
+ "upload_error.limit": "파일 업로드 제한에 도달했습니다.",
"upload_form.description": "시각장애인을 위한 설명",
- "upload_form.focus": "크롭",
+ "upload_form.focus": "미리보기 변경",
"upload_form.undo": "삭제",
"upload_progress.label": "업로드 중...",
"video.close": "동영상 닫기",
diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json
new file mode 100644
index 000000000..eaf3366aa
--- /dev/null
+++ b/app/javascript/mastodon/locales/lv.json
@@ -0,0 +1,363 @@
+{
+ "account.add_or_remove_from_list": "Pievienot vai noņemt no saraksta",
+ "account.badges.bot": "Bots",
+ "account.block": "Bloķēt @{name}",
+ "account.block_domain": "Slēpt visu no {domain}",
+ "account.blocked": "Bloķēts",
+ "account.direct": "Privātā ziņa @{name}",
+ "account.disclaimer_full": "Informācija zemāk var nepilnīgi atspoguļot lietotāja profilu.",
+ "account.domain_blocked": "Domēns ir paslēpts",
+ "account.edit_profile": "Labot profilu",
+ "account.endorse": "Izcelts profilā",
+ "account.follow": "Sekot",
+ "account.followers": "Sekotāji",
+ "account.followers.empty": "Šim lietotājam nav sekotāju.",
+ "account.follows": "Seko",
+ "account.follows.empty": "Šis lietotājs pagaidām nevienam neseko.",
+ "account.follows_you": "Seko tev",
+ "account.hide_reblogs": "Paslēpt paceltos ierakstus no lietotāja @{name}",
+ "account.link_verified_on": "Šīs saites piederība ir pārbaudīta {date}",
+ "account.locked_info": "Šī konta privātuma status ir iestatīts slēgts. Īpašnieks izskatīs un izvēlēsies kas viņam drīkst sekot.",
+ "account.media": "Mēdiji",
+ "account.mention": "Piemin @{name}",
+ "account.moved_to": "{name} ir pārvācies uz:",
+ "account.mute": "Apklusināt @{name}",
+ "account.mute_notifications": "Nerādīt paziņojumus no @{name}",
+ "account.muted": "Apklusināts",
+ "account.posts": "Ieraksti",
+ "account.posts_with_replies": "Ieraksti un atbildes",
+ "account.report": "Ziņot par lietotāju @{name}",
+ "account.requested": "Gaidām apstiprinājumu. Nospied lai atceltu sekošanas pieparasījumu",
+ "account.share": "Dalīties ar lietotāja @{name}'s profilu",
+ "account.show_reblogs": "Parādīt lietotāja @{name} paceltos ierakstus",
+ "account.unblock": "Atbloķēt lietotāju @{name}",
+ "account.unblock_domain": "Atbloķēt domēnu {domain}",
+ "account.unendorse": "Neizcelt profilā",
+ "account.unfollow": "Nesekot",
+ "account.unmute": "Noņemt apklusinājumu no lietotāja @{name}",
+ "account.unmute_notifications": "Rādīt paziņojumus no lietotāja @{name}",
+ "account.view_full_profile": "Apskatīt pilnu profilu",
+ "alert.unexpected.message": "Negaidīta kļūda.",
+ "alert.unexpected.title": "Ups!",
+ "boost_modal.combo": "Nospied {combo} lai izlaistu šo nākamreiz",
+ "bundle_column_error.body": "Kaut kas nogāja greizi ielādējot šo komponenti.",
+ "bundle_column_error.retry": "Mēģini vēlreiz",
+ "bundle_column_error.title": "Tīkla kļūda",
+ "bundle_modal_error.close": "Aizvērt",
+ "bundle_modal_error.message": "Kaut kas nogāja greizi ielādējot šo komponenti.",
+ "bundle_modal_error.retry": "Mēģini vēlreiz",
+ "column.blocks": "Bloķētie lietotāji",
+ "column.community": "Lokālā laika līnija",
+ "column.direct": "Privātās ziņas",
+ "column.domain_blocks": "Paslēptie domēni",
+ "column.favourites": "Favorīti",
+ "column.follow_requests": "Sekotāju pieprasījumi",
+ "column.home": "Sākums",
+ "column.lists": "Saraksti",
+ "column.mutes": "Apklusinātie lietotāji",
+ "column.notifications": "Paziņojumi",
+ "column.pins": "Piespraustie ziņojumi",
+ "column.public": "Federatīvā laika līnija",
+ "column_back_button.label": "Atpakaļ",
+ "column_header.hide_settings": "Paslēpt iestatījumus",
+ "column_header.moveLeft_settings": "Pārvietot kolonu pa kreisi",
+ "column_header.moveRight_settings": "Pārvietot kolonu pa labi",
+ "column_header.pin": "Piespraust",
+ "column_header.show_settings": "Rādīt iestatījumus",
+ "column_header.unpin": "Atspraust",
+ "column_subheading.settings": "Iestatījumi",
+ "community.column_settings.media_only": "Tikai mēdiji",
+ "compose_form.direct_message_warning": "Šis ziņojums tiks nosūtīts tikai pieminētajiem lietotājiem.",
+ "compose_form.direct_message_warning_learn_more": "Papildus informācija",
+ "compose_form.hashtag_warning": "Ziņojumu nebūs iespējams atrast zem haštagiem jo tas nav publisks. Tikai publiskos ziņojumus ir iespējams meklēt pēc tiem.",
+ "compose_form.lock_disclaimer": "Tavs konts nav {locked}. Ikviens var Tev sekot lai apskatītu tikai sekotājiem paredzētos ziņojumus.",
+ "compose_form.lock_disclaimer.lock": "slēgts",
+ "compose_form.placeholder": "Ko vēlies publicēt?",
+ "compose_form.publish": "Publicēt",
+ "compose_form.publish_loud": "{publish}!",
+ "compose_form.sensitive.marked": "Mēdijs ir atzīmēts kā sensitīvs",
+ "compose_form.sensitive.unmarked": "Mēdijs nav atzīmēts kā sensitīvs",
+ "compose_form.spoiler.marked": "Teksts ir paslēpts aiz brīdinājuma",
+ "compose_form.spoiler.unmarked": "Teksts nav paslēpts",
+ "compose_form.spoiler_placeholder": "Ieraksti Savu brīdinājuma tekstu šeit",
+ "confirmation_modal.cancel": "Atcelt",
+ "confirmations.block.confirm": "Bloķēt",
+ "confirmations.block.message": "Vai tiešām vēlies bloķēt lietotāju {name}?",
+ "confirmations.delete.confirm": "Dzēst",
+ "confirmations.delete.message": "Vai tiešām vēlies dzēst šo ierakstu?",
+ "confirmations.delete_list.confirm": "Dzēst",
+ "confirmations.delete_list.message": "Vai tiešam vēlies neatgriezeniski dzēst šo sarakstu?",
+ "confirmations.domain_block.confirm": "Paslēpt visu domēnu",
+ "confirmations.domain_block.message": "Vai tu tiešām, tiešam vēlies bloķēt visu domēnu {domain}? Lielākajā daļā gadījumu pietiek ja nobloķē vai apklusini kādu. Tu neredzēsi saturu vai paziņojumus no šī domēna nevienā laika līnijā. Tavi sekotāji no šī domēna tiks noņemti.",
+ "confirmations.mute.confirm": "Apklusināt",
+ "confirmations.mute.message": "Vai Tu tiešām velies apklusināt {name}?",
+ "confirmations.redraft.confirm": "Dzēst un pārrakstīt",
+ "confirmations.redraft.message": "Vai tiešām vēlies dzēst un pārrakstīt šo ierakstu? Favorīti un paceltie ieraksti tiks dzēsti, kā arī atbildes tiks atsaistītas no šī ieraksta.",
+ "confirmations.reply.confirm": "Atbildēt",
+ "confirmations.reply.message": "Atbildot tagad tava ziņa ko šobrīd raksti tiks pārrakstīta. Vai tiešām vēlies turpināt?",
+ "confirmations.unfollow.confirm": "Nesekot",
+ "confirmations.unfollow.message": "Vai tiešam vairs nevēlies sekot lietotājam {name}?",
+ "embed.instructions": "Iegul šo ziņojumu savā mājaslapā kopējot kodu zemāk.",
+ "embed.preview": "Tas izskatīsies šādi:",
+ "emoji_button.activity": "Aktivitāte",
+ "emoji_button.custom": "Pielāgots",
+ "emoji_button.flags": "Karogi",
+ "emoji_button.food": "Ēdieni un dzērieni",
+ "emoji_button.label": "Ielikt emoji smaidiņu",
+ "emoji_button.nature": "Daba",
+ "emoji_button.not_found": "Nekādu emodžīšu!! (╯°□°)╯︵ ┻━┻",
+ "emoji_button.objects": "Objekti",
+ "emoji_button.people": "Cilvēki",
+ "emoji_button.recent": "Biežāk lietotie",
+ "emoji_button.search": "Meklēt...",
+ "emoji_button.search_results": "Meklēšanas rezultāti",
+ "emoji_button.symbols": "Simboli",
+ "emoji_button.travel": "Ceļošana & Vietas",
+ "empty_column.account_timeline": "Šeit ziņojumu nav!",
+ "empty_column.blocks": "Tu neesi vēl nevienu bloķējis.",
+ "empty_column.community": "Lokālā laika līnija ir tukša. :/ Ieraksti kaut ko lai sākas rosība!",
+ "empty_column.direct": "Tev nav privāto ziņu. Tiklīdz saņemsi tās šeit parādīsies.",
+ "empty_column.domain_blocks": "Slēpto domēnu vēl nav.",
+ "empty_column.favourited_statuses": "Tev vēl nav iemīļoto ziņojumu. Kad Tev tādu būs tie šeit parādīsies.",
+ "empty_column.favourites": "Neviens šo ziņojumu nav pievienojis favorītiem. Kad tādu būs tie šeit parādīsies.",
+ "empty_column.follow_requests": "Šobrīd neviens nav pieteicies tev sekot. Kad kāds pieteiksies tas parādīsies šeit.",
+ "empty_column.hashtag": "Ar šo haštagu nekas nav atrodams.",
+ "empty_column.home": "Tava laika līnija ir tukša! Apmeklē federatīvo laika līniju vai uzmeklē kādu meklētājā lai satiktu citus.",
+ "empty_column.home.public_timeline": "publiskā laika līnija",
+ "empty_column.list": "Šis saraksts ir tukšs. Kad šī saraksta dalībnieki atjaunos statusu tas parādīsies šeit.",
+ "empty_column.lists": "Tev nav neviena saraksta. Kad tādu būs tie parādīsies šeit.",
+ "empty_column.mutes": "Tu neesi nevienu apklusinājis.",
+ "empty_column.notifications": "Tev nav paziņojumu. Iesaisties sarunās ar citiem.",
+ "empty_column.public": "Šeit nekā nav, tukšums! Ieraksti kaut ko publiski, vai uzmeklē un seko kādam no citas instances",
+ "follow_request.authorize": "Autorizēt",
+ "follow_request.reject": "Noraidīt",
+ "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.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
+ "hashtag.column_settings.tag_mode.all": "All of these",
+ "hashtag.column_settings.tag_mode.any": "Any of these",
+ "hashtag.column_settings.tag_mode.none": "None of these",
+ "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
+ "home.column_settings.basic": "Basic",
+ "home.column_settings.show_reblogs": "Show boosts",
+ "home.column_settings.show_replies": "Show replies",
+ "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.edit.submit": "Change title",
+ "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.copy": "Copy link to status",
+ "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_error.limit": "File upload limit exceeded.",
+ "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
index 9e613ce59..536f65462 100644
--- a/app/javascript/mastodon/locales/ms.json
+++ b/app/javascript/mastodon/locales/ms.json
@@ -142,6 +142,8 @@
"hashtag.column_header.tag_mode.all": "and {additional}",
"hashtag.column_header.tag_mode.any": "or {additional}",
"hashtag.column_header.tag_mode.none": "without {additional}",
+ "hashtag.column_settings.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
"hashtag.column_settings.tag_mode.all": "All of these",
"hashtag.column_settings.tag_mode.any": "Any of these",
"hashtag.column_settings.tag_mode.none": "None of these",
@@ -204,6 +206,7 @@
"lists.account.remove": "Remove from list",
"lists.delete": "Delete list",
"lists.edit": "Edit list",
+ "lists.edit.submit": "Change title",
"lists.new.create": "Add list",
"lists.new.title_placeholder": "New list title",
"lists.search": "Search among people you follow",
@@ -292,9 +295,12 @@
"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.copy": "Copy link to status",
"status.delete": "Delete",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
@@ -340,6 +346,7 @@
"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_error.limit": "File upload limit exceeded.",
"upload_form.description": "Describe for the visually impaired",
"upload_form.focus": "Crop",
"upload_form.undo": "Delete",
diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json
index ec54dea09..fdc1eed4f 100644
--- a/app/javascript/mastodon/locales/nl.json
+++ b/app/javascript/mastodon/locales/nl.json
@@ -5,7 +5,7 @@
"account.block_domain": "Verberg alles van {domain}",
"account.blocked": "Geblokkeerd",
"account.direct": "Direct Message @{name}",
- "account.disclaimer_full": "De informatie hieronder kan mogelijk een incompleet beeld geven van dit gebruikersprofiel.",
+ "account.disclaimer_full": "De informatie hieronder kan een incompleet beeld geven van dit gebruikersprofiel.",
"account.domain_blocked": "Domein verborgen",
"account.edit_profile": "Profiel bewerken",
"account.endorse": "Op profiel weergeven",
@@ -94,7 +94,7 @@
"confirmations.redraft.confirm": "Verwijderen en herschrijven",
"confirmations.redraft.message": "Weet je zeker dat je deze toot wilt verwijderen en herschrijven? Je verliest wel de boosts en favorieten, en reacties op de originele toot zitten niet meer aan de nieuwe toot vast.",
"confirmations.reply.confirm": "Reageren",
- "confirmations.reply.message": "Door nu te reageren overschrijf je de toot die je op dit moment aan het schrijven bent. Weet je zeker dat je verder wil gaan?",
+ "confirmations.reply.message": "Door nu te reageren overschrijf je de toot die je op dit moment aan het schrijven bent. Weet je zeker dat je verder wil gaan?",
"confirmations.unfollow.confirm": "Ontvolgen",
"confirmations.unfollow.message": "Weet je het zeker dat je {name} wilt ontvolgen?",
"embed.instructions": "Embed deze toot op jouw website, door de onderstaande code te kopiëren.",
@@ -117,9 +117,9 @@
"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.",
- "empty_column.domain_blocks": "Er zijn nog geen genegeerde domeinen.",
- "empty_column.favourited_statuses": "Jij hebt nog geen favoriete toots. Wanneer je er een als favoriet markeert, valt deze hier te zien.",
- "empty_column.favourites": "Niemand heeft nog deze toot als favoriet gemarkeerd. Wanneer iemand dit doet, valt dat hier te zien.",
+ "empty_column.domain_blocks": "Er zijn nog geen genegeerde servers.",
+ "empty_column.favourited_statuses": "Jij hebt nog geen favoriete toots. Wanneer je er een aan jouw favorieten toevoegt, valt deze hier te zien.",
+ "empty_column.favourites": "Niemand heeft deze toot nog aan hun favorieten toegevoegd. Wanneer iemand dit doet, valt dat hier te zien.",
"empty_column.follow_requests": "Jij hebt nog enkel volgverzoek ontvangen. Wanneer je er eentje ontvangt, valt dat hier te zien.",
"empty_column.hashtag": "Er is nog niks te vinden onder deze hashtag.",
"empty_column.home": "Jij volgt nog niemand. Bezoek {public} of gebruik het zoekvenster om andere mensen te ontmoeten.",
@@ -132,7 +132,7 @@
"follow_request.authorize": "Goedkeuren",
"follow_request.reject": "Afkeuren",
"getting_started.developers": "Ontwikkelaars",
- "getting_started.directory": "Profile directory",
+ "getting_started.directory": "Gebruikersgids",
"getting_started.documentation": "Documentatie",
"getting_started.heading": "Aan de slag",
"getting_started.invite": "Mensen uitnodigen",
@@ -142,30 +142,32 @@
"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.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
"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": "Include additional tags in this column",
+ "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": "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.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": "Posts from people you follow will appear in your home feed. You can follow anyone on any server!",
+ "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": "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.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 aan jouw favorieten toe te voegen, deze voor later bewaren en de auteur laten weten dat je de toot leuk vind.",
"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.",
+ "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",
@@ -175,7 +177,7 @@
"keyboard_shortcuts.direct": "om jouw directe berichten te tonen",
"keyboard_shortcuts.down": "om naar beneden door de lijst te bewegen",
"keyboard_shortcuts.enter": "om toot volledig te tonen",
- "keyboard_shortcuts.favourite": "om als favoriet te markeren",
+ "keyboard_shortcuts.favourite": "om aan jouw favorieten toe te voegen",
"keyboard_shortcuts.favourites": "om jouw lijst met favorieten te tonen",
"keyboard_shortcuts.federated": "om de globale tijdlijn te tonen",
"keyboard_shortcuts.heading": "Sneltoetsen",
@@ -204,6 +206,7 @@
"lists.account.remove": "Uit lijst verwijderen",
"lists.delete": "Lijst verwijderen",
"lists.edit": "Lijst bewerken",
+ "lists.edit.submit": "Change title",
"lists.new.create": "Lijst toevoegen",
"lists.new.title_placeholder": "Naam nieuwe lijst",
"lists.search": "Zoek naar mensen die je volgt",
@@ -219,7 +222,7 @@
"navigation_bar.compose": "Nieuw toot schrijven",
"navigation_bar.direct": "Directe berichten",
"navigation_bar.discover": "Ontdekken",
- "navigation_bar.domain_blocks": "Genegeerde domeinen",
+ "navigation_bar.domain_blocks": "Genegeerde servers",
"navigation_bar.edit_profile": "Profiel bewerken",
"navigation_bar.favourites": "Favorieten",
"navigation_bar.filters": "Filters",
@@ -234,7 +237,7 @@
"navigation_bar.preferences": "Instellingen",
"navigation_bar.public_timeline": "Globale tijdlijn",
"navigation_bar.security": "Beveiliging",
- "notification.favourite": "{name} markeerde jouw toot als favoriet",
+ "notification.favourite": "{name} voegde jouw toot als favoriet toe",
"notification.follow": "{name} volgt jou nu",
"notification.mention": "{name} vermeldde jou",
"notification.reblog": "{name} boostte jouw toot",
@@ -242,20 +245,20 @@
"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": "Display all categories",
- "notifications.column_settings.filter_bar.category": "Quick filter bar",
- "notifications.column_settings.filter_bar.show": "Show",
+ "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": "All",
+ "notifications.filter.all": "Alles",
"notifications.filter.boosts": "Boosts",
- "notifications.filter.favourites": "Favourites",
- "notifications.filter.follows": "Follows",
- "notifications.filter.mentions": "Mentions",
+ "notifications.filter.favourites": "Favorieten",
+ "notifications.filter.follows": "Die jij volgt",
+ "notifications.filter.mentions": "Vermeldingen",
"notifications.group": "{count} meldingen",
"privacy.change": "Zichtbaarheid toot aanpassen",
"privacy.direct.long": "Alleen aan vermelde gebruikers tonen",
@@ -292,9 +295,12 @@
"search_results.statuses": "Toots",
"search_results.total": "{count, number} {count, plural, one {resultaat} other {resultaten}}",
"standalone.public_title": "Een kijkje binnenin...",
+ "status.admin_account": "Moderatie-omgeving van @{name} openen",
+ "status.admin_status": "Deze toot in de moderatie-omgeving openen",
"status.block": "Blokkeer @{name}",
"status.cancel_reblog_private": "Niet langer boosten",
"status.cannot_reblog": "Deze toot kan niet geboost worden",
+ "status.copy": "Link naar toot kopiëren",
"status.delete": "Verwijderen",
"status.detailed_status": "Uitgebreide gespreksweergave",
"status.direct": "Directe toot @{name}",
@@ -329,7 +335,7 @@
"status.show_thread": "Gesprek tonen",
"status.unmute_conversation": "Gesprek niet langer negeren",
"status.unpin": "Van profielpagina losmaken",
- "suggestions.dismiss": "Suggestie verwerpen",
+ "suggestions.dismiss": "Voorstel verwerpen",
"suggestions.header": "Je bent waarschijnlijk ook geïnteresseerd in…",
"tabs_bar.federated_timeline": "Globaal",
"tabs_bar.home": "Start",
@@ -340,8 +346,9 @@
"ui.beforeunload": "Je concept zal verloren gaan als je Mastodon verlaat.",
"upload_area.title": "Hierin slepen om te uploaden",
"upload_button.label": "Media toevoegen (JPEG, PNG, GIF, WebM, MP4, MOV)",
+ "upload_error.limit": "Uploadlimiet van bestand overschreden.",
"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 7ffdd78a0..d9504c0c5 100644
--- a/app/javascript/mastodon/locales/no.json
+++ b/app/javascript/mastodon/locales/no.json
@@ -142,6 +142,8 @@
"hashtag.column_header.tag_mode.all": "and {additional}",
"hashtag.column_header.tag_mode.any": "or {additional}",
"hashtag.column_header.tag_mode.none": "without {additional}",
+ "hashtag.column_settings.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
"hashtag.column_settings.tag_mode.all": "All of these",
"hashtag.column_settings.tag_mode.any": "Any of these",
"hashtag.column_settings.tag_mode.none": "None of these",
@@ -204,6 +206,7 @@
"lists.account.remove": "Fjern fra listen",
"lists.delete": "Slett listen",
"lists.edit": "Rediger listen",
+ "lists.edit.submit": "Change title",
"lists.new.create": "Ligg til liste",
"lists.new.title_placeholder": "Ny listetittel",
"lists.search": "Søk blant personer du følger",
@@ -292,9 +295,12 @@
"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",
+ "status.copy": "Copy link to status",
"status.delete": "Slett",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
@@ -340,6 +346,7 @@
"ui.beforeunload": "Din kladd vil bli forkastet om du forlater Mastodon.",
"upload_area.title": "Dra og slipp for å laste opp",
"upload_button.label": "Legg til media",
+ "upload_error.limit": "File upload limit exceeded.",
"upload_form.description": "Beskriv for synshemmede",
"upload_form.focus": "Crop",
"upload_form.undo": "Angre",
diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json
index 39e734bee..5d4897e2b 100644
--- a/app/javascript/mastodon/locales/oc.json
+++ b/app/javascript/mastodon/locales/oc.json
@@ -132,7 +132,7 @@
"follow_request.authorize": "Acceptar",
"follow_request.reject": "Regetar",
"getting_started.developers": "Desvelopaires",
- "getting_started.directory": "Profile directory",
+ "getting_started.directory": "Annuari de perfils",
"getting_started.documentation": "Documentacion",
"getting_started.heading": "Per començar",
"getting_started.invite": "Convidar de monde",
@@ -142,6 +142,8 @@
"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.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
"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",
@@ -204,6 +206,7 @@
"lists.account.remove": "Levar de la lista",
"lists.delete": "Suprimir la lista",
"lists.edit": "Modificar la lista",
+ "lists.edit.submit": "Change title",
"lists.new.create": "Ajustar una lista",
"lists.new.title_placeholder": "Títol de la nòva lista",
"lists.search": "Cercar demest lo monde que seguètz",
@@ -242,16 +245,16 @@
"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": "Display all categories",
- "notifications.column_settings.filter_bar.category": "Quick filter bar",
- "notifications.column_settings.filter_bar.show": "Show",
+ "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.all": "Totas",
"notifications.filter.boosts": "Partages",
"notifications.filter.favourites": "Favorits",
"notifications.filter.follows": "Seguiments",
@@ -292,9 +295,12 @@
"search_results.statuses": "Tuts",
"search_results.total": "{count, number} {count, plural, one {resultat} other {resultats}}",
"standalone.public_title": "Una ulhada dedins…",
+ "status.admin_account": "Dobrir l’interfàcia de moderacion per @{name}",
+ "status.admin_status": "Dobrir aqueste estatut dins l’interfàcia de moderacion",
"status.block": "Blocar @{name}",
"status.cancel_reblog_private": "Quitar de partejar",
"status.cannot_reblog": "Aqueste estatut pòt pas èsser partejat",
+ "status.copy": "Copy link to status",
"status.delete": "Escafar",
"status.detailed_status": "Vista detalhada de la convèrsa",
"status.direct": "Messatge per @{name}",
@@ -340,8 +346,9 @@
"ui.beforeunload": "Vòstre brolhon serà perdut se quitatz Mastodon.",
"upload_area.title": "Lisatz e depausatz per mandar",
"upload_button.label": "Ajustar un mèdia (JPEG, PNG, GIF, WebM, MP4, MOV)",
+ "upload_error.limit": "File upload limit exceeded.",
"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 0210ec10f..d1d900447 100644
--- a/app/javascript/mastodon/locales/pl.json
+++ b/app/javascript/mastodon/locales/pl.json
@@ -1,5 +1,5 @@
{
- "account.add_or_remove_from_list": "Add or Remove from lists",
+ "account.add_or_remove_from_list": "Dodaj lub usuń z list",
"account.badges.bot": "Bot",
"account.block": "Blokuj @{name}",
"account.block_domain": "Blokuj wszystko z {domain}",
@@ -113,7 +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.account_timeline": "Brak wpisów tutaj!",
"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.",
@@ -132,19 +132,21 @@
"follow_request.authorize": "Autoryzuj",
"follow_request.reject": "Odrzuć",
"getting_started.developers": "Dla programistów",
- "getting_started.directory": "Profile directory",
+ "getting_started.directory": "Katalog profilów",
"getting_started.documentation": "Dokumentacja",
"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_header.tag_mode.all": "i {additional}",
+ "hashtag.column_header.tag_mode.any": "lub {additional}",
+ "hashtag.column_header.tag_mode.none": "bez {additional}",
+ "hashtag.column_settings.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
+ "hashtag.column_settings.tag_mode.all": "Wszystkie",
+ "hashtag.column_settings.tag_mode.any": "Dowolne",
+ "hashtag.column_settings.tag_mode.none": "Żadne",
"hashtag.column_settings.tag_toggle": "Include additional tags in this column",
"home.column_settings.basic": "Podstawowe",
"home.column_settings.show_reblogs": "Pokazuj podbicia",
@@ -204,6 +206,7 @@
"lists.account.remove": "Usunąć z listy",
"lists.delete": "Usuń listę",
"lists.edit": "Edytuj listę",
+ "lists.edit.submit": "Change title",
"lists.new.create": "Utwórz listę",
"lists.new.title_placeholder": "Wprowadź tytuł listy",
"lists.search": "Szukaj wśród osób które śledzisz",
@@ -292,9 +295,12 @@
"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": "Otwórz interfejs moderacyjny dla @{name}",
+ "status.admin_status": "Otwórz ten wpis w interfejsie moderacyjnym",
"status.block": "Zablokuj @{name}",
"status.cancel_reblog_private": "Cofnij podbicie",
"status.cannot_reblog": "Ten wpis nie może zostać podbity",
+ "status.copy": "Copy link to status",
"status.delete": "Usuń",
"status.detailed_status": "Szczegółowy widok konwersacji",
"status.direct": "Wyślij wiadomość bezpośrednią do @{name}",
@@ -326,11 +332,11 @@
"status.show_less_all": "Zwiń wszystkie",
"status.show_more": "Rozwiń",
"status.show_more_all": "Rozwiń wszystkie",
- "status.show_thread": "Show thread",
+ "status.show_thread": "Pokaż wątek",
"status.unmute_conversation": "Cofnij wyciszenie konwersacji",
"status.unpin": "Odepnij z profilu",
- "suggestions.dismiss": "Dismiss suggestion",
- "suggestions.header": "You might be interested in…",
+ "suggestions.dismiss": "Odrzuć sugestię",
+ "suggestions.header": "Może Cię zainteresować…",
"tabs_bar.federated_timeline": "Globalne",
"tabs_bar.home": "Strona główna",
"tabs_bar.local_timeline": "Lokalne",
@@ -340,8 +346,9 @@
"ui.beforeunload": "Utracisz tworzony wpis, jeżeli opuścisz Mastodona.",
"upload_area.title": "Przeciągnij i upuść aby wysłać",
"upload_button.label": "Dodaj zawartość multimedialną (JPEG, PNG, GIF, WebM, MP4, MOV)",
+ "upload_error.limit": "Przekroczono limit plików do wysłania.",
"upload_form.description": "Wprowadź opis dla niewidomych i niedowidzących",
- "upload_form.focus": "Przytnij",
+ "upload_form.focus": "Dopasuj podgląd",
"upload_form.undo": "Usuń",
"upload_progress.label": "Wysyłanie...",
"video.close": "Zamknij film",
diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json
index 0efcad486..83c2dd0ce 100644
--- a/app/javascript/mastodon/locales/pt-BR.json
+++ b/app/javascript/mastodon/locales/pt-BR.json
@@ -132,7 +132,7 @@
"follow_request.authorize": "Autorizar",
"follow_request.reject": "Rejeitar",
"getting_started.developers": "Desenvolvedores",
- "getting_started.directory": "Profile directory",
+ "getting_started.directory": "Diretório de perfis",
"getting_started.documentation": "Documentação",
"getting_started.heading": "Primeiros passos",
"getting_started.invite": "Convide pessoas",
@@ -142,6 +142,8 @@
"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.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
"hashtag.column_settings.tag_mode.all": "Todas essas",
"hashtag.column_settings.tag_mode.any": "Qualquer uma dessas",
"hashtag.column_settings.tag_mode.none": "Nenhuma dessas",
@@ -149,23 +151,23 @@
"home.column_settings.basic": "Básico",
"home.column_settings.show_reblogs": "Mostrar compartilhamentos",
"home.column_settings.show_replies": "Mostrar as respostas",
- "introduction.federation.action": "Next",
+ "introduction.federation.action": "Próximo",
"introduction.federation.federated.headline": "Federated",
- "introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
+ "introduction.federation.federated.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 from people you follow will appear in your home feed. You can follow anyone on any server!",
+ "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": "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.",
+ "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",
@@ -204,6 +206,7 @@
"lists.account.remove": "Remover da lista",
"lists.delete": "Delete list",
"lists.edit": "Editar lista",
+ "lists.edit.submit": "Change title",
"lists.new.create": "Adicionar lista",
"lists.new.title_placeholder": "Novo título da lista",
"lists.search": "Procurar entre as pessoas que você segue",
@@ -242,20 +245,20 @@
"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": "Display all categories",
- "notifications.column_settings.filter_bar.category": "Quick filter bar",
- "notifications.column_settings.filter_bar.show": "Show",
+ "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": "All",
- "notifications.filter.boosts": "Boosts",
- "notifications.filter.favourites": "Favourites",
- "notifications.filter.follows": "Follows",
- "notifications.filter.mentions": "Mentions",
+ "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",
"privacy.change": "Ajustar a privacidade da mensagem",
"privacy.direct.long": "Apenas para usuários mencionados",
@@ -292,9 +295,12 @@
"search_results.statuses": "Toots",
"search_results.total": "{count, number} {count, plural, one {resultado} other {resultados}}",
"standalone.public_title": "Dê uma espiada...",
+ "status.admin_account": "Abrir interface de moderação para @{name}",
+ "status.admin_status": "Abrir esse status na interface de moderação",
"status.block": "Block @{name}",
"status.cancel_reblog_private": "Desfazer compartilhamento",
"status.cannot_reblog": "Esta postagem não pode ser compartilhada",
+ "status.copy": "Copy link to status",
"status.delete": "Excluir",
"status.detailed_status": "Visão detalhada da conversa",
"status.direct": "Enviar mensagem direta a @{name}",
@@ -340,6 +346,7 @@
"ui.beforeunload": "Seu rascunho será perdido se você sair do Mastodon.",
"upload_area.title": "Arraste e solte para enviar",
"upload_button.label": "Adicionar mídia (JPEG, PNG, GIF, WebM, MP4, MOV)",
+ "upload_error.limit": "File upload limit exceeded.",
"upload_form.description": "Descreva a imagem para deficientes visuais",
"upload_form.focus": "Ajustar foco",
"upload_form.undo": "Remover",
diff --git a/app/javascript/mastodon/locales/pt.json b/app/javascript/mastodon/locales/pt.json
index 049a8901a..af48b323c 100644
--- a/app/javascript/mastodon/locales/pt.json
+++ b/app/javascript/mastodon/locales/pt.json
@@ -142,6 +142,8 @@
"hashtag.column_header.tag_mode.all": "and {additional}",
"hashtag.column_header.tag_mode.any": "or {additional}",
"hashtag.column_header.tag_mode.none": "without {additional}",
+ "hashtag.column_settings.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
"hashtag.column_settings.tag_mode.all": "All of these",
"hashtag.column_settings.tag_mode.any": "Any of these",
"hashtag.column_settings.tag_mode.none": "None of these",
@@ -204,6 +206,7 @@
"lists.account.remove": "Remover da lista",
"lists.delete": "Delete list",
"lists.edit": "Editar lista",
+ "lists.edit.submit": "Change title",
"lists.new.create": "Adicionar lista",
"lists.new.title_placeholder": "Novo título da lista",
"lists.search": "Pesquisa entre as pessoas que segues",
@@ -292,9 +295,12 @@
"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",
+ "status.copy": "Copy link to status",
"status.delete": "Eliminar",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
@@ -340,6 +346,7 @@
"ui.beforeunload": "O teu rascunho vai ser perdido se abandonares o Mastodon.",
"upload_area.title": "Arraste e solte para enviar",
"upload_button.label": "Adicionar media",
+ "upload_error.limit": "File upload limit exceeded.",
"upload_form.description": "Descrição da imagem para pessoas com dificuldades visuais",
"upload_form.focus": "Crop",
"upload_form.undo": "Anular",
diff --git a/app/javascript/mastodon/locales/ro.json b/app/javascript/mastodon/locales/ro.json
index 211f2e660..802e43ce2 100644
--- a/app/javascript/mastodon/locales/ro.json
+++ b/app/javascript/mastodon/locales/ro.json
@@ -1,23 +1,23 @@
{
- "account.add_or_remove_from_list": "Add or Remove from lists",
+ "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.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
+ "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:",
@@ -27,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",
@@ -70,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}?",
@@ -88,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.",
@@ -113,15 +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": "No toots here!",
+ "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.",
@@ -132,78 +132,81 @@
"follow_request.authorize": "Autorizează",
"follow_request.reject": "Respinge",
"getting_started.developers": "Dezvoltatori",
- "getting_started.directory": "Profile directory",
+ "getting_started.directory": "Explorează",
"getting_started.documentation": "Documentație",
"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",
- "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",
+ "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.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
+ "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": "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.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": "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.",
+ "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.edit.submit": "Change title",
"lists.new.create": "Adaugă listă",
"lists.new.title_placeholder": "Titlu pentru noua listă",
"lists.search": "Caută printre persoanale pe care le urmărești",
@@ -242,20 +245,20 @@
"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": "Display all categories",
- "notifications.column_settings.filter_bar.category": "Quick filter bar",
- "notifications.column_settings.filter_bar.show": "Show",
+ "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": "All",
- "notifications.filter.boosts": "Boosts",
- "notifications.filter.favourites": "Favourites",
- "notifications.filter.follows": "Follows",
- "notifications.filter.mentions": "Mentions",
+ "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",
"privacy.change": "Cine vede asta",
"privacy.direct.long": "Postează doar pentru utilizatorii menționați",
@@ -291,10 +294,13 @@
"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ă",
+ "status.copy": "Copy link to status",
"status.delete": "Șterge",
"status.detailed_status": "Conversația detailată",
"status.direct": "Mesaj direct @{name}",
@@ -310,10 +316,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",
@@ -326,11 +332,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": "Show thread",
+ "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",
@@ -340,8 +346,9 @@
"ui.beforeunload": "Postarea se va pierde dacă părăsești pagina.",
"upload_area.title": "Trage și eliberează pentru a încărca",
"upload_button.label": "Adaugă media (JPEG, PNG, GIF, WebM, MP4, MOV)",
+ "upload_error.limit": "File upload limit exceeded.",
"upload_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 0d10c663a..7c978bc3f 100644
--- a/app/javascript/mastodon/locales/ru.json
+++ b/app/javascript/mastodon/locales/ru.json
@@ -142,6 +142,8 @@
"hashtag.column_header.tag_mode.all": "and {additional}",
"hashtag.column_header.tag_mode.any": "or {additional}",
"hashtag.column_header.tag_mode.none": "without {additional}",
+ "hashtag.column_settings.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
"hashtag.column_settings.tag_mode.all": "All of these",
"hashtag.column_settings.tag_mode.any": "Any of these",
"hashtag.column_settings.tag_mode.none": "None of these",
@@ -204,6 +206,7 @@
"lists.account.remove": "Убрать из списка",
"lists.delete": "Удалить список",
"lists.edit": "Изменить список",
+ "lists.edit.submit": "Change title",
"lists.new.create": "Новый список",
"lists.new.title_placeholder": "Заголовок списка",
"lists.search": "Искать из ваших подписок",
@@ -292,9 +295,12 @@
"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": "Этот статус не может быть продвинут",
+ "status.copy": "Copy link to status",
"status.delete": "Удалить",
"status.detailed_status": "Подробный просмотр обсуждения",
"status.direct": "Написать @{name}",
@@ -340,6 +346,7 @@
"ui.beforeunload": "Ваш черновик будет утерян, если вы покинете Mastodon.",
"upload_area.title": "Перетащите сюда, чтобы загрузить",
"upload_button.label": "Добавить медиаконтент",
+ "upload_error.limit": "File upload limit exceeded.",
"upload_form.description": "Описать для людей с нарушениями зрения",
"upload_form.focus": "Обрезать",
"upload_form.undo": "Отменить",
diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json
index d5e7c0836..62677471c 100644
--- a/app/javascript/mastodon/locales/sk.json
+++ b/app/javascript/mastodon/locales/sk.json
@@ -13,7 +13,7 @@
"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ľ tu ešte nikoho nenásleduje.",
+ "account.follows.empty": "Tento užívateľ ešte nikoho nenásleduje.",
"account.follows_you": "Následuje ťa",
"account.hide_reblogs": "Skryť povýšenia od @{name}",
"account.link_verified_on": "Vlastníctvo tohto odkazu bolo skontrolované {date}",
@@ -24,20 +24,20 @@
"account.mute": "Ignorovať @{name}",
"account.mute_notifications": "Stĺmiť oboznámenia od @{name}",
"account.muted": "Utíšený/á",
- "account.posts": "Hlášky",
- "account.posts_with_replies": "Hlášky s odpoveďami",
+ "account.posts": "Príspevky",
+ "account.posts_with_replies": "Príspevky aj 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": "Zrušiť stlmenie oznámení 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.",
@@ -56,13 +56,13 @@
"column.lists": "Zoznamy",
"column.mutes": "Ignorovaní užívatelia",
"column.notifications": "Oboznámenia",
- "column.pins": "Pripnuté hlášky",
+ "column.pins": "Pripnuté príspevky",
"column.public": "Federovaná časová os",
"column_back_button.label": "Späť",
"column_header.hide_settings": "Skryť nastavenia",
- "column_header.moveLeft_settings": "Presunúť stĺpec doľava",
- "column_header.moveRight_settings": "Presunúť stĺpec doprava",
- "column_header.pin": "Pripnúť",
+ "column_header.moveLeft_settings": "Presuň stĺpec doľava",
+ "column_header.moveRight_settings": "Presuň stĺpec doprava",
+ "column_header.pin": "Pripni",
"column_header.show_settings": "Ukáž nastavenia",
"column_header.unpin": "Odopnúť",
"column_subheading.settings": "Nastavenia",
@@ -70,7 +70,7 @@
"compose_form.direct_message_warning": "Tento príspevok bude videný výhradne iba spomenutými užívateľmi. Ber ale na vedomie že správci tvojej a všetkých iných zahrnutých instancií majú možnosť skontrolovať túto správu.",
"compose_form.direct_message_warning_learn_more": "Zistiť viac",
"compose_form.hashtag_warning": "Tento toot nebude zobrazený pod žiadným haštagom lebo nieje listovaný. Iba verejné tooty môžu byť nájdené podľa haštagu.",
- "compose_form.lock_disclaimer": "Váš účet nie je zamknutý. Ktokoľvek ťa môže nasledovať a vidieť tvoje správy pre sledujúcich.",
+ "compose_form.lock_disclaimer": "Váš účet nie je {locked}. Ktokoľvek ťa môže nasledovať a vidieť tvoje správy pre sledujúcich.",
"compose_form.lock_disclaimer.lock": "zamknutý",
"compose_form.placeholder": "Čo máš na mysli?",
"compose_form.publish": "Pošli",
@@ -79,21 +79,21 @@
"compose_form.sensitive.unmarked": "Médiálny obsah nieje označený ako chúlostivý",
"compose_form.spoiler.marked": "Text je ukrytý za varovaním",
"compose_form.spoiler.unmarked": "Text nieje ukrytý",
- "compose_form.spoiler_placeholder": "Sem napíšte vaše varovanie",
- "confirmation_modal.cancel": "Zrušiť",
- "confirmations.block.confirm": "Blokovať",
- "confirmations.block.message": "Si si istý, že chcete blokovať {name}?",
- "confirmations.delete.confirm": "Zmazať",
- "confirmations.delete.message": "Si si naozaj istá/ý, že chceš vymazať túto správu?",
- "confirmations.delete_list.confirm": "Vymazať",
- "confirmations.delete_list.message": "Si si istý/á, že chceš navždy vymazať tento zoznam?",
+ "compose_form.spoiler_placeholder": "Sem napíš tvoje varovanie",
+ "confirmation_modal.cancel": "Zruš",
+ "confirmations.block.confirm": "Blokuj",
+ "confirmations.block.message": "Si si istý/á, že chceš blokovať {name}?",
+ "confirmations.delete.confirm": "Vymaž",
+ "confirmations.delete.message": "Si si istý/á, že chceš vymazať túto správu?",
+ "confirmations.delete_list.confirm": "Vymaž",
+ "confirmations.delete_list.message": "Si si istý/á, že chceš natrvalo vymazať tento zoznam?",
"confirmations.domain_block.confirm": "Skryť celú doménu",
"confirmations.domain_block.message": "Si si naozaj istý, že chceš blokovať celú {domain}? Vo väčšine prípadov stačí blokovať alebo ignorovať pár konkrétnych užívateľov, čo sa doporučuje. Neuvidíš obsah z tejto domény v žiadnej verejnej časovej osi, ani v oznámeniach. Tvoji následovníci pochádzajúci z tejto domény budú odstránení.",
"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": "Odpovedať",
+ "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}?",
@@ -127,12 +127,12 @@
"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 serverov, aby tu niečo pribudlo",
"follow_request.authorize": "Povoľ prístup",
"follow_request.reject": "Odmietni",
"getting_started.developers": "Vývojári",
- "getting_started.directory": "Profile directory",
+ "getting_started.directory": "Databáza profilov",
"getting_started.documentation": "Dokumentácia",
"getting_started.heading": "Začni tu",
"getting_started.invite": "Pozvať ľudí",
@@ -142,6 +142,8 @@
"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.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
"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",
@@ -149,23 +151,23 @@
"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": "Next",
+ "introduction.federation.action": "Ďalej",
"introduction.federation.federated.headline": "Federated",
- "introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
+ "introduction.federation.federated.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": "Posts from people you follow will appear in your home feed. You can follow anyone on any server!",
+ "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": "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.",
+ "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 spolu 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úť",
@@ -203,8 +205,9 @@
"lists.account.add": "Pridať do zoznamu",
"lists.account.remove": "Odobrať zo zoznamu",
"lists.delete": "Vymazať list",
- "lists.edit": "Upraviť zoznam",
- "lists.new.create": "Pridať zoznam",
+ "lists.edit": "Uprav zoznam",
+ "lists.edit.submit": "Change title",
+ "lists.new.create": "Pridaj zoznam",
"lists.new.title_placeholder": "Názov nového zoznamu",
"lists.search": "Vyhľadávajte medzi užívateľmi ktorých sledujete",
"lists.subheading": "Tvoje zoznamy",
@@ -212,7 +215,7 @@
"media_gallery.toggle_visible": "Zapnúť/Vypnúť viditeľnosť",
"missing_indicator.label": "Nenájdené",
"missing_indicator.sublabel": "Tento zdroj sa ešte nepodarilo nájsť",
- "mute_modal.hide_notifications": "Skryť oboznámenia od tohoto užívateľa?",
+ "mute_modal.hide_notifications": "Skryť oznámenia od tohto používateľa?",
"navigation_bar.apps": "Mobilné aplikácie",
"navigation_bar.blocks": "Blokovaní užívatelia",
"navigation_bar.community_timeline": "Lokálna časová os",
@@ -224,7 +227,7 @@
"navigation_bar.favourites": "Obľúbené",
"navigation_bar.filters": "Utĺmené slová",
"navigation_bar.follow_requests": "Žiadosti o sledovanie",
- "navigation_bar.info": "O tomto Mastodon serveri",
+ "navigation_bar.info": "O tomto serveri",
"navigation_bar.keyboard_shortcuts": "Klávesové skratky",
"navigation_bar.lists": "Zoznamy",
"navigation_bar.logout": "Odhlás sa",
@@ -242,23 +245,23 @@
"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": "Display all categories",
- "notifications.column_settings.filter_bar.category": "Quick filter bar",
- "notifications.column_settings.filter_bar.show": "Show",
+ "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": "All",
- "notifications.filter.boosts": "Boosts",
- "notifications.filter.favourites": "Favourites",
- "notifications.filter.follows": "Follows",
- "notifications.filter.mentions": "Mentions",
- "notifications.group": "{count} oznámenia",
- "privacy.change": "Zmeňiť viditeľnosť statusu",
- "privacy.direct.long": "Poslať priamo iba spomenutým používateľom",
+ "notifications.filter.all": "Všetky",
+ "notifications.filter.boosts": "Vyzdvihnutia",
+ "notifications.filter.favourites": "Obľúbené",
+ "notifications.filter.follows": "Sledovania",
+ "notifications.filter.mentions": "Iba spomenutia",
+ "notifications.group": "{count} oboznámení",
+ "privacy.change": "Uprav súkromie príspevku",
+ "privacy.direct.long": "Pošli iba spomenutým používateľom",
"privacy.direct.short": "Súkromne",
"privacy.private.long": "Poslať iba následovateľom",
"privacy.private.short": "Iba pre sledujúcich",
@@ -276,7 +279,7 @@
"reply_indicator.cancel": "Zrušiť",
"report.forward": "Posuň ku {target}",
"report.forward_hint": "Tento účet je z iného serveru. Chceš poslať anonymnú kópiu reportu aj tam?",
- "report.hint": "Toto nahlásenie bude zaslané správcom servera. Môžeš napísať odvôvodnenie prečo si nahlásil/a tento účet:",
+ "report.hint": "Toto nahlásenie bude zaslané správcom tvojho servera. Môžeš napísať odvôvodnenie, prečo nahlasuješ tento účet:",
"report.placeholder": "Ďalšie komentáre",
"report.submit": "Poslať",
"report.target": "Nahlásenie {target}",
@@ -289,12 +292,15 @@
"search_popout.tips.user": "používateľ",
"search_results.accounts": "Ľudia",
"search_results.hashtags": "Haštagy",
- "search_results.statuses": "Hlášky",
+ "search_results.statuses": "Príspevky",
"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": "Otvor moderovacie rozhranie užívateľa @{name}",
+ "status.admin_status": "Otvor tento príspevok v moderovacom rozhraní",
"status.block": "Blokovať @{name}",
"status.cancel_reblog_private": "Nezdieľaj",
"status.cannot_reblog": "Tento príspevok nemôže byť re-tootnutý",
+ "status.copy": "Copy link to status",
"status.delete": "Zmazať",
"status.detailed_status": "Podrobný náhľad celej konverzácie",
"status.direct": "Súkromná správa @{name}",
@@ -319,7 +325,7 @@
"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",
@@ -340,8 +346,9 @@
"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_error.limit": "File upload limit exceeded.",
"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 8b7b4586a..213eb8203 100644
--- a/app/javascript/mastodon/locales/sl.json
+++ b/app/javascript/mastodon/locales/sl.json
@@ -1,5 +1,5 @@
{
- "account.add_or_remove_from_list": "Add or Remove from lists",
+ "account.add_or_remove_from_list": "Dodaj ali odstrani iz seznama",
"account.badges.bot": "Robot",
"account.block": "Blokiraj @{name}",
"account.block_domain": "Skrij vse iz {domain}",
@@ -142,6 +142,8 @@
"hashtag.column_header.tag_mode.all": "and {additional}",
"hashtag.column_header.tag_mode.any": "or {additional}",
"hashtag.column_header.tag_mode.none": "without {additional}",
+ "hashtag.column_settings.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
"hashtag.column_settings.tag_mode.all": "All of these",
"hashtag.column_settings.tag_mode.any": "Any of these",
"hashtag.column_settings.tag_mode.none": "None of these",
@@ -204,6 +206,7 @@
"lists.account.remove": "Remove from list",
"lists.delete": "Delete list",
"lists.edit": "Edit list",
+ "lists.edit.submit": "Change title",
"lists.new.create": "Add list",
"lists.new.title_placeholder": "New list title",
"lists.search": "Search among people you follow",
@@ -292,9 +295,12 @@
"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",
+ "status.copy": "Copy link to status",
"status.delete": "Delete",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
@@ -340,6 +346,7 @@
"ui.beforeunload": "Vaš osnutek bo izgubljen, če zapustite Mastodona.",
"upload_area.title": "Povlecite in spustite za pošiljanje",
"upload_button.label": "Dodaj medij",
+ "upload_error.limit": "File upload limit exceeded.",
"upload_form.description": "Opišite za slabovidne",
"upload_form.focus": "Obreži",
"upload_form.undo": "Izbriši",
diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json
new file mode 100644
index 000000000..6e0d7ebb6
--- /dev/null
+++ b/app/javascript/mastodon/locales/sq.json
@@ -0,0 +1,363 @@
+{
+ "account.add_or_remove_from_list": "Shtoni ose Hiqni prej listash",
+ "account.badges.bot": "Robot",
+ "account.block": "Blloko @{name}",
+ "account.block_domain": "Fshih gjithçka prej {domain}",
+ "account.blocked": "E bllokuar",
+ "account.direct": "Mesazh i drejtpërdrejt për @{name}",
+ "account.disclaimer_full": "Të dhënat më poshtë mund ta pasqyrojnë pjesërisht profilin e përdoruesit.",
+ "account.domain_blocked": "Përkatësi e fshehur",
+ "account.edit_profile": "Përpunoni profilin",
+ "account.endorse": "Pasqyrojeni në profil",
+ "account.follow": "Ndiqeni",
+ "account.followers": "Ndjekës",
+ "account.followers.empty": "Këtë përdorues ende s’e ndjek njeri.",
+ "account.follows": "Ndjekje",
+ "account.follows.empty": "Ky përdorues ende s’ndjek njeri.",
+ "account.follows_you": "Ju ndjek",
+ "account.hide_reblogs": "Fshih përforcime nga @{name}",
+ "account.link_verified_on": "Pronësia e kësaj lidhjeje qe kontrolluar më {date}",
+ "account.locked_info": "Gjendja e privatësisë së kësaj llogarie është caktuar si e kyçur. I zoti merr dorazi në shqyrtim cilët mund ta ndjekin.",
+ "account.media": "Media",
+ "account.mention": "Përmendni @{name}",
+ "account.moved_to": "{name} ka kaluar te:",
+ "account.mute": "Heshtoni @{name}",
+ "account.mute_notifications": "Heshtoji njoftimet prej @{name}",
+ "account.muted": "Heshtuar",
+ "account.posts": "Mesazhe",
+ "account.posts_with_replies": "Mesazhe dhe përgjigje",
+ "account.report": "Raportojeni @{name}",
+ "account.requested": "Në pritje të miratimit. Klikoni që të anulohet kërkesa për ndjekje",
+ "account.share": "Ndajeni profilin e @{name} me të tjerët",
+ "account.show_reblogs": "Shfaq përforcime nga @{name}",
+ "account.unblock": "Zhbllokoje @{name}",
+ "account.unblock_domain": "Shfshihe {domain}",
+ "account.unendorse": "Mos e përfshi në profil",
+ "account.unfollow": "Resht së ndjekuri",
+ "account.unmute": "Ktheji zërin @{name}",
+ "account.unmute_notifications": "Hiqua ndalimin e shfaqjes njoftimeve nga @{name}",
+ "account.view_full_profile": "Shihni profilin e plotë",
+ "alert.unexpected.message": "Ndodhi një gabim të papritur.",
+ "alert.unexpected.title": "Hëm!",
+ "boost_modal.combo": "Mund të shtypni {combo}, që të anashkalohet kjo herës tjetër",
+ "bundle_column_error.body": "Diç shkoi ters teksa ngarkohej ky përbërës.",
+ "bundle_column_error.retry": "Riprovoni",
+ "bundle_column_error.title": "Gabim rrjeti",
+ "bundle_modal_error.close": "Mbylle",
+ "bundle_modal_error.message": "Diç shkoi ters teksa ngarkohej ky përbërës.",
+ "bundle_modal_error.retry": "Riprovoni",
+ "column.blocks": "Përdorues të bllokuar",
+ "column.community": "Rrjedhë kohore vendore",
+ "column.direct": "Mesazhe të drejtpërdrejta",
+ "column.domain_blocks": "Përkatësi të fshehura",
+ "column.favourites": "Të parapëlqyer",
+ "column.follow_requests": "Kërkesa për ndjekje",
+ "column.home": "Kreu",
+ "column.lists": "Lista",
+ "column.mutes": "Përdorues të heshtuar",
+ "column.notifications": "Njoftime",
+ "column.pins": "Mesazhe të fiksuar",
+ "column.public": "Rrjedhë kohore e federuar",
+ "column_back_button.label": "Mbrapsht",
+ "column_header.hide_settings": "Fshihi rregullimet",
+ "column_header.moveLeft_settings": "Shpjere shtyllën majtas",
+ "column_header.moveRight_settings": "Shpjere shtyllën djathtas",
+ "column_header.pin": "Fiksoje",
+ "column_header.show_settings": "Shfaq rregullime",
+ "column_header.unpin": "Shfiksoje",
+ "column_subheading.settings": "Rregullime",
+ "community.column_settings.media_only": "Vetëm Media",
+ "compose_form.direct_message_warning": "Ky mesazh do t’u dërgohet përdoruesve të përmendur.",
+ "compose_form.direct_message_warning_learn_more": "Mësoni më tepër",
+ "compose_form.hashtag_warning": "Ky mesazh s’do të paraqitet nën ndonjë hashtag, ngaqë s’i është caktuar ndonjë. Vetëm mesazhet publike mund të kërkohen sipas hashtagësh.",
+ "compose_form.lock_disclaimer": "Llogaria juaj s’është {locked}. Mund ta ndjekë cilido, për të parë postimet tuaja vetëm për ndjekësit.",
+ "compose_form.lock_disclaimer.lock": "e bllokuar",
+ "compose_form.placeholder": "Ç’bluani në mendje?",
+ "compose_form.publish": "Mesazh",
+ "compose_form.publish_loud": "{publish}!",
+ "compose_form.sensitive.marked": "Media është shënuar si rezervat",
+ "compose_form.sensitive.unmarked": "Media s’është shënuar si rezervat",
+ "compose_form.spoiler.marked": "Teksti është fshehur pas sinjalizimit",
+ "compose_form.spoiler.unmarked": "Teksti s’është i fshehur",
+ "compose_form.spoiler_placeholder": "Shkruani këtu sinjalizimin tuaj",
+ "confirmation_modal.cancel": "Anuloje",
+ "confirmations.block.confirm": "Bllokoje",
+ "confirmations.block.message": "Jeni i sigurt se doni të bllokohet {name}?",
+ "confirmations.delete.confirm": "Fshije",
+ "confirmations.delete.message": "Jeni i sigurt se doni të fshihet kjo gjendje?",
+ "confirmations.delete_list.confirm": "Fshije",
+ "confirmations.delete_list.message": "Jeni i sigurt që doni të fshihet përgjithmonë kjo listë?",
+ "confirmations.domain_block.confirm": "Fshih krejt përkatësinë",
+ "confirmations.domain_block.message": "Jeni i sigurt, shumë i sigurt se doni të bllokohet krejt {domain}? Në shumicën e rasteve, ndoca bllokime ose heshtime me synim të caktuar janë të mjaftueshme dhe të parapëlqyera. S’keni për të parë lëndë nga kjo përkatësi në ndonjë rrjedhë kohore publike, apo te njoftimet tuaja. Ndjekësit tuaj prej asaj përkatësie do të hiqen.",
+ "confirmations.mute.confirm": "Heshtoje",
+ "confirmations.mute.message": "Jeni i sigurt se doni të heshtohet {name}?",
+ "confirmations.redraft.confirm": "Fshijeni & rihartojeni",
+ "confirmations.redraft.message": "Jeni i sigurt se doni të fshihet kjo gjendje dhe të rihartohet? Parapëlqimet dhe boosts do të humbin, ndërsa përgjigjet te postimi origjinal do të bëhen jetime.",
+ "confirmations.reply.confirm": "Përgjigjuni",
+ "confirmations.reply.message": "Përgjigja tani do të shkaktojë mbishkrimin e mesazhit që po hartoni. Jeni i sigurt se doni të vazhdohet më tej?",
+ "confirmations.unfollow.confirm": "Resht së ndjekuri",
+ "confirmations.unfollow.message": "Jeni i sigurt se doni të mos ndiqet më {name}?",
+ "embed.instructions": "Trupëzojeni këtë gjendje në sajtin tuaj duke kopjuar kodin më poshtë.",
+ "embed.preview": "Ja si do të duket:",
+ "emoji_button.activity": "Veprimtari",
+ "emoji_button.custom": "Vetjak",
+ "emoji_button.flags": "Flamuj",
+ "emoji_button.food": "Ushqim & Pije",
+ "emoji_button.label": "Futni emoji",
+ "emoji_button.nature": "Natyrë",
+ "emoji_button.not_found": "No emojos!!! (╯°□°)╯︵ ┻━┻",
+ "emoji_button.objects": "Objekte",
+ "emoji_button.people": "Persona",
+ "emoji_button.recent": "Të përdorur shpesh",
+ "emoji_button.search": "Kërkoni…",
+ "emoji_button.search_results": "Përfundime kërkimi",
+ "emoji_button.symbols": "Simbole",
+ "emoji_button.travel": "Udhëtime & Vende",
+ "empty_column.account_timeline": "S’ka mesazhe këtu!",
+ "empty_column.blocks": "S’keni bllokuar ende ndonjë përdorues.",
+ "empty_column.community": "Rrjedha kohore vendore është e zbrazët. Shkruani diçka publikisht që t’i hyhet valles!",
+ "empty_column.direct": "S’keni ende ndonjë mesazh të drejtpërdrejt. Kur dërgoni ose merrni një të tillë, ai do të shfaqet këtu.",
+ "empty_column.domain_blocks": "Ende s’ka përkatësi të fshehura.",
+ "empty_column.favourited_statuses": "S’keni ende ndonjë mesazh të parapëlqyer. Kur parapëlqeni një të tillë, ai do të shfaqet këtu.",
+ "empty_column.favourites": "Askush s’e ka parapëlqyer ende këtë mesazh. Kur e bën dikush, ai do të shfaqet këtu.",
+ "empty_column.follow_requests": "Ende s’keni ndonjë kërkesë ndjekjeje. Kur të merrni një të tillë, do të shfaqet këtu.",
+ "empty_column.hashtag": "Ende s’ka gjë nën këtë hashtag.",
+ "empty_column.home": "Rrjedha juaj kohore është e zbrazët! Vizitoni {public} ose përdorni kërkimin që t’ia filloni dhe të takoni përdorues të tjerë.",
+ "empty_column.home.public_timeline": "rrjedha kohore publike",
+ "empty_column.list": "Në këtë listë ende s’ka gjë. Kur anëtarë të kësaj liste postojnë gjendje të reja, ato do të shfaqen këtu.",
+ "empty_column.lists": "Ende s’keni ndonjë listë. Kur të krijoni një të tillë, do të duket këtu.",
+ "empty_column.mutes": "S’keni heshtuar ende ndonjë përdorues.",
+ "empty_column.notifications": "Ende s’keni ndonjë njoftim. Ndërveproni me të tjerët që të nisë biseda.",
+ "empty_column.public": "S’ka gjë këtu! Shkruani diçka publikisht, ose ndiqni dorazi përdorues prej instancash të tjera, që ta mbushni këtë zonë",
+ "follow_request.authorize": "Autorizoje",
+ "follow_request.reject": "Hidhe tej",
+ "getting_started.developers": "Zhvillues",
+ "getting_started.directory": "Drejtori profilesh",
+ "getting_started.documentation": "Dokumentim",
+ "getting_started.heading": "Si t’ia fillohet",
+ "getting_started.invite": "Ftoni njerëz",
+ "getting_started.open_source_notice": "Mastodon-i është software me burim të hapur. Mund të jepni ndihmesë ose të njoftoni probleme në GitHub, te {github}.",
+ "getting_started.security": "Siguri",
+ "getting_started.terms": "Kushte shërbimi",
+ "hashtag.column_header.tag_mode.all": "dhe {additional}",
+ "hashtag.column_header.tag_mode.any": "ose {additional}",
+ "hashtag.column_header.tag_mode.none": "pa {additional}",
+ "hashtag.column_settings.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
+ "hashtag.column_settings.tag_mode.all": "Krejt këto",
+ "hashtag.column_settings.tag_mode.any": "Cilëndo prej këtyre",
+ "hashtag.column_settings.tag_mode.none": "Asnjë prej këtyre",
+ "hashtag.column_settings.tag_toggle": "Përfshi etiketa shtesë për këtë shtyllë",
+ "home.column_settings.basic": "Bazë",
+ "home.column_settings.show_reblogs": "Shfaq përforcime",
+ "home.column_settings.show_replies": "Shfaq përgjigje",
+ "introduction.federation.action": "Pasuesi",
+ "introduction.federation.federated.headline": "Të federuara",
+ "introduction.federation.federated.text": "Postimet publike nga shërbyes të tjerë të fediversit do të shfaqen te rrjedha kohore e të federuarve.",
+ "introduction.federation.home.headline": "Vatër",
+ "introduction.federation.home.text": "Postime prej personash që ndiqni do të shfaqen te prurja juaj vatër. Mund të ndiqni këdo, në çfarëdo shërbyesi!",
+ "introduction.federation.local.headline": "Vendore",
+ "introduction.federation.local.text": "Postimet publike prej personash në të njëjtin shërbyes me ju do të shfaqen te rrjedha kohore vendore.",
+ "introduction.interactions.action": "Përfundojeni përkujdesoren!",
+ "introduction.interactions.favourite.headline": "Parapëlqejeni",
+ "introduction.interactions.favourite.text": "Duke e parapëlqyer, një mesazh mund ta ruani për më vonë dhe t’i bëni të ditur autorit se e pëlqyet.",
+ "introduction.interactions.reblog.headline": "Përforcime",
+ "introduction.interactions.reblog.text": "Mesazhet e të tjerëve mund t’i ndani me ndjekësit tuaj duke i përforcuar.",
+ "introduction.interactions.reply.headline": "Përgjigjuni",
+ "introduction.interactions.reply.text": "Mund t'u përgjigjeni mesazheve tuaja dhe atyre të personave të tjerë, çka do t’i lidhë ato tok në një bisedë.",
+ "introduction.welcome.action": "Shkojmë!",
+ "introduction.welcome.headline": "Hapat e parë",
+ "introduction.welcome.text": "Mirë se vini në fedivers! Brenda pak çastesh do të jeni në gjendje të transmetoni mesazhe dhe të bisedoni me miqtë tuaj nëpër një larmi të madhe shërbyesish. Po ky shërbyes, {domain}, është i veçantë—strehon profilin tuaj, ndaj mbajeni mend emrin e tij.",
+ "keyboard_shortcuts.back": "për shkuarje mbrapsht",
+ "keyboard_shortcuts.blocked": "për hapje liste përdoruesish të bllokuar",
+ "keyboard_shortcuts.boost": "për përfocim",
+ "keyboard_shortcuts.column": "për kalim fokusi mbi një gjendje te një nga shtyllat",
+ "keyboard_shortcuts.compose": "për kalim fokusi te fusha e hartimit të mesazheve",
+ "keyboard_shortcuts.description": "Përshkrim",
+ "keyboard_shortcuts.direct": "për hapje shtylle mesazhesh të drejtpërdrejtë",
+ "keyboard_shortcuts.down": "për zbritje poshtë nëpër listë",
+ "keyboard_shortcuts.enter": "për hapje gjendjeje",
+ "keyboard_shortcuts.favourite": "për t’i vënë shenjë si të parapëlqyer",
+ "keyboard_shortcuts.favourites": "për hapje liste të parapëlqyerish",
+ "keyboard_shortcuts.federated": "për hapje rrjedhe kohore të të federuarve",
+ "keyboard_shortcuts.heading": "Shkurtore tastiere",
+ "keyboard_shortcuts.home": "për hapje rrjedhe kohore vetjake",
+ "keyboard_shortcuts.hotkey": "Tast përkatës",
+ "keyboard_shortcuts.legend": "për shfaqje të kësaj legjende",
+ "keyboard_shortcuts.local": "për hapje rrjedhe kohore vendore",
+ "keyboard_shortcuts.mention": "për përmendje të autorit",
+ "keyboard_shortcuts.muted": "për hapje liste përdoruesish të heshtuar",
+ "keyboard_shortcuts.my_profile": "për hapjen e profilit tuaj",
+ "keyboard_shortcuts.notifications": "për hapje shtylle njoftimesh",
+ "keyboard_shortcuts.pinned": "për hapje liste mesazhesh të fiksuar",
+ "keyboard_shortcuts.profile": "për hapje të profilit të autorit",
+ "keyboard_shortcuts.reply": "për t’u përgjigjur",
+ "keyboard_shortcuts.requests": "për hapje liste kërkesash për ndjekje",
+ "keyboard_shortcuts.search": "për kalim fokusi te kërkimi",
+ "keyboard_shortcuts.start": "për hapjen e shtyllës \"fillojani\"",
+ "keyboard_shortcuts.toggle_hidden": "për shfaqje/fshehje teksti pas CW",
+ "keyboard_shortcuts.toot": "për të filluar një mesazh fringo të ri",
+ "keyboard_shortcuts.unfocus": "për heqjen e fokusit nga fusha e hartimit të mesazheve apo kërkimeve",
+ "keyboard_shortcuts.up": "për ngjitje sipër nëpër listë",
+ "lightbox.close": "Mbylle",
+ "lightbox.next": "Pasuesja",
+ "lightbox.previous": "E mëparshmja",
+ "lists.account.add": "Shto në listë",
+ "lists.account.remove": "Hiqe nga lista",
+ "lists.delete": "Fshije listën",
+ "lists.edit": "Përpunoni listën",
+ "lists.edit.submit": "Change title",
+ "lists.new.create": "Shtoni listë",
+ "lists.new.title_placeholder": "Titull liste të re",
+ "lists.search": "Kërkoni mes personash që ndiqni",
+ "lists.subheading": "Listat tuaja",
+ "loading_indicator.label": "Po ngarkohet…",
+ "media_gallery.toggle_visible": "Ndërroni dukshmërinë",
+ "missing_indicator.label": "S’u gjet",
+ "missing_indicator.sublabel": "Ky burim s’u gjet dot",
+ "mute_modal.hide_notifications": "Të fshihen njoftimet prej këtij përdoruesi?",
+ "navigation_bar.apps": "Aplikacione për celular",
+ "navigation_bar.blocks": "Përdorues të bllokuar",
+ "navigation_bar.community_timeline": "Rrjedhë kohore vendore",
+ "navigation_bar.compose": "Hartoni mesazh të ri",
+ "navigation_bar.direct": "Mesazhe të drejtpërdrejta",
+ "navigation_bar.discover": "Zbuloni",
+ "navigation_bar.domain_blocks": "Përkatësi të fshehura",
+ "navigation_bar.edit_profile": "Përpunoni profilin",
+ "navigation_bar.favourites": "Të parapëlqyer",
+ "navigation_bar.filters": "Fjalë të heshtuara",
+ "navigation_bar.follow_requests": "Kërkesa për ndjekje",
+ "navigation_bar.info": "Mbi këtë shërbyes",
+ "navigation_bar.keyboard_shortcuts": "Taste përkatës",
+ "navigation_bar.lists": "Lista",
+ "navigation_bar.logout": "Dalje",
+ "navigation_bar.mutes": "Përdorues të heshtuar",
+ "navigation_bar.personal": "Personale",
+ "navigation_bar.pins": "Mesazhe të fiksuar",
+ "navigation_bar.preferences": "Parapëlqime",
+ "navigation_bar.public_timeline": "Rrjedhë kohore të federuarish",
+ "navigation_bar.security": "Siguri",
+ "notification.favourite": "{name} parapëlqeu gjendjen tuaj",
+ "notification.follow": "{name} zuri t’ju ndjekë",
+ "notification.mention": "{name} ju ka përmendur",
+ "notification.reblog": "përforcoi gjendjen tuaj",
+ "notifications.clear": "Pastroji njoftimet",
+ "notifications.clear_confirmation": "Jeni i sigurt se doni të pastrohen përgjithmonë krejt njoftimet tuaja?",
+ "notifications.column_settings.alert": "Njoftime desktopi",
+ "notifications.column_settings.favourite": "Të parapëlqyer:",
+ "notifications.column_settings.filter_bar.advanced": "Shfaq krejt kategoritë",
+ "notifications.column_settings.filter_bar.category": "Shtyllë filtrimesh të shpejta",
+ "notifications.column_settings.filter_bar.show": "Shfaq",
+ "notifications.column_settings.follow": "Ndjekës të rinj:",
+ "notifications.column_settings.mention": "Përmendje:",
+ "notifications.column_settings.push": "Njoftime Push",
+ "notifications.column_settings.reblog": "Përforcime:",
+ "notifications.column_settings.show": "Shfaq në shtylla",
+ "notifications.column_settings.sound": "Luaj një tingull",
+ "notifications.filter.all": "Krejt",
+ "notifications.filter.boosts": "Përforcime",
+ "notifications.filter.favourites": "Të parapëlqyer",
+ "notifications.filter.follows": "Ndjekje",
+ "notifications.filter.mentions": "Përmendje",
+ "notifications.group": "%(count)s njoftime",
+ "privacy.change": "Rregulloni privatësi gjendje",
+ "privacy.direct.long": "Postoja vetëm përdoruesve të përmendur",
+ "privacy.direct.short": "I drejtpërdrejtë",
+ "privacy.private.long": "Postojuani vetëm ndjekësve",
+ "privacy.private.short": "Vetëm ndjekësve",
+ "privacy.public.long": "Postojeni në rrjedha publike kohore",
+ "privacy.public.short": "Publike",
+ "privacy.unlisted.long": "Mos e postoni në rrjedha publike kohore",
+ "privacy.unlisted.short": "Jo në lista",
+ "regeneration_indicator.label": "Po ngarkohet…",
+ "regeneration_indicator.sublabel": "Prurja juaj vetjake po përgatiteet!",
+ "relative_time.days": "{number}d",
+ "relative_time.hours": "{number}h",
+ "relative_time.just_now": "tani",
+ "relative_time.minutes": "{number}m",
+ "relative_time.seconds": "{number}s",
+ "reply_indicator.cancel": "Anuloje",
+ "report.forward": "Përcillja {target}",
+ "report.forward_hint": "Llogaria është nga një shërbyes tjetër. Të dërgohet edhe një kopje e anonimizuar e raportimit?",
+ "report.hint": "Raportimi do t’u dërgohet moderatorëve të shërbyesit tuaj. Më poshtë mund të jepni një shpjegim se pse po e raportoni këtë llogari:",
+ "report.placeholder": "Komente shtesë",
+ "report.submit": "Parashtroje",
+ "report.target": "Raportim i {target}",
+ "search.placeholder": "Kërkoni",
+ "search_popout.search_format": "Format kërkimi të përparuar",
+ "search_popout.tips.full_text": "Kërkimi për tekst të thjeshtë përgjigjet me gjendje që keni shkruar, parapëlqyer, përforcuar, ose ku jeni përmendur, si dhe emra përdoruesish, emra ekrani dhe hashtagë që kanë përputhje me termin e kërkimit.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "gjendje",
+ "search_popout.tips.text": "Kërkim për tekst të thjeshtë përgjigjet me emra, emra përdoruesish dhe hashtagë që kanë përputhje me termin e kërkimit",
+ "search_popout.tips.user": "përdorues",
+ "search_results.accounts": "Persona",
+ "search_results.hashtags": "Hashtagë",
+ "search_results.statuses": "Mesazhe",
+ "search_results.total": "{count, number} {count, plural, një {result} {results} të tjera}",
+ "standalone.public_title": "Një pamje brenda…",
+ "status.admin_account": "Hap ndërfaqe moderimi për @{name}",
+ "status.admin_status": "Hape këtë gjendje te ndërfaqja e moderimit",
+ "status.block": "Blloko @{name}",
+ "status.cancel_reblog_private": "Shpërforcojeni",
+ "status.cannot_reblog": "Ky postim s’mund të përforcohet",
+ "status.copy": "Kopjoje lidhjen te gjendje",
+ "status.delete": "Fshije",
+ "status.detailed_status": "Pamje e hollësishme bisede",
+ "status.direct": "Mesazh i drejtpërdrejt për @{name}",
+ "status.embed": "Trupëzim",
+ "status.favourite": "I parapëlqyer",
+ "status.filtered": "I filtruar",
+ "status.load_more": "Ngarko më tepër",
+ "status.media_hidden": "Me media të fshehur",
+ "status.mention": "Përmendni @{name}",
+ "status.more": "Më tepër",
+ "status.mute": "Heshtoni @{name}",
+ "status.mute_conversation": "Heshtojeni bisedën",
+ "status.open": "Zgjeroje këtë gjendje",
+ "status.pin": "Fiksoje në profil",
+ "status.pinned": "Mesazh i fiksuar",
+ "status.read_more": "Lexoni më tepër",
+ "status.reblog": "Përforcojeni",
+ "status.reblog_private": "Përforcim për publikun origjinal",
+ "status.reblogged_by": "{name} përforcoi",
+ "status.reblogs.empty": "Këtë mesazh s’e ka përforcuar njeri deri tani. Kur ta bëjë dikush, kjo do të duket këtu.",
+ "status.redraft": "Fshijeni & rihartojeni",
+ "status.reply": "Përgjigjuni",
+ "status.replyAll": "Përgjigjuni rrjedhës",
+ "status.report": "Raportojeni @{name}",
+ "status.sensitive_toggle": "Klikoni që ta shihni",
+ "status.sensitive_warning": "Lëndë me spec",
+ "status.share": "Ndajeni me të tjerët",
+ "status.show_less": "Shfaq më pak",
+ "status.show_less_all": "Shfaq më pak për të tërë",
+ "status.show_more": "Shfaq më tepër",
+ "status.show_more_all": "Shfaq më tepër për të tërë",
+ "status.show_thread": "Shfaq rrjedhën",
+ "status.unmute_conversation": "Ktheji zërin bisedës",
+ "status.unpin": "Shfiksoje nga profili",
+ "suggestions.dismiss": "Mos e merr parasysh sugjerimin",
+ "suggestions.header": "Mund t’ju interesonte…",
+ "tabs_bar.federated_timeline": "E federuar",
+ "tabs_bar.home": "Kreu",
+ "tabs_bar.local_timeline": "Vendore",
+ "tabs_bar.notifications": "Njoftime",
+ "tabs_bar.search": "Kërkim",
+ "trends.count_by_accounts": "{count} {rawCount, plural, një {person} {people} të tjerë} po flasin",
+ "ui.beforeunload": "Skica juaj do të humbë nëse dilni nga Mastodon-i.",
+ "upload_area.title": "Merreni & vëreni që të ngarkohet",
+ "upload_button.label": "Shtoni media (JPEG, PNG, GIF, WebM, MP4, MOV)",
+ "upload_error.limit": "U tejkalua kufi ngarkimi kartelash.",
+ "upload_form.description": "Përshkruajeni për persona me probleme shikimi",
+ "upload_form.focus": "Ndryshoni parapamjen",
+ "upload_form.undo": "Fshije",
+ "upload_progress.label": "Po ngarkohet…",
+ "video.close": "Mbylle videon",
+ "video.exit_fullscreen": "Dil nga mënyra Sa Krejt Ekrani",
+ "video.expand": "Zgjeroje videon",
+ "video.fullscreen": "Sa krejt ekrani",
+ "video.hide": "Fshihe videon",
+ "video.mute": "Hiqi zërin",
+ "video.pause": "Ndalesë",
+ "video.play": "Luaje",
+ "video.unmute": "Riktheji zërin"
+}
diff --git a/app/javascript/mastodon/locales/sr-Latn.json b/app/javascript/mastodon/locales/sr-Latn.json
index 310456ca1..79619c914 100644
--- a/app/javascript/mastodon/locales/sr-Latn.json
+++ b/app/javascript/mastodon/locales/sr-Latn.json
@@ -142,6 +142,8 @@
"hashtag.column_header.tag_mode.all": "and {additional}",
"hashtag.column_header.tag_mode.any": "or {additional}",
"hashtag.column_header.tag_mode.none": "without {additional}",
+ "hashtag.column_settings.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
"hashtag.column_settings.tag_mode.all": "All of these",
"hashtag.column_settings.tag_mode.any": "Any of these",
"hashtag.column_settings.tag_mode.none": "None of these",
@@ -204,6 +206,7 @@
"lists.account.remove": "Ukloni sa liste",
"lists.delete": "Obriši listu",
"lists.edit": "Izmeni listu",
+ "lists.edit.submit": "Change title",
"lists.new.create": "Dodaj listu",
"lists.new.title_placeholder": "Naslov nove liste",
"lists.search": "Pretraži među ljudima koje pratite",
@@ -292,9 +295,12 @@
"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",
+ "status.copy": "Copy link to status",
"status.delete": "Obriši",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
@@ -340,6 +346,7 @@
"ui.beforeunload": "Ako napustite Mastodont, izgubićete napisani nacrt.",
"upload_area.title": "Prevucite ovde da otpremite",
"upload_button.label": "Dodaj multimediju",
+ "upload_error.limit": "File upload limit exceeded.",
"upload_form.description": "Opiši za slabovide osobe",
"upload_form.focus": "Crop",
"upload_form.undo": "Opozovi",
diff --git a/app/javascript/mastodon/locales/sr.json b/app/javascript/mastodon/locales/sr.json
index 01f215540..b72431b34 100644
--- a/app/javascript/mastodon/locales/sr.json
+++ b/app/javascript/mastodon/locales/sr.json
@@ -142,6 +142,8 @@
"hashtag.column_header.tag_mode.all": "and {additional}",
"hashtag.column_header.tag_mode.any": "or {additional}",
"hashtag.column_header.tag_mode.none": "without {additional}",
+ "hashtag.column_settings.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
"hashtag.column_settings.tag_mode.all": "All of these",
"hashtag.column_settings.tag_mode.any": "Any of these",
"hashtag.column_settings.tag_mode.none": "None of these",
@@ -204,6 +206,7 @@
"lists.account.remove": "Уклони са листе",
"lists.delete": "Обриши листу",
"lists.edit": "Измени листу",
+ "lists.edit.submit": "Change title",
"lists.new.create": "Додај листу",
"lists.new.title_placeholder": "Наслов нове листе",
"lists.search": "Претражи међу људима које пратите",
@@ -292,9 +295,12 @@
"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": "Овај статус не може да се подржи",
+ "status.copy": "Copy link to status",
"status.delete": "Обриши",
"status.detailed_status": "Детаљни преглед разговора",
"status.direct": "Директна порука @{name}",
@@ -340,6 +346,7 @@
"ui.beforeunload": "Ако напустите Мастодонт, изгубићете написани нацрт.",
"upload_area.title": "Превуците овде да отпремите",
"upload_button.label": "Додај мултимедију (JPEG, PNG, GIF, WebM, MP4, MOV)",
+ "upload_error.limit": "File upload limit exceeded.",
"upload_form.description": "Опишите за особе са оштећеним видом",
"upload_form.focus": "Подесите",
"upload_form.undo": "Обриши",
diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json
index 82fef145e..018fdc85f 100644
--- a/app/javascript/mastodon/locales/sv.json
+++ b/app/javascript/mastodon/locales/sv.json
@@ -142,6 +142,8 @@
"hashtag.column_header.tag_mode.all": "and {additional}",
"hashtag.column_header.tag_mode.any": "or {additional}",
"hashtag.column_header.tag_mode.none": "without {additional}",
+ "hashtag.column_settings.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
"hashtag.column_settings.tag_mode.all": "All of these",
"hashtag.column_settings.tag_mode.any": "Any of these",
"hashtag.column_settings.tag_mode.none": "None of these",
@@ -204,6 +206,7 @@
"lists.account.remove": "Ta bort från lista",
"lists.delete": "Radera lista",
"lists.edit": "Redigera lista",
+ "lists.edit.submit": "Change title",
"lists.new.create": "Lägg till lista",
"lists.new.title_placeholder": "Ny listrubrik",
"lists.search": "Sök bland personer du följer",
@@ -292,9 +295,12 @@
"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",
+ "status.copy": "Copy link to status",
"status.delete": "Ta bort",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direktmeddela @{name}",
@@ -340,6 +346,7 @@
"ui.beforeunload": "Ditt utkast kommer att förloras om du lämnar Mastodon.",
"upload_area.title": "Dra & släpp för att ladda upp",
"upload_button.label": "Lägg till media",
+ "upload_error.limit": "File upload limit exceeded.",
"upload_form.description": "Beskriv för synskadade",
"upload_form.focus": "Beskär",
"upload_form.undo": "Ta bort",
diff --git a/app/javascript/mastodon/locales/ta.json b/app/javascript/mastodon/locales/ta.json
index 9e613ce59..536f65462 100644
--- a/app/javascript/mastodon/locales/ta.json
+++ b/app/javascript/mastodon/locales/ta.json
@@ -142,6 +142,8 @@
"hashtag.column_header.tag_mode.all": "and {additional}",
"hashtag.column_header.tag_mode.any": "or {additional}",
"hashtag.column_header.tag_mode.none": "without {additional}",
+ "hashtag.column_settings.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
"hashtag.column_settings.tag_mode.all": "All of these",
"hashtag.column_settings.tag_mode.any": "Any of these",
"hashtag.column_settings.tag_mode.none": "None of these",
@@ -204,6 +206,7 @@
"lists.account.remove": "Remove from list",
"lists.delete": "Delete list",
"lists.edit": "Edit list",
+ "lists.edit.submit": "Change title",
"lists.new.create": "Add list",
"lists.new.title_placeholder": "New list title",
"lists.search": "Search among people you follow",
@@ -292,9 +295,12 @@
"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.copy": "Copy link to status",
"status.delete": "Delete",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
@@ -340,6 +346,7 @@
"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_error.limit": "File upload limit exceeded.",
"upload_form.description": "Describe for the visually impaired",
"upload_form.focus": "Crop",
"upload_form.undo": "Delete",
diff --git a/app/javascript/mastodon/locales/te.json b/app/javascript/mastodon/locales/te.json
index 2df54b6d8..1c27fab81 100644
--- a/app/javascript/mastodon/locales/te.json
+++ b/app/javascript/mastodon/locales/te.json
@@ -1,5 +1,5 @@
{
- "account.add_or_remove_from_list": "Add or Remove from lists",
+ "account.add_or_remove_from_list": "జాబితాల నుండి చేర్చు లేదా తీసివేయి",
"account.badges.bot": "బాట్",
"account.block": "@{name} ను బ్లాక్ చేయి",
"account.block_domain": "{domain} నుంచి అన్నీ దాచిపెట్టు",
@@ -17,7 +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.locked_info": "ఈ ఖాతా యొక్క గోప్యత స్థితి లాక్ చేయబడి వుంది. ఈ ఖాతాను ఎవరు అనుసరించవచ్చో యజమానే నిర్ణయం తీసుకుంటారు.",
"account.media": "మీడియా",
"account.mention": "@{name}ను ప్రస్తావించు",
"account.moved_to": "{name} ఇక్కడికి మారారు:",
@@ -113,7 +113,7 @@
"emoji_button.search_results": "శోధన ఫలితాలు",
"emoji_button.symbols": "చిహ్నాలు",
"emoji_button.travel": "ప్రయాణం & ప్రదేశాలు",
- "empty_column.account_timeline": "No toots here!",
+ "empty_column.account_timeline": "ఇక్కడ ఏ టూట్లూ లేవు!No toots here!",
"empty_column.blocks": "మీరు ఇంకా ఏ వినియోగదారులనూ బ్లాక్ చేయలేదు.",
"empty_column.community": "స్థానిక కాలక్రమం ఖాళీగా ఉంది. మొదలుపెట్టడానికి బహిరంగంగా ఏదో ఒకటి వ్రాయండి!",
"empty_column.direct": "మీకు ఇంకా ఏ ప్రత్యక్ష సందేశాలు లేవు. మీరు ఒకదాన్ని పంపినప్పుడు లేదా స్వీకరించినప్పుడు, అది ఇక్కడ చూపబడుతుంది.",
@@ -132,40 +132,42 @@
"follow_request.authorize": "అనుమతించు",
"follow_request.reject": "తిరస్కరించు",
"getting_started.developers": "డెవలపర్లు",
- "getting_started.directory": "Profile directory",
+ "getting_started.directory": "ప్రొఫైల్ డైరెక్టరీ",
"getting_started.documentation": "డాక్యుమెంటేషన్",
"getting_started.heading": "మొదలుపెడదాం",
"getting_started.invite": "వ్యక్తులను ఆహ్వానించండి",
"getting_started.open_source_notice": "మాస్టొడొన్ ఓపెన్ సోర్స్ సాఫ్ట్వేర్. మీరు {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_header.tag_mode.all": "మరియు {additional}",
+ "hashtag.column_header.tag_mode.any": "లేదా {additional}",
+ "hashtag.column_header.tag_mode.none": "{additional} లేకుండా",
+ "hashtag.column_settings.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
+ "hashtag.column_settings.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": "Next",
+ "introduction.federation.action": "తరువాత",
"introduction.federation.federated.headline": "Federated",
- "introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
+ "introduction.federation.federated.text": "ఫెడివర్స్ లోని ఇతర సర్వర్లకు చెందిన పబ్లిక్ టూట్లు ఫెడరేటెడ్ టైంలైన్ లో కనిపిస్తాయి.",
"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.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": "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.",
+ "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": "బూస్ట్ చేయడానికి",
@@ -204,6 +206,7 @@
"lists.account.remove": "జాబితా నుండి తొలగించు",
"lists.delete": "జాబితాను తొలగించు",
"lists.edit": "జాబితాను సవరించు",
+ "lists.edit.submit": "Change title",
"lists.new.create": "జాబితాను జోడించు",
"lists.new.title_placeholder": "కొత్త జాబితా శీర్షిక",
"lists.search": "మీరు అనుసరించే వ్యక్తులలో శోధించండి",
@@ -242,20 +245,20 @@
"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.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": "All",
- "notifications.filter.boosts": "Boosts",
- "notifications.filter.favourites": "Favourites",
- "notifications.filter.follows": "Follows",
- "notifications.filter.mentions": "Mentions",
+ "notifications.filter.all": "అన్నీ",
+ "notifications.filter.boosts": "బూస్ట్లు",
+ "notifications.filter.favourites": "ఇష్టాలు",
+ "notifications.filter.follows": "అనుసరిస్తున్నవి",
+ "notifications.filter.mentions": "పేర్కొన్నవి",
"notifications.group": "{count} ప్రకటనలు",
"privacy.change": "స్టేటస్ గోప్యతను సర్దుబాటు చేయండి",
"privacy.direct.long": "పేర్కొన్న వినియోగదారులకు మాత్రమే పోస్ట్ చేయి",
@@ -292,9 +295,12 @@
"search_results.statuses": "టూట్లు",
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
"standalone.public_title": "లోపలికి ఒక చూపు...",
+ "status.admin_account": "@{name} కొరకు సమన్వయ వినిమయసీమను తెరువు",
+ "status.admin_status": "సమన్వయ వినిమయసీమలో ఈ స్టేటస్ ను తెరవండి",
"status.block": "@{name} ను బ్లాక్ చేయి",
"status.cancel_reblog_private": "బూస్ట్ను తొలగించు",
"status.cannot_reblog": "ఈ పోస్ట్ను బూస్ట్ చేయడం సాధ్యం కాదు",
+ "status.copy": "Copy link to status",
"status.delete": "తొలగించు",
"status.detailed_status": "వివరణాత్మక సంభాషణ వీక్షణ",
"status.direct": "@{name}కు నేరుగా సందేశం పంపు",
@@ -326,7 +332,7 @@
"status.show_less_all": "అన్నిటికీ తక్కువ చూపించు",
"status.show_more": "ఇంకా చూపించు",
"status.show_more_all": "అన్నిటికీ ఇంకా చూపించు",
- "status.show_thread": "Show thread",
+ "status.show_thread": "గొలుసును చూపించు",
"status.unmute_conversation": "సంభాషణను అన్మ్యూట్ చేయి",
"status.unpin": "ప్రొఫైల్ నుండి పీకివేయు",
"suggestions.dismiss": "సూచనను రద్దు చేయి",
@@ -340,8 +346,9 @@
"ui.beforeunload": "మీరు మాస్టొడొన్ను వదిలివేస్తే మీ డ్రాఫ్ట్లు పోతాయి.",
"upload_area.title": "అప్లోడ్ చేయడానికి డ్రాగ్ & డ్రాప్ చేయండి",
"upload_button.label": "మీడియాను జోడించండి (JPEG, PNG, GIF, WebM, MP4, MOV)",
+ "upload_error.limit": "File upload limit exceeded.",
"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 92bb05e7c..5947b04c2 100644
--- a/app/javascript/mastodon/locales/th.json
+++ b/app/javascript/mastodon/locales/th.json
@@ -142,6 +142,8 @@
"hashtag.column_header.tag_mode.all": "and {additional}",
"hashtag.column_header.tag_mode.any": "or {additional}",
"hashtag.column_header.tag_mode.none": "without {additional}",
+ "hashtag.column_settings.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
"hashtag.column_settings.tag_mode.all": "All of these",
"hashtag.column_settings.tag_mode.any": "Any of these",
"hashtag.column_settings.tag_mode.none": "None of these",
@@ -204,6 +206,7 @@
"lists.account.remove": "Remove from list",
"lists.delete": "Delete list",
"lists.edit": "Edit list",
+ "lists.edit.submit": "Change title",
"lists.new.create": "Add list",
"lists.new.title_placeholder": "New list title",
"lists.search": "Search among people you follow",
@@ -292,9 +295,12 @@
"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.copy": "Copy link to status",
"status.delete": "Delete",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
@@ -340,6 +346,7 @@
"ui.beforeunload": "Your draft will be lost if you leave Mastodon.",
"upload_area.title": "Drag & drop to upload",
"upload_button.label": "Add media",
+ "upload_error.limit": "File upload limit exceeded.",
"upload_form.description": "Describe for the visually impaired",
"upload_form.focus": "Crop",
"upload_form.undo": "Undo",
diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json
index 134285953..76949352f 100644
--- a/app/javascript/mastodon/locales/tr.json
+++ b/app/javascript/mastodon/locales/tr.json
@@ -1,84 +1,84 @@
{
- "account.add_or_remove_from_list": "Add or Remove from lists",
+ "account.add_or_remove_from_list": "Listelere ekle veya kaldır",
"account.badges.bot": "Bot",
"account.block": "Engelle @{name}",
- "account.block_domain": "Hide everything from {domain}",
- "account.blocked": "Blocked",
+ "account.block_domain": "{domain} alanından her şeyi gizle",
+ "account.blocked": "Engellenmiş",
"account.direct": "Direct Message @{name}",
- "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
- "account.domain_blocked": "Domain hidden",
+ "account.disclaimer_full": "Aşağıdaki bilgiler, kullanıcının profilini tam olarak yansıtmayabilir.",
+ "account.domain_blocked": "Alan adı gizlendi",
"account.edit_profile": "Profili düzenle",
- "account.endorse": "Feature on profile",
+ "account.endorse": "Profildeki özellik",
"account.follow": "Takip et",
"account.followers": "Takipçiler",
- "account.followers.empty": "No one follows this user yet.",
+ "account.followers.empty": "Henüz kimse bu kullanıcıyı takip etmiyor.",
"account.follows": "Takip ettikleri",
- "account.follows.empty": "This user doesn't follow anyone yet.",
+ "account.follows.empty": "Bu kullanıcı henüz kimseyi takip etmiyor.",
"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.hide_reblogs": "@{name} kişisinden boost'ları gizle",
+ "account.link_verified_on": "Bu bağlantının mülkiyeti {date} tarihinde kontrol edildi",
+ "account.locked_info": "Bu hesabın gizlilik durumu kilitli olarak ayarlanmış. Sahibi, onu kimin takip edebileceğini elle inceler.",
+ "account.media": "Medya",
+ "account.mention": "@{name} kullanıcısından bahset",
"account.moved_to": "{name} has moved to:",
- "account.mute": "Sustur @{name}",
- "account.mute_notifications": "Mute notifications from @{name}",
- "account.muted": "Muted",
+ "account.mute": "@{name} kullanıcısını sessize al",
+ "account.mute_notifications": "@{name} kullanıcısının bildirimlerini kapat",
+ "account.muted": "Sessiz",
"account.posts": "Gönderiler",
- "account.posts_with_replies": "Toots with replies",
- "account.report": "Rapor et @{name}",
- "account.requested": "Onay bekleniyor",
- "account.share": "Share @{name}'s profile",
- "account.show_reblogs": "Show boosts from @{name}",
+ "account.posts_with_replies": "Gönderiler ve yanıtlar",
+ "account.report": "@{name} kullanıcısını bildir",
+ "account.requested": "Onay bekliyor. Takip isteğini iptal etmek için tıklayın",
+ "account.share": "@{name} kullanıcısının profilini paylaş",
+ "account.show_reblogs": "@{name} kullanıcısından boost'ları göster",
"account.unblock": "Engeli kaldır @{name}",
- "account.unblock_domain": "Unhide {domain}",
- "account.unendorse": "Don't feature on profile",
+ "account.unblock_domain": "{domain} göster",
+ "account.unendorse": "Profilde özellik yok",
"account.unfollow": "Takipten vazgeç",
"account.unmute": "Sesi aç @{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!",
+ "account.unmute_notifications": "@{name} kullanıcısından bildirimleri aç",
+ "account.view_full_profile": "Tüm profili görüntüle",
+ "alert.unexpected.message": "Beklenmedik bir hata oluştu.",
+ "alert.unexpected.title": "Hay aksi!",
"boost_modal.combo": "Bir dahaki sefere {combo} tuşuna basabilirsiniz",
- "bundle_column_error.body": "Something went wrong while loading this component.",
- "bundle_column_error.retry": "Try again",
+ "bundle_column_error.body": "Bu bileşen yüklenirken bir şeyler ters gitti.",
+ "bundle_column_error.retry": "Tekrar deneyin",
"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",
+ "bundle_modal_error.close": "Kapat",
+ "bundle_modal_error.message": "Bu bileşen yüklenirken bir şeyler ters gitti.",
+ "bundle_modal_error.retry": "Tekrar deneyin",
"column.blocks": "Engellenen kullanıcılar",
"column.community": "Yerel zaman tüneli",
- "column.direct": "Direct messages",
- "column.domain_blocks": "Hidden domains",
+ "column.direct": "Doğrudan mesajlar",
+ "column.domain_blocks": "Gizli alan adları",
"column.favourites": "Favoriler",
"column.follow_requests": "Takip istekleri",
"column.home": "Anasayfa",
- "column.lists": "Lists",
+ "column.lists": "Listeler",
"column.mutes": "Susturulmuş kullanıcılar",
"column.notifications": "Bildirimler",
"column.pins": "Pinned toot",
"column.public": "Federe zaman tüneli",
"column_back_button.label": "Geri",
- "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_header.hide_settings": "Ayarları gizle",
+ "column_header.moveLeft_settings": "Sütunu sola taşı",
+ "column_header.moveRight_settings": "Sütunu sağa taşı",
+ "column_header.pin": "Sabitle",
+ "column_header.show_settings": "Ayarları göster",
+ "column_header.unpin": "Sabitlemeyi kaldır",
"column_subheading.settings": "Ayarlar",
- "community.column_settings.media_only": "Media Only",
- "compose_form.direct_message_warning": "This toot will only be visible to all the mentioned users.",
- "compose_form.direct_message_warning_learn_more": "Learn more",
+ "community.column_settings.media_only": "Sadece medya",
+ "compose_form.direct_message_warning": "Bu gönderi sadece belirtilen kullanıcılara gönderilecektir.",
+ "compose_form.direct_message_warning_learn_more": "Daha fazla bilgi edin",
"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": "Hesabınız {locked} değil. Sadece takipçilerle paylaştığınız gönderileri görebilmek için sizi herhangi bir kullanıcı takip edebilir.",
"compose_form.lock_disclaimer.lock": "kilitli",
- "compose_form.placeholder": "Ne düşünüyorsun?",
+ "compose_form.placeholder": "Aklınızdan ne geçiyor?",
"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.sensitive.marked": "Medya hassas olarak işaretlendi",
+ "compose_form.sensitive.unmarked": "Medya hassas olarak işaretlenmemiş",
+ "compose_form.spoiler.marked": "Metin uyarının arkasına gizlenir",
+ "compose_form.spoiler.unmarked": "Metin gizli değil",
"compose_form.spoiler_placeholder": "İçerik uyarısı",
"confirmation_modal.cancel": "İptal",
"confirmations.block.confirm": "Engelle",
@@ -86,38 +86,38 @@
"confirmations.delete.confirm": "Sil",
"confirmations.delete.message": "Bu gönderiyi silmek istiyor musunuz?",
"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.delete_list.message": "Bu listeyi kalıcı olarak silmek istediğinize emin misiniz?",
+ "confirmations.domain_block.confirm": "Alan adının tamamını gizle",
"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.",
"confirmations.mute.confirm": "Sessize al",
"confirmations.mute.message": "{name} kullanıcısını sessize almak istiyor musunuz?",
- "confirmations.redraft.confirm": "Delete & redraft",
+ "confirmations.redraft.confirm": "Sil ve yeniden tasarla",
"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.reply.confirm": "Yanıtla",
+ "confirmations.reply.message": "Şimdi yanıtlarken o an oluşturduğunuz mesajın üzerine yazılır. Devam etmek istediğinize emin misiniz?",
+ "confirmations.unfollow.confirm": "Takibi kaldır",
"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:",
+ "embed.preview": "İşte nasıl görüneceği:",
"emoji_button.activity": "Aktivite",
- "emoji_button.custom": "Custom",
+ "emoji_button.custom": "Özel",
"emoji_button.flags": "Bayraklar",
"emoji_button.food": "Yiyecek ve İçecek",
"emoji_button.label": "Emoji ekle",
"emoji_button.nature": "Doğa",
- "emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
+ "emoji_button.not_found": "İfade yok!! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "Nesneler",
"emoji_button.people": "İnsanlar",
- "emoji_button.recent": "Frequently used",
+ "emoji_button.recent": "Sık kullanılan",
"emoji_button.search": "Emoji ara...",
- "emoji_button.search_results": "Search results",
+ "emoji_button.search_results": "Arama sonuçları",
"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.",
- "empty_column.domain_blocks": "There are no hidden domains yet.",
+ "empty_column.account_timeline": "Burada hiç gönderi yok!",
+ "empty_column.blocks": "Henüz bir kullanıcıyı engellemediniz.",
+ "empty_column.community": "Yerel zaman çizelgesi boş. Daha fazla eğlence için herkese açık bir gönderi paylaşın!",
+ "empty_column.direct": "Henüz doğrudan mesajınız yok. Bir tane gönderdiğinizde veya aldığınızda burada görünecektir.",
+ "empty_column.domain_blocks": "Henüz hiçbir gizli alan adı yok.",
"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.",
@@ -125,61 +125,63 @@
"empty_column.home": "Henüz kimseyi takip etmiyorsunuz. {public} ziyaret edebilir veya arama kısmını kullanarak diğer kullanıcılarla iletişime geçebilirsiniz.",
"empty_column.home.public_timeline": "herkese açık zaman tüneli",
"empty_column.list": "There is nothing in this list yet.",
- "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": "Henüz hiç listeniz yok. Bir tane oluşturduğunuzda burada görünecek.",
+ "empty_column.mutes": "Henüz hiçbir kullanıcıyı sessize almadınız.",
"empty_column.notifications": "Henüz hiçbir bildiriminiz yok. Diğer insanlarla sobhet edebilmek için etkileşime geçebilirsiniz.",
- "empty_column.public": "Burada hiçbir gönderi yok! Herkese açık bir şeyler yazın, veya diğer sunucudaki insanları takip ederek bu alanın dolmasını sağlayın",
+ "empty_column.public": "Burada hiçbir şey yok! Herkese açık bir şeyler yazın veya burayı doldurmak için diğer sunuculardaki kullanıcıları takip edin",
"follow_request.authorize": "Yetkilendir",
"follow_request.reject": "Reddet",
- "getting_started.developers": "Developers",
- "getting_started.directory": "Profile directory",
+ "getting_started.developers": "Geliştiriciler",
+ "getting_started.directory": "Profil dizini",
"getting_started.documentation": "Documentation",
"getting_started.heading": "Başlangıç",
- "getting_started.invite": "Invite people",
+ "getting_started.invite": "İnsanları davet edin",
"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",
+ "getting_started.security": "Güvenlik",
+ "getting_started.terms": "Hizmet koşulları",
+ "hashtag.column_header.tag_mode.all": "ve {additional}",
+ "hashtag.column_header.tag_mode.any": "ya da {additional}",
+ "hashtag.column_header.tag_mode.none": "{additional} olmadan",
+ "hashtag.column_settings.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
+ "hashtag.column_settings.tag_mode.all": "Bunların hepsi",
+ "hashtag.column_settings.tag_mode.any": "Bunların hiçbiri",
+ "hashtag.column_settings.tag_mode.none": "Bunların hiçbiri",
"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.action": "İleri",
+ "introduction.federation.federated.headline": "Birleşik",
+ "introduction.federation.federated.text": "Diğer dosya sunucularından gelen genel yayınlar, birleşik zaman çizelgesinde görünecektir.",
+ "introduction.federation.home.headline": "Ana sayfa",
"introduction.federation.home.text": "Posts from people you follow will appear in your home feed. You can follow anyone on any server!",
- "introduction.federation.local.headline": "Local",
+ "introduction.federation.local.headline": "Yerel",
"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.action": "Öğreticiyi bitirin!",
+ "introduction.interactions.favourite.headline": "Favori",
"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.headline": "Yanıt",
"introduction.interactions.reply.text": "You can reply to other people's and your own toots, which will chain them together in a conversation.",
- "introduction.welcome.action": "Let's go!",
- "introduction.welcome.headline": "First steps",
+ "introduction.welcome.action": "Hadi gidelim!",
+ "introduction.welcome.headline": "İlk adımlar",
"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.description": "Açıklama",
"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.heading": "Klavye kısayolları",
+ "keyboard_shortcuts.home": "Ana sayfa zaman çizelgesini açmak için",
"keyboard_shortcuts.hotkey": "Hotkey",
"keyboard_shortcuts.legend": "to display this legend",
"keyboard_shortcuts.local": "to open local timeline",
@@ -204,6 +206,7 @@
"lists.account.remove": "Remove from list",
"lists.delete": "Delete list",
"lists.edit": "Edit list",
+ "lists.edit.submit": "Change title",
"lists.new.create": "Add list",
"lists.new.title_placeholder": "New list title",
"lists.search": "Search among people you follow",
@@ -292,9 +295,12 @@
"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": "@{name} için denetim arayüzünü açın",
+ "status.admin_status": "Denetim arayüzünde bu durumu açın",
"status.block": "Block @{name}",
"status.cancel_reblog_private": "Unboost",
"status.cannot_reblog": "Bu gönderi boost edilemez",
+ "status.copy": "Bağlantı durumunu kopyala",
"status.delete": "Sil",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
@@ -340,6 +346,7 @@
"ui.beforeunload": "Your draft will be lost if you leave Mastodon.",
"upload_area.title": "Upload için sürükle bırak yapınız",
"upload_button.label": "Görsel ekle",
+ "upload_error.limit": "Dosya yükleme sınırı aşıldı.",
"upload_form.description": "Describe for the visually impaired",
"upload_form.focus": "Crop",
"upload_form.undo": "Geri al",
diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json
index 752112588..d6c5317e0 100644
--- a/app/javascript/mastodon/locales/uk.json
+++ b/app/javascript/mastodon/locales/uk.json
@@ -142,6 +142,8 @@
"hashtag.column_header.tag_mode.all": "and {additional}",
"hashtag.column_header.tag_mode.any": "or {additional}",
"hashtag.column_header.tag_mode.none": "without {additional}",
+ "hashtag.column_settings.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
"hashtag.column_settings.tag_mode.all": "All of these",
"hashtag.column_settings.tag_mode.any": "Any of these",
"hashtag.column_settings.tag_mode.none": "None of these",
@@ -204,6 +206,7 @@
"lists.account.remove": "Видалити зі списку",
"lists.delete": "Видалити список",
"lists.edit": "Редагувати список",
+ "lists.edit.submit": "Change title",
"lists.new.create": "Додати список",
"lists.new.title_placeholder": "Нова назва списку",
"lists.search": "Шукати серед людей, на яких ви підписані",
@@ -292,9 +295,12 @@
"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": "Цей допис не може бути передмухнутий",
+ "status.copy": "Copy link to status",
"status.delete": "Видалити",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
@@ -340,6 +346,7 @@
"ui.beforeunload": "Вашу чернетку буде втрачено, якщо ви покинете Mastodon.",
"upload_area.title": "Перетягніть сюди, щоб завантажити",
"upload_button.label": "Додати медіаконтент",
+ "upload_error.limit": "File upload limit exceeded.",
"upload_form.description": "Опишіть для людей з вадами зору",
"upload_form.focus": "Обрізати",
"upload_form.undo": "Видалити",
diff --git a/app/javascript/mastodon/locales/whitelist_kk.json b/app/javascript/mastodon/locales/whitelist_kk.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/mastodon/locales/whitelist_kk.json
@@ -0,0 +1,2 @@
+[
+]
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_sq.json b/app/javascript/mastodon/locales/whitelist_sq.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/mastodon/locales/whitelist_sq.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json
index 54aa84681..27effba4c 100644
--- a/app/javascript/mastodon/locales/zh-CN.json
+++ b/app/javascript/mastodon/locales/zh-CN.json
@@ -142,6 +142,8 @@
"hashtag.column_header.tag_mode.all": "and {additional}",
"hashtag.column_header.tag_mode.any": "or {additional}",
"hashtag.column_header.tag_mode.none": "without {additional}",
+ "hashtag.column_settings.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
"hashtag.column_settings.tag_mode.all": "All of these",
"hashtag.column_settings.tag_mode.any": "Any of these",
"hashtag.column_settings.tag_mode.none": "None of these",
@@ -204,6 +206,7 @@
"lists.account.remove": "从列表中删除",
"lists.delete": "删除列表",
"lists.edit": "编辑列表",
+ "lists.edit.submit": "Change title",
"lists.new.create": "新建列表",
"lists.new.title_placeholder": "新列表的标题",
"lists.search": "搜索你关注的人",
@@ -292,9 +295,12 @@
"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": "无法转嘟这条嘟文",
+ "status.copy": "Copy link to status",
"status.delete": "删除",
"status.detailed_status": "Detailed conversation view",
"status.direct": "发送私信给 @{name}",
@@ -340,6 +346,7 @@
"ui.beforeunload": "如果你现在离开 Mastodon,你的草稿内容将会被丢弃。",
"upload_area.title": "将文件拖放到此处开始上传",
"upload_button.label": "上传媒体文件",
+ "upload_error.limit": "File upload limit exceeded.",
"upload_form.description": "为视觉障碍人士添加文字说明",
"upload_form.focus": "剪裁",
"upload_form.undo": "取消上传",
diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json
index 927cf9578..60baffd2e 100644
--- a/app/javascript/mastodon/locales/zh-HK.json
+++ b/app/javascript/mastodon/locales/zh-HK.json
@@ -142,6 +142,8 @@
"hashtag.column_header.tag_mode.all": "and {additional}",
"hashtag.column_header.tag_mode.any": "or {additional}",
"hashtag.column_header.tag_mode.none": "without {additional}",
+ "hashtag.column_settings.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
"hashtag.column_settings.tag_mode.all": "All of these",
"hashtag.column_settings.tag_mode.any": "Any of these",
"hashtag.column_settings.tag_mode.none": "None of these",
@@ -204,6 +206,7 @@
"lists.account.remove": "從列表刪除",
"lists.delete": "刪除列表",
"lists.edit": "編輯列表",
+ "lists.edit.submit": "Change title",
"lists.new.create": "新增列表",
"lists.new.title_placeholder": "新列表標題",
"lists.search": "從你關注的用戶中搜索",
@@ -292,9 +295,12 @@
"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": "這篇文章無法被轉推",
+ "status.copy": "Copy link to status",
"status.delete": "刪除",
"status.detailed_status": "Detailed conversation view",
"status.direct": "私訊 @{name}",
@@ -340,6 +346,7 @@
"ui.beforeunload": "如果你現在離開 Mastodon,你的草稿內容將會被丟棄。",
"upload_area.title": "將檔案拖放至此上載",
"upload_button.label": "上載媒體檔案",
+ "upload_error.limit": "File upload limit exceeded.",
"upload_form.description": "為視覺障礙人士添加文字說明",
"upload_form.focus": "裁切",
"upload_form.undo": "刪除",
diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json
index e5be85ac5..c0871d379 100644
--- a/app/javascript/mastodon/locales/zh-TW.json
+++ b/app/javascript/mastodon/locales/zh-TW.json
@@ -142,6 +142,8 @@
"hashtag.column_header.tag_mode.all": "and {additional}",
"hashtag.column_header.tag_mode.any": "or {additional}",
"hashtag.column_header.tag_mode.none": "without {additional}",
+ "hashtag.column_settings.select.no_options_message": "No suggestions found",
+ "hashtag.column_settings.select.placeholder": "Enter hashtags…",
"hashtag.column_settings.tag_mode.all": "All of these",
"hashtag.column_settings.tag_mode.any": "Any of these",
"hashtag.column_settings.tag_mode.none": "None of these",
@@ -204,6 +206,7 @@
"lists.account.remove": "從名單中移除",
"lists.delete": "刪除名單",
"lists.edit": "修改名單",
+ "lists.edit.submit": "Change title",
"lists.new.create": "新增名單",
"lists.new.title_placeholder": "名單名稱",
"lists.search": "搜尋您關注的使用者",
@@ -292,9 +295,12 @@
"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": "這篇嘟文無法被轉嘟",
+ "status.copy": "Copy link to status",
"status.delete": "刪除",
"status.detailed_status": "對話的詳細內容",
"status.direct": "發送私訊給 @{name}",
@@ -340,6 +346,7 @@
"ui.beforeunload": "如果離開 Mastodon,你的草稿將會不見。",
"upload_area.title": "拖放來上傳",
"upload_button.label": "上傳媒體檔案 (JPEG, PNG, GIF, WebM, MP4, MOV)",
+ "upload_error.limit": "File upload limit exceeded.",
"upload_form.description": "為視障人士增加文字說明",
"upload_form.focus": "裁切",
"upload_form.undo": "刪除",
diff --git a/app/javascript/mastodon/reducers/conversations.js b/app/javascript/mastodon/reducers/conversations.js
index 955a07754..9564bffcd 100644
--- a/app/javascript/mastodon/reducers/conversations.js
+++ b/app/javascript/mastodon/reducers/conversations.js
@@ -35,7 +35,7 @@ const updateConversation = (state, item) => state.update('items', list => {
}
});
-const expandNormalizedConversations = (state, conversations, next) => {
+const expandNormalizedConversations = (state, conversations, next, isLoadingRecent) => {
let items = ImmutableList(conversations.map(conversationToMap));
return state.withMutations(mutable => {
@@ -66,7 +66,7 @@ const expandNormalizedConversations = (state, conversations, next) => {
});
}
- if (!next) {
+ if (!next && !isLoadingRecent) {
mutable.set('hasMore', false);
}
@@ -81,7 +81,7 @@ export default function conversations(state = initialState, action) {
case CONVERSATIONS_FETCH_FAIL:
return state.set('isLoading', false);
case CONVERSATIONS_FETCH_SUCCESS:
- return expandNormalizedConversations(state, action.conversations, action.next);
+ return expandNormalizedConversations(state, action.conversations, action.next, action.isLoadingRecent);
case CONVERSATIONS_UPDATE:
return updateConversation(state, action.conversation);
case CONVERSATIONS_MOUNT:
diff --git a/app/javascript/mastodon/reducers/index.js b/app/javascript/mastodon/reducers/index.js
index 0f0de849f..a7e9c4d0f 100644
--- a/app/javascript/mastodon/reducers/index.js
+++ b/app/javascript/mastodon/reducers/index.js
@@ -29,6 +29,7 @@ import listAdder from './list_adder';
import filters from './filters';
import conversations from './conversations';
import suggestions from './suggestions';
+import polls from './polls';
const reducers = {
dropdown_menu,
@@ -61,6 +62,7 @@ const reducers = {
filters,
conversations,
suggestions,
+ polls,
};
export default combineReducers(reducers);
diff --git a/app/javascript/mastodon/reducers/list_editor.js b/app/javascript/mastodon/reducers/list_editor.js
index 02a0dabb1..91e524dd5 100644
--- a/app/javascript/mastodon/reducers/list_editor.js
+++ b/app/javascript/mastodon/reducers/list_editor.js
@@ -22,6 +22,7 @@ import {
const initialState = ImmutableMap({
listId: null,
isSubmitting: false,
+ isChanged: false,
title: '',
accounts: ImmutableMap({
@@ -47,10 +48,16 @@ export default function listEditorReducer(state = initialState, action) {
map.set('isSubmitting', false);
});
case LIST_EDITOR_TITLE_CHANGE:
- return state.set('title', action.value);
+ return state.withMutations(map => {
+ map.set('title', action.value);
+ map.set('isChanged', true);
+ });
case LIST_CREATE_REQUEST:
case LIST_UPDATE_REQUEST:
- return state.set('isSubmitting', true);
+ return state.withMutations(map => {
+ map.set('isSubmitting', true);
+ map.set('isChanged', false);
+ });
case LIST_CREATE_FAIL:
case LIST_UPDATE_FAIL:
return state.set('isSubmitting', false);
diff --git a/app/javascript/mastodon/reducers/notifications.js b/app/javascript/mastodon/reducers/notifications.js
index 19a02f5b1..c891f4a52 100644
--- a/app/javascript/mastodon/reducers/notifications.js
+++ b/app/javascript/mastodon/reducers/notifications.js
@@ -108,6 +108,7 @@ export default function notifications(state = initialState, action) {
case NOTIFICATIONS_EXPAND_SUCCESS:
return expandNormalizedNotifications(state, action.notifications, action.next);
case ACCOUNT_BLOCK_SUCCESS:
+ return filterNotifications(state, action.relationship);
case ACCOUNT_MUTE_SUCCESS:
return action.relationship.muting_notifications ? filterNotifications(state, action.relationship) : state;
case NOTIFICATIONS_CLEAR:
diff --git a/app/javascript/mastodon/reducers/polls.js b/app/javascript/mastodon/reducers/polls.js
new file mode 100644
index 000000000..53d9b1d8c
--- /dev/null
+++ b/app/javascript/mastodon/reducers/polls.js
@@ -0,0 +1,19 @@
+import { POLL_VOTE_SUCCESS, POLL_FETCH_SUCCESS } from 'mastodon/actions/polls';
+import { POLLS_IMPORT } from 'mastodon/actions/importer';
+import { Map as ImmutableMap, fromJS } from 'immutable';
+
+const importPolls = (state, polls) => state.withMutations(map => polls.forEach(poll => map.set(poll.id, fromJS(poll))));
+
+const initialState = ImmutableMap();
+
+export default function polls(state = initialState, action) {
+ switch(action.type) {
+ case POLLS_IMPORT:
+ return importPolls(state, action.polls);
+ case POLL_VOTE_SUCCESS:
+ case POLL_FETCH_SUCCESS:
+ return importPolls(state, [action.poll]);
+ default:
+ return state;
+ }
+}
diff --git a/app/javascript/mastodon/reducers/timelines.js b/app/javascript/mastodon/reducers/timelines.js
index beab2ea03..38af9cd09 100644
--- a/app/javascript/mastodon/reducers/timelines.js
+++ b/app/javascript/mastodon/reducers/timelines.js
@@ -29,6 +29,8 @@ const initialTimeline = ImmutableMap({
const expandNormalizedTimeline = (state, timeline, statuses, next, isPartial, isLoadingRecent) => {
return state.update(timeline, initialTimeline, map => map.withMutations(mMap => {
mMap.set('isLoading', false);
+ mMap.set('isPartial', isPartial);
+
if (!next && !isLoadingRecent) mMap.set('hasMore', false);
if (!statuses.isEmpty()) {
@@ -88,7 +90,7 @@ const deleteStatus = (state, id, accountId, references) => {
};
const clearTimeline = (state, timeline) => {
- return state.updateIn([timeline, 'items'], list => list.clear());
+ return state.set(timeline, initialTimeline);
};
const filterTimelines = (state, relationship, statuses) => {
diff --git a/app/javascript/mastodon/service_worker/web_push_notifications.js b/app/javascript/mastodon/service_worker/web_push_notifications.js
index 80a4fb329..1ab0dc0fa 100644
--- a/app/javascript/mastodon/service_worker/web_push_notifications.js
+++ b/app/javascript/mastodon/service_worker/web_push_notifications.js
@@ -92,11 +92,14 @@ const handlePush = (event) => {
options.image = notification.status && notification.status.media_attachments.length > 0 && notification.status.media_attachments[0].preview_url || undefined;
options.data = { access_token, preferred_locale, id: notification.status ? notification.status.id : notification.account.id, url: notification.status ? `/web/statuses/${notification.status.id}` : `/web/accounts/${notification.account.id}` };
- if (notification.status && notification.status.sensitive) {
+ if (notification.status && notification.status.spoiler_text || notification.status.sensitive) {
options.data.hiddenBody = htmlToPlainText(notification.status.content);
options.data.hiddenImage = notification.status.media_attachments.length > 0 && notification.status.media_attachments[0].preview_url;
- options.body = notification.status.spoiler_text;
+ if (notification.status.spoiler_text) {
+ options.body = notification.status.spoiler_text;
+ }
+
options.image = undefined;
options.actions = [actionExpand(preferred_locale)];
} else if (notification.type === 'mention') {
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/mastodon/utils/resize_image.js b/app/javascript/mastodon/utils/resize_image.js
index d1608094f..bbdbc865e 100644
--- a/app/javascript/mastodon/utils/resize_image.js
+++ b/app/javascript/mastodon/utils/resize_image.js
@@ -31,7 +31,7 @@ const loadImage = inputFile => new Promise((resolve, reject) => {
});
const getOrientation = (img, type = 'image/png') => new Promise(resolve => {
- if (type !== 'image/jpeg') {
+ if (!['image/jpeg', 'image/webp'].includes(type)) {
resolve(1);
return;
}
diff --git a/app/javascript/packs/error.js b/app/javascript/packs/error.js
new file mode 100644
index 000000000..685c89065
--- /dev/null
+++ b/app/javascript/packs/error.js
@@ -0,0 +1,13 @@
+import ready from '../mastodon/ready';
+
+ready(() => {
+ const image = document.querySelector('img');
+
+ image.addEventListener('mouseenter', () => {
+ image.src = '/oops.gif';
+ });
+
+ image.addEventListener('mouseleave', () => {
+ image.src = '/oops.png';
+ });
+});
diff --git a/app/javascript/packs/public.js b/app/javascript/packs/public.js
index 6ba37c049..4ab27c769 100644
--- a/app/javascript/packs/public.js
+++ b/app/javascript/packs/public.js
@@ -33,6 +33,17 @@ function main() {
const Rellax = require('rellax');
const createHistory = require('history').createBrowserHistory;
+ const scrollToDetailedStatus = () => {
+ const history = createHistory();
+ const detailedStatuses = document.querySelectorAll('.public-layout .detailed-status');
+ const location = history.location;
+
+ if (detailedStatuses.length === 1 && (!location.state || !location.state.scrolledToDetailedStatus)) {
+ detailedStatuses[0].scrollIntoView();
+ history.replace(location.pathname, { ...location.state, scrolledToDetailedStatus: true });
+ }
+ };
+
ready(() => {
const locale = document.documentElement.lang;
@@ -72,12 +83,24 @@ function main() {
if (reactComponents.length > 0) {
import(/* webpackChunkName: "containers/media_container" */ '../mastodon/containers/media_container')
.then(({ default: MediaContainer }) => {
+ [].forEach.call(reactComponents, (component) => {
+ [].forEach.call(component.children, (child) => {
+ component.removeChild(child);
+ });
+ });
+
const content = document.createElement('div');
ReactDOM.render(
, content);
document.body.appendChild(content);
+ scrollToDetailedStatus();
})
- .catch(error => console.error(error));
+ .catch(error => {
+ console.error(error);
+ scrollToDetailedStatus();
+ });
+ } else {
+ scrollToDetailedStatus();
}
const parallaxComponents = document.querySelectorAll('.parallax');
@@ -86,13 +109,12 @@ function main() {
new Rellax('.parallax', { speed: -1 });
}
- const history = createHistory();
- const detailedStatuses = document.querySelectorAll('.public-layout .detailed-status');
- const location = history.location;
-
- if (detailedStatuses.length === 1 && (!location.state || !location.state.scrolledToDetailedStatus)) {
- detailedStatuses[0].scrollIntoView();
- history.replace(location.pathname, { ...location.state, scrolledToDetailedStatus: true });
+ if (document.body.classList.contains('with-modals')) {
+ const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;
+ const scrollbarWidthStyle = document.createElement('style');
+ scrollbarWidthStyle.id = 'scrollbar-width';
+ document.head.appendChild(scrollbarWidthStyle);
+ scrollbarWidthStyle.sheet.insertRule(`body.with-modals--active { margin-right: ${scrollbarWidth}px; }`, 0);
}
});
diff --git a/app/javascript/styles/application.scss b/app/javascript/styles/application.scss
index 4bce74187..6db3bc3dc 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/polls';
@import 'mastodon/introduction';
@import 'mastodon/modal';
@import 'mastodon/emoji_picker';
diff --git a/app/javascript/styles/contrast/diff.scss b/app/javascript/styles/contrast/diff.scss
index eee9ecc3e..8429103b8 100644
--- a/app/javascript/styles/contrast/diff.scss
+++ b/app/javascript/styles/contrast/diff.scss
@@ -12,3 +12,58 @@
}
}
}
+
+.rich-formatting a,
+.rich-formatting p a,
+.rich-formatting li a,
+.landing-page__short-description p a,
+.status__content a,
+.reply-indicator__content a {
+ color: lighten($ui-highlight-color, 12%);
+ text-decoration: underline;
+
+ &.mention {
+ text-decoration: none;
+ }
+
+ &.mention span {
+ text-decoration: underline;
+
+ &:hover,
+ &:focus,
+ &:active {
+ text-decoration: none;
+ }
+ }
+
+ &:hover,
+ &:focus,
+ &:active {
+ text-decoration: none;
+ }
+
+ &.status__content__spoiler-link {
+ color: $secondary-text-color;
+ text-decoration: none;
+ }
+}
+
+.status__content__read-more-button {
+ text-decoration: underline;
+
+ &:hover,
+ &:focus,
+ &:active {
+ text-decoration: none;
+ }
+}
+
+.getting-started__footer a {
+ text-decoration: underline;
+
+ &:hover,
+ &:focus,
+ &:active {
+ text-decoration: none;
+ }
+}
diff --git a/app/javascript/styles/mastodon-light/diff.scss b/app/javascript/styles/mastodon-light/diff.scss
index 78bc2dbb6..de03cf1a6 100644
--- a/app/javascript/styles/mastodon-light/diff.scss
+++ b/app/javascript/styles/mastodon-light/diff.scss
@@ -352,6 +352,8 @@
.moved-account-widget,
.memoriam-widget,
.activity-stream,
-.nothing-here {
+.nothing-here,
+.directory__tag > a,
+.directory__tag > div {
box-shadow: none;
}
diff --git a/app/javascript/styles/mastodon/_mixins.scss b/app/javascript/styles/mastodon/_mixins.scss
index d5bafe6b6..08806599e 100644
--- a/app/javascript/styles/mastodon/_mixins.scss
+++ b/app/javascript/styles/mastodon/_mixins.scss
@@ -41,3 +41,34 @@
font-size: 16px;
}
}
+
+@mixin search-popout() {
+ background: $simple-background-color;
+ border-radius: 4px;
+ padding: 10px 14px;
+ padding-bottom: 14px;
+ margin-top: 10px;
+ color: $light-text-color;
+ box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);
+
+ h4 {
+ text-transform: uppercase;
+ color: $light-text-color;
+ font-size: 13px;
+ font-weight: 500;
+ margin-bottom: 10px;
+ }
+
+ li {
+ padding: 4px 0;
+ }
+
+ ul {
+ margin-bottom: 10px;
+ }
+
+ em {
+ font-weight: 500;
+ color: $inverted-text-color;
+ }
+}
diff --git a/app/javascript/styles/mastodon/about.scss b/app/javascript/styles/mastodon/about.scss
index dc456be3e..b078d4d24 100644
--- a/app/javascript/styles/mastodon/about.scss
+++ b/app/javascript/styles/mastodon/about.scss
@@ -49,15 +49,9 @@ $small-breakpoint: 960px;
}
}
+ strong,
em {
- display: inline;
- margin: 0;
- padding: 0;
font-weight: 700;
- background: transparent;
- font-family: inherit;
- font-size: inherit;
- line-height: inherit;
color: lighten($darker-text-color, 10%);
}
@@ -364,7 +358,7 @@ $small-breakpoint: 960px;
@media screen and (max-width: $column-breakpoint) {
.grid {
- grid-template-columns: auto;
+ grid-template-columns: 100%;
.column-0 {
display: block;
@@ -796,7 +790,7 @@ $small-breakpoint: 960px;
width: 100%;
display: flex;
flex-direction: row-reverse;
- flex-wrap: wrap;
+ flex-wrap: nowrap;
justify-content: space-between;
align-items: center;
}
@@ -845,6 +839,11 @@ $small-breakpoint: 960px;
margin-bottom: 0;
}
+ strong {
+ font-weight: 500;
+ color: lighten($darker-text-color, 10%);
+ }
+
.account {
border-bottom: 0;
padding: 0;
@@ -1267,8 +1266,7 @@ $small-breakpoint: 960px;
}
#mastodon-timeline {
- display: block;
- width: 100vw;
+ display: flex;
height: 100vh;
border-radius: 0;
}
diff --git a/app/javascript/styles/mastodon/accounts.scss b/app/javascript/styles/mastodon/accounts.scss
index 63a5c61b8..f4f458cf4 100644
--- a/app/javascript/styles/mastodon/accounts.scss
+++ b/app/javascript/styles/mastodon/accounts.scss
@@ -288,3 +288,7 @@
border-bottom: 0;
}
}
+
+.directory__tag .trends__item__current {
+ width: auto;
+}
diff --git a/app/javascript/styles/mastodon/admin.scss b/app/javascript/styles/mastodon/admin.scss
index e8f331932..6d785707c 100644
--- a/app/javascript/styles/mastodon/admin.scss
+++ b/app/javascript/styles/mastodon/admin.scss
@@ -1,4 +1,6 @@
$no-columns-breakpoint: 600px;
+$sidebar-width: 240px;
+$content-width: 840px;
.admin-wrapper {
display: flex;
@@ -6,7 +8,7 @@ $no-columns-breakpoint: 600px;
height: 100%;
.sidebar-wrapper {
- flex: 1;
+ flex: 1 1 $sidebar-width;
height: 100%;
background: $ui-base-color;
display: flex;
@@ -14,7 +16,7 @@ $no-columns-breakpoint: 600px;
}
.sidebar {
- width: 240px;
+ width: $sidebar-width;
height: 100%;
padding: 0;
overflow-y: auto;
@@ -95,12 +97,12 @@ $no-columns-breakpoint: 600px;
}
.content-wrapper {
- flex: 2;
+ flex: 2 1 $content-width;
overflow: auto;
}
.content {
- max-width: 700px;
+ max-width: $content-width;
padding: 20px 15px;
padding-top: 60px;
padding-left: 25px;
@@ -151,6 +153,25 @@ $no-columns-breakpoint: 600px;
font-weight: 500;
}
+ .directory__tag > a,
+ .directory__tag > div {
+ box-shadow: none;
+ }
+
+ .directory__tag .table-action-link .fa {
+ color: inherit;
+ }
+
+ .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;
diff --git a/app/javascript/styles/mastodon/basics.scss b/app/javascript/styles/mastodon/basics.scss
index 746def625..4411ca0b4 100644
--- a/app/javascript/styles/mastodon/basics.scss
+++ b/app/javascript/styles/mastodon/basics.scss
@@ -100,12 +100,14 @@ body {
vertical-align: middle;
margin: 20px;
- img {
- display: block;
- max-width: 470px;
- width: 100%;
- height: auto;
- margin-top: -120px;
+ &__illustration {
+ img {
+ display: block;
+ max-width: 470px;
+ width: 100%;
+ height: auto;
+ margin-top: -120px;
+ }
}
h1 {
diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss
index 0f94d8a32..ceb28dd19 100644
--- a/app/javascript/styles/mastodon/components.scss
+++ b/app/javascript/styles/mastodon/components.scss
@@ -105,6 +105,10 @@
border-color: lighten($ui-primary-color, 4%);
color: lighten($darker-text-color, 4%);
}
+
+ &:disabled {
+ opacity: 0.5;
+ }
}
&.button--block {
@@ -476,7 +480,7 @@
opacity: 0;
transition: opacity .1s ease;
- input {
+ textarea {
background: transparent;
color: $secondary-text-color;
border: 0;
@@ -638,7 +642,6 @@
font-weight: 400;
overflow: hidden;
text-overflow: ellipsis;
- white-space: pre-wrap;
padding-top: 2px;
color: $primary-text-color;
@@ -662,6 +665,7 @@
p {
margin-bottom: 20px;
+ white-space: pre-wrap;
&:last-child {
margin-bottom: 0;
@@ -2336,6 +2340,7 @@ a.account__display-name {
.getting-started {
color: $dark-text-color;
+ overflow: auto;
&__footer {
flex: 0 0 auto;
@@ -2587,6 +2592,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 {
@@ -3047,14 +3061,41 @@ a.status-card.compact:hover {
display: block;
font-weight: 500;
margin-bottom: 10px;
+}
- .column-settings__hashtag-select {
+.column-settings__hashtags {
+ .column-settings__row {
+ margin-bottom: 15px;
+ }
+
+ .column-select {
&__control {
@include search-input();
}
+ &__placeholder {
+ color: $dark-text-color;
+ padding-left: 2px;
+ font-size: 12px;
+ }
+
+ &__value-container {
+ padding-left: 6px;
+ }
+
&__multi-value {
background: lighten($ui-base-color, 8%);
+
+ &__remove {
+ cursor: pointer;
+
+ &:hover,
+ &:active,
+ &:focus {
+ background: lighten($ui-base-color, 12%);
+ color: lighten($darker-text-color, 4%);
+ }
+ }
}
&__multi-value__label,
@@ -3062,9 +3103,42 @@ a.status-card.compact:hover {
color: $darker-text-color;
}
- &__indicator-separator,
+ &__clear-indicator,
&__dropdown-indicator {
- display: none;
+ cursor: pointer;
+ transition: none;
+ color: $dark-text-color;
+
+ &:hover,
+ &:active,
+ &:focus {
+ color: lighten($dark-text-color, 4%);
+ }
+ }
+
+ &__indicator-separator {
+ background-color: lighten($ui-base-color, 8%);
+ }
+
+ &__menu {
+ @include search-popout();
+ padding: 0;
+ background: $ui-secondary-color;
+ }
+
+ &__menu-list {
+ padding: 6px;
+ }
+
+ &__option {
+ color: $inverted-text-color;
+ border-radius: 4px;
+ font-size: 14px;
+
+ &--is-focused,
+ &--is-selected {
+ background: darken($ui-secondary-color, 10%);
+ }
}
}
}
@@ -4046,6 +4120,7 @@ a.status-card.compact:hover {
color: $highlight-text-color;
}
+ .status__content,
.status__content p {
color: $inverted-text-color;
}
@@ -4857,34 +4932,7 @@ a.status-card.compact:hover {
}
.search-popout {
- background: $simple-background-color;
- border-radius: 4px;
- padding: 10px 14px;
- padding-bottom: 14px;
- margin-top: 10px;
- color: $light-text-color;
- box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);
-
- h4 {
- text-transform: uppercase;
- color: $light-text-color;
- font-size: 13px;
- font-weight: 500;
- margin-bottom: 10px;
- }
-
- li {
- padding: 4px 0;
- }
-
- ul {
- margin-bottom: 10px;
- }
-
- em {
- font-weight: 500;
- color: $inverted-text-color;
- }
+ @include search-popout();
}
noscript {
@@ -5120,7 +5168,7 @@ noscript {
.icon-button {
flex: 0 0 auto;
- margin-left: 5px;
+ margin: 0 5px;
}
}
diff --git a/app/javascript/styles/mastodon/containers.scss b/app/javascript/styles/mastodon/containers.scss
index 8de53ca98..a98fa52c4 100644
--- a/app/javascript/styles/mastodon/containers.scss
+++ b/app/javascript/styles/mastodon/containers.scss
@@ -295,7 +295,7 @@
color: $primary-text-color;
}
- @media screen and (max-width: $no-gap-breakpoint) {
+ @media screen and (max-width: 550px) {
&.optional {
display: none;
}
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 6132dd1ae..bab982706 100644
--- a/app/javascript/styles/mastodon/forms.scss
+++ b/app/javascript/styles/mastodon/forms.scss
@@ -419,7 +419,7 @@ code {
background: darken($ui-base-color, 10%) url("data:image/svg+xml;utf8,
") no-repeat right 8px center / auto 16px;
border: 1px solid darken($ui-base-color, 14%);
border-radius: 4px;
- padding: 10px;
+ padding-left: 10px;
padding-right: 30px;
height: 41px;
}
diff --git a/app/javascript/styles/mastodon/polls.scss b/app/javascript/styles/mastodon/polls.scss
new file mode 100644
index 000000000..f42496559
--- /dev/null
+++ b/app/javascript/styles/mastodon/polls.scss
@@ -0,0 +1,99 @@
+.poll {
+ margin-top: 16px;
+ font-size: 14px;
+
+ li {
+ margin-bottom: 10px;
+ position: relative;
+ }
+
+ &__chart {
+ position: absolute;
+ top: 0;
+ left: 0;
+ height: 100%;
+ display: inline-block;
+ border-radius: 4px;
+ background: darken($ui-primary-color, 14%);
+
+ &.leading {
+ background: $ui-highlight-color;
+ }
+ }
+
+ &__text {
+ position: relative;
+ display: inline-block;
+ padding: 6px 0;
+ line-height: 18px;
+ cursor: default;
+
+ input[type=radio],
+ input[type=checkbox] {
+ display: none;
+ }
+
+ &.selectable {
+ cursor: pointer;
+ }
+ }
+
+ &__input {
+ display: inline-block;
+ position: relative;
+ border: 1px solid $ui-primary-color;
+ box-sizing: border-box;
+ width: 18px;
+ height: 18px;
+ margin-right: 10px;
+ top: -1px;
+ border-radius: 50%;
+ vertical-align: middle;
+
+ &.checkbox {
+ border-radius: 4px;
+ }
+
+ &.active {
+ border-color: $valid-value-color;
+ background: $valid-value-color;
+ }
+ }
+
+ &__number {
+ display: inline-block;
+ width: 36px;
+ font-weight: 700;
+ padding: 0 10px;
+ text-align: right;
+ }
+
+ &__footer {
+ padding-top: 6px;
+ padding-bottom: 5px;
+ color: $dark-text-color;
+ }
+
+ &__link {
+ display: inline;
+ background: transparent;
+ padding: 0;
+ margin: 0;
+ border: 0;
+ color: $dark-text-color;
+ text-decoration: underline;
+
+ &:hover,
+ &:focus,
+ &:active {
+ text-decoration: none;
+ }
+ }
+
+ .button {
+ height: 36px;
+ padding: 0 16px;
+ margin-right: 10px;
+ font-size: 14px;
+ }
+}
diff --git a/app/javascript/styles/mastodon/reset.scss b/app/javascript/styles/mastodon/reset.scss
index e24ba8c1c..f54ed5bc7 100644
--- a/app/javascript/styles/mastodon/reset.scss
+++ b/app/javascript/styles/mastodon/reset.scss
@@ -54,7 +54,7 @@ table {
}
html {
- scrollbar-color: lighten($ui-base-color, 4%) transparent;
+ scrollbar-color: lighten($ui-base-color, 4%) rgba($base-overlay-background, 0.1);
}
::-webkit-scrollbar {
diff --git a/app/javascript/styles/mastodon/widgets.scss b/app/javascript/styles/mastodon/widgets.scss
index 87e633c70..1eaf30c5b 100644
--- a/app/javascript/styles/mastodon/widgets.scss
+++ b/app/javascript/styles/mastodon/widgets.scss
@@ -269,7 +269,8 @@
box-sizing: border-box;
margin-bottom: 10px;
- a {
+ & > a,
+ & > div {
display: flex;
align-items: center;
justify-content: space-between;
@@ -279,7 +280,9 @@
text-decoration: none;
color: inherit;
box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
+ }
+ & > a {
&:hover,
&:active,
&:focus {
@@ -287,7 +290,7 @@
}
}
- &.active a {
+ &.active > a {
background: $ui-highlight-color;
cursor: default;
}
@@ -425,3 +428,93 @@
border-radius: 0;
}
}
+
+$maximum-width: 1235px;
+$fluid-breakpoint: $maximum-width + 20px;
+
+.statuses-grid {
+ min-height: 600px;
+
+ @media screen and (max-width: 640px) {
+ width: 100% !important; // Masonry layout is unnecessary at this width
+ }
+
+ &__item {
+ width: (960px - 20px) / 3;
+
+ @media screen and (max-width: $fluid-breakpoint) {
+ width: (940px - 20px) / 3;
+ }
+
+ @media screen and (max-width: 640px) {
+ width: 100%;
+ }
+
+ @media screen and (max-width: $no-gap-breakpoint) {
+ width: 100vw;
+ }
+ }
+
+ .detailed-status {
+ border-radius: 4px;
+
+ @media screen and (max-width: $no-gap-breakpoint) {
+ border-top: 1px solid lighten($ui-base-color, 16%);
+ }
+
+ &.compact {
+ .detailed-status__meta {
+ margin-top: 15px;
+ }
+
+ .status__content {
+ font-size: 15px;
+ line-height: 20px;
+
+ .emojione {
+ width: 20px;
+ height: 20px;
+ margin: -3px 0 0;
+ }
+
+ .status__content__spoiler-link {
+ line-height: 20px;
+ margin: 0;
+ }
+ }
+
+ .media-gallery,
+ .status-card,
+ .video-player {
+ margin-top: 15px;
+ }
+ }
+ }
+}
+
+.notice-widget {
+ margin-bottom: 10px;
+ color: $darker-text-color;
+
+ p {
+ margin-bottom: 10px;
+
+ &:last-child {
+ margin-bottom: 0;
+ }
+ }
+
+ a {
+ font-size: 14px;
+ line-height: 20px;
+ text-decoration: none;
+ font-weight: 500;
+ color: $ui-highlight-color;
+
+ &:hover,
+ &:focus,
+ &:active {
+ text-decoration: underline;
+ }
+ }
+}
diff --git a/app/lib/activity_tracker.rb b/app/lib/activity_tracker.rb
index 5b4972674..ae3c11b6a 100644
--- a/app/lib/activity_tracker.rb
+++ b/app/lib/activity_tracker.rb
@@ -4,6 +4,8 @@ class ActivityTracker
EXPIRE_AFTER = 90.days.seconds
class << self
+ include Redisable
+
def increment(prefix)
key = [prefix, current_week].join(':')
@@ -20,10 +22,6 @@ class ActivityTracker
private
- def redis
- Redis.current
- end
-
def current_week
Time.zone.today.cweek
end
diff --git a/app/lib/activitypub/activity.rb b/app/lib/activitypub/activity.rb
index 0a729011f..54b175613 100644
--- a/app/lib/activitypub/activity.rb
+++ b/app/lib/activitypub/activity.rb
@@ -2,6 +2,10 @@
class ActivityPub::Activity
include JsonLdHelper
+ include Redisable
+
+ SUPPORTED_TYPES = %w(Note Question).freeze
+ CONVERTED_TYPES = %w(Image Video Article Page).freeze
def initialize(json, account, **options)
@json = json
@@ -50,6 +54,8 @@ class ActivityPub::Activity
ActivityPub::Activity::Add
when 'Remove'
ActivityPub::Activity::Remove
+ when 'Move'
+ ActivityPub::Activity::Move
end
end
end
@@ -68,8 +74,16 @@ class ActivityPub::Activity
@object_uri ||= value_or_id(@object)
end
- def redis
- Redis.current
+ def unsupported_object_type?
+ @object.is_a?(String) || !(supported_object_type? || converted_object_type?)
+ end
+
+ def supported_object_type?
+ equals_or_includes_any?(@object['type'], SUPPORTED_TYPES)
+ end
+
+ def converted_object_type?
+ equals_or_includes_any?(@object['type'], CONVERTED_TYPES)
end
def distribute(status)
@@ -121,6 +135,24 @@ class ActivityPub::Activity
redis.setex("delete_upon_arrival:#{@account.id}:#{uri}", 6.hours.seconds, uri)
end
+ def status_from_object
+ # If the status is already known, return it
+ status = status_from_uri(object_uri)
+
+ return status unless status.nil?
+
+ # If the boosted toot is embedded and it is a self-boost, handle it like a Create
+ unless unsupported_object_type?
+ actor_id = value_or_id(first_of_value(@object['attributedTo'])) || @account.uri
+
+ if actor_id == @account.uri
+ return ActivityPub::Activity.factory({ 'type' => 'Create', 'actor' => actor_id, 'object' => @object }, @account).perform
+ end
+ end
+
+ fetch_remote_original_status
+ end
+
def fetch_remote_original_status
if object_uri.start_with?('http')
return if ActivityPub::TagManager.instance.local_uri?(object_uri)
@@ -135,4 +167,21 @@ class ActivityPub::Activity
ensure
redis.del(key)
end
+
+ def fetch?
+ !@options[:delivery]
+ end
+
+ def followed_by_local_accounts?
+ @account.passive_relationships.exists?
+ end
+
+ def requested_through_relay?
+ @options[:relayed_through_account] && Relay.find_by(inbox_url: @options[:relayed_through_account].inbox_url)&.enabled?
+ end
+
+ def reject_payload!
+ Rails.logger.info("Rejected #{@json['type']} activity #{@json['id']} from #{@account.uri}#{@options[:relayed_through_account] && "via #{@options[:relayed_through_account].uri}"}")
+ nil
+ end
end
diff --git a/app/lib/activitypub/activity/announce.rb b/app/lib/activitypub/activity/announce.rb
index 1147a4481..9f8ffd9fb 100644
--- a/app/lib/activitypub/activity/announce.rb
+++ b/app/lib/activitypub/activity/announce.rb
@@ -2,10 +2,11 @@
class ActivityPub::Activity::Announce < ActivityPub::Activity
def perform
- original_status = status_from_uri(object_uri)
- original_status ||= fetch_remote_original_status
+ return reject_payload! if delete_arrived_first?(@json['id']) || !related_to_local_activity?
- return if original_status.nil? || delete_arrived_first?(@json['id']) || !announceable?(original_status)
+ original_status = status_from_object
+
+ return reject_payload! if original_status.nil? || !announceable?(original_status)
status = Status.find_by(account: @account, reblog: original_status)
@@ -17,7 +18,7 @@ class ActivityPub::Activity::Announce < ActivityPub::Activity
uri: @json['id'],
created_at: @json['published'],
override_timestamps: @options[:override_timestamps],
- visibility: original_status.visibility
+ visibility: visibility_from_audience
)
distribute(status)
@@ -26,7 +27,27 @@ class ActivityPub::Activity::Announce < ActivityPub::Activity
private
+ def visibility_from_audience
+ if equals_or_includes?(@json['to'], ActivityPub::TagManager::COLLECTIONS[:public])
+ :public
+ elsif equals_or_includes?(@json['cc'], ActivityPub::TagManager::COLLECTIONS[:public])
+ :unlisted
+ elsif equals_or_includes?(@json['to'], @account.followers_url)
+ :private
+ else
+ :direct
+ end
+ end
+
def announceable?(status)
status.account_id == @account.id || status.public_visibility? || status.unlisted_visibility?
end
+
+ def related_to_local_activity?
+ followed_by_local_accounts? || requested_through_relay? || reblog_of_local_status?
+ end
+
+ def reblog_of_local_status?
+ status_from_uri(object_uri)&.account&.local?
+ 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..fc4c45692 100644
--- a/app/lib/activitypub/activity/create.rb
+++ b/app/lib/activitypub/activity/create.rb
@@ -1,14 +1,13 @@
# frozen_string_literal: true
class ActivityPub::Activity::Create < ActivityPub::Activity
- SUPPORTED_TYPES = %w(Note).freeze
- CONVERTED_TYPES = %w(Image Video Article Page).freeze
-
def perform
- return if delete_arrived_first?(object_uri) || unsupported_object_type? || invalid_origin?(@object['id'])
+ return reject_payload! if unsupported_object_type? || invalid_origin?(@object['id']) || Tombstone.exists?(uri: @object['id']) || !related_to_local_activity?
RedisLock.acquire(lock_options) do |lock|
if lock.acquired?
+ return if delete_arrived_first?(object_uri) || poll_vote?
+
@status = find_existing_status
if @status.nil?
@@ -41,6 +40,7 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
end
resolve_thread(@status)
+ fetch_replies(@status)
distribute(@status)
forward_for_reply if @status.public_visibility? || @status.unlisted_visibility?
end
@@ -59,7 +59,7 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
account: @account,
text: text_from_content || '',
language: detected_language,
- spoiler_text: text_from_summary || '',
+ spoiler_text: converted_object_type? ? '' : (text_from_summary || ''),
created_at: @object['published'],
override_timestamps: @options[:override_timestamps],
reply: @object['inReplyTo'].present?,
@@ -68,6 +68,7 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
thread: replied_to_status,
conversation: conversation_from_uri(@object['conversation']),
media_attachment_ids: process_attachments.take(4).map(&:id),
+ owned_poll: process_poll,
}
end
end
@@ -160,7 +161,7 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
return if tag['href'].blank?
account = account_from_uri(tag['href'])
- account = ::FetchRemoteAccountService.new.call(tag['href'], id: false) if account.nil?
+ account = ::FetchRemoteAccountService.new.call(tag['href']) if account.nil?
return if account.nil?
@@ -209,11 +210,54 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
media_attachments
end
+ def process_poll
+ return unless @object['type'] == 'Question' && (@object['anyOf'].is_a?(Array) || @object['oneOf'].is_a?(Array))
+
+ expires_at = begin
+ if @object['closed'].is_a?(String)
+ @object['closed']
+ elsif !@object['closed'].nil? && !@object['closed'].is_a?(FalseClass)
+ Time.now.utc
+ else
+ @object['endTime']
+ end
+ end
+
+ if @object['anyOf'].is_a?(Array)
+ multiple = true
+ items = @object['anyOf']
+ else
+ multiple = false
+ items = @object['oneOf']
+ end
+
+ @account.polls.new(
+ multiple: multiple,
+ expires_at: expires_at,
+ options: items.map { |item| item['name'].presence || item['content'] },
+ cached_tallies: items.map { |item| item.dig('replies', 'totalItems') || 0 }
+ )
+ end
+
+ def poll_vote?
+ return false if replied_to_status.nil? || replied_to_status.poll.nil? || !replied_to_status.local? || !replied_to_status.poll.options.include?(@object['name'])
+ replied_to_status.poll.votes.create!(account: @account, choice: replied_to_status.poll.options.index(@object['name']))
+ 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
+ def fetch_replies(status)
+ collection = @object['replies']
+ return if collection.nil?
+ replies = ActivityPub::FetchRepliesService.new.call(status, collection, false)
+ return if replies.present?
+ uri = value_or_id(collection)
+ ActivityPub::FetchRepliesWorker.perform_async(status.id, uri) unless uri.nil?
+ end
+
def conversation_from_uri(uri)
return nil if uri.nil?
return Conversation.find_by(id: OStatus::TagManager.instance.unique_tag_to_local_id(uri, 'Conversation')) if OStatus::TagManager.instance.local_id?(uri)
@@ -254,7 +298,7 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
end
def text_from_content
- return Formatter.instance.linkify([text_from_name, object_url || @object['id']].join(' ')) if converted_object_type?
+ return Formatter.instance.linkify([[text_from_name, text_from_summary.presence].compact.join("\n\n"), object_url || @object['id']].join(' ')) if converted_object_type?
if @object['content'].present?
@object['content']
@@ -315,22 +359,10 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
@object['nameMap'].is_a?(Hash) && !@object['nameMap'].empty?
end
- def unsupported_object_type?
- @object.is_a?(String) || !(supported_object_type? || converted_object_type?)
- end
-
def unsupported_media_type?(mime_type)
mime_type.present? && !(MediaAttachment::IMAGE_MIME_TYPES + MediaAttachment::VIDEO_MIME_TYPES).include?(mime_type)
end
- def supported_object_type?
- equals_or_includes_any?(@object['type'], SUPPORTED_TYPES)
- end
-
- def converted_object_type?
- equals_or_includes_any?(@object['type'], CONVERTED_TYPES)
- end
-
def skip_download?
return @skip_download if defined?(@skip_download)
@skip_download ||= DomainBlock.find_by(domain: @account.domain)&.reject_media?
@@ -349,6 +381,25 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
!replied_to_status.nil? && replied_to_status.account.local?
end
+ def related_to_local_activity?
+ fetch? || followed_by_local_accounts? || requested_through_relay? ||
+ responds_to_followed_account? || addresses_local_accounts?
+ end
+
+ def responds_to_followed_account?
+ !replied_to_status.nil? && (replied_to_status.account.local? || replied_to_status.account.passive_relationships.exists?)
+ end
+
+ def addresses_local_accounts?
+ return true if @options[:delivered_to_account_id]
+
+ local_usernames = (as_array(@object['to']) + as_array(@object['cc'])).uniq.select { |uri| ActivityPub::TagManager.instance.local_uri?(uri) }.map { |uri| ActivityPub::TagManager.instance.uri_to_local_id(uri, :username) }
+
+ return false if local_usernames.empty?
+
+ Account.local.where(username: local_usernames).exists?
+ end
+
def forward_for_reply
return unless @json['signature'].present? && reply_to_local?
ActivityPub::RawDistributionWorker.perform_async(Oj.dump(@json), replied_to_status.account_id, [@account.preferred_inbox_url])
diff --git a/app/lib/activitypub/activity/delete.rb b/app/lib/activitypub/activity/delete.rb
index 8270fed1b..dc76dd3e2 100644
--- a/app/lib/activitypub/activity/delete.rb
+++ b/app/lib/activitypub/activity/delete.rb
@@ -21,11 +21,14 @@ class ActivityPub::Activity::Delete < ActivityPub::Activity
def delete_note
return if object_uri.nil?
+ unless invalid_origin?(object_uri)
+ RedisLock.acquire(lock_options) { |_lock| delete_later!(object_uri) }
+ Tombstone.find_or_create_by(uri: object_uri, account: @account)
+ end
+
@status = Status.find_by(uri: object_uri, account: @account)
@status ||= Status.find_by(uri: @object['atomUri'], account: @account) if @object.is_a?(Hash) && @object['atomUri'].present?
- delete_later!(object_uri)
-
return if @status.nil?
if @status.public_visibility? || @status.unlisted_visibility?
@@ -68,4 +71,17 @@ class ActivityPub::Activity::Delete < ActivityPub::Activity
def payload
@payload ||= Oj.dump(@json)
end
+
+ def lock_options
+ { redis: Redis.current, key: "create:#{object_uri}" }
+ end
+
+ def invalid_origin?(url)
+ return true if unsupported_uri_scheme?(url)
+
+ needle = Addressable::URI.parse(url).host
+ haystack = Addressable::URI.parse(@account.uri).host
+
+ !haystack.casecmp(needle).zero?
+ end
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/activitypub/tag_manager.rb b/app/lib/activitypub/tag_manager.rb
index be3a562d0..892bb9974 100644
--- a/app/lib/activitypub/tag_manager.rb
+++ b/app/lib/activitypub/tag_manager.rb
@@ -48,6 +48,12 @@ class ActivityPub::TagManager
activity_account_status_url(target.account, target)
end
+ def replies_uri_for(target, page_params = nil)
+ raise ArgumentError, 'target must be a local activity' unless %i(note comment activity).include?(target.object_type) && target.local?
+
+ replies_account_status_url(target.account, target, page_params)
+ end
+
# Primary audience of a status
# Public statuses go out to primarily the public collection
# Unlisted and private statuses go out primarily to the followers collection
diff --git a/app/lib/feed_manager.rb b/app/lib/feed_manager.rb
index f99df33e5..d77cdb3a3 100644
--- a/app/lib/feed_manager.rb
+++ b/app/lib/feed_manager.rb
@@ -4,6 +4,7 @@ require 'singleton'
class FeedManager
include Singleton
+ include Redisable
MAX_ITEMS = 400
@@ -35,7 +36,7 @@ class FeedManager
def unpush_from_home(account, status)
return false unless remove_from_feed(:home, account.id, status)
- Redis.current.publish("timeline:#{account.id}", Oj.dump(event: :delete, payload: status.id.to_s))
+ redis.publish("timeline:#{account.id}", Oj.dump(event: :delete, payload: status.id.to_s))
true
end
@@ -53,7 +54,7 @@ class FeedManager
def unpush_from_list(list, status)
return false unless remove_from_feed(:list, list.id, status)
- Redis.current.publish("timeline:list:#{list.id}", Oj.dump(event: :delete, payload: status.id.to_s))
+ redis.publish("timeline:list:#{list.id}", Oj.dump(event: :delete, payload: status.id.to_s))
true
end
@@ -142,10 +143,6 @@ class FeedManager
private
- def redis
- Redis.current
- end
-
def push_update_required?(timeline_id)
redis.exists("subscribed:#{timeline_id}")
end
diff --git a/app/lib/formatter.rb b/app/lib/formatter.rb
index 05fd9eeb1..0653214f5 100644
--- a/app/lib/formatter.rb
+++ b/app/lib/formatter.rb
@@ -99,7 +99,7 @@ class Formatter
end
def encode_and_link_urls(html, accounts = nil, options = {})
- entities = Extractor.extract_entities_with_indices(html, extract_url_without_protocol: false)
+ entities = utf8_friendly_extractor(html, extract_url_without_protocol: false)
if accounts.is_a?(Hash)
options = accounts
@@ -199,6 +199,53 @@ class Formatter
result.flatten.join
end
+ UNICODE_ESCAPE_BLACKLIST_RE = /\p{Z}|\p{P}/
+
+ def utf8_friendly_extractor(text, options = {})
+ old_to_new_index = [0]
+
+ escaped = text.chars.map do |c|
+ output = begin
+ if c.ord.to_s(16).length > 2 && UNICODE_ESCAPE_BLACKLIST_RE.match(c).nil?
+ CGI.escape(c)
+ else
+ c
+ end
+ end
+
+ old_to_new_index << old_to_new_index.last + output.length
+
+ output
+ end.join
+
+ # Note: I couldn't obtain list_slug with @user/list-name format
+ # for mention so this requires additional check
+ special = Extractor.extract_urls_with_indices(escaped, options).map do |extract|
+ # exactly one of :url, :hashtag, :screen_name, :cashtag keys is present
+ key = (extract.keys & [:url, :hashtag, :screen_name, :cashtag]).first
+
+ new_indices = [
+ old_to_new_index.find_index(extract[:indices].first),
+ old_to_new_index.find_index(extract[:indices].last),
+ ]
+
+ has_prefix_char = [:hashtag, :screen_name, :cashtag].include?(key)
+ value_indices = [
+ new_indices.first + (has_prefix_char ? 1 : 0), # account for #, @ or $
+ new_indices.last - 1,
+ ]
+
+ next extract.merge(
+ :indices => new_indices,
+ key => text[value_indices.first..value_indices.last]
+ )
+ end
+
+ standard = Extractor.extract_entities_with_indices(text, options)
+
+ Extractor.remove_overlapping_entities(special + standard)
+ end
+
def link_to_url(entity, options = {})
url = Addressable::URI.parse(entity[:url])
html_attrs = { target: '_blank', rel: 'nofollow noopener' }
diff --git a/app/lib/ostatus/activity/base.rb b/app/lib/ostatus/activity/base.rb
index c5933f3ad..db70f1998 100644
--- a/app/lib/ostatus/activity/base.rb
+++ b/app/lib/ostatus/activity/base.rb
@@ -1,6 +1,8 @@
# frozen_string_literal: true
class OStatus::Activity::Base
+ include Redisable
+
def initialize(xml, account = nil, **options)
@xml = xml
@account = account
@@ -66,8 +68,4 @@ class OStatus::Activity::Base
Status.find_by(uri: uri)
end
end
-
- def redis
- Redis.current
- end
end
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/potential_friendship_tracker.rb b/app/lib/potential_friendship_tracker.rb
index 017a9748d..188aa4a27 100644
--- a/app/lib/potential_friendship_tracker.rb
+++ b/app/lib/potential_friendship_tracker.rb
@@ -11,6 +11,8 @@ class PotentialFriendshipTracker
}.freeze
class << self
+ include Redisable
+
def record(account_id, target_account_id, action)
return if account_id == target_account_id
@@ -31,11 +33,5 @@ class PotentialFriendshipTracker
return [] if account_ids.empty?
Account.searchable.where(id: account_ids)
end
-
- private
-
- def redis
- Redis.current
- end
end
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 19b854410..daeb3d936 100644
--- a/app/lib/user_settings_decorator.rb
+++ b/app/lib/user_settings_decorator.rb
@@ -32,6 +32,7 @@ class UserSettingsDecorator
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')
+ user.settings['show_application'] = show_application_preference if change?('setting_show_application')
end
def merged_notification_emails
@@ -90,6 +91,10 @@ class UserSettingsDecorator
boolean_cast_setting 'setting_hide_network'
end
+ def show_application_preference
+ boolean_cast_setting 'setting_show_application'
+ end
+
def theme_preference
settings['setting_theme']
end
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/models/account.rb b/app/models/account.rb
index 16ef6c187..87ce90178 100644
--- a/app/models/account.rb
+++ b/app/models/account.rb
@@ -44,6 +44,7 @@
# fields :jsonb
# actor_type :string
# discoverable :boolean
+# also_known_as :string is an Array
#
class Account < ApplicationRecord
@@ -59,6 +60,7 @@ class Account < ApplicationRecord
include Attachmentable
include Paginable
include AccountCounters
+ include DomainNormalizable
enum protocol: [:ostatus, :activitypub]
@@ -73,7 +75,7 @@ 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? }
scope :remote, -> { where.not(domain: nil) }
@@ -83,6 +85,7 @@ class Account < ApplicationRecord
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) }
@@ -90,8 +93,8 @@ class Account < ApplicationRecord
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 :discoverable, -> { searchable.where(silenced: false).where(discoverable: true).joins(:account_stat).where(AccountStat.arel_table[:followers_count].gteq(MIN_FOLLOWERS_DISCOVERY)).by_recent_status }
+ 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') }
@@ -106,6 +109,7 @@ class Account < ApplicationRecord
:staff?,
:locale,
:hides_network?,
+ :shows_application?,
to: :user,
prefix: true,
allow_nil: true
@@ -138,6 +142,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
@@ -222,6 +230,10 @@ class Account < ApplicationRecord
end
end
+ def also_known_as
+ self[:also_known_as] || []
+ end
+
def fields
(self[:fields] || []).map { |f| Field.new(self, f) }
end
@@ -374,7 +386,7 @@ class Account < ApplicationRecord
DeliveryFailureTracker.filter(urls)
end
- def search_for(terms, limit = 10)
+ def search_for(terms, limit = 10, offset = 0)
textsearch, query = generate_query_for_search(terms)
sql = <<-SQL.squish
@@ -386,15 +398,15 @@ class Account < ApplicationRecord
AND accounts.suspended = false
AND accounts.moved_to_account_id IS NULL
ORDER BY rank DESC
- LIMIT ?
+ LIMIT ? OFFSET ?
SQL
- records = find_by_sql([sql, limit])
+ records = find_by_sql([sql, limit, offset])
ActiveRecord::Associations::Preloader.new.preload(records, :account_stat)
records
end
- def advanced_search_for(terms, account, limit = 10, following = false)
+ def advanced_search_for(terms, account, limit = 10, following = false, offset = 0)
textsearch, query = generate_query_for_search(terms)
if following
@@ -415,10 +427,10 @@ class Account < ApplicationRecord
AND accounts.moved_to_account_id IS NULL
GROUP BY accounts.id
ORDER BY rank DESC
- LIMIT ?
+ LIMIT ? OFFSET ?
SQL
- records = find_by_sql([sql, account.id, account.id, account.id, limit])
+ records = find_by_sql([sql, account.id, account.id, account.id, limit, offset])
else
sql = <<-SQL.squish
SELECT
@@ -431,10 +443,10 @@ class Account < ApplicationRecord
AND accounts.moved_to_account_id IS NULL
GROUP BY accounts.id
ORDER BY rank DESC
- LIMIT ?
+ LIMIT ? OFFSET ?
SQL
- records = find_by_sql([sql, account.id, account.id, limit])
+ records = find_by_sql([sql, account.id, account.id, limit, offset])
end
ActiveRecord::Associations::Preloader.new.preload(records, :account_stat)
@@ -457,7 +469,6 @@ class Account < ApplicationRecord
end
before_create :generate_keys
- before_validation :normalize_domain
before_validation :prepare_contents, if: :local?
before_destroy :clean_feed_manager
@@ -479,7 +490,7 @@ class Account < ApplicationRecord
def normalize_domain
return if local?
- self.domain = TagManager.instance.normalize_domain(domain)
+ super
end
def emojifiable_text
diff --git a/app/models/account_conversation.rb b/app/models/account_conversation.rb
index cc6b39279..0c03747e2 100644
--- a/app/models/account_conversation.rb
+++ b/app/models/account_conversation.rb
@@ -30,7 +30,8 @@ class AccountConversation < ApplicationRecord
if participant_account_ids.empty?
[account]
else
- Account.where(id: participant_account_ids)
+ participants = Account.where(id: participant_account_ids)
+ participants.empty? ? [account] : participants
end
end
diff --git a/app/models/account_domain_block.rb b/app/models/account_domain_block.rb
index e352000c3..7c0d60379 100644
--- a/app/models/account_domain_block.rb
+++ b/app/models/account_domain_block.rb
@@ -12,6 +12,7 @@
class AccountDomainBlock < ApplicationRecord
include Paginable
+ include DomainNormalizable
belongs_to :account
validates :domain, presence: true, uniqueness: { scope: :account_id }
diff --git a/app/models/concerns/account_associations.rb b/app/models/concerns/account_associations.rb
index a894b5eed..a8ba8fef1 100644
--- a/app/models/concerns/account_associations.rb
+++ b/app/models/concerns/account_associations.rb
@@ -14,6 +14,7 @@ module AccountAssociations
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
@@ -25,6 +26,7 @@ module AccountAssociations
# Media
has_many :media_attachments, dependent: :destroy
+ has_many :polls, dependent: :destroy
# PuSH subscriptions
has_many :subscriptions, dependent: :destroy
@@ -54,5 +56,6 @@ module AccountAssociations
# Hashtags
has_and_belongs_to_many :tags
+ has_many :featured_tags, -> { includes(:tag) }, dependent: :destroy, inverse_of: :account
end
end
diff --git a/app/models/concerns/account_avatar.rb b/app/models/concerns/account_avatar.rb
index 2d5ebfca3..5fff3ef5d 100644
--- a/app/models/concerns/account_avatar.rb
+++ b/app/models/concerns/account_avatar.rb
@@ -3,7 +3,7 @@
module AccountAvatar
extend ActiveSupport::Concern
- IMAGE_MIME_TYPES = ['image/jpeg', 'image/png', 'image/gif'].freeze
+ IMAGE_MIME_TYPES = ['image/jpeg', 'image/png', 'image/gif', 'image/webp'].freeze
LIMIT = 2.megabytes
class_methods do
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/account_header.rb b/app/models/concerns/account_header.rb
index 067e166eb..a748fdff7 100644
--- a/app/models/concerns/account_header.rb
+++ b/app/models/concerns/account_header.rb
@@ -3,7 +3,7 @@
module AccountHeader
extend ActiveSupport::Concern
- IMAGE_MIME_TYPES = ['image/jpeg', 'image/png', 'image/gif'].freeze
+ IMAGE_MIME_TYPES = ['image/jpeg', 'image/png', 'image/gif', 'image/webp'].freeze
LIMIT = 2.megabytes
MAX_PIXELS = 750_000 # 1500x500px
diff --git a/app/models/concerns/domain_normalizable.rb b/app/models/concerns/domain_normalizable.rb
new file mode 100644
index 000000000..fb84058fc
--- /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&.strip)
+ end
+end
diff --git a/app/models/concerns/omniauthable.rb b/app/models/concerns/omniauthable.rb
index f263fe7af..4dd2e9383 100644
--- a/app/models/concerns/omniauthable.rb
+++ b/app/models/concerns/omniauthable.rb
@@ -63,6 +63,7 @@ module Omniauthable
{
email: email || "#{TEMP_EMAIL_PREFIX}-#{auth.uid}-#{auth.provider}.com",
password: Devise.friendly_token[0, 20],
+ agreement: true,
account_attributes: {
username: ensure_unique_username(auth.uid),
display_name: display_name,
diff --git a/app/models/concerns/redisable.rb b/app/models/concerns/redisable.rb
new file mode 100644
index 000000000..c6cf97359
--- /dev/null
+++ b/app/models/concerns/redisable.rb
@@ -0,0 +1,11 @@
+# frozen_string_literal: true
+
+module Redisable
+ extend ActiveSupport::Concern
+
+ private
+
+ def redis
+ Redis.current
+ end
+end
diff --git a/app/models/concerns/status_threading_concern.rb b/app/models/concerns/status_threading_concern.rb
index b9c800c2a..15eb695cd 100644
--- a/app/models/concerns/status_threading_concern.rb
+++ b/app/models/concerns/status_threading_concern.rb
@@ -11,6 +11,10 @@ module StatusThreadingConcern
find_statuses_from_tree_path(descendant_ids(limit, max_child_id, since_child_id, depth), account, promote: true)
end
+ def self_replies(limit)
+ account.statuses.where(in_reply_to_id: id, visibility: [:public, :unlisted]).reorder(id: :asc).limit(limit)
+ end
+
private
def ancestor_ids(limit)
diff --git a/app/models/domain_block.rb b/app/models/domain_block.rb
index b828a9d71..069cda367 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
@@ -22,15 +24,9 @@ class DomainBlock < ApplicationRecord
has_many :accounts, foreign_key: :domain, primary_key: :domain
delegate :count, to: :accounts, prefix: true
+ scope :matches_domain, ->(value) { where(arel_table[:domain].matches("%#{value}%")) }
+
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..9bf866d35 100644
--- a/app/models/export.rb
+++ b/app/models/export.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
require 'csv'
class Export
@@ -9,15 +10,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, :id).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 +51,10 @@ class Export
account.following_count
end
+ def total_lists
+ account.owned_lists.count
+ end
+
def total_followers
account.followers_count
end
@@ -44,13 +67,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/featured_tag.rb b/app/models/featured_tag.rb
new file mode 100644
index 000000000..b5a10ad2d
--- /dev/null
+++ b/app/models/featured_tag.rb
@@ -0,0 +1,46 @@
+# frozen_string_literal: true
+# == Schema Information
+#
+# Table name: featured_tags
+#
+# id :bigint(8) not null, primary key
+# account_id :bigint(8)
+# tag_id :bigint(8)
+# statuses_count :bigint(8) default(0), not null
+# last_status_at :datetime
+# created_at :datetime not null
+# updated_at :datetime not null
+#
+
+class FeaturedTag < ApplicationRecord
+ belongs_to :account, inverse_of: :featured_tags, required: true
+ belongs_to :tag, inverse_of: :featured_tags, required: true
+
+ delegate :name, to: :tag, allow_nil: true
+
+ validates :name, presence: true
+ validate :validate_featured_tags_limit, on: :create
+
+ def name=(str)
+ self.tag = Tag.find_or_initialize_by(name: str.delete('#').mb_chars.downcase.to_s)
+ end
+
+ def increment(timestamp)
+ update(statuses_count: statuses_count + 1, last_status_at: timestamp)
+ end
+
+ def decrement(deleted_status_id)
+ update(statuses_count: [0, statuses_count - 1].max, last_status_at: account.statuses.where(visibility: %i(public unlisted)).tagged_with(tag).where.not(id: deleted_status_id).select(:created_at).first&.created_at)
+ end
+
+ def reset_data
+ self.statuses_count = account.statuses.where(visibility: %i(public unlisted)).tagged_with(tag).count
+ self.last_status_at = account.statuses.where(visibility: %i(public unlisted)).tagged_with(tag).select(:created_at).first&.created_at
+ end
+
+ private
+
+ def validate_featured_tags_limit
+ errors.add(:base, I18n.t('featured_tags.errors.limit')) if account.featured_tags.count >= 10
+ end
+end
diff --git a/app/models/feed.rb b/app/models/feed.rb
index 5bce88f25..0e8943ff8 100644
--- a/app/models/feed.rb
+++ b/app/models/feed.rb
@@ -1,6 +1,8 @@
# frozen_string_literal: true
class Feed
+ include Redisable
+
def initialize(type, id)
@type = type
@id = id
@@ -27,8 +29,4 @@ class Feed
def key
FeedManager.instance.key(@type, @id)
end
-
- def redis
- Redis.current
- end
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/import.rb b/app/models/import.rb
index 55e970b0d..a7a0d8065 100644
--- a/app/models/import.rb
+++ b/app/models/import.rb
@@ -13,20 +13,30 @@
# data_file_size :integer
# data_updated_at :datetime
# account_id :bigint(8) not null
+# overwrite :boolean default(FALSE), not null
#
class Import < ApplicationRecord
- FILE_TYPES = ['text/plain', 'text/csv'].freeze
+ FILE_TYPES = %w(text/plain text/csv).freeze
+ MODES = %i(merge overwrite).freeze
self.inheritance_column = false
belongs_to :account
- enum type: [:following, :blocking, :muting]
+ enum type: [:following, :blocking, :muting, :domain_blocking]
validates :type, presence: true
has_attached_file :data
validates_attachment_content_type :data, content_type: FILE_TYPES
validates_attachment_presence :data
+
+ def mode
+ overwrite? ? :overwrite : :merge
+ end
+
+ def mode=(str)
+ self.overwrite = str.to_sym == :overwrite
+ end
end
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..848fff53e 100644
--- a/app/models/instance_filter.rb
+++ b/app/models/instance_filter.rb
@@ -8,21 +8,14 @@ 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?
+ scope = DomainBlock
+ scope = scope.matches_domain(params[:by_domain]) if params[:by_domain].present?
+ scope.order(id: :desc)
else
- raise "Unknown filter: #{key}"
+ scope = Account.remote
+ scope = scope.matches_domain(params[:by_domain]) if params[:by_domain].present?
+ scope.by_domain_accounts
end
end
end
diff --git a/app/models/media_attachment.rb b/app/models/media_attachment.rb
index 62a11185a..a57ba0b2e 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
@@ -24,10 +25,10 @@ class MediaAttachment < ApplicationRecord
enum type: [:image, :gifv, :video, :unknown]
- IMAGE_FILE_EXTENSIONS = ['.jpg', '.jpeg', '.png', '.gif'].freeze
+ IMAGE_FILE_EXTENSIONS = ['.jpg', '.jpeg', '.png', '.gif', '.webp'].freeze
VIDEO_FILE_EXTENSIONS = ['.webm', '.mp4', '.m4v', '.mov'].freeze
- IMAGE_MIME_TYPES = ['image/jpeg', 'image/png', 'image/gif'].freeze
+ IMAGE_MIME_TYPES = ['image/jpeg', 'image/png', 'image/gif', 'image/webp'].freeze
VIDEO_MIME_TYPES = ['video/webm', 'video/mp4', 'video/quicktime'].freeze
VIDEO_CONVERTIBLE_MIME_TYPES = ['video/webm', 'video/quicktime'].freeze
@@ -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 },
@@ -85,8 +87,8 @@ class MediaAttachment < ApplicationRecord
convert_options: { all: '-quality 90 -strip' }
validates_attachment_content_type :file, content_type: IMAGE_MIME_TYPES + VIDEO_MIME_TYPES
- validates_attachment_size :file, less_than: IMAGE_LIMIT, unless: :video?
- validates_attachment_size :file, less_than: VIDEO_LIMIT, if: :video?
+ validates_attachment_size :file, less_than: IMAGE_LIMIT, unless: :video_or_gifv?
+ validates_attachment_size :file, less_than: VIDEO_LIMIT, if: :video_or_gifv?
remotable_attachment :file, VIDEO_LIMIT
include Attachmentable
@@ -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: '') }
@@ -109,6 +111,10 @@ class MediaAttachment < ApplicationRecord
file.blank? && remote_url.present?
end
+ def video_or_gifv?
+ video? || gifv?
+ end
+
def to_param
shortcode
end
diff --git a/app/models/poll.rb b/app/models/poll.rb
new file mode 100644
index 000000000..ba0b17f91
--- /dev/null
+++ b/app/models/poll.rb
@@ -0,0 +1,90 @@
+# frozen_string_literal: true
+# == Schema Information
+#
+# Table name: polls
+#
+# id :bigint(8) not null, primary key
+# account_id :bigint(8)
+# status_id :bigint(8)
+# expires_at :datetime
+# options :string default([]), not null, is an Array
+# cached_tallies :bigint(8) default([]), not null, is an Array
+# multiple :boolean default(FALSE), not null
+# hide_totals :boolean default(FALSE), not null
+# votes_count :bigint(8) default(0), not null
+# last_fetched_at :datetime
+# created_at :datetime not null
+# updated_at :datetime not null
+#
+
+class Poll < ApplicationRecord
+ include Expireable
+
+ belongs_to :account
+ belongs_to :status
+
+ has_many :votes, class_name: 'PollVote', inverse_of: :poll, dependent: :destroy
+
+ validates :options, presence: true
+ validates :expires_at, presence: true, if: :local?
+ validates_with PollValidator, if: :local?
+
+ scope :attached, -> { where.not(status_id: nil) }
+ scope :unattached, -> { where(status_id: nil) }
+
+ before_validation :prepare_votes_count
+ after_initialize :prepare_cached_tallies
+ after_commit :reset_parent_cache, on: :update
+
+ def loaded_options
+ options.map.with_index { |title, key| Option.new(self, key.to_s, title, cached_tallies[key]) }
+ end
+
+ def unloaded_options
+ options.map.with_index { |title, key| Option.new(self, key.to_s, title, nil) }
+ end
+
+ def possibly_stale?
+ remote? && last_fetched_before_expiration? && time_passed_since_last_fetch?
+ end
+
+ delegate :local?, to: :account
+
+ def remote?
+ !local?
+ end
+
+ class Option < ActiveModelSerializers::Model
+ attributes :id, :title, :votes_count, :poll
+
+ def initialize(poll, id, title, votes_count)
+ @poll = poll
+ @id = id
+ @title = title
+ @votes_count = votes_count
+ end
+ end
+
+ private
+
+ def prepare_cached_tallies
+ self.cached_tallies = options.map { 0 } if cached_tallies.empty?
+ end
+
+ def prepare_votes_count
+ self.votes_count = cached_tallies.sum unless cached_tallies.empty?
+ end
+
+ def reset_parent_cache
+ return if status_id.nil?
+ Rails.cache.delete("statuses/#{status_id}")
+ end
+
+ def last_fetched_before_expiration?
+ last_fetched_at.nil? || expires_at.nil? || last_fetched_at < expires_at
+ end
+
+ def time_passed_since_last_fetch?
+ last_fetched_at.nil? || last_fetched_at < 1.minute.ago
+ end
+end
diff --git a/app/models/poll_vote.rb b/app/models/poll_vote.rb
new file mode 100644
index 000000000..57781d616
--- /dev/null
+++ b/app/models/poll_vote.rb
@@ -0,0 +1,29 @@
+# frozen_string_literal: true
+# == Schema Information
+#
+# Table name: poll_votes
+#
+# id :bigint(8) not null, primary key
+# account_id :bigint(8)
+# poll_id :bigint(8)
+# choice :integer default(0), not null
+# created_at :datetime not null
+# updated_at :datetime not null
+#
+
+class PollVote < ApplicationRecord
+ belongs_to :account
+ belongs_to :poll, inverse_of: :votes
+
+ validates :choice, presence: true
+ validates_with VoteValidator
+
+ after_create_commit :increment_counter_cache
+
+ private
+
+ def increment_counter_cache
+ poll.cached_tallies[choice] = (poll.cached_tallies[choice] || 0) + 1
+ poll.save
+ end
+end
diff --git a/app/models/preview_card.rb b/app/models/preview_card.rb
index a792b352b..f26ea0c74 100644
--- a/app/models/preview_card.rb
+++ b/app/models/preview_card.rb
@@ -25,7 +25,7 @@
#
class PreviewCard < ApplicationRecord
- IMAGE_MIME_TYPES = ['image/jpeg', 'image/png', 'image/gif'].freeze
+ IMAGE_MIME_TYPES = ['image/jpeg', 'image/png', 'image/gif', 'image/webp'].freeze
LIMIT = 1.megabytes
self.inheritance_column = false
diff --git a/app/models/relay.rb b/app/models/relay.rb
index 75cb060b2..6934a5c62 100644
--- a/app/models/relay.rb
+++ b/app/models/relay.rb
@@ -29,6 +29,7 @@ class Relay < ApplicationRecord
payload = Oj.dump(follow_activity(activity_id))
update!(state: :pending, follow_activity_id: activity_id)
+ DeliveryFailureTracker.new(inbox_url).track_success!
ActivityPub::DeliveryWorker.perform_async(payload, some_local_account.id, inbox_url)
end
@@ -37,6 +38,7 @@ class Relay < ApplicationRecord
payload = Oj.dump(unfollow_activity(activity_id))
update!(state: :idle, follow_activity_id: nil)
+ DeliveryFailureTracker.new(inbox_url).track_success!
ActivityPub::DeliveryWorker.perform_async(payload, some_local_account.id, inbox_url)
end
@@ -68,7 +70,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 0705ba4c1..74deeeb50 100644
--- a/app/models/status.rb
+++ b/app/models/status.rb
@@ -21,6 +21,7 @@
# account_id :bigint(8) not null
# application_id :bigint(8)
# in_reply_to_account_id :bigint(8)
+# poll_id :bigint(8)
#
class Status < ApplicationRecord
@@ -44,6 +45,7 @@ class Status < ApplicationRecord
belongs_to :account, inverse_of: :statuses
belongs_to :in_reply_to_account, foreign_key: 'in_reply_to_account_id', class_name: 'Account', optional: true
belongs_to :conversation, optional: true
+ belongs_to :poll, optional: true
belongs_to :thread, foreign_key: 'in_reply_to_id', class_name: 'Status', inverse_of: :replies, optional: true
belongs_to :reblog, foreign_key: 'reblog_of_id', class_name: 'Status', inverse_of: :reblogs, optional: true
@@ -61,6 +63,7 @@ class Status < ApplicationRecord
has_one :notification, as: :activity, dependent: :destroy
has_one :stream_entry, as: :activity, inverse_of: :status
has_one :status_stat, inverse_of: :status
+ has_one :owned_poll, class_name: 'Poll', inverse_of: :status, dependent: :destroy
validates :uri, uniqueness: true, presence: true, unless: :local?
validates :text, presence: true, unless: -> { with_media? || reblog? }
@@ -101,6 +104,7 @@ class Status < ApplicationRecord
:tags,
:preview_cards,
:stream_entry,
+ :poll,
account: :account_stat,
active_mentions: { account: :account_stat },
reblog: [
@@ -111,6 +115,7 @@ class Status < ApplicationRecord
:media_attachments,
:conversation,
:status_stat,
+ :poll,
account: :account_stat,
active_mentions: { account: :account_stat },
],
@@ -250,6 +255,8 @@ class Status < ApplicationRecord
before_validation :set_conversation
before_validation :set_local
+ after_create :set_poll_id
+
class << self
def selectable_visibilities
visibilities.keys - %w(direct limited)
@@ -438,6 +445,10 @@ class Status < ApplicationRecord
self.reblog = reblog.reblog if reblog? && reblog.reblog?
end
+ def set_poll_id
+ update_column(:poll_id, owned_poll.id) unless owned_poll.nil?
+ end
+
def set_visibility
self.visibility = (account.locked? ? :private : :public) if visibility.nil?
self.visibility = reblog.visibility if reblog?
@@ -478,7 +489,7 @@ class Status < ApplicationRecord
return if direct_visibility?
account&.increment_count!(:statuses_count)
- reblog&.increment_count!(:reblogs_count) if reblog?
+ reblog&.increment_count!(:reblogs_count) if reblog? && (public_visibility? || unlisted_visibility?)
thread&.increment_count!(:replies_count) if in_reply_to_id.present? && (public_visibility? || unlisted_visibility?)
end
@@ -486,7 +497,7 @@ class Status < ApplicationRecord
return if direct_visibility? || marked_for_mass_destruction?
account&.decrement_count!(:statuses_count)
- reblog&.decrement_count!(:reblogs_count) if reblog?
+ reblog&.decrement_count!(:reblogs_count) if reblog? && (public_visibility? || unlisted_visibility?)
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 99830ae92..788a678bd 100644
--- a/app/models/tag.rb
+++ b/app/models/tag.rb
@@ -14,6 +14,7 @@ class Tag < ApplicationRecord
has_and_belongs_to_many :accounts
has_and_belongs_to_many :sample_accounts, -> { searchable.discoverable.popular.limit(3) }, class_name: 'Account'
+ has_many :featured_tags, dependent: :destroy, inverse_of: :tag
has_one :account_tag_stat, dependent: :destroy
HASHTAG_NAME_RE = '[[:word:]_]*[[:alpha:]_·][[:word:]_]*'
@@ -23,6 +24,7 @@ class Tag < ApplicationRecord
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 }) }
+ scope :most_used, ->(account) { joins(:statuses).where(statuses: { account: account }).group(:id).order(Arel.sql('count(*) desc')) }
delegate :accounts_count,
:accounts_count=,
@@ -62,9 +64,13 @@ class Tag < ApplicationRecord
end
class << self
- def search_for(term, limit = 5)
+ def search_for(term, limit = 5, offset = 0)
pattern = sanitize_sql_like(term.strip) + '%'
- Tag.where('lower(name) like lower(?)', pattern).order(:name).limit(limit)
+
+ Tag.where('lower(name) like lower(?)', pattern)
+ .order(:name)
+ .limit(limit)
+ .offset(offset)
end
end
diff --git a/app/models/tombstone.rb b/app/models/tombstone.rb
new file mode 100644
index 000000000..997bb65fd
--- /dev/null
+++ b/app/models/tombstone.rb
@@ -0,0 +1,16 @@
+# frozen_string_literal: true
+
+# == Schema Information
+#
+# Table name: tombstones
+#
+# id :bigint(8) not null, primary key
+# account_id :bigint(8)
+# uri :string not null
+# created_at :datetime not null
+# updated_at :datetime not null
+#
+
+class Tombstone < ApplicationRecord
+ belongs_to :account
+end
diff --git a/app/models/trending_tags.rb b/app/models/trending_tags.rb
index 3a8be2164..148535c21 100644
--- a/app/models/trending_tags.rb
+++ b/app/models/trending_tags.rb
@@ -7,6 +7,8 @@ class TrendingTags
THRESHOLD = 5
class << self
+ include Redisable
+
def record_use!(tag, account, at_time = Time.now.utc)
return if disallowed_hashtags.include?(tag.name) || account.silenced? || account.bot?
@@ -59,9 +61,5 @@ class TrendingTags
@disallowed_hashtags = @disallowed_hashtags.split(' ') if @disallowed_hashtags.is_a? String
@disallowed_hashtags = @disallowed_hashtags.map(&:downcase)
end
-
- def redis
- Redis.current
- end
end
end
diff --git a/app/models/user.rb b/app/models/user.rb
index 44e0d1113..83816def5 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
@@ -74,15 +76,18 @@ class User < ApplicationRecord
validates :locale, inclusion: I18n.available_locales.map(&:to_s), if: :locale?
validates_with BlacklistedEmailValidator, 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 :emailable, -> { confirmed.enabled.joins(:account).merge(Account.searchable) }
before_validation :sanitize_languages
@@ -95,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, :aggregate_reblogs, to: :settings, prefix: :setting, allow_nil: false
+ :expand_spoilers, :default_language, :aggregate_reblogs, :show_application, to: :settings, prefix: :setting, allow_nil: false
attr_reader :invite_code
@@ -136,6 +141,10 @@ class User < ApplicationRecord
confirmed_at.present?
end
+ def invited?
+ invite_id.present?
+ end
+
def staff?
admin? || moderator?
end
@@ -235,6 +244,10 @@ class User < ApplicationRecord
@aggregates_reblogs ||= settings.aggregate_reblogs
end
+ def shows_application?
+ @shows_application ||= settings.show_application
+ end
+
def token_for_app(a)
return nil if a.nil? || a.owner != self
Doorkeeper::AccessToken
@@ -286,6 +299,7 @@ class User < ApplicationRecord
def self.pam_get_user(attributes = {})
return nil unless attributes[:email]
+
resource =
if Devise.check_at_sign && !attributes[:email].index('@')
joins(:account).find_by(accounts: { username: attributes[:email] })
@@ -294,7 +308,8 @@ 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]
@@ -307,7 +322,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
@@ -353,7 +368,8 @@ class User < ApplicationRecord
end
def regenerate_feed!
- Redis.current.setnx("account:#{account_id}:regeneration", true) && Redis.current.expire("account:#{account_id}:regeneration", 1.day.seconds)
+ return unless Redis.current.setnx("account:#{account_id}:regeneration", true)
+ Redis.current.expire("account:#{account_id}:regeneration", 1.day.seconds)
RegenerationWorker.perform_async(account_id)
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/poll_policy.rb b/app/policies/poll_policy.rb
new file mode 100644
index 000000000..0d839f240
--- /dev/null
+++ b/app/policies/poll_policy.rb
@@ -0,0 +1,7 @@
+# frozen_string_literal: true
+
+class PollPolicy < ApplicationPolicy
+ def vote?
+ !current_account.blocking?(record.account) && !record.account.blocking?(current_account)
+ end
+end
diff --git a/app/presenters/activitypub/collection_presenter.rb b/app/presenters/activitypub/collection_presenter.rb
index ec84ab1a3..28331f0c4 100644
--- a/app/presenters/activitypub/collection_presenter.rb
+++ b/app/presenters/activitypub/collection_presenter.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
class ActivityPub::CollectionPresenter < ActiveModelSerializers::Model
- attributes :id, :type, :size, :items, :part_of, :first, :last, :next, :prev
+ attributes :id, :type, :size, :items, :page, :part_of, :first, :last, :next, :prev
end
diff --git a/app/serializers/activitypub/activity_serializer.rb b/app/serializers/activitypub/activity_serializer.rb
index 50c4f6a04..c001e28aa 100644
--- a/app/serializers/activitypub/activity_serializer.rb
+++ b/app/serializers/activitypub/activity_serializer.rb
@@ -3,8 +3,8 @@
class ActivityPub::ActivitySerializer < ActiveModel::Serializer
attributes :id, :type, :actor, :published, :to, :cc
- has_one :proper, key: :object, serializer: ActivityPub::NoteSerializer, unless: :announce?
- attribute :proper_uri, key: :object, if: :announce?
+ has_one :proper, key: :object, serializer: ActivityPub::NoteSerializer, if: :serialize_object?
+ attribute :proper_uri, key: :object, unless: :serialize_object?
attribute :atom_uri, if: :announce?
def id
@@ -42,4 +42,10 @@ class ActivityPub::ActivitySerializer < ActiveModel::Serializer
def announce?
object.reblog?
end
+
+ def serialize_object?
+ return true unless announce?
+ # Serialize private self-boosts of local toots
+ object.account == object.proper.account && object.proper.private_visibility? && object.local?
+ end
end
diff --git a/app/serializers/activitypub/actor_serializer.rb b/app/serializers/activitypub/actor_serializer.rb
index 72c30dc73..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
@@ -116,6 +117,10 @@ 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
diff --git a/app/serializers/activitypub/collection_serializer.rb b/app/serializers/activitypub/collection_serializer.rb
index e8960131b..b03609957 100644
--- a/app/serializers/activitypub/collection_serializer.rb
+++ b/app/serializers/activitypub/collection_serializer.rb
@@ -7,7 +7,8 @@ class ActivityPub::CollectionSerializer < ActiveModel::Serializer
super
end
- attributes :id, :type
+ attribute :id, if: -> { object.id.present? }
+ attribute :type
attribute :total_items, if: -> { object.size.present? }
attribute :next, if: -> { object.next.present? }
attribute :prev, if: -> { object.prev.present? }
@@ -37,6 +38,6 @@ class ActivityPub::CollectionSerializer < ActiveModel::Serializer
end
def page?
- object.part_of.present?
+ object.part_of.present? || object.page.present?
end
end
diff --git a/app/serializers/activitypub/note_serializer.rb b/app/serializers/activitypub/note_serializer.rb
index c9d23e25f..b2c92fdc1 100644
--- a/app/serializers/activitypub/note_serializer.rb
+++ b/app/serializers/activitypub/note_serializer.rb
@@ -13,12 +13,20 @@ class ActivityPub::NoteSerializer < ActiveModel::Serializer
has_many :media_attachments, key: :attachment
has_many :virtual_tags, key: :tag
+ has_one :replies, serializer: ActivityPub::CollectionSerializer, if: :local?
+
+ has_many :poll_loaded_options, key: :one_of, if: :poll_and_not_multiple?
+ has_many :poll_loaded_options, key: :any_of, if: :poll_and_multiple?
+
+ attribute :end_time, if: :poll_and_expires?
+ attribute :closed, if: :poll_and_expired?
+
def id
ActivityPub::TagManager.instance.uri_for(object)
end
def type
- 'Note'
+ object.poll ? 'Question' : 'Note'
end
def summary
@@ -33,6 +41,22 @@ class ActivityPub::NoteSerializer < ActiveModel::Serializer
{ object.language => Formatter.instance.format(object) }
end
+ def replies
+ replies = object.self_replies(5).pluck(:id, :uri)
+ last_id = replies.last&.first
+
+ ActivityPub::CollectionPresenter.new(
+ type: :unordered,
+ id: ActivityPub::TagManager.instance.replies_uri_for(object),
+ first: ActivityPub::CollectionPresenter.new(
+ type: :unordered,
+ part_of: ActivityPub::TagManager.instance.replies_uri_for(object),
+ items: replies.map(&:second),
+ next: last_id ? ActivityPub::TagManager.instance.replies_uri_for(object, page: true, min_id: last_id) : nil
+ )
+ )
+ end
+
def language?
object.language.present?
end
@@ -97,6 +121,32 @@ class ActivityPub::NoteSerializer < ActiveModel::Serializer
object.account.local?
end
+ def poll_loaded_options
+ object.poll.loaded_options
+ end
+
+ def poll_and_multiple?
+ object.poll&.multiple?
+ end
+
+ def poll_and_not_multiple?
+ object.poll && !object.poll.multiple?
+ end
+
+ def closed
+ object.poll.expires_at.iso8601
+ end
+
+ alias end_time closed
+
+ def poll_and_expires?
+ object.poll&.expires_at&.present?
+ end
+
+ def poll_and_expired?
+ object.poll&.expired?
+ end
+
class MediaAttachmentSerializer < ActiveModel::Serializer
include RoutingHelper
@@ -164,4 +214,34 @@ class ActivityPub::NoteSerializer < ActiveModel::Serializer
class CustomEmojiSerializer < ActivityPub::EmojiSerializer
end
+
+ class OptionSerializer < ActiveModel::Serializer
+ class RepliesSerializer < ActiveModel::Serializer
+ attributes :type, :total_items
+
+ def type
+ 'Collection'
+ end
+
+ def total_items
+ object.votes_count
+ end
+ end
+
+ attributes :type, :name
+
+ has_one :replies, serializer: ActivityPub::NoteSerializer::OptionSerializer::RepliesSerializer
+
+ def type
+ 'Note'
+ end
+
+ def name
+ object.title
+ end
+
+ def replies
+ object
+ end
+ end
end
diff --git a/app/serializers/activitypub/vote_serializer.rb b/app/serializers/activitypub/vote_serializer.rb
new file mode 100644
index 000000000..655d04d22
--- /dev/null
+++ b/app/serializers/activitypub/vote_serializer.rb
@@ -0,0 +1,52 @@
+# frozen_string_literal: true
+
+class ActivityPub::VoteSerializer < ActiveModel::Serializer
+ class NoteSerializer < ActiveModel::Serializer
+ attributes :id, :type, :name, :attributed_to,
+ :in_reply_to, :to
+
+ def id
+ [ActivityPub::TagManager.instance.uri_for(object.account), '#votes/', object.id].join
+ end
+
+ def type
+ 'Note'
+ end
+
+ def name
+ object.poll.options[object.choice.to_i]
+ end
+
+ def attributed_to
+ ActivityPub::TagManager.instance.uri_for(object.account)
+ end
+
+ def in_reply_to
+ ActivityPub::TagManager.instance.uri_for(object.poll.status)
+ end
+
+ def to
+ ActivityPub::TagManager.instance.uri_for(object.poll.account)
+ end
+ end
+
+ attributes :id, :type, :actor, :to
+
+ has_one :object, serializer: ActivityPub::VoteSerializer::NoteSerializer
+
+ def id
+ [ActivityPub::TagManager.instance.uri_for(object.account), '#votes/', object.id, '/activity'].join
+ end
+
+ def type
+ 'Create'
+ end
+
+ def actor
+ ActivityPub::TagManager.instance.uri_for(object.account)
+ end
+
+ def to
+ ActivityPub::TagManager.instance.uri_for(object.poll.account)
+ end
+end
diff --git a/app/serializers/initial_state_serializer.rb b/app/serializers/initial_state_serializer.rb
index 57f1e0098..a7a3d770c 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/manifest_serializer.rb b/app/serializers/manifest_serializer.rb
index 859ef0d14..cc8b9a4d4 100644
--- a/app/serializers/manifest_serializer.rb
+++ b/app/serializers/manifest_serializer.rb
@@ -52,6 +52,14 @@ class ManifestSerializer < ActiveModel::Serializer
end
def share_target
- { url_template: 'share?title={title}&text={text}&url={url}' }
+ {
+ url_template: 'share?title={title}&text={text}&url={url}',
+ action: 'share',
+ params: {
+ title: 'title',
+ text: 'text',
+ url: 'url',
+ },
+ }
end
end
diff --git a/app/serializers/rest/application_serializer.rb b/app/serializers/rest/application_serializer.rb
index a9316cd4b..ab68219ad 100644
--- a/app/serializers/rest/application_serializer.rb
+++ b/app/serializers/rest/application_serializer.rb
@@ -2,7 +2,7 @@
class REST::ApplicationSerializer < ActiveModel::Serializer
attributes :id, :name, :website, :redirect_uri,
- :client_id, :client_secret
+ :client_id, :client_secret, :vapid_key
def id
object.id.to_s
@@ -19,4 +19,8 @@ class REST::ApplicationSerializer < ActiveModel::Serializer
def website
object.website.presence
end
+
+ def vapid_key
+ Rails.configuration.x.vapid_public_key
+ end
end
diff --git a/app/serializers/rest/instance_serializer.rb b/app/serializers/rest/instance_serializer.rb
index e3e64ea87..216808ffb 100644
--- a/app/serializers/rest/instance_serializer.rb
+++ b/app/serializers/rest/instance_serializer.rb
@@ -5,7 +5,7 @@ class REST::InstanceSerializer < ActiveModel::Serializer
attributes :uri, :title, :description, :email,
:version, :urls, :stats, :thumbnail,
- :languages
+ :languages, :registrations
has_one :contact_account, serializer: REST::AccountSerializer
@@ -51,6 +51,10 @@ class REST::InstanceSerializer < ActiveModel::Serializer
[I18n.default_locale]
end
+ def registrations
+ Setting.open_registrations && !Rails.configuration.x.single_user_mode
+ end
+
private
def instance_presenter
diff --git a/app/serializers/rest/poll_serializer.rb b/app/serializers/rest/poll_serializer.rb
new file mode 100644
index 000000000..b02e8ca93
--- /dev/null
+++ b/app/serializers/rest/poll_serializer.rb
@@ -0,0 +1,38 @@
+# frozen_string_literal: true
+
+class REST::PollSerializer < ActiveModel::Serializer
+ attributes :id, :expires_at, :expired,
+ :multiple, :votes_count
+
+ has_many :dynamic_options, key: :options
+
+ attribute :voted, if: :current_user?
+
+ def id
+ object.id.to_s
+ end
+
+ def dynamic_options
+ if !object.expired? && object.hide_totals?
+ object.unloaded_options
+ else
+ object.loaded_options
+ end
+ end
+
+ def expired
+ object.expired?
+ end
+
+ def voted
+ object.votes.where(account: current_user.account).exists?
+ end
+
+ def current_user?
+ !current_user.nil?
+ end
+
+ class OptionSerializer < ActiveModel::Serializer
+ attributes :title, :votes_count
+ end
+end
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/serializers/rest/status_serializer.rb b/app/serializers/rest/status_serializer.rb
index bfc2d78b4..30edf397b 100644
--- a/app/serializers/rest/status_serializer.rb
+++ b/app/serializers/rest/status_serializer.rb
@@ -12,7 +12,7 @@ class REST::StatusSerializer < ActiveModel::Serializer
attribute :pinned, if: :pinnable?
belongs_to :reblog, serializer: REST::StatusSerializer
- belongs_to :application
+ belongs_to :application, if: :show_application?
belongs_to :account, serializer: REST::AccountSerializer
has_many :media_attachments, serializer: REST::MediaAttachmentSerializer
@@ -21,6 +21,7 @@ class REST::StatusSerializer < ActiveModel::Serializer
has_many :emojis, serializer: REST::CustomEmojiSerializer
has_one :preview_card, key: :card, serializer: REST::PreviewCardSerializer
+ has_one :poll, serializer: REST::PollSerializer
def id
object.id.to_s
@@ -38,6 +39,10 @@ class REST::StatusSerializer < ActiveModel::Serializer
!current_user.nil?
end
+ def show_application?
+ object.account.user_shows_application? || (current_user? && current_user.account_id == object.account_id)
+ end
+
def visibility
# This visibility is masked behind "private"
# to avoid API changes because there are no
diff --git a/app/services/account_search_service.rb b/app/services/account_search_service.rb
index 7edbd9b47..7bdffbbd2 100644
--- a/app/services/account_search_service.rb
+++ b/app/services/account_search_service.rb
@@ -1,11 +1,12 @@
# frozen_string_literal: true
class AccountSearchService < BaseService
- attr_reader :query, :limit, :options, :account
+ attr_reader :query, :limit, :offset, :options, :account
- def call(query, limit, account = nil, options = {})
+ def call(query, account = nil, options = {})
@query = query.strip
- @limit = limit
+ @limit = options[:limit].to_i
+ @offset = options[:offset].to_i
@options = options
@account = account
@@ -83,11 +84,11 @@ class AccountSearchService < BaseService
end
def advanced_search_results
- Account.advanced_search_for(terms_for_query, account, limit, options[:following])
+ Account.advanced_search_for(terms_for_query, account, limit, options[:following], offset)
end
def simple_search_results
- Account.search_for(terms_for_query, limit)
+ Account.search_for(terms_for_query, limit, offset)
end
def terms_for_query
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/fetch_remote_poll_service.rb b/app/services/activitypub/fetch_remote_poll_service.rb
new file mode 100644
index 000000000..c87a2f84d
--- /dev/null
+++ b/app/services/activitypub/fetch_remote_poll_service.rb
@@ -0,0 +1,51 @@
+# frozen_string_literal: true
+
+class ActivityPub::FetchRemotePollService < BaseService
+ include JsonLdHelper
+
+ def call(poll, on_behalf_of = nil)
+ @json = fetch_resource(poll.status.uri, true, on_behalf_of)
+
+ return unless supported_context? && expected_type?
+
+ expires_at = begin
+ if @json['closed'].is_a?(String)
+ @json['closed']
+ elsif !@json['closed'].nil? && !@json['closed'].is_a?(FalseClass)
+ Time.now.utc
+ else
+ @json['endTime']
+ end
+ end
+
+ items = begin
+ if @json['anyOf'].is_a?(Array)
+ @json['anyOf']
+ else
+ @json['oneOf']
+ end
+ end
+
+ latest_options = items.map { |item| item['name'].presence || item['content'] }
+
+ # If for some reasons the options were changed, it invalidates all previous
+ # votes, so we need to remove them
+ poll.votes.delete_all if latest_options != poll.options
+
+ poll.update!(
+ expires_at: expires_at,
+ options: latest_options,
+ cached_tallies: items.map { |item| item.dig('replies', 'totalItems') || 0 }
+ )
+ end
+
+ private
+
+ def supported_context?
+ super(@json)
+ end
+
+ def expected_type?
+ equals_or_includes_any?(@json['type'], %w(Question))
+ end
+end
diff --git a/app/services/activitypub/fetch_replies_service.rb b/app/services/activitypub/fetch_replies_service.rb
new file mode 100644
index 000000000..95c486a43
--- /dev/null
+++ b/app/services/activitypub/fetch_replies_service.rb
@@ -0,0 +1,60 @@
+# frozen_string_literal: true
+
+class ActivityPub::FetchRepliesService < BaseService
+ include JsonLdHelper
+
+ def call(parent_status, collection_or_uri, allow_synchronous_requests = true)
+ @account = parent_status.account
+ @allow_synchronous_requests = allow_synchronous_requests
+
+ @items = collection_items(collection_or_uri)
+ return if @items.nil?
+
+ FetchReplyWorker.push_bulk(filtered_replies)
+
+ @items
+ end
+
+ private
+
+ def collection_items(collection_or_uri)
+ collection = fetch_collection(collection_or_uri)
+ return unless collection.is_a?(Hash)
+
+ collection = fetch_collection(collection['first']) if collection['first'].present?
+ return unless collection.is_a?(Hash)
+
+ case collection['type']
+ when 'Collection', 'CollectionPage'
+ collection['items']
+ when 'OrderedCollection', 'OrderedCollectionPage'
+ collection['orderedItems']
+ end
+ end
+
+ def fetch_collection(collection_or_uri)
+ return collection_or_uri if collection_or_uri.is_a?(Hash)
+ return unless @allow_synchronous_requests
+ return if invalid_origin?(collection_or_uri)
+ collection = fetch_resource_without_id_validation(collection_or_uri)
+ raise Mastodon::UnexpectedResponseError if collection.nil?
+ collection
+ end
+
+ def filtered_replies
+ # Only fetch replies to the same server as the original status to avoid
+ # amplification attacks.
+
+ # Also limit to 5 fetched replies to limit potential for DoS.
+ @items.map { |item| value_or_id(item) }.reject { |uri| invalid_origin?(uri) }.take(5)
+ end
+
+ def invalid_origin?(url)
+ return true if unsupported_uri_scheme?(url)
+
+ needle = Addressable::URI.parse(url).host
+ haystack = Addressable::URI.parse(@account.uri).host
+
+ !haystack.casecmp(needle).zero?
+ end
+end
diff --git a/app/services/activitypub/process_account_service.rb b/app/services/activitypub/process_account_service.rb
index 5c865dae2..5e3308428 100644
--- a/app/services/activitypub/process_account_service.rb
+++ b/app/services/activitypub/process_account_service.rb
@@ -33,8 +33,12 @@ 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?
+ clear_tombstones! if key_changed?
+
+ 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 +58,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 +79,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
@@ -206,6 +211,10 @@ class ActivityPub::ProcessAccountService < BaseService
!@old_public_key.nil? && @old_public_key != @account.public_key
end
+ def clear_tombstones!
+ Tombstone.where(account_id: @account.id).delete_all
+ end
+
def protocol_changed?
!@old_protocol.nil? && @old_protocol != @account.protocol
end
diff --git a/app/services/activitypub/process_collection_service.rb b/app/services/activitypub/process_collection_service.rb
index 79cdca297..881df478b 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)
@@ -44,6 +44,7 @@ class ActivityPub::ProcessCollectionService < BaseService
end
def verify_account!
+ @options[:relayed_through_account] = @account
@account = ActivityPub::LinkedDataSignature.new(@json).verify_account!
rescue JSON::LD::JsonLdError => e
Rails.logger.debug "Could not verify LD-Signature for #{value_or_id(@json['actor'])}: #{e.message}"
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 2e61904fc..e328b1739 100644
--- a/app/services/batched_remove_status_service.rb
+++ b/app/services/batched_remove_status_service.rb
@@ -2,6 +2,7 @@
class BatchedRemoveStatusService < BaseService
include StreamEntryRenderer
+ include Redisable
# Delete given statuses and reblogs of them
# Dispatch PuSH updates of the deleted statuses, but only local ones
@@ -34,6 +35,8 @@ class BatchedRemoveStatusService < BaseService
statuses.group_by(&:account_id).each_value do |account_statuses|
account = account_statuses.first.account
+ next unless account
+
unpush_from_home_timelines(account, account_statuses)
unpush_from_list_timelines(account, account_statuses)
@@ -109,10 +112,6 @@ class BatchedRemoveStatusService < BaseService
end
end
- def redis
- Redis.current
- end
-
def build_xml(stream_entry)
return @activity_xml[stream_entry.id] if @activity_xml.key?(stream_entry.id)
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_oembed_service.rb b/app/services/fetch_oembed_service.rb
index 9ddf9b13b..10176cfb9 100644
--- a/app/services/fetch_oembed_service.rb
+++ b/app/services/fetch_oembed_service.rb
@@ -43,7 +43,7 @@ class FetchOEmbedService
res.code != 200 ? nil : res.body_with_limit
end
- validate(parse_for_format(body)) unless body.nil?
+ validate(parse_for_format(body)) if body.present?
rescue Oj::ParseError, Ox::ParseError
nil
end
diff --git a/app/services/follow_service.rb b/app/services/follow_service.rb
index 0020bc9fe..92d8c864a 100644
--- a/app/services/follow_service.rb
+++ b/app/services/follow_service.rb
@@ -1,7 +1,7 @@
# frozen_string_literal: true
class FollowService < BaseService
- include StreamEntryRenderer
+ include Redisable
# Follow a remote user, notify remote user about the follow
# @param [Account] source_account From which to follow
@@ -12,7 +12,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
@@ -69,10 +69,6 @@ class FollowService < BaseService
follow
end
- def redis
- Redis.current
- end
-
def build_follow_request_xml(follow_request)
OStatus::AtomSerializer.render(OStatus::AtomSerializer.new.follow_request_salmon(follow_request))
end
@@ -82,10 +78,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/import_service.rb b/app/services/import_service.rb
new file mode 100644
index 000000000..3f558626e
--- /dev/null
+++ b/app/services/import_service.rb
@@ -0,0 +1,90 @@
+# frozen_string_literal: true
+
+require 'csv'
+
+class ImportService < BaseService
+ ROWS_PROCESSING_LIMIT = 20_000
+
+ def call(import)
+ @import = import
+ @account = @import.account
+ @data = CSV.new(import_data).reject(&:blank?)
+
+ case @import.type
+ when 'following'
+ import_follows!
+ when 'blocking'
+ import_blocks!
+ when 'muting'
+ import_mutes!
+ when 'domain_blocking'
+ import_domain_blocks!
+ end
+ end
+
+ private
+
+ def import_follows!
+ import_relationships!('follow', 'unfollow', @account.following, follow_limit)
+ end
+
+ def import_blocks!
+ import_relationships!('block', 'unblock', @account.blocking, ROWS_PROCESSING_LIMIT)
+ end
+
+ def import_mutes!
+ import_relationships!('mute', 'unmute', @account.muting, ROWS_PROCESSING_LIMIT)
+ end
+
+ def import_domain_blocks!
+ items = @data.take(ROWS_PROCESSING_LIMIT).map { |row| row.first.strip }
+
+ if @import.overwrite?
+ presence_hash = items.each_with_object({}) { |id, mapping| mapping[id] = true }
+
+ @account.domain_blocks.find_each do |domain_block|
+ if presence_hash[domain_block.domain]
+ items.delete(domain_block.domain)
+ else
+ @account.unblock_domain!(domain_block.domain)
+ end
+ end
+ end
+
+ items.each do |domain|
+ @account.block_domain!(domain)
+ end
+
+ AfterAccountDomainBlockWorker.push_bulk(items) do |domain|
+ [@account.id, domain]
+ end
+ end
+
+ def import_relationships!(action, undo_action, overwrite_scope, limit)
+ items = @data.take(limit).map { |row| row.first.strip }
+
+ if @import.overwrite?
+ presence_hash = items.each_with_object({}) { |id, mapping| mapping[id] = true }
+
+ overwrite_scope.find_each do |target_account|
+ if presence_hash[target_account.acct]
+ items.delete(target_account.acct)
+ else
+ Import::RelationshipWorker.perform_async(@account.id, target_account.acct, undo_action)
+ end
+ end
+ end
+
+ Import::RelationshipWorker.push_bulk(items) do |acct|
+ [@account.id, acct, action]
+ end
+ end
+
+ def import_data
+ Paperclip.io_adapters.for(@import.data).read
+ end
+
+ def follow_limit
+ FollowLimitValidator.limit_for_account(@account)
+ end
+end
diff --git a/app/services/post_status_service.rb b/app/services/post_status_service.rb
index 300eae547..c045a553e 100644
--- a/app/services/post_status_service.rb
+++ b/app/services/post_status_service.rb
@@ -1,69 +1,111 @@
# frozen_string_literal: true
class PostStatusService < BaseService
+ include Redisable
+
+ 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 [Hash] :poll Optional poll to attach
# @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!
+ validate_poll!
+ 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])
- 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)
- 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?
-
- 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 validate_media!(media_ids)
- return if media_ids.blank? || !media_ids.is_a?(Enumerable)
+ 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?
+ rescue ArgumentError
+ raise ActiveRecord::RecordInvalid
+ end
- raise Mastodon::ValidationError, I18n.t('media_attachments.validations.too_many') if media_ids.size > 4
+ def process_status!
+ # The following transaction block is needed to wrap the UPDATEs to
+ # the media attachments when the status is created
- media = MediaAttachment.where(status_id: nil).where(id: media_ids.take(4).map(&:to_i))
+ ApplicationRecord.transaction do
+ @status = @account.statuses.create!(status_attributes)
+ end
- raise Mastodon::ValidationError, I18n.t('media_attachments.validations.images_and_video') if media.size > 1 && media.find(&:video?)
+ process_hashtags_service.call(@status)
+ process_mentions_service.call(@status)
+ end
- media
+ def schedule_status!
+ status_for_validation = @account.statuses.build(status_attributes)
+ if status_for_validation.valid?
+ status_for_validation.destroy
+
+ # 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 postprocess_status!
+ LinkCrawlWorker.perform_async(@status.id) unless @status.spoiler_text?
+ DistributionWorker.perform_async(@status.id)
+ Pubsubhubbub::DistributionWorker.perform_async(@status.stream_entry.id)
+ ActivityPub::DistributionWorker.perform_async(@status.id)
+ end
+
+ def validate_media!
+ return if @options[:media_ids].blank? || !@options[:media_ids].is_a?(Enumerable)
+
+ raise Mastodon::ValidationError, I18n.t('media_attachments.validations.too_many') if @options[:media_ids].size > 4 || @options[:poll].present?
+
+ @media = @account.media_attachments.where(status_id: nil).where(id: @options[:media_ids].take(4).map(&:to_i))
+
+ raise Mastodon::ValidationError, I18n.t('media_attachments.validations.images_and_video') if @media.size > 1 && @media.find(&:video?)
+ end
+
+ def validate_poll!
+ return if @options[:poll].blank?
+
+ @poll = @account.polls.new(@options[:poll])
end
def language_from_option(str)
@@ -78,14 +120,69 @@ class PostStatusService < BaseService
ProcessHashtagsService.new
end
- def redis
- Redis.current
+ def scheduled?
+ @scheduled_at.present?
end
- def bump_potential_friendship(account, status)
- return if !status.reply? || account.id == status.in_reply_to_account_id
+ 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,
+ owned_poll: @poll,
+ 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],
+ }
+ 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/precompute_feed_service.rb b/app/services/precompute_feed_service.rb
index 4f771ff72..076dedaca 100644
--- a/app/services/precompute_feed_service.rb
+++ b/app/services/precompute_feed_service.rb
@@ -3,6 +3,7 @@
class PrecomputeFeedService < BaseService
def call(account)
FeedManager.instance.populate_feed(account)
+ ensure
Redis.current.del("account:#{account.id}:regeneration")
end
end
diff --git a/app/services/process_hashtags_service.rb b/app/services/process_hashtags_service.rb
index cf7471c98..d5ec076a8 100644
--- a/app/services/process_hashtags_service.rb
+++ b/app/services/process_hashtags_service.rb
@@ -2,12 +2,22 @@
class ProcessHashtagsService < BaseService
def call(status, tags = [])
- tags = Extractor.extract_hashtags(status.text) if status.local?
+ tags = Extractor.extract_hashtags(status.text) if status.local?
+ records = []
tags.map { |str| str.mb_chars.downcase }.uniq(&:to_s).each do |name|
tag = Tag.where(name: name).first_or_create(name: name)
+
status.tags << tag
+ records << tag
+
TrendingTags.record_use!(tag, status.account, status.created_at) if status.public_visibility?
end
+
+ return unless status.public_visibility? || status.unlisted_visibility?
+
+ status.account.featured_tags.where(tag_id: records.map(&:id)).each do |featured_tag|
+ featured_tag.increment(status.created_at)
+ 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/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/remove_status_service.rb b/app/services/remove_status_service.rb
index 11d28e783..2012f15fc 100644
--- a/app/services/remove_status_service.rb
+++ b/app/services/remove_status_service.rb
@@ -2,6 +2,7 @@
class RemoveStatusService < BaseService
include StreamEntryRenderer
+ include Redisable
def call(status, **options)
@payload = Oj.dump(event: :delete, payload: status.id.to_s)
@@ -55,7 +56,7 @@ class RemoveStatusService < BaseService
def remove_from_affected
@mentions.map(&:account).select(&:local?).each do |account|
- Redis.current.publish("timeline:#{account.id}", @payload)
+ redis.publish("timeline:#{account.id}", @payload)
end
end
@@ -130,29 +131,29 @@ class RemoveStatusService < BaseService
end
def remove_from_hashtags
+ @account.featured_tags.where(tag_id: @status.tags.pluck(:id)).each do |featured_tag|
+ featured_tag.decrement(@status.id)
+ end
+
return unless @status.public_visibility?
@tags.each do |hashtag|
- Redis.current.publish("timeline:hashtag:#{hashtag}", @payload)
- Redis.current.publish("timeline:hashtag:#{hashtag}:local", @payload) if @status.local?
+ redis.publish("timeline:hashtag:#{hashtag}", @payload)
+ redis.publish("timeline:hashtag:#{hashtag}:local", @payload) if @status.local?
end
end
def remove_from_public
return unless @status.public_visibility?
- Redis.current.publish('timeline:public', @payload)
- Redis.current.publish('timeline:public:local', @payload) if @status.local?
+ redis.publish('timeline:public', @payload)
+ redis.publish('timeline:public:local', @payload) if @status.local?
end
def remove_from_media
return unless @status.public_visibility?
- Redis.current.publish('timeline:public:media', @payload)
- Redis.current.publish('timeline:public:local:media', @payload) if @status.local?
- end
-
- def redis
- Redis.current
+ redis.publish('timeline:public:media', @payload)
+ redis.publish('timeline:public:local:media', @payload) if @status.local?
end
end
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/resolve_url_service.rb b/app/services/resolve_url_service.rb
index ed0c56923..b98759bf6 100644
--- a/app/services/resolve_url_service.rb
+++ b/app/services/resolve_url_service.rb
@@ -20,7 +20,7 @@ class ResolveURLService < BaseService
def process_url
if equals_or_includes_any?(type, %w(Application Group Organization Person Service))
FetchRemoteAccountService.new.call(atom_url, body, protocol)
- elsif equals_or_includes_any?(type, %w(Note Article Image Video Page))
+ elsif equals_or_includes_any?(type, %w(Note Article Image Video Page Question))
FetchRemoteStatusService.new.call(atom_url, body, protocol)
end
end
diff --git a/app/services/search_service.rb b/app/services/search_service.rb
index cc1fcb52f..e0da61dac 100644
--- a/app/services/search_service.rb
+++ b/app/services/search_service.rb
@@ -1,18 +1,18 @@
# frozen_string_literal: true
class SearchService < BaseService
- attr_accessor :query, :account, :limit, :resolve
-
- def call(query, limit, resolve = false, account = nil)
+ def call(query, account, limit, options = {})
@query = query.strip
@account = account
- @limit = limit
- @resolve = resolve
+ @options = options
+ @limit = limit.to_i
+ @offset = options[:type].blank? ? 0 : options[:offset].to_i
+ @resolve = options[:resolve] || false
default_results.tap do |results|
if url_query?
results.merge!(url_resource_results) unless url_resource.nil?
- elsif query.present?
+ elsif @query.present?
results[:accounts] = perform_accounts_search! if account_searchable?
results[:statuses] = perform_statuses_search! if full_text_searchable?
results[:hashtags] = perform_hashtags_search! if hashtag_searchable?
@@ -23,21 +23,46 @@ class SearchService < BaseService
private
def perform_accounts_search!
- AccountSearchService.new.call(query, limit, account, resolve: resolve)
+ AccountSearchService.new.call(
+ @query,
+ @account,
+ limit: @limit,
+ resolve: @resolve,
+ offset: @offset
+ )
end
def perform_statuses_search!
- statuses = StatusesIndex.filter(term: { searchable_by: account.id })
- .query(multi_match: { type: 'most_fields', query: query, operator: 'and', fields: %w(text text.stemmed) })
- .limit(limit)
- .objects
- .compact
+ definition = StatusesIndex.filter(term: { searchable_by: @account.id })
+ .query(multi_match: { type: 'most_fields', query: @query, operator: 'and', fields: %w(text text.stemmed) })
- statuses.reject { |status| StatusFilter.new(status, account).filtered? }
+ if @options[:account_id].present?
+ definition = definition.filter(term: { account_id: @options[:account_id] })
+ end
+
+ if @options[:min_id].present? || @options[:max_id].present?
+ range = {}
+ range[:gt] = @options[:min_id].to_i if @options[:min_id].present?
+ range[:lt] = @options[:max_id].to_i if @options[:max_id].present?
+ definition = definition.filter(range: { id: range })
+ end
+
+ results = definition.limit(@limit).offset(@offset).objects.compact
+ account_ids = results.map(&:account_id)
+ account_domains = results.map(&:account_domain)
+ preloaded_relations = relations_map_for_account(@account, account_ids, account_domains)
+
+ results.reject { |status| StatusFilter.new(status, @account, preloaded_relations).filtered? }
+ rescue Faraday::ConnectionFailed
+ []
end
def perform_hashtags_search!
- Tag.search_for(query.gsub(/\A#/, ''), limit)
+ Tag.search_for(
+ @query.gsub(/\A#/, ''),
+ @limit,
+ @offset
+ )
end
def default_results
@@ -45,7 +70,7 @@ class SearchService < BaseService
end
def url_query?
- query =~ /\Ahttps?:\/\//
+ @options[:type].blank? && @query =~ /\Ahttps?:\/\//
end
def url_resource_results
@@ -53,7 +78,7 @@ class SearchService < BaseService
end
def url_resource
- @_url_resource ||= ResolveURLService.new.call(query, on_behalf_of: @account)
+ @_url_resource ||= ResolveURLService.new.call(@query, on_behalf_of: @account)
end
def url_resource_symbol
@@ -62,14 +87,37 @@ class SearchService < BaseService
def full_text_searchable?
return false unless Chewy.enabled?
- !account.nil? && !((query.start_with?('#') || query.include?('@')) && !query.include?(' '))
+
+ statuses_search? && !@account.nil? && !((@query.start_with?('#') || @query.include?('@')) && !@query.include?(' '))
end
def account_searchable?
- !(query.include?('@') && query.include?(' '))
+ account_search? && !(@query.include?('@') && @query.include?(' '))
end
def hashtag_searchable?
- !query.include?('@')
+ hashtag_search? && !@query.include?('@')
+ end
+
+ def account_search?
+ @options[:type].blank? || @options[:type] == 'accounts'
+ end
+
+ def hashtag_search?
+ @options[:type].blank? || @options[:type] == 'hashtags'
+ end
+
+ def statuses_search?
+ @options[:type].blank? || @options[:type] == 'statuses'
+ end
+
+ def relations_map_for_account(account, account_ids, domains)
+ {
+ blocking: Account.blocking_map(account_ids, account.id),
+ blocked_by: Account.blocked_by_map(account_ids, account.id),
+ muting: Account.muting_map(account_ids, account.id),
+ following: Account.following_map(account_ids, account.id),
+ domain_blocking_by_domain: Account.domain_blocking_map_by_domain(domains, account.id),
+ }
end
end
diff --git a/app/services/suspend_account_service.rb b/app/services/suspend_account_service.rb
index 6ab6b2901..fc3bc03a5 100644
--- a/app/services/suspend_account_service.rb
+++ b/app/services/suspend_account_service.rb
@@ -20,6 +20,7 @@ class SuspendAccountService < BaseService
owned_lists
passive_relationships
report_notes
+ scheduled_statuses
status_pins
stream_entries
subscriptions
@@ -101,6 +102,10 @@ class SuspendAccountService < BaseService
ActivityPub::DeliveryWorker.push_bulk(delivery_inboxes) do |inbox_url|
[delete_actor_json, @account.id, inbox_url]
end
+
+ ActivityPub::LowPriorityDeliveryWorker.push_bulk(low_priority_delivery_inboxes) do |inbox_url|
+ [delete_actor_json, @account.id, inbox_url]
+ end
end
def delete_actor_json
@@ -116,7 +121,11 @@ class SuspendAccountService < BaseService
end
def delivery_inboxes
- Account.inboxes + Relay.enabled.pluck(:inbox_url)
+ @delivery_inboxes ||= @account.followers.inboxes + Relay.enabled.pluck(:inbox_url)
+ end
+
+ def low_priority_delivery_inboxes
+ Account.inboxes - delivery_inboxes
end
def associations_for_destruction
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..95da2a667 100644
--- a/app/services/unfollow_service.rb
+++ b/app/services/unfollow_service.rb
@@ -20,6 +20,7 @@ class UnfollowService < BaseService
follow.destroy!
create_notification(follow) unless @target_account.local?
+ create_reject_notification(follow) if @target_account.local? && !@source_account.local?
UnmergeWorker.perform_async(@target_account.id, @source_account.id)
follow
end
@@ -42,12 +43,26 @@ class UnfollowService < BaseService
end
end
+ def create_reject_notification(follow)
+ # Rejecting an already-existing follow request
+ return unless follow.account.activitypub?
+ ActivityPub::DeliveryWorker.perform_async(build_reject_json(follow), follow.target_account_id, follow.account.inbox_url)
+ 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_reject_json(follow)
+ ActiveModelSerializers::SerializableResource.new(
+ follow,
+ serializer: ActivityPub::RejectFollowSerializer,
+ adapter: ActivityPub::Adapter
+ ).to_json
end
def build_xml(follow)
diff --git a/app/services/verify_link_service.rb b/app/services/verify_link_service.rb
index 9f56249c7..878a2188d 100644
--- a/app/services/verify_link_service.rb
+++ b/app/services/verify_link_service.rb
@@ -10,8 +10,7 @@ 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
+ rescue OpenSSL::SSL::SSLError, HTTP::Error, Addressable::URI::InvalidURIError, Mastodon::HostValidationError, Mastodon::LengthValidationError => e
Rails.logger.debug "Error fetching link #{@url}: #{e}"
nil
end
diff --git a/app/services/vote_service.rb b/app/services/vote_service.rb
new file mode 100644
index 000000000..8bab2810e
--- /dev/null
+++ b/app/services/vote_service.rb
@@ -0,0 +1,40 @@
+# frozen_string_literal: true
+
+class VoteService < BaseService
+ include Authorization
+
+ def call(account, poll, choices)
+ authorize_with account, poll, :vote?
+
+ @account = account
+ @poll = poll
+ @choices = choices
+ @votes = []
+
+ ApplicationRecord.transaction do
+ @choices.each do |choice|
+ @votes << @poll.votes.create!(account: @account, choice: choice)
+ end
+ end
+
+ return if @poll.account.local?
+
+ @votes.each do |vote|
+ ActivityPub::DeliveryWorker.perform_async(
+ build_json(vote),
+ @account.id,
+ @poll.account.inbox_url
+ )
+ end
+ end
+
+ private
+
+ def build_json(vote)
+ ActiveModelSerializers::SerializableResource.new(
+ vote,
+ serializer: ActivityPub::VoteSerializer,
+ adapter: ActivityPub::Adapter
+ ).to_json
+ end
+end
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 5b4c684b2..96fbedcfc 100644
--- a/app/validators/email_mx_validator.rb
+++ b/app/validators/email_mx_validator.rb
@@ -24,6 +24,7 @@ class EmailMxValidator < ActiveModel::Validator
([domain] + hostnames).uniq.each do |hostname|
ips.concat(dns.getresources(hostname, Resolv::DNS::Resource::IN::A).to_a.map { |e| e.address.to_s })
+ ips.concat(dns.getresources(hostname, Resolv::DNS::Resource::IN::AAAA).to_a.map { |e| e.address.to_s })
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/poll_validator.rb b/app/validators/poll_validator.rb
new file mode 100644
index 000000000..a1c4f6851
--- /dev/null
+++ b/app/validators/poll_validator.rb
@@ -0,0 +1,19 @@
+# frozen_string_literal: true
+
+class PollValidator < ActiveModel::Validator
+ MAX_OPTIONS = 4
+ MAX_OPTION_CHARS = 25
+ MAX_EXPIRATION = 7.days.freeze
+ MIN_EXPIRATION = 1.day.freeze
+
+ def validate(poll)
+ current_time = Time.now.utc
+
+ poll.errors.add(:options, I18n.t('polls.errors.too_few_options')) unless poll.options.size > 1
+ poll.errors.add(:options, I18n.t('polls.errors.too_many_options', max: MAX_OPTIONS)) if poll.options.size > MAX_OPTIONS
+ poll.errors.add(:options, I18n.t('polls.errors.over_character_limit', max: MAX_OPTION_CHARS)) if poll.options.any? { |option| option.mb_chars.grapheme_length > MAX_OPTION_CHARS }
+ poll.errors.add(:options, I18n.t('polls.errors.duplicate_options')) unless poll.options.uniq.size == poll.options.size
+ poll.errors.add(:expires_at, I18n.t('polls.errors.duration_too_long')) if poll.expires_at.nil? || poll.expires_at - current_time >= MAX_EXPIRATION
+ poll.errors.add(:expires_at, I18n.t('polls.errors.duration_too_short')) if poll.expires_at.present? && poll.expires_at - current_time <= MIN_EXPIRATION
+ 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/validators/vote_validator.rb b/app/validators/vote_validator.rb
new file mode 100644
index 000000000..2e1818bdb
--- /dev/null
+++ b/app/validators/vote_validator.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+class VoteValidator < ActiveModel::Validator
+ def validate(vote)
+ vote.errors.add(:base, I18n.t('polls.errors.expired')) if vote.poll.expired?
+
+ if vote.poll.multiple? && vote.poll.votes.where(account: vote.account, choice: vote.choice).exists?
+ vote.errors.add(:base, I18n.t('polls.errors.already_voted'))
+ elsif !vote.poll.multiple? && vote.poll.votes.where(account: vote.account).exists?
+ vote.errors.add(:base, I18n.t('polls.errors.already_voted'))
+ end
+ end
+end
diff --git a/app/views/accounts/show.html.haml b/app/views/accounts/show.html.haml
index 0ee9dd7de..0da69728f 100644
--- a/app/views/accounts/show.html.haml
+++ b/app/views/accounts/show.html.haml
@@ -63,4 +63,17 @@
- @endorsed_accounts.each do |account|
= account_link_to account
+ - @account.featured_tags.order(statuses_count: :desc).each do |featured_tag|
+ .directory__tag{ class: params[:tag] == featured_tag.name ? 'active' : nil }
+ = link_to short_account_tag_path(@account, featured_tag.tag) do
+ %h4
+ = fa_icon 'hashtag'
+ = featured_tag.name
+ %small
+ - if featured_tag.last_status_at.nil?
+ = t('accounts.nothing_here')
+ - else
+ %time{ datetime: featured_tag.last_status_at.iso8601, title: l(featured_tag.last_status_at) }= l featured_tag.last_status_at
+ .trends__item__current= number_to_human featured_tag.statuses_count, strip_insignificant_zeros: true
+
= render 'application/sidebar'
diff --git a/app/views/admin/accounts/index.html.haml b/app/views/admin/accounts/index.html.haml
index 91fddadf8..345f74f90 100644
--- a/app/views/admin/accounts/index.html.haml
+++ b/app/views/admin/accounts/index.html.haml
@@ -26,8 +26,9 @@
= hidden_field_tag key, params[key]
- %i(username by_domain display_name email ip).each do |key|
- .input.string.optional
- = text_field_tag key, params[key], class: 'string optional', placeholder: I18n.t("admin.accounts.#{key}")
+ - unless key == :by_domain && params[:remote].blank?
+ .input.string.optional
+ = text_field_tag key, params[key], class: 'string optional', placeholder: I18n.t("admin.accounts.#{key}")
.actions
%button= t('admin.accounts.search')
diff --git a/app/views/admin/accounts/show.html.haml b/app/views/admin/accounts/show.html.haml
index 226aef732..7ac73bd07 100644
--- a/app/views/admin/accounts/show.html.haml
+++ b/app/views/admin/accounts/show.html.haml
@@ -1,200 +1,191 @@
- 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')
- %td
- = 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)
- %tr
- %th= t('admin.accounts.header')
- %td
- = link_to @account.header.url(:original) do
- = image_tag @account.header.url(:original), alt: '', width: 128, height: 40, class: 'header'
- - if @account.local? && @account.header?
- = 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)
-
- - 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'), new_admin_account_action_path(@account.id, type: 'disable') 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
- \-
- - 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'), 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.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)
+
+ - unless @account.local?
+ - if DomainBlock.where(domain: @account.domain).exists?
+ = link_to t('admin.domain_blocks.undo'), admin_instance_path(@account.domain), class: 'button'
+ - else
+ = link_to t('admin.domain_blocks.add_new'), new_admin_domain_block_path(_domain: @account.domain), class: 'button button--destructive'
-- 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 @warnings
+ = simple_form_for @account_moderation_note, url: admin_account_moderation_notes_path do |f|
+ = render 'shared/error_messages', object: @account_moderation_note
-%hr.spacer/
+ = f.input :content, placeholder: t('admin.reports.notes.placeholder'), rows: 6
+ = f.hidden_field :target_account_id
-= 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
-
- = 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/change_emails/show.html.haml b/app/views/admin/change_emails/show.html.haml
index 6febef9b1..6ff0d785e 100644
--- a/app/views/admin/change_emails/show.html.haml
+++ b/app/views/admin/change_emails/show.html.haml
@@ -3,7 +3,7 @@
= simple_form_for @user, url: admin_account_change_email_path(@account.id) do |f|
.fields-group
- = f.input :email, wrapper: :with_label, disabled: true, label: t('admin.accounts.change_email.current_email')
+ = f.input :email, wrapper: :with_label, hint: false, disabled: true, label: t('admin.accounts.change_email.current_email')
.fields-group
= f.input :unconfirmed_email, wrapper: :with_label, label: t('admin.accounts.change_email.new_email')
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..235927140 100644
--- a/app/views/admin/instances/index.html.haml
+++ b/app/views/admin/instances/index.html.haml
@@ -1,23 +1,53 @@
- content_for :page_title do
= t('admin.instances.title')
+.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'
+
+ %div{ style: 'flex: 1 1 auto; text-align: right' }
+ = link_to t('admin.domain_blocks.add_new'), new_admin_domain_block_path, class: 'button'
+
= form_tag admin_instances_url, method: 'GET', class: 'simple_form' do
.fields-group
- - %i(domain_name).each do |key|
+ - Admin::FilterHelper::INSTANCES_FILTERS.each do |key|
+ - if params[key].present?
+ = hidden_field_tag key, params[key]
+
+ - %i(by_domain).each do |key|
.input.string.optional
= text_field_tag key, params[key], class: 'string optional', placeholder: I18n.t("admin.instances.#{key}")
.actions
- %button= t('admin.instances.search')
- = link_to t('admin.instances.reset'), admin_instances_path, class: 'button negative'
+ %button= t('admin.accounts.search')
+ = link_to t('admin.accounts.reset'), admin_instances_path, class: 'button negative'
-.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/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/directories/index.html.haml b/app/views/directories/index.html.haml
index 88706def7..a8aa68cc4 100644
--- a/app/views/directories/index.html.haml
+++ b/app/views/directories/index.html.haml
@@ -41,8 +41,22 @@
= paginate @accounts
.column-1
- - if @tags.empty?
- .nothing-here.nothing-here--flexible
+ - if user_signed_in?
+ .box-widget.notice-widget
+ - if current_account.discoverable?
+ - if current_account.followers_count < Account::MIN_FOLLOWERS_DISCOVERY
+ %p= t('directories.enabled_but_waiting', min_followers: Account::MIN_FOLLOWERS_DISCOVERY)
+ - else
+ %p= t('directories.enabled')
+ - else
+ %p= t('directories.how_to_enable')
+
+ = link_to settings_profile_path do
+ = t('settings.edit_profile')
+ = fa_icon 'chevron-right fw'
+
+ - if @tags.empty? && !user_signed_in?
+ .nothing-here
- else
- @tags.each do |tag|
.directory__tag{ class: tag.id == @tag&.id ? 'active' : nil }
diff --git a/app/views/layouts/error.html.haml b/app/views/layouts/error.html.haml
index 37359b89b..25c85abf9 100644
--- a/app/views/layouts/error.html.haml
+++ b/app/views/layouts/error.html.haml
@@ -7,8 +7,11 @@
%meta{ content: 'width=device-width,initial-scale=1', name: 'viewport' }/
= stylesheet_pack_tag 'common', media: 'all'
= stylesheet_pack_tag Setting.default_settings['theme'], media: 'all'
+ = javascript_pack_tag 'common', integrity: true, crossorigin: 'anonymous'
+ = javascript_pack_tag 'error', integrity: true, crossorigin: 'anonymous'
%body.error
.dialog
- %img{ alt: Setting.default_settings['site_title'], src: '/oops.gif' }/
- %div
+ .dialog__illustration
+ %img{ alt: Setting.default_settings['site_title'], src: '/oops.png' }/
+ .dialog__message
%h1= yield :content
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/featured_tags/index.html.haml b/app/views/settings/featured_tags/index.html.haml
new file mode 100644
index 000000000..5f69517f3
--- /dev/null
+++ b/app/views/settings/featured_tags/index.html.haml
@@ -0,0 +1,27 @@
+- content_for :page_title do
+ = t('settings.featured_tags')
+
+= simple_form_for @featured_tag, url: settings_featured_tags_path do |f|
+ = render 'shared/error_messages', object: @featured_tag
+
+ .fields-group
+ = f.input :name, wrapper: :with_block_label, hint: safe_join([t('simple_form.hints.featured_tag.name'), safe_join(@most_used_tags.map { |tag| link_to("##{tag.name}", settings_featured_tags_path(featured_tag: { name: tag.name }), method: :post) }, ', ')], ' ')
+
+ .actions
+ = f.button :button, t('featured_tags.add_new'), type: :submit
+
+%hr.spacer/
+
+- @featured_tags.each do |featured_tag|
+ .directory__tag{ class: params[:tag] == featured_tag.name ? 'active' : nil }
+ %div
+ %h4
+ = fa_icon 'hashtag'
+ = featured_tag.name
+ %small
+ - if featured_tag.last_status_at.nil?
+ = t('accounts.nothing_here')
+ - else
+ %time{ datetime: featured_tag.last_status_at.iso8601, title: l(featured_tag.last_status_at) }= l featured_tag.last_status_at
+ = table_link_to 'trash', t('filters.index.delete'), settings_featured_tag_path(featured_tag), method: :delete, data: { confirm: t('admin.accounts.are_you_sure') }
+ .trends__item__current= number_to_human featured_tag.statuses_count, strip_insignificant_zeros: true
diff --git a/app/views/settings/imports/show.html.haml b/app/views/settings/imports/show.html.haml
index 4512fc714..7bb4beb01 100644
--- a/app/views/settings/imports/show.html.haml
+++ b/app/views/settings/imports/show.html.haml
@@ -5,8 +5,11 @@
.field-group
= f.input :type, collection: Import.types.keys, wrapper: :with_block_label, include_blank: false, label_method: lambda { |type| I18n.t("imports.types.#{type}") }, hint: t('imports.preface')
- .field-group
- = f.input :data, wrapper: :with_block_label, hint: t('simple_form.hints.imports.data')
+ .fields-row
+ .fields-group.fields-row__column.fields-row__column-6
+ = f.input :data, wrapper: :with_block_label, hint: t('simple_form.hints.imports.data')
+ .fields-group.fields-row__column.fields-row__column-6
+ = f.input :mode, as: :radio_buttons, collection: Import::MODES, label_method: lambda { |mode| safe_join([I18n.t("imports.modes.#{mode}"), content_tag(:span, I18n.t("imports.modes.#{mode}_long"), class: 'hint')]) }, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li'
.actions
= f.button :button, t('imports.upload'), type: :submit
diff --git a/app/views/settings/preferences/show.html.haml b/app/views/settings/preferences/show.html.haml
index a2c61c9a6..3cb91631e 100644
--- a/app/views/settings/preferences/show.html.haml
+++ b/app/views/settings/preferences/show.html.haml
@@ -34,6 +34,9 @@
.fields-group
= f.input :setting_hide_network, as: :boolean, wrapper: :with_label
+ .fields-group
+ = f.input :setting_show_application, as: :boolean, wrapper: :with_label
+
%hr#settings_web/
.fields-row
diff --git a/app/views/stream_entries/_attachment_list.html.haml b/app/views/stream_entries/_attachment_list.html.haml
new file mode 100644
index 000000000..d9706f47b
--- /dev/null
+++ b/app/views/stream_entries/_attachment_list.html.haml
@@ -0,0 +1,8 @@
+.attachment-list
+ .attachment-list__icon
+ = fa_icon 'link'
+ %ul.attachment-list__list
+ - attachments.each do |media|
+ %li
+ - url = media.remote_url.presence || media.file.url
+ = link_to File.basename(url), url, title: media.description
diff --git a/app/views/stream_entries/_detailed_status.html.haml b/app/views/stream_entries/_detailed_status.html.haml
index 6e6d0eda8..b9327a546 100644
--- a/app/views/stream_entries/_detailed_status.html.haml
+++ b/app/views/stream_entries/_detailed_status.html.haml
@@ -22,14 +22,18 @@
%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)
- - if !status.media_attachments.empty?
+ - if status.poll
+ = react_component :poll, disabled: true, poll: ActiveModelSerializers::SerializableResource.new(status.poll, serializer: REST::PollSerializer, scope: current_user, scope_name: :current_user).as_json
+ - elsif !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: 670, height: 380, detailed: true, inline: true, alt: video.description
+ = 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 do
+ = render partial: 'stream_entries/attachment_list', locals: { attachments: status.media_attachments }
- 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
+ = 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 } do
+ = render partial: 'stream_entries/attachment_list', locals: { attachments: status.media_attachments }
+ - 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 }
@@ -37,14 +41,17 @@
= link_to TagManager.instance.url_for(status), class: 'detailed-status__datetime u-url u-uid', target: stream_link_target, rel: 'noopener' do
%time.formatted{ datetime: status.created_at.iso8601, title: l(status.created_at) }= l(status.created_at)
·
- - if status.application
+ - if status.application && @account.user&.setting_show_application
- if status.application.website.blank?
%strong.detailed-status__application= status.application.name
- 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
- = fa_icon('reply')
+ = link_to remote_interaction_path(status, type: :reply), class: 'modal-button detailed-status__link' do
+ - if status.in_reply_to_id.nil?
+ = fa_icon('reply')
+ - else
+ = fa_icon('reply-all')
%span.detailed-status__reblogs>= number_to_human status.replies_count, strip_insignificant_zeros: true
= " "
·
@@ -55,12 +62,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 1a1dc37eb..a000c02f4 100644
--- a/app/views/stream_entries/_simple_status.html.haml
+++ b/app/views/stream_entries/_simple_status.html.haml
@@ -26,24 +26,33 @@
%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.poll
+ = react_component :poll, disabled: true, poll: ActiveModelSerializers::SerializableResource.new(status.poll, serializer: REST::PollSerializer, scope: current_user, scope_name: :current_user).as_json
+ - elsif !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
+ = 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 do
+ = render partial: 'stream_entries/attachment_list', locals: { attachments: status.media_attachments }
- 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 }
+ = 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 } do
+ = render partial: 'stream_entries/attachment_list', locals: { attachments: status.media_attachments }
+ - 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
- = fa_icon 'reply fw'
+ = 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
+ - if status.in_reply_to_id.nil?
+ = fa_icon 'reply fw'
+ - else
+ = fa_icon 'reply-all fw'
.status__action-bar__counter__label= obscured_counter status.replies_count
- = link_to remote_interaction_path(status), 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'
diff --git a/app/views/tags/_features.html.haml b/app/views/tags/_features.html.haml
deleted file mode 100644
index 8fbc6b760..000000000
--- a/app/views/tags/_features.html.haml
+++ /dev/null
@@ -1,25 +0,0 @@
-.features-list
- .features-list__row
- .text
- %h6= t 'about.features.real_conversation_title'
- = t 'about.features.real_conversation_body'
- .visual
- = fa_icon 'fw comments'
- .features-list__row
- .text
- %h6= t 'about.features.not_a_product_title'
- = t 'about.features.not_a_product_body'
- .visual
- = fa_icon 'fw users'
- .features-list__row
- .text
- %h6= t 'about.features.within_reach_title'
- = t 'about.features.within_reach_body'
- .visual
- = fa_icon 'fw mobile'
- .features-list__row
- .text
- %h6= t 'about.features.humane_approach_title'
- = t 'about.features.humane_approach_body'
- .visual
- = fa_icon 'fw leaf'
diff --git a/app/views/tags/show.html.haml b/app/views/tags/show.html.haml
index f6e452f18..18de48eea 100644
--- a/app/views/tags/show.html.haml
+++ b/app/views/tags/show.html.haml
@@ -8,33 +8,9 @@
= javascript_pack_tag 'about', integrity: true, crossorigin: 'anonymous'
= render 'og'
-.landing-page.tag-page.alternative
- .features
- .container
- .grid
- .column-1
- #mastodon-timeline{ data: { props: Oj.dump(default_props.merge(hashtag: @tag.name)) } }
-
- .column-2
- .about-mastodon
- .about-hashtag.landing-page__information
- .brand
- = link_to root_url do
- = image_tag asset_pack_path('logo_full.svg'), alt: 'Mastodon'
-
- %p= t 'about.about_hashtag_html', hashtag: @tag.name
-
- .cta
- - if user_signed_in?
- = link_to t('settings.back'), root_path, class: 'button button-secondary'
- - else
- = link_to t('auth.login'), new_user_session_path, class: 'button button-secondary'
- = link_to t('about.learn_more'), about_path, class: 'button button-alternative'
-
- .landing-page__features.landing-page__information
- %h3= t 'about.what_is_mastodon'
- %p= t 'about.about_mastodon_html'
-
- = render 'features'
+.page-header
+ %h1= "##{@tag.name}"
+ %p= t('about.about_hashtag_html', hashtag: @tag.name)
+#mastodon-timeline{ data: { props: Oj.dump(default_props.merge(hashtag: @tag.name)) }}
#modal-container
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/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/fetch_replies_worker.rb b/app/workers/activitypub/fetch_replies_worker.rb
new file mode 100644
index 000000000..bf466db54
--- /dev/null
+++ b/app/workers/activitypub/fetch_replies_worker.rb
@@ -0,0 +1,12 @@
+# frozen_string_literal: true
+
+class ActivityPub::FetchRepliesWorker
+ include Sidekiq::Worker
+ include ExponentialBackoff
+
+ sidekiq_options queue: 'pull', retry: 3
+
+ def perform(parent_status_id, replies_uri)
+ ActivityPub::FetchRepliesService.new.call(Status.find(parent_status_id), replies_uri)
+ end
+end
diff --git a/app/workers/activitypub/low_priority_delivery_worker.rb b/app/workers/activitypub/low_priority_delivery_worker.rb
new file mode 100644
index 000000000..a141b8f78
--- /dev/null
+++ b/app/workers/activitypub/low_priority_delivery_worker.rb
@@ -0,0 +1,5 @@
+# frozen_string_literal: true
+
+class ActivityPub::LowPriorityDeliveryWorker < ActivityPub::DeliveryWorker
+ sidekiq_options queue: 'pull', retry: 8, dead: false
+end
diff --git a/app/workers/activitypub/processing_worker.rb b/app/workers/activitypub/processing_worker.rb
index a8a3ebf0f..a3abe72cf 100644
--- a/app/workers/activitypub/processing_worker.rb
+++ b/app/workers/activitypub/processing_worker.rb
@@ -6,6 +6,6 @@ class ActivityPub::ProcessingWorker
sidekiq_options backtrace: true
def perform(account_id, body, delivered_to_account_id = nil)
- ActivityPub::ProcessCollectionService.new.call(body, Account.find(account_id), override_timestamps: true, delivered_to_account_id: delivered_to_account_id)
+ ActivityPub::ProcessCollectionService.new.call(body, Account.find(account_id), override_timestamps: true, delivered_to_account_id: delivered_to_account_id, delivery: true)
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/concerns/exponential_backoff.rb b/app/workers/concerns/exponential_backoff.rb
new file mode 100644
index 000000000..f2b931e33
--- /dev/null
+++ b/app/workers/concerns/exponential_backoff.rb
@@ -0,0 +1,11 @@
+# frozen_string_literal: true
+
+module ExponentialBackoff
+ extend ActiveSupport::Concern
+
+ included do
+ sidekiq_retry_in do |count|
+ 15 + 10 * (count**4) + rand(10 * (count**4))
+ end
+ end
+end
diff --git a/app/workers/fetch_reply_worker.rb b/app/workers/fetch_reply_worker.rb
new file mode 100644
index 000000000..f7aa25e81
--- /dev/null
+++ b/app/workers/fetch_reply_worker.rb
@@ -0,0 +1,12 @@
+# frozen_string_literal: true
+
+class FetchReplyWorker
+ include Sidekiq::Worker
+ include ExponentialBackoff
+
+ sidekiq_options queue: 'pull', retry: 3
+
+ def perform(child_url)
+ FetchRemoteStatusService.new.call(child_url)
+ end
+end
diff --git a/app/workers/import/relationship_worker.rb b/app/workers/import/relationship_worker.rb
index 1dd8bf8fb..e9db20a46 100644
--- a/app/workers/import/relationship_worker.rb
+++ b/app/workers/import/relationship_worker.rb
@@ -13,11 +13,17 @@ class Import::RelationshipWorker
case relationship
when 'follow'
- FollowService.new.call(from_account, target_account.acct)
+ FollowService.new.call(from_account, target_account)
+ when 'unfollow'
+ UnfollowService.new.call(from_account, target_account)
when 'block'
BlockService.new.call(from_account, target_account)
+ when 'unblock'
+ UnblockService.new.call(from_account, target_account)
when 'mute'
MuteService.new.call(from_account, target_account)
+ when 'unmute'
+ UnmuteService.new.call(from_account, target_account)
end
rescue ActiveRecord::RecordNotFound
true
diff --git a/app/workers/import_worker.rb b/app/workers/import_worker.rb
index aeb221cf6..dfa71b29e 100644
--- a/app/workers/import_worker.rb
+++ b/app/workers/import_worker.rb
@@ -1,44 +1,14 @@
# frozen_string_literal: true
-require 'csv'
-
class ImportWorker
include Sidekiq::Worker
sidekiq_options queue: 'pull', retry: false
- attr_reader :import
-
def perform(import_id)
- @import = Import.find(import_id)
-
- Import::RelationshipWorker.push_bulk(import_rows) do |row|
- [@import.account_id, row.first, relationship_type]
- end
-
- @import.destroy
- end
-
- private
-
- def import_contents
- Paperclip.io_adapters.for(@import.data).read
- end
-
- def relationship_type
- case @import.type
- when 'following'
- 'follow'
- when 'blocking'
- 'block'
- when 'muting'
- 'mute'
- end
- end
-
- def import_rows
- rows = CSV.new(import_contents).reject(&:blank?)
- rows = rows.take(FollowLimitValidator.limit_for_account(@import.account)) if @import.type == 'following'
- rows
+ import = Import.find(import_id)
+ ImportService.new.call(import)
+ ensure
+ import&.destroy
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..850610c4e
--- /dev/null
+++ b/app/workers/publish_scheduled_status_worker.rb
@@ -0,0 +1,26 @@
+# frozen_string_literal: true
+
+class PublishScheduledStatusWorker
+ include Sidekiq::Worker
+
+ sidekiq_options unique: :until_executed
+
+ 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/feed_cleanup_scheduler.rb b/app/workers/scheduler/feed_cleanup_scheduler.rb
index cd2273418..bf5e20757 100644
--- a/app/workers/scheduler/feed_cleanup_scheduler.rb
+++ b/app/workers/scheduler/feed_cleanup_scheduler.rb
@@ -2,6 +2,7 @@
class Scheduler::FeedCleanupScheduler
include Sidekiq::Worker
+ include Redisable
sidekiq_options unique: :until_executed, retry: 0
@@ -57,8 +58,4 @@ class Scheduler::FeedCleanupScheduler
def feed_manager
FeedManager.instance
end
-
- def redis
- Redis.current
- 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/thread_resolve_worker.rb b/app/workers/thread_resolve_worker.rb
index c18a778d5..8bba9ca75 100644
--- a/app/workers/thread_resolve_worker.rb
+++ b/app/workers/thread_resolve_worker.rb
@@ -2,13 +2,10 @@
class ThreadResolveWorker
include Sidekiq::Worker
+ include ExponentialBackoff
sidekiq_options queue: 'pull', retry: 3
- sidekiq_retry_in do |count|
- 15 + 10 * (count**4) + rand(10 * (count**4))
- end
-
def perform(child_status_id, parent_url)
child_status = Status.find(child_status_id)
parent_status = FetchRemoteStatusService.new.call(parent_url)
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/config/application.rb b/config/application.rb
index b4a39b5c8..54df69811 100644
--- a/config/application.rb
+++ b/config/application.rb
@@ -63,7 +63,11 @@ module Mastodon
:it,
:ja,
:ka,
+ :kk,
:ko,
+ :lt,
+ :lv,
+ :ms,
:nl,
:no,
:oc,
@@ -74,6 +78,7 @@ module Mastodon
:ru,
:sk,
:sl,
+ :sq,
:sr,
:'sr-Latn',
:sv,
diff --git a/config/brakeman.ignore b/config/brakeman.ignore
index 58fb243da..7e3828f7e 100644
--- a/config/brakeman.ignore
+++ b/config/brakeman.ignore
@@ -1,5 +1,25 @@
{
"ignored_warnings": [
+ {
+ "warning_type": "Mass Assignment",
+ "warning_code": 105,
+ "fingerprint": "0117d2be5947ea4e4fbed9c15f23c6615b12c6892973411820c83d079808819d",
+ "check_name": "PermitAttributes",
+ "message": "Potentially dangerous key allowed for mass assignment",
+ "file": "app/controllers/api/v1/search_controller.rb",
+ "line": 30,
+ "link": "https://brakemanscanner.org/docs/warning_types/mass_assignment/",
+ "code": "params.permit(:type, :offset, :min_id, :max_id, :account_id)",
+ "render_path": null,
+ "location": {
+ "type": "method",
+ "class": "Api::V1::SearchController",
+ "method": "search_params"
+ },
+ "user_input": ":account_id",
+ "confidence": "High",
+ "note": ""
+ },
{
"warning_type": "SQL Injection",
"warning_code": 0,
@@ -20,25 +40,6 @@
"confidence": "High",
"note": ""
},
- {
- "warning_type": "Cross-Site Scripting",
- "warning_code": 4,
- "fingerprint": "0adbe361b91afff22ba51e5fc2275ec703cc13255a0cb3eecd8dab223ab9f61e",
- "check_name": "LinkToHref",
- "message": "Potentially unsafe model attribute in link_to href",
- "file": "app/views/admin/accounts/show.html.haml",
- "line": 167,
- "link": "https://brakemanscanner.org/docs/warning_types/link_to_href",
- "code": "link_to(Account.find(params[:id]).inbox_url, Account.find(params[:id]).inbox_url)",
- "render_path": [{"type":"controller","class":"Admin::AccountsController","method":"show","line":18,"file":"app/controllers/admin/accounts_controller.rb"}],
- "location": {
- "type": "template",
- "template": "admin/accounts/show"
- },
- "user_input": "Account.find(params[:id]).inbox_url",
- "confidence": "Weak",
- "note": ""
- },
{
"warning_type": "SQL Injection",
"warning_code": 0,
@@ -46,7 +47,7 @@
"check_name": "SQL",
"message": "Possible SQL injection",
"file": "app/models/status.rb",
- "line": 84,
+ "line": 87,
"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,
@@ -59,44 +60,6 @@
"confidence": "Weak",
"note": ""
},
- {
- "warning_type": "Cross-Site Scripting",
- "warning_code": 4,
- "fingerprint": "1fc29c578d0c89bf13bd5476829d272d54cd06b92ccf6df18568fa1f2674926e",
- "check_name": "LinkToHref",
- "message": "Potentially unsafe model attribute in link_to href",
- "file": "app/views/admin/accounts/show.html.haml",
- "line": 173,
- "link": "https://brakemanscanner.org/docs/warning_types/link_to_href",
- "code": "link_to(Account.find(params[:id]).shared_inbox_url, Account.find(params[:id]).shared_inbox_url)",
- "render_path": [{"type":"controller","class":"Admin::AccountsController","method":"show","line":18,"file":"app/controllers/admin/accounts_controller.rb"}],
- "location": {
- "type": "template",
- "template": "admin/accounts/show"
- },
- "user_input": "Account.find(params[:id]).shared_inbox_url",
- "confidence": "Weak",
- "note": ""
- },
- {
- "warning_type": "Cross-Site Scripting",
- "warning_code": 4,
- "fingerprint": "2129d4c1e63a351d28d8d2937ff0b50237809c3df6725c0c5ef82b881dbb2086",
- "check_name": "LinkToHref",
- "message": "Potentially unsafe model attribute in link_to href",
- "file": "app/views/admin/accounts/show.html.haml",
- "line": 75,
- "link": "https://brakemanscanner.org/docs/warning_types/link_to_href",
- "code": "link_to(Account.find(params[:id]).url, Account.find(params[:id]).url)",
- "render_path": [{"type":"controller","class":"Admin::AccountsController","method":"show","line":18,"file":"app/controllers/admin/accounts_controller.rb"}],
- "location": {
- "type": "template",
- "template": "admin/accounts/show"
- },
- "user_input": "Account.find(params[:id]).url",
- "confidence": "Weak",
- "note": ""
- },
{
"warning_type": "Mass Assignment",
"warning_code": 105,
@@ -104,7 +67,7 @@
"check_name": "PermitAttributes",
"message": "Potentially dangerous key allowed for mass assignment",
"file": "app/controllers/admin/reports_controller.rb",
- "line": 80,
+ "line": 56,
"link": "https://brakemanscanner.org/docs/warning_types/mass_assignment/",
"code": "params.permit(:account_id, :resolved, :target_account_id)",
"render_path": null,
@@ -127,7 +90,7 @@
"line": 4,
"link": "https://brakemanscanner.org/docs/warning_types/dynamic_render_path/",
"code": "render(action => Admin::ActionLog.page(params[:page]), {})",
- "render_path": [{"type":"controller","class":"Admin::ActionLogsController","method":"index","line":7,"file":"app/controllers/admin/action_logs_controller.rb"}],
+ "render_path": [{"type":"controller","class":"Admin::ActionLogsController","method":"index","line":7,"file":"app/controllers/admin/action_logs_controller.rb","rendered":{"name":"admin/action_logs/index","file":"/home/eugr/Projects/mastodon/app/views/admin/action_logs/index.html.haml"}}],
"location": {
"type": "template",
"template": "admin/action_logs/index"
@@ -143,7 +106,7 @@
"check_name": "Redirect",
"message": "Possible unprotected redirect",
"file": "app/controllers/remote_interaction_controller.rb",
- "line": 20,
+ "line": 21,
"link": "https://brakemanscanner.org/docs/warning_types/redirect/",
"code": "redirect_to(RemoteFollow.new(resource_params).interact_address_for(Status.find(params[:id])))",
"render_path": null,
@@ -156,25 +119,6 @@
"confidence": "High",
"note": ""
},
- {
- "warning_type": "Cross-Site Scripting",
- "warning_code": 4,
- "fingerprint": "64b5b2a02ede9c2b3598881eb5a466d63f7d27fe0946aa00d570111ec7338d2e",
- "check_name": "LinkToHref",
- "message": "Potentially unsafe model attribute in link_to href",
- "file": "app/views/admin/accounts/show.html.haml",
- "line": 176,
- "link": "https://brakemanscanner.org/docs/warning_types/link_to_href",
- "code": "link_to(Account.find(params[:id]).followers_url, Account.find(params[:id]).followers_url)",
- "render_path": [{"type":"controller","class":"Admin::AccountsController","method":"show","line":18,"file":"app/controllers/admin/accounts_controller.rb"}],
- "location": {
- "type": "template",
- "template": "admin/accounts/show"
- },
- "user_input": "Account.find(params[:id]).followers_url",
- "confidence": "Weak",
- "note": ""
- },
{
"warning_type": "Dynamic Render Path",
"warning_code": 15,
@@ -185,7 +129,7 @@
"line": 3,
"link": "https://brakemanscanner.org/docs/warning_types/dynamic_render_path/",
"code": "render(action => \"stream_entries/#{Account.find_local!(params[:account_username]).statuses.find(params[:id]).stream_entry.activity_type.downcase}\", { Account.find_local!(params[:account_username]).statuses.find(params[:id]).stream_entry.activity_type.downcase.to_sym => Account.find_local!(params[:account_username]).statuses.find(params[:id]).stream_entry.activity, :centered => true, :autoplay => ActiveModel::Type::Boolean.new.cast(params[:autoplay]) })",
- "render_path": [{"type":"controller","class":"StatusesController","method":"embed","line":59,"file":"app/controllers/statuses_controller.rb"}],
+ "render_path": [{"type":"controller","class":"StatusesController","method":"embed","line":63,"file":"app/controllers/statuses_controller.rb","rendered":{"name":"stream_entries/embed","file":"/home/eugr/Projects/mastodon/app/views/stream_entries/embed.html.haml"}}],
"location": {
"type": "template",
"template": "stream_entries/embed"
@@ -201,7 +145,7 @@
"check_name": "SQL",
"message": "Possible SQL injection",
"file": "app/models/status.rb",
- "line": 89,
+ "line": 92,
"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,
@@ -214,25 +158,6 @@
"confidence": "Weak",
"note": ""
},
- {
- "warning_type": "Cross-Site Scripting",
- "warning_code": 4,
- "fingerprint": "82f7b0d09beb3ab68e0fa16be63cedf4e820f2490326e9a1cec05761d92446cd",
- "check_name": "LinkToHref",
- "message": "Potentially unsafe model attribute in link_to href",
- "file": "app/views/admin/accounts/show.html.haml",
- "line": 149,
- "link": "https://brakemanscanner.org/docs/warning_types/link_to_href",
- "code": "link_to(Account.find(params[:id]).salmon_url, Account.find(params[:id]).salmon_url)",
- "render_path": [{"type":"controller","class":"Admin::AccountsController","method":"show","line":18,"file":"app/controllers/admin/accounts_controller.rb"}],
- "location": {
- "type": "template",
- "template": "admin/accounts/show"
- },
- "user_input": "Account.find(params[:id]).salmon_url",
- "confidence": "Weak",
- "note": ""
- },
{
"warning_type": "Dynamic Render Path",
"warning_code": 15,
@@ -243,7 +168,7 @@
"line": 45,
"link": "https://brakemanscanner.org/docs/warning_types/dynamic_render_path/",
"code": "render(action => filtered_custom_emojis.eager_load(:local_counterpart).page(params[:page]), {})",
- "render_path": [{"type":"controller","class":"Admin::CustomEmojisController","method":"index","line":11,"file":"app/controllers/admin/custom_emojis_controller.rb"}],
+ "render_path": [{"type":"controller","class":"Admin::CustomEmojisController","method":"index","line":11,"file":"app/controllers/admin/custom_emojis_controller.rb","rendered":{"name":"admin/custom_emojis/index","file":"/home/eugr/Projects/mastodon/app/views/admin/custom_emojis/index.html.haml"}}],
"location": {
"type": "template",
"template": "admin/custom_emojis/index"
@@ -279,10 +204,10 @@
"check_name": "Render",
"message": "Render path contains parameter value",
"file": "app/views/admin/accounts/index.html.haml",
- "line": 67,
+ "line": 47,
"link": "https://brakemanscanner.org/docs/warning_types/dynamic_render_path/",
"code": "render(action => filtered_accounts.page(params[:page]), {})",
- "render_path": [{"type":"controller","class":"Admin::AccountsController","method":"index","line":12,"file":"app/controllers/admin/accounts_controller.rb"}],
+ "render_path": [{"type":"controller","class":"Admin::AccountsController","method":"index","line":12,"file":"app/controllers/admin/accounts_controller.rb","rendered":{"name":"admin/accounts/index","file":"/home/eugr/Projects/mastodon/app/views/admin/accounts/index.html.haml"}}],
"location": {
"type": "template",
"template": "admin/accounts/index"
@@ -298,7 +223,7 @@
"check_name": "Redirect",
"message": "Possible unprotected redirect",
"file": "app/controllers/media_controller.rb",
- "line": 10,
+ "line": 14,
"link": "https://brakemanscanner.org/docs/warning_types/redirect/",
"code": "redirect_to(MediaAttachment.attached.find_by!(:shortcode => ((params[:id] or params[:medium_id]))).file.url(:original))",
"render_path": null,
@@ -311,25 +236,6 @@
"confidence": "High",
"note": ""
},
- {
- "warning_type": "Cross-Site Scripting",
- "warning_code": 4,
- "fingerprint": "bb0ad5c4a42e06e3846c2089ff5269c17f65483a69414f6ce65eecf2bb11fab7",
- "check_name": "LinkToHref",
- "message": "Potentially unsafe model attribute in link_to href",
- "file": "app/views/admin/accounts/show.html.haml",
- "line": 138,
- "link": "https://brakemanscanner.org/docs/warning_types/link_to_href",
- "code": "link_to(Account.find(params[:id]).remote_url, Account.find(params[:id]).remote_url)",
- "render_path": [{"type":"controller","class":"Admin::AccountsController","method":"show","line":18,"file":"app/controllers/admin/accounts_controller.rb"}],
- "location": {
- "type": "template",
- "template": "admin/accounts/show"
- },
- "user_input": "Account.find(params[:id]).remote_url",
- "confidence": "Weak",
- "note": ""
- },
{
"warning_type": "Redirect",
"warning_code": 18,
@@ -350,25 +256,6 @@
"confidence": "High",
"note": ""
},
- {
- "warning_type": "Cross-Site Scripting",
- "warning_code": 4,
- "fingerprint": "e04aafe1e06cf8317fb6ac0a7f35783e45aa1274272ee6eaf28d39adfdad489b",
- "check_name": "LinkToHref",
- "message": "Potentially unsafe model attribute in link_to href",
- "file": "app/views/admin/accounts/show.html.haml",
- "line": 170,
- "link": "https://brakemanscanner.org/docs/warning_types/link_to_href",
- "code": "link_to(Account.find(params[:id]).outbox_url, Account.find(params[:id]).outbox_url)",
- "render_path": [{"type":"controller","class":"Admin::AccountsController","method":"show","line":18,"file":"app/controllers/admin/accounts_controller.rb"}],
- "location": {
- "type": "template",
- "template": "admin/accounts/show"
- },
- "user_input": "Account.find(params[:id]).outbox_url",
- "confidence": "Weak",
- "note": ""
- },
{
"warning_type": "Mass Assignment",
"warning_code": 105,
@@ -376,7 +263,7 @@
"check_name": "PermitAttributes",
"message": "Potentially dangerous key allowed for mass assignment",
"file": "app/controllers/api/v1/reports_controller.rb",
- "line": 37,
+ "line": 36,
"link": "https://brakemanscanner.org/docs/warning_types/mass_assignment/",
"code": "params.permit(:account_id, :comment, :forward, :status_ids => ([]))",
"render_path": null,
@@ -399,7 +286,7 @@
"line": 23,
"link": "https://brakemanscanner.org/docs/warning_types/dynamic_render_path/",
"code": "render(partial => \"stream_entries/#{Account.find_local!(params[:account_username]).statuses.find(params[:id]).stream_entry.activity_type.downcase}\", { :locals => ({ Account.find_local!(params[:account_username]).statuses.find(params[:id]).stream_entry.activity_type.downcase.to_sym => Account.find_local!(params[:account_username]).statuses.find(params[:id]).stream_entry.activity, :include_threads => true }) })",
- "render_path": [{"type":"controller","class":"StatusesController","method":"show","line":30,"file":"app/controllers/statuses_controller.rb"}],
+ "render_path": [{"type":"controller","class":"StatusesController","method":"show","line":34,"file":"app/controllers/statuses_controller.rb","rendered":{"name":"stream_entries/show","file":"/home/eugr/Projects/mastodon/app/views/stream_entries/show.html.haml"}}],
"location": {
"type": "template",
"template": "stream_entries/show"
@@ -409,6 +296,6 @@
"note": ""
}
],
- "updated": "2018-10-20 23:24:45 +1300",
- "brakeman_version": "4.2.1"
+ "updated": "2019-02-21 02:30:29 +0100",
+ "brakeman_version": "4.4.0"
}
diff --git a/config/deploy.rb b/config/deploy.rb
index e0cd60f54..f0db50788 100644
--- a/config/deploy.rb
+++ b/config/deploy.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-lock '3.10.2'
+lock '3.11.0'
set :repo_url, ENV.fetch('REPO', 'https://github.com/tootsuite/mastodon.git')
set :branch, ENV.fetch('BRANCH', 'master')
diff --git a/config/i18n-tasks.yml b/config/i18n-tasks.yml
index eec8b6dbe..1bcac154b 100644
--- a/config/i18n-tasks.yml
+++ b/config/i18n-tasks.yml
@@ -35,11 +35,8 @@ ignore_missing:
- 'activemodel.errors.*'
- 'activerecord.attributes.*'
- 'activerecord.errors.*'
- - '{devise,pagination,doorkeeper}.*'
+ - '{pagination,doorkeeper}.*'
- '{date,datetime,time,number}.*'
- - 'simple_form.{yes,no}'
- - 'simple_form.{placeholders,hints,labels}.*'
- - 'simple_form.{error_notification,required}.:'
- 'errors.messages.*'
- 'activerecord.errors.models.doorkeeper/*'
- 'sessions.{browsers,platforms}.*'
diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb
index 3e4c9a79d..cd9bacf68 100644
--- a/config/initializers/devise.rb
+++ b/config/initializers/devise.rb
@@ -10,7 +10,6 @@ Warden::Manager.after_set_user except: :fetch do |user, warden|
expires: 1.year.from_now,
httponly: true,
secure: (Rails.env.production? || ENV['LOCAL_HTTPS'] == 'true'),
- same_site: :lax,
}
end
@@ -21,7 +20,6 @@ Warden::Manager.after_fetch do |user, warden|
expires: 1.year.from_now,
httponly: true,
secure: (Rails.env.production? || ENV['LOCAL_HTTPS'] == 'true'),
- same_site: :lax,
}
else
warden.logout
diff --git a/config/initializers/paperclip.rb b/config/initializers/paperclip.rb
index df0205879..ce4185e02 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,
@@ -36,6 +36,9 @@ if ENV['S3_ENABLED'] == 'true'
},
s3_options: {
signature_version: ENV.fetch('S3_SIGNATURE_VERSION') { 'v4' },
+ http_open_timeout: 5,
+ http_read_timeout: 5,
+ http_idle_timeout: 5,
}
)
diff --git a/config/initializers/rack_attack.rb b/config/initializers/rack_attack.rb
index 8756b8fbf..28201cc64 100644
--- a/config/initializers/rack_attack.rb
+++ b/config/initializers/rack_attack.rb
@@ -46,17 +46,28 @@ class Rack::Attack
end
throttle('throttle_authenticated_api', limit: 300, period: 5.minutes) do |req|
- req.api_request? && req.authenticated_user_id
+ req.authenticated_user_id if req.api_request?
end
throttle('throttle_unauthenticated_api', limit: 7_500, period: 5.minutes) do |req|
req.ip if req.api_request?
end
- throttle('throttle_media', limit: 30, period: 30.minutes) do |req|
+ throttle('throttle_api_media', limit: 30, period: 30.minutes) do |req|
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
+
+ API_DELETE_REBLOG_REGEX = /\A\/api\/v1\/statuses\/[\d]+\/unreblog/.freeze
+ API_DELETE_STATUS_REGEX = /\A\/api\/v1\/statuses\/[\d]+/.freeze
+
+ throttle('throttle_api_delete', limit: 30, period: 30.minutes) do |req|
+ req.authenticated_user_id if (req.post? && req.path =~ API_DELETE_REBLOG_REGEX) || (req.delete? && req.path =~ API_DELETE_STATUS_REGEX)
+ 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/initializers/session_store.rb b/config/initializers/session_store.rb
index c0757b6b5..3dc0edd6f 100644
--- a/config/initializers/session_store.rb
+++ b/config/initializers/session_store.rb
@@ -1,3 +1,3 @@
# Be sure to restart your server when you modify this file.
-Rails.application.config.session_store :cookie_store, key: '_mastodon_session', secure: (Rails.env.production? || ENV['LOCAL_HTTPS'] == 'true'), same_site: :lax
+Rails.application.config.session_store :cookie_store, key: '_mastodon_session', secure: (Rails.env.production? || ENV['LOCAL_HTTPS'] == 'true')
diff --git a/config/initializers/twitter_regex.rb b/config/initializers/twitter_regex.rb
index 0e8f5bfeb..0ddbbee98 100644
--- a/config/initializers/twitter_regex.rb
+++ b/config/initializers/twitter_regex.rb
@@ -1,7 +1,7 @@
module Twitter
class Regex
- REGEXEN[:valid_general_url_path_chars] = /[^\p{White_Space}\(\)\?]/iou
- REGEXEN[:valid_url_path_ending_chars] = /[^\p{White_Space}\(\)\?!\*';:=\,\.\$%\[\]~&\|@]|(?:#{REGEXEN[:valid_url_balanced_parens]})/iou
+ REGEXEN[:valid_general_url_path_chars] = /[^\p{White_Space}<>\(\)\?]/iou
+ REGEXEN[:valid_url_path_ending_chars] = /[^\p{White_Space}\(\)\?!\*"'「」<>;:=\,\.\$%\[\]~&\|@]|(?:#{REGEXEN[:valid_url_balanced_parens]})/iou
REGEXEN[:valid_url_balanced_parens] = /
\(
(?:
diff --git a/config/locales/activerecord.kk.yml b/config/locales/activerecord.kk.yml
new file mode 100644
index 000000000..41d3b2525
--- /dev/null
+++ b/config/locales/activerecord.kk.yml
@@ -0,0 +1,13 @@
+---
+kk:
+ activerecord:
+ errors:
+ models:
+ account:
+ attributes:
+ username:
+ invalid: тек әріптер, сандар және асты сызылған таңбалар
+ status:
+ attributes:
+ reblog:
+ taken: жазбасы бұрыннан бар
diff --git a/config/locales/activerecord.sq.yml b/config/locales/activerecord.sq.yml
new file mode 100644
index 000000000..e52345978
--- /dev/null
+++ b/config/locales/activerecord.sq.yml
@@ -0,0 +1,13 @@
+---
+sq:
+ activerecord:
+ errors:
+ models:
+ account:
+ attributes:
+ username:
+ invalid: vetëm shkronja, numra dhe nënvija
+ status:
+ attributes:
+ reblog:
+ taken: e gjendjes ekziston tashmë
diff --git a/config/locales/activerecord.tr.yml b/config/locales/activerecord.tr.yml
new file mode 100644
index 000000000..1cc2d9876
--- /dev/null
+++ b/config/locales/activerecord.tr.yml
@@ -0,0 +1,13 @@
+---
+tr:
+ activerecord:
+ errors:
+ models:
+ account:
+ attributes:
+ username:
+ invalid: sadece harfler, sayılar ve alt çizgiler
+ status:
+ attributes:
+ reblog:
+ taken: durum zaten var
diff --git a/config/locales/ar.yml b/config/locales/ar.yml
index 84de592d9..ec8b15cba 100644
--- a/config/locales/ar.yml
+++ b/config/locales/ar.yml
@@ -86,6 +86,9 @@ ar:
moderator: مُشرِف
unfollow: إلغاء المتابعة
admin:
+ account_actions:
+ action: تنفيذ الاجراء
+ title: اتخاذ إجراء إشراف على %{acct}
account_moderation_notes:
create: إترك ملاحظة
created_msg: تم إنشاء ملاحظة الإشراف بنجاح !
@@ -105,9 +108,10 @@ ar:
confirm: تأكيد
confirmed: مؤكَّد
confirming: التأكد
+ deleted: تمت إزالته
demote: إنزال الرُتبة الوظيفية
disable: تعطيل
- disable_two_factor_authentication: تعطيل 2FA
+ disable_two_factor_authentication: تعطيل المصادقة بخطوتين
disabled: معطَّل
display_name: عرض الإسم
domain: النطاق
@@ -120,8 +124,11 @@ ar:
followers: المتابِعون
followers_url: عنوان رابط المتابِعين
follows: يتابع
+ header: الرأسية
inbox_url: رابط صندوق الوارد
+ invited_by: تمت دعوته مِن طرف
ip: عنوان الإيبي
+ joined: انضم
location:
all: الكل
local: المحلي
@@ -129,7 +136,7 @@ ar:
title: الموقع
login_status: وضع الدخول
media_attachments: الوسائط المرفقة
- memorialize: تحول إلى صفحة للذاكرة
+ memorialize: تحويل الحساب إلى صفحة ذكرى
moderation:
active: نشِط
all: الكل
@@ -142,22 +149,23 @@ ar:
no_limits_imposed: مِن دون حدود مشروطة
not_subscribed: غير مشترك
outbox_url: رابط صندوق الصادر
- perform_full_suspension: تعطيل
+ perform_full_suspension: تعليق الحساب
profile_url: رابط الملف الشخصي
promote: ترقية
protocol: البروتوكول
public: عمومي
push_subscription_expires: انتهاء الاشتراك ”PuSH“
- redownload: تحديث الصورة الرمزية
+ redownload: تحديث الصفحة الشخصية
remove_avatar: حذف الصورة الرمزية
+ remove_header: حذف الرأسية
resend_confirmation:
already_confirmed: هذا المستخدم مؤكد بالفعل
send: أعد إرسال رسالة البريد الالكتروني الخاصة بالتأكيد
success: تم إرسال رسالة التأكيد بنجاح!
reset: إعادة التعيين
reset_password: إعادة ضبط كلمة السر
- resubscribe: اشترك مرة أخرى
- role: التصريحات
+ resubscribe: إعادة الإشتراك
+ role: الصلاحيات
roles:
admin: مدير
moderator: مشرف
@@ -168,25 +176,26 @@ ar:
shared_inbox_url: رابط الصندوق المُشترَك للبريد الوارد
show:
created_reports: البلاغات التي أنشأها هذا الحساب
- report: التقرير
- targeted_reports: التقريرات التي أُنشِأت ضد هذا الحساب
- silence: سكتهم
+ targeted_reports: الشكاوي التي أُنشِأت مِن طرف الآخَرين
+ silence: كتم
silenced: تم كتمه
statuses: المنشورات
subscribe: اشترك
suspended: تم تعليقه
title: الحسابات
- unconfirmed_email: البريد الإلكتروني غير المؤكد
+ unconfirmed_email: البريد الإلكتروني غير مؤكد
undo_silenced: رفع الصمت
undo_suspension: إلغاء تعليق الحساب
unsubscribe: إلغاء الاشتراك
username: إسم المستخدم
+ warn: تحذير
web: الويب
action_logs:
actions:
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}"
@@ -203,9 +212,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}"
@@ -245,11 +254,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: وضع المستخدِم الأوحد
@@ -262,7 +272,7 @@ ar:
week_users_active: نشط هذا الأسبوع
week_users_new: مستخدِمين هذا الأسبوع
domain_blocks:
- add_new: إضافة نطاق جديد
+ add_new: إضافة حجب جديد لنطاق
created_msg: إنّ حجب النطاق حيز التشغيل
destroyed_msg: تم إلغاء الحجب المفروض على النطاق
domain: النطاق
@@ -278,11 +288,9 @@ ar:
reject_media: رفض ملفات الوسائط
reject_media_hint: يزيل ملفات الوسائط المخزنة محليًا ويرفض تنزيل أي ملفات في المستقبل. غير ذي صلة للتعليق
reject_reports: رفض التقارير
- severities:
- noop: لا شيء
- silence: إخفاء أو كتم
- suspend: تعليق
- severity: الشدة
+ severity:
+ silence: تم كتمه
+ suspend: تم تعليقه
show:
affected_accounts:
few: "%{count} حسابات معنية في قاعدة البيانات"
@@ -296,8 +304,7 @@ ar:
suspend: إلغاء التعليق المفروض على كافة حسابات هذا النطاق
title: رفع حظر النطاق عن %{domain}
undo: إلغاء
- title: حظر النطاقات
- undo: إلغاء
+ undo: إلغاء حجب النطاق
email_domain_blocks:
add_new: إضافة
created_msg: لقد دخل حظر نطاق البريد الإلكتروني حيّز الخدمة
@@ -308,12 +315,26 @@ ar:
create: إضافة نطاق
title: إضافة نطاق بريد جديد إلى اللائحة السوداء
title: القائمة السوداء للبريد الإلكتروني
+ followers:
+ back_to_account: العودة إلى الحساب
+ title: "%{acct} مُتابِعون"
instances:
- account_count: الحسابات المعروفة
- domain_name: النطاق
- reset: إعادة تعيين
- search: البحث
- title: مثيلات الخوادم المعروفة
+ known_accounts:
+ few: "%{count} حسابات معروفة"
+ many: "%{count} حسابات معروفة"
+ one: حساب معروف %{count}
+ other: "%{count} حسابات معروفة"
+ two: "%{count} حسابات معروفة"
+ zero: "%{count} حسابات معروفة"
+ moderation:
+ all: كافتها
+ title: الإشراف
+ title: الفديرالية
+ total_blocked_by_us: المحجوبة مِن طرفنا
+ total_followed_by_them: يُتابِعونها
+ total_followed_by_us: التي نُتابِعها
+ total_reported: تقارير عنهم
+ total_storage: الوسائط المُرفَقة
invites:
deactivate_all: تعطيلها كافة
filter:
@@ -337,10 +358,8 @@ ar:
status: الحالة
title: المُرحّلات
report_notes:
- created_msg: |-
- 41/5000
- تم إنشاء ملاحظة التقرير بنجاح!
- destroyed_msg: تم حذف ملاحظة التقرير بنجاح!
+ created_msg: تم إنشاء ملاحظة الشكوى بنجاح!
+ destroyed_msg: تم حذف ملاحظة الشكوى بنجاح!
reports:
account:
note: ملحوظة
@@ -352,7 +371,7 @@ ar:
comment:
none: لا شيء
created_at: ذكرت
- mark_as_resolved: إعتبار التقرير كمحلول
+ mark_as_resolved: إعتبار الشكوى كمحلولة
mark_as_unresolved: علام كغير محلولة
notes:
create: اضف ملاحظة
@@ -360,14 +379,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: محدث
@@ -439,15 +458,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: مؤكَّد
@@ -464,6 +483,12 @@ ar:
unhide: إظهاره في سجل حسابات المستخدمين
visible: ظاهر
title: الإدارة
+ warning_presets:
+ add_new: إضافة واحد جديد
+ delete: حذف
+ edit: تعديل
+ edit_preset: تعديل نموذج التحذير
+ title: إدارة نماذج التحذير
admin_mailer:
new_report:
body: قام %{reporter} بالإبلاغ عن %{target}
@@ -541,6 +566,7 @@ ar:
warning_title: توافر المحتوى المنشور و المبعثَر
directories:
directory: سِجلّ الحسابات
+ enabled: إنّ حسابك الآن ضمن فهرس المستخدِمين.
explanation: استكشف مستخدِمين آخرين حسب المواضيع التي تهمهم
explore_mastodon: استكشف %{title}
people:
@@ -573,6 +599,7 @@ ar:
blocks: قمت بحظر
csv: CSV
follows: أنت تتبع
+ lists: القوائم
mutes: قُمتَ بكتم
storage: ذاكرة التخزين
filters:
@@ -608,7 +635,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: تم تحميل بياناتك بنجاح وسيتم معالجتها في الوقت المناسب
@@ -642,7 +675,7 @@ ar:
prompt: توليد و مشاركة روابط للسماح للآخَرين بالنفاذ إلى مثيل الخادوم هذا
table:
expires_at: تنتهي مدة صلاحيتها في
- uses: يستخدِم
+ uses: عدد الاستخدامات
title: دعوة أشخاص
lists:
errors:
@@ -663,11 +696,17 @@ ar:
action: معاينة كافة الإشعارات
body: هذا هو مُلَخَّص الرسائل التي فاتتك وذلك منذ آخر زيارة لك في %{since}
mention: "%{name} أشار إليك في :"
- new_followers_summary: رائع، لقد قام بمتابعتك %{count} مُتابِعون جُدد أثناء فترة غيابك عن ماستدون !
+ new_followers_summary:
+ few: رائع، لقد قام بمتابَعتك %{count} مُتابِعون جُدد أثناء فترة غيابك عن ماستدون!
+ many: رائع، لقد قام بمتابَعتك %{count} مُتابِعون جُدد أثناء فترة غيابك عن ماستدون!
+ one: و لقد تحصّلتَ كذلك على مُتابِع آخَر بينما كنتَ غائبًا! هذا شيء رائع!
+ other: رائع، لقد قام بمتابَعتك %{count} مُتابِعون جُدد أثناء فترة غيابك عن ماستدون!
+ two: رائع، لقد قام بمتابَعتك %{count} مُتابِعون جُدد أثناء فترة غيابك عن ماستدون!
+ zero: رائع، لقد قام بمتابَعتك %{count} مُتابِعون جُدد أثناء فترة غيابك عن ماستدون!
subject:
few: "%{count} إشعارات جديدة منذ آخر زيارة لك إلى \U0001F418"
many: "%{count} إشعارات جديدة منذ آخر زيارة لك إلى \U0001F418"
- one: "إشعار واحد منذ آخر زيارة لك لـ \U0001F418"
+ one: "إشعار واحد 1 منذ آخر زيارة لك لـ \U0001F418"
other: "%{count} إشعارات جديدة منذ آخر زيارة لك إلى \U0001F418"
two: "إشعارات جديدة منذ آخر زيارة لك إلى \U0001F418"
zero: "إشعارات جديدة منذ آخر زيارة لك إلى \U0001F418"
@@ -701,8 +740,8 @@ ar:
units:
billion: B
million: M
- quadrillion: Q
- thousand: K
+ quadrillion: كواد
+ thousand: ألف
trillion: T
unit: ''
pagination:
@@ -722,9 +761,6 @@ ar:
no_account_html: أليس عندك حساب بعدُ ؟ يُمْكنك
التسجيل مِن هنا
proceed: أكمل المتابعة
prompt: 'إنك بصدد متابعة :'
- remote_interaction:
- proceed: إبدأ التفاعل
- prompt: 'تريد التفاعُل مع هذا التبويق:'
remote_unfollow:
error: خطأ
title: العنوان
@@ -804,7 +840,13 @@ ar:
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} حرف المسموح بها
@@ -857,6 +899,14 @@ ar:
explanation: لقد قمت بطلب نسخة كاملة لحسابك على ماستدون. إنها متوفرة الآن للتنزيل !
subject: نسخة بيانات حسابك جاهزة للتنزيل
title: المغادرة بأرشيف الحساب
+ warning:
+ review_server_policies: مراجعة شروط السيرفر
+ subject:
+ disable: تم تجميد حسابك %{acct}
+ title:
+ disable: الحساب مُجمَّد
+ none: تحذير
+ suspend: الحساب مُعلَّق
welcome:
edit_profile_action: تهيئة الملف الشخصي
edit_profile_step: يُمكنك·كي تخصيص ملفك الشخصي عن طريق تحميل صورة رمزية ورأسية و بتعديل إسمك·كي العلني وأكثر. و إن أردت·تي معاينة المتابِعين و المتابعات الجُدد قبيل السماح لهم·ن بمتابَعتك فيمكنك·كي تأمين حسابك·كي.
diff --git a/config/locales/ast.yml b/config/locales/ast.yml
index c18c398eb..78ad796a0 100644
--- a/config/locales/ast.yml
+++ b/config/locales/ast.yml
@@ -96,8 +96,6 @@ ast:
email_domain_blocks:
domain: Dominiu
instances:
- account_count: Cuentes conocíes
- domain_name: Dominiu
title: Instancies conocíes
invites:
filter:
@@ -268,9 +266,6 @@ ast:
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:
diff --git a/config/locales/ca.yml b/config/locales/ca.yml
index 5b9acd799..f5245bd98 100644
--- a/config/locales/ca.yml
+++ b/config/locales/ca.yml
@@ -70,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!
@@ -83,12 +86,13 @@ ca:
changed_msg: El correu electrònic del compte s'ha canviat correctament!
current_email: Correu electrònic actual
label: Canviar l'adreça de correu
- new_email: Nou correu
+ new_email: Nova adreça de correu
submit: Canviar adreça de correu
title: Canviar adreça de correu de %{username}
confirm: Confirma
confirmed: Confirmat
confirming: Confirmant
+ deleted: Esborrats
demote: Degrada
disable: Inhabilita
disable_two_factor_authentication: Desactiva 2FA
@@ -104,8 +108,11 @@ ca:
followers: Seguidors
followers_url: URL dels seguidors
follows: Segueix
+ header: Capçalera
inbox_url: URL de la safata d'entrada
+ invited_by: Convidat per
ip: IP
+ joined: Unit
location:
all: Tot
local: Local
@@ -132,8 +139,9 @@ ca:
protocol: Protocol
public: Públic
push_subscription_expires: La subscripció PuSH expira
- redownload: Actualitza l'avatar
+ redownload: Actualitza el perfil
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ó
@@ -151,9 +159,8 @@ ca:
search: Cerca
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
+ created_reports: Informes creats
+ targeted_reports: Informes realitzats per altres
silence: Silenci
silenced: Silenciat
statuses: Estats
@@ -165,12 +172,14 @@ ca:
undo_suspension: Desfés la suspensió
unsubscribe: Cancel·la la subscripció
username: Nom d'usuari
+ warn: Avís
web: Web
action_logs:
actions:
assigned_to_self_report: "%{name} han assignat l'informe %{target} a ells mateixos"
change_email_user: "%{name} ha canviat l'adreça de correu electrònic del usuari %{target}"
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}"
@@ -247,7 +256,7 @@ ca:
week_users_active: usuaris actius aquesta setmana
week_users_new: nous usuaris aquest setmana
domain_blocks:
- add_new: Afegeix
+ add_new: Afegir nou bloqueig de domini
created_msg: El bloqueig de domini ara s'està processant
destroyed_msg: El bloqueig de domini s'ha desfet
domain: Domini
@@ -264,11 +273,11 @@ 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
+ rejecting_media: rebutjant els fitxers multimèdia
+ rejecting_reports: rebutjant els informes
+ severity:
+ silence: silenciat
+ suspend: suspès
show:
affected_accounts:
one: Un compte afectat en la base de dades
@@ -278,8 +287,7 @@ 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
+ undo: Desfés el bloqueig del domini
email_domain_blocks:
add_new: Afegeix
created_msg: S'ha creat el bloc de domini de correu electrònic
@@ -290,12 +298,24 @@ 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
+ delivery_available: El lliurament està disponible
+ known_accounts:
+ one: "%{count} compte conegut"
+ other: "%{count} comptes coneguts"
+ moderation:
+ all: Totes
+ limited: Limitades
+ title: Moderació
+ title: Federació
+ total_blocked_by_us: Bloquejades per nosaltres
+ total_followed_by_them: Seguides per ells
+ total_followed_by_us: Seguides per nosaltres
+ total_reported: Informes sobre elles
+ total_storage: Adjunts multimèdia
invites:
deactivate_all: Desactiva-ho tot
filter:
@@ -448,6 +468,12 @@ ca:
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}"
@@ -527,8 +553,11 @@ ca:
warning_title: Disponibilitat de contingut disseminat
directories:
directory: Directori de perfils
+ enabled: Actualment estàs inclòs al directori.
+ enabled_but_waiting: Has optat per aparèixer al directori però encara no tens el nombre mínim de seguidors (%{min_followers}) per ser-hi.
explanation: Descobreix usuaris segons els seus interessos
explore_mastodon: Explora %{title}
+ how_to_enable: Actualment no tens activat ser al directori. Pots optar-hi a continuació. Utilitza etiquetes en el teu text bio per incloure't sota etiquetes especifiques!
people:
one: "%{count} persona"
other: "%{count} gent"
@@ -554,7 +583,9 @@ ca:
size: Tamany
blocks: Persones que has blocat
csv: CSV
+ domain_blocks: Bloquejos de dominis
follows: Persones que segueixes
+ lists: Llistes
mutes: Persones silenciades
storage: Emmagatzematge
filters:
@@ -703,13 +734,25 @@ ca:
no_account_html: No tens cap compte? Pots
registrar-te aquí
proceed: Comença a seguir
prompt: 'Seguiràs a:'
+ reason_html: "
Per què és necessari aquest pas? %{instance}
pot ser que no sigui el servidor on estàs registrat per tant primer hem de redirigir-te al teu servidor."
remote_interaction:
- proceed: Procedeix a interactuar
- prompt: 'Vols interactuar amb aquest toot:'
+ favourite:
+ proceed: Procedir a afavorir
+ prompt: 'Vols marcar com a favorit aquest toot:'
+ reblog:
+ proceed: Procedir a impulsar
+ prompt: 'Vols impulsar aquest toot:'
+ reply:
+ proceed: Procedir a respondre
+ prompt: 'Vols respondre a aquest toot:'
remote_unfollow:
error: Error
title: Títol
unfollowed: Sense seguir
+ scheduled_statuses:
+ over_daily_limit: Has superat el límit de %{limit} toots programats per a aquell dia
+ over_total_limit: Has superat el limit de %{limit} toots programats
+ too_soon: La data programada ha de ser futura
sessions:
activity: Última activitat
browser: Navegador
@@ -914,6 +957,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.
diff --git a/config/locales/co.yml b/config/locales/co.yml
index 9b94e84a6..8955f7a68 100644
--- a/config/locales/co.yml
+++ b/config/locales/co.yml
@@ -7,7 +7,7 @@ co:
administered_by: 'Amministratu da:'
api: API
apps: Applicazione per u telefuninu
- closed_registrations: Pè avà, l’arregistramenti sò chjosi nant’à st’istanza. Mà pudete truvà un’altr’istanza per fà un contu è avè accessu à listessa reta da quallà.
+ closed_registrations: Pè avà, l’arregistramenti sò chjosi nant’à stu servore. Mà pudete truvà un’altru per fà un contu è avè accessu à listessa reta da quallà.
contact: Cuntattu
contact_missing: Mancante
contact_unavailable: Micca dispunibule
@@ -27,7 +27,7 @@ co:
generic_description: "%{domain} hè un servore di a rete"
hosted_on: Mastodon allughjatu nant’à %{domain}
learn_more: Amparà di più
- other_instances: Lista di l’istanze
+ other_instances: Lista di i servori
privacy_policy: Pulitica di vita privata
source_code: Codice di fonte
status_count_after:
@@ -70,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!
@@ -81,14 +84,15 @@ co:
by_domain: Duminiu
change_email:
changed_msg: Email di u contu cambiatu!
- current_email: Email attuale
- label: Mudificà l’Email
- new_email: Novu Email
- submit: Cambià Email
- title: Mudificà l’Email di %{username}
+ current_email: E-mail attuale
+ label: Mudificà l’e-mail
+ new_email: Novu e-mail
+ submit: Cambià l'e-mail
+ title: Mudificà l’e-mail di %{username}
confirm: Cunfirmà
confirmed: Cunfirmata
confirming: Cunfirmazione
+ deleted: Sguassatu
demote: Ritrugradà
disable: Disattivà
disable_two_factor_authentication: Disattivà l’identificazione à 2 fattori
@@ -97,15 +101,18 @@ co:
domain: Duminiu
edit: Mudificà
email: E-mail
- email_status: Statu di l’e-mail
+ email_status: Statutu di l’e-mail
enable: Attivà
enabled: Attivatu
feed_url: URL di u flussu
followers: Abbunati
followers_url: URL di l’abbunati
follows: Abbunamenti
+ header: Intistatura
inbox_url: URL di l’inbox
+ invited_by: Invitatu da
ip: IP
+ joined: Ghjuntu
location:
all: Tutti
local: Lucale
@@ -132,8 +139,9 @@ co:
protocol: Prutucollu
public: Pubblicu
push_subscription_expires: Spirata di l’abbunamentu PuSH
- redownload: Mette à ghjornu i ritratti
+ redownload: Mette à ghjornu u prufile
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
@@ -151,9 +159,8 @@ co:
search: Cercà
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
+ created_reports: Signalamenti fatti
+ targeted_reports: Signalatu da l'altri
silence: Silenzà
silenced: Silenzatu
statuses: Statuti
@@ -165,12 +172,14 @@ co:
undo_suspension: Ùn suspende più
unsubscribe: Disabbunassi
username: Cugnome
+ warn: Averte
web: Web
action_logs:
actions:
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"
@@ -247,7 +256,7 @@ co:
week_users_active: attivi sta settimana
week_users_new: utilizatori sta settimana
domain_blocks:
- add_new: Aghjustà
+ add_new: Aghjustà novu blucchime di duminiu
created_msg: U blucchime di u duminiu hè attivu
destroyed_msg: U blucchime di u duminiu ùn hè più attivu
domain: Duminiu
@@ -264,11 +273,11 @@ 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à
+ rejecting_media: righjettu di i fugliali media
+ rejecting_reports: righjettu di i signalamenti
+ severity:
+ silence: silenzatu
+ suspend: suspesu
show:
affected_accounts:
one: Un contu tuccatu indè a database
@@ -278,8 +287,7 @@ 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à
+ undo: Annullà u blucchime di duminiu
email_domain_blocks:
add_new: Aghjustà
created_msg: U blucchime di u duminiu d’e-mail hè attivu
@@ -290,12 +298,24 @@ 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
+ delivery_available: Rimessa dispunibule
+ known_accounts:
+ one: "%{count} contu cunnisciutu"
+ other: "%{count} conti cunnisciuti"
+ moderation:
+ all: Tuttu
+ limited: Limitatu
+ title: Muderazione
+ title: Federazione
+ total_blocked_by_us: Bluccati da noi
+ total_followed_by_them: Siguitati da elli
+ total_followed_by_us: Siguitati da noi
+ total_reported: Rapporti nant'à elli
+ total_storage: Media aghjunti
invites:
deactivate_all: Disattivà tuttu
filter:
@@ -366,14 +386,14 @@ co:
desc_html: Mudificà l'apparenza cù CSS caricatu nant'à ogni pagina
title: CSS persunalizatu
hero:
- desc_html: Affissatu nant’a pagina d’accolta. Ricumandemu almenu 600x100px. S’ellu ùn hè micca definiti, a vignetta di l’istanza sarà usata
+ desc_html: Affissatu nant’a pagina d’accolta. Ricumandemu almenu 600x100px. S’ellu ùn hè micca definiti, a vignetta di u servore sarà usata
title: Ritrattu di cuprendula
mascot:
desc_html: Affissata nant'à parechje pagine. Almenu 293x205px ricumandatu. S'ella hè lasciata viota, a mascotta predefinita sarà utilizata
title: Ritrattu di a mascotta
peers_api_enabled:
- desc_html: Indirizzi st’istanza hà vistu indè u fediverse
- title: Pubblicà a lista d’istanza cunnisciute
+ desc_html: Indirizzi web stu servore hà vistu indè u fediverse
+ title: Pubblicà a lista di servori cunnisciuti
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
@@ -401,20 +421,20 @@ co:
title: Mustrà un badge staff
site_description:
desc_html: Paragrafu di prisentazione nant’a pagina d’accolta. Parlate di cio chì rende stu servore speziale, o d'altre cose impurtante. Pudete fà usu di marchi HTML, in particulare
<a>
è
<em>
.
- title: Discrizzione di l’istanza
+ title: Discrizzione di u servore
site_description_extended:
desc_html: Una bona piazza per e regule, infurmazione è altre cose chì l’utilizatori duverìanu sapè. Pudete fà usu di marchi HTML
title: Discrizzione stesa di u situ
site_short_description:
- desc_html: Mustratu indè a barra laterala è i tag meta. Spiegate quale hè Mastodon è ciò chì rende u vostru servore speciale in un paragrafu. S'ella hè lasciata viota, a discrizzione di l'istanza sarà utilizata.
- title: Descrizzione corta di l'istanza
+ desc_html: Mustratu indè a barra laterala è i tag meta. Spiegate quale hè Mastodon è ciò chì rende u vostru servore speciale in un paragrafu. S'ella hè lasciata viota, a discrizzione di u servore sarà utilizata.
+ title: Descrizzione corta di u servore
site_terms:
desc_html: Quì pudete scrive e vostre regule di cunfidenzialità, cundizione d’usu o altre menzione legale. Pudete fà usu di marchi HTML
title: Termini persunalizati
- site_title: Nome di l’istanza
+ site_title: Nome di u servore
thumbnail:
desc_html: Utilizatu per viste cù OpenGraph è l’API. Ricumandemu 1200x630px
- title: Vignetta di l’istanza
+ title: Vignetta di u servore
timeline_preview:
desc_html: Vede a linea pubblica nant’a pagina d’accolta
title: Vista di e linee
@@ -448,6 +468,12 @@ co:
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}"
@@ -469,7 +495,7 @@ co:
warning: Abbadate à quessi dati. Ùn i date à nisunu!
your_token: Rigenerà a fiscia d’accessu
auth:
- agreement_html: Cliccà "Arregistrassi" quì sottu vole dì chì site d’accunsentu per siguità
e regule di l’istanza è
e cundizione d’usu.
+ agreement_html: Cliccà "Arregistrassi" quì sottu vole dì chì site d’accunsentu per siguità
e regule di u servore è
e cundizione d’usu.
change_password: Chjave d’accessu
confirm_email: Cunfirmà l’e-mail
delete_account: Sguassà u contu
@@ -523,19 +549,22 @@ co:
description_html: U contu sarà deattivatu è u cuntenutu sarà sguassatu di manera
permanente è irreversibile. Ùn sarà micca pussibule piglià stu cugnome torna per evità l’impusture.
proceed: Sguassà u contu
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_html: Pudete esse sicuru·a solu chì u cuntenutu sarà sguassatu di stu servore. S’ellu hè statu spartutu in altrò, sarà forse sempre quallà. I servori scunettati è quelli ch'ùn sò più abbunati à e vostre pubblicazione ùn anu micca da mette à ghjornu e so database.
warning_title: Dispunibilità di i cuntenuti sparsi
directories:
directory: Annuariu di i prufili
+ enabled: Site inscrittu·a indè l'annuariu.
+ enabled_but_waiting: Avete sceltu d'esse inscrittu·a indè l'annuariu, mà ùn avete micca ancu u numeru minimale d'abbunati (%{min_followers}) per esse listatu·a.
explanation: Scopre utilizatori à partesi di i so centri d'interessu
explore_mastodon: Scopre à %{title}
+ how_to_enable: Ùn site micca ancu inscrittu·a indè l'annuariu. Pudete inscrive vi quì sottu. Utilizate qualchi hashtag indè a vostra biugrafia per esse listatu·a indè tag specifichi!
people:
one: "%{count} persona"
other: "%{count} persone"
errors:
'403': Ùn site micca auturizatu·a à vede sta pagina.
- '404': Sta pagina ùn esiste micca.
- '410': Sta pagina ùn esiste più.
+ '404': Sta pagina ùn esiste micca quì.
+ '410': Sta pagina ùn esiste più quì.
'422':
content: C’hè statu un prublemu cù a verificazione di sicurità. Forse bluccate cookies?
title: Fiascu di verificazione
@@ -548,15 +577,21 @@ co:
archive_takeout:
date: Data
download: Scaricà l’archiviu
- hint_html: Pudete dumandà un’archiviu di i vostri
statuti è media caricati. I dati saranu in u furmattu ActivityPub è pudarenu esse letti da tutti i lugiziali chì u supportanu.
+ hint_html: Pudete dumandà un’archiviu di i vostri
statuti è media caricati. I dati saranu in u furmattu ActivityPub è pudarenu esse letti da tutti i lugiziali chì u supportanu. Pudete richiede un'archiviu ogni 7 ghjorni.
in_progress: Cumpilazione di l’archiviu...
request: Dumandà u vostr’archiviu
size: Pesu
blocks: Bluccate
csv: CSV
+ domain_blocks: Blucchime di duminiu
follows: Seguitate
+ lists: Liste
mutes: Piattate
storage: I vostri media
+ featured_tags:
+ add_new: Aghjustà novu
+ errors:
+ limit: Avete digià messu in mostra u numeru massimale di hashtag
filters:
contexts:
home: Accolta
@@ -575,7 +610,7 @@ co:
title: Aghjustà un novu filtru
followers:
domain: Duminiu
- explanation_html: Per assicuravi di a cunfidenzialità di i vostri statuti, duvete avè primura di quale vi seguita.
I vostri statuti privati sò mandati à tutte l’istanze induve avete abbunati. Pensate à u vostru livellu di cunfidenza in i so amministratori.
+ explanation_html: Per assicuravi di a cunfidenzialità di i vostri statuti, duvete avè primura di quale vi seguita.
I vostri statuti privati sò mandati à tutti i servori induve avete abbunati. Pensate à u vostru livellu di cunfidenza in i so amministratori.
followers_count: Numeru d’abbunati
lock_link: Rendete u contu privatu
purge: Toglie di a lista d’abbunati
@@ -597,10 +632,16 @@ co:
one: Qualcosa ùn và bè! Verificate u prublemu quì sottu
other: Qualcosa ùn và bè! Verificate %{count} prublemi quì sottu
imports:
- preface: Pudete impurtà certi dati cumu e persone chì seguitate o bluccate nant’à u vostru contu nant’à st’istanza à partesi di fugliali creati nant’à un’altr’istanza.
+ modes:
+ merge: Unisce
+ merge_long: Cunservà i dati esistenti è aghjustà i novi
+ overwrite: Soprascrive
+ overwrite_long: Rimpiazzà i dati esistenti cù i novi
+ preface: Pudete impurtà certi dati, cumu e persone chì seguitate o bluccate nant’à u vostru contu, nant’à stu servore à partesi di fugliali creati nant’à un’altru.
success: I vostri dati sò stati impurtati è saranu trattati da quì à pocu
types:
blocking: Persone chì bluccate
+ domain_blocking: Lista di blucchimi di duminiu
following: Persone chì seguitate
muting: Persone chì piattate
upload: Impurtà
@@ -622,7 +663,7 @@ co:
one: 1 usu
other: "%{count} usi"
max_uses_prompt: Micca limita
- prompt: Create è spartete ligami cù altre parsone per dà accessu à l’istanza
+ prompt: Create è spartete ligami cù altre parsone per dà accessu à u servore
table:
expires_at: Spira
uses: Utiliza
@@ -703,13 +744,25 @@ co:
no_account_html: Ùn avete micca un contu? Pudete
arregistravi quì
proceed: Cuntinuà per siguità
prompt: 'Avete da siguità:'
+ reason_html: "
Perchè hè necessaria sta tappa? %{instance}
ùn hè forse micca u servore induve site arregistratu·a, allora primu duvemu riindirizzavi à u vostru servore."
remote_interaction:
- proceed: Cunfirmà l'interazzione
- prompt: 'Vulete interagisce cù u statutu:'
+ favourite:
+ proceed: Cuntinuà per favurisce
+ prompt: 'Vulete aghjustà stu statutu à i vostri favuriti:'
+ reblog:
+ proceed: Cuntinuà per sparte
+ prompt: 'Vulete sparte stu statutu:'
+ reply:
+ proceed: Cuntinuà per risponde
+ prompt: 'Vulete risponde à stu statutu:'
remote_unfollow:
error: Errore
title: Titulu
unfollowed: Disabbunatu
+ scheduled_statuses:
+ over_daily_limit: Avete trapassatu a limita di %{limit} statuti planificati per stu ghjornu
+ over_total_limit: Avete trapassatu a limita di %{limit} statuti planificati
+ too_soon: A data deve esse indè u futuru
sessions:
activity: Ultima attività
browser: Navigatore
@@ -758,6 +811,7 @@ co:
development: Sviluppu
edit_profile: Mudificà u prufile
export: Spurtazione d’infurmazione
+ featured_tags: Hashtag in vista
followers: Abbunati auturizati
import: Impurtazione
migrate: Migrazione di u contu
@@ -800,7 +854,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: |
@@ -886,9 +940,9 @@ co:
Originellement adapté de la politique de confidentialité de Discourse.
title: Termini d’usu è di cunfidenzialità per %{instance}
themes:
- contrast: Cuntrastu altu
- default: Mastodon
- mastodon-light: Mastodon (chjaru)
+ contrast: Mastodon (Cuntrastu altu)
+ default: Mastodon (Scuru)
+ mastodon-light: Mastodon (Chjaru)
time:
formats:
default: "%d %b %Y, %H:%M"
@@ -914,6 +968,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.
diff --git a/config/locales/cs.yml b/config/locales/cs.yml
index 506b7ca24..7a4c3f255 100644
--- a/config/locales/cs.yml
+++ b/config/locales/cs.yml
@@ -2,12 +2,12 @@
cs:
about:
about_hashtag_html: Tohle jsou veřejné tooty označené hashtagem
#%{hashtag}. Pokud máte účet kdekoliv na fediverse, můžete s nimi interagovat.
- about_mastodon_html: Mastodon je sociální síť založená na otevřených webových protokolech a svobodném, otevřeném softwaru. Je decentrovalizovaná jako e-mail.
- about_this: O této instanci
- administered_by: 'Instanci spravuje:'
+ about_mastodon_html: Mastodon je sociální síť založená na otevřených webových protokolech a svobodném, otevřeném softwaru. Je decentralizovaná jako e-mail.
+ about_this: O tomto serveru
+ administered_by: 'Server spravuje:'
api: API
apps: Mobilní aplikace
- closed_registrations: Registrace na této instanci jsou momentálně uzavřené. Ale pozor! Můžete si najít jinou instanci, vytvořit si na ní účet a získat z ní přístup do naprosto stejné sítě.
+ closed_registrations: Registrace na tomto serveru jsou momentálně uzavřené. Ale pozor! Můžete si najít jiný server, vytvořit si na něm účet a získat z něj přístup do naprosto stejné sítě.
contact: Kontakt
contact_missing: Nenastaveno
contact_unavailable: Neuvedeno
@@ -25,9 +25,9 @@ cs:
within_reach_body: Několik aplikací pro iOS, Android a jiné platformy vám díky jednoduchému API ekosystému dovolují držet krok s vašimi přáteli, ať už jste kdekoliv.
within_reach_title: Vždy v dosahu
generic_description: "%{domain} je jedním ze serverů v síti"
- hosted_on: Instance Mastodon na adrese %{domain}
+ hosted_on: Server Mastodon na adrese %{domain}
learn_more: Zjistit více
- other_instances: Seznam instancí
+ other_instances: Seznam serverů
privacy_policy: Zásady soukromí
source_code: Zdrojový kód
status_count_after:
@@ -46,9 +46,9 @@ cs:
choices_html: 'Volby uživatele %{name}:'
follow: Sledovat
followers:
- few: Sledovatelé
- one: Sledovatel
- other: Sledovatelů
+ few: Sledující
+ one: Sledující
+ other: Sledujících
following: Sledovaných
joined: Připojil/a se v %{date}
last_active: naposledy aktivní
@@ -74,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!
@@ -89,10 +92,11 @@ cs:
label: Změnit e-mail
new_email: Nový e-mail
submit: Změnit e-mail
- title: Změnit e-mail pro uživatele %{username}
+ title: Změnit e-mail uživateli %{username}
confirm: Potvrdit
confirmed: Potvrzeno
- confirming: Potvrzující
+ confirming: Potvrzuji
+ deleted: Smazáno
demote: Degradovat
disable: Zablokovat
disable_two_factor_authentication: Zakázat 2FA
@@ -105,11 +109,14 @@ cs:
enable: Povolit
enabled: Povoleno
feed_url: URL proudu
- followers: Sledovatelé
- followers_url: URL sledovatelů
+ followers: Sledující
+ followers_url: URL sledujících
follows: Sledovaní
+ header: Hlavička
inbox_url: URL přijatých zpráv
+ invited_by: Pozván/a uživatelem
ip: IP
+ joined: Připojil/a se
location:
all: Vše
local: Místní
@@ -122,7 +129,7 @@ cs:
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
@@ -130,14 +137,15 @@ cs:
no_limits_imposed: Nejsou nastavena žádná omezení
not_subscribed: Neodebírá
outbox_url: URL odchozích zpráv
- perform_full_suspension: Suspendovat
+ perform_full_suspension: Pozastavit
profile_url: URL profilu
promote: Povýšit
protocol: Protokol
public: Veřejný
push_subscription_expires: Odebírání PuSH expiruje
- redownload: Obnovit avatar
+ redownload: Obnovit profil
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
@@ -149,32 +157,33 @@ cs:
roles:
admin: Administrátor
moderator: Moderátor
- staff: Personál
+ staff: Člen personálu
user: Uživatel
salmon_url: URL Salmon
search: Hledat
- shared_inbox_url: URL sdílené schránky
+ shared_inbox_url: URL sdílených přijatých zpráv
show:
- created_reports: Nahlášení vytvořené z tohoto účtu
- report: nahlášení
- targeted_reports: Nahlášení vytvořena o tomto účtu
+ created_reports: Vytvořená nahlášení
+ targeted_reports: Nahlášeni ostatními
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
+ warn: Varovat
web: Web
action_logs:
actions:
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"
@@ -195,10 +204,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)"
@@ -216,15 +225,15 @@ cs:
emoji: Emoji
enable: Povolit
enabled_msg: Emoji bylo úspěšně povoleno
- image_hint: PNG až do 50KB
- listed: Uvedené
+ image_hint: PNG až do 50 KB
+ listed: Uvedeno
new:
title: Přidat nové vlastní emoji
overwrite: Přepsat
shortcode: Zkratka
shortcode_hint: Alespoň 2 znaky, pouze alfanumerické znaky a podtržítka
title: Vlastní emoji
- unlisted: Neuvedené
+ unlisted: Neuvedeno
update_failed_msg: Nebylo možné aktualizovat toto emoji
updated_msg: Emoji úspěšně aktualizováno!
upload: Nahrát
@@ -232,7 +241,7 @@ 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
@@ -251,7 +260,7 @@ cs:
week_users_active: aktivních tento týden
week_users_new: uživatelů tento týden
domain_blocks:
- add_new: Přidat nové
+ add_new: Přidat novou blokaci domény
created_msg: Blokace domény se právě vyřizuje
destroyed_msg: Blokace domény byla zrušena
domain: Doména
@@ -259,20 +268,20 @@ 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_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
+ reject_media_hint: Odstraní lokálně uložené soubory a odmítne jejich stažení v budoucnosti. Nepodstatné pro pozastavení
+ reject_reports: Odmítat nahlášení
+ reject_reports_hint: Ignorovat všechna nahlášení pocházející z této domény. Nepodstatné pro pozastavení
+ rejecting_media: odmítají se mediální soubory
+ rejecting_reports: odmítají se nahlášení
+ severity:
+ silence: utišené
+ suspend: pozastavené
show:
affected_accounts:
few: "%{count} účty v databázi byly ovlivněny"
@@ -280,11 +289,10 @@ cs:
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
+ undo: Odvolat blokaci domény
email_domain_blocks:
add_new: Přidat nový
created_msg: E-mailová doména úspěšně přidána na černou listinu
@@ -295,12 +303,25 @@ 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: Sledující uživatele %{acct}
instances:
- account_count: Známé účty
- domain_name: Doména
- reset: Resetovat
- search: Hledat
- title: Známé instance
+ delivery_available: Doručení je k dispozici
+ known_accounts:
+ few: "%{count} známé účty"
+ one: "%{count} známý účet"
+ other: "%{count} známých účtů"
+ moderation:
+ all: Vše
+ limited: Omezené
+ title: Moderace
+ title: Federace
+ total_blocked_by_us: Blokované námi
+ total_followed_by_them: Sledované jimi
+ total_followed_by_us: Sledované námi
+ total_reported: Nahlášení o nich
+ total_storage: Mediální přílohy
invites:
deactivate_all: Deaktivovat vše
filter:
@@ -371,14 +392,14 @@ cs:
desc_html: Pozměnit vzhled pomocí šablony CSS načtené na každé stránce
title: Vlastní CSS
hero:
- desc_html: Zobrazuje se na hlavní stránce. Doporučuje se rozlišení alespoň 600x100 px. Pokud toto není nastaveno, bude zobrazena miniatura instance
+ desc_html: Zobrazuje se na hlavní stránce. Doporučuje se rozlišení alespoň 600x100 px. Pokud toto není nastaveno, bude zobrazena miniatura serveru
title: Hlavní obrázek
mascot:
desc_html: Zobrazuje se na hlavní stránce. Doporučuje se rozlišení alespoň 293x205 px. Pokud toto není nastaveno, bude zobrazen výchozí maskot
title: Obrázek maskota
peers_api_enabled:
- desc_html: Domény, na které tato instance narazila ve fediverse
- title: Zveřejnit seznam objevených instancí
+ desc_html: Domény, na které tento server narazil ve fediverse
+ title: Zveřejnit seznam objevených serverů
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
@@ -406,20 +427,20 @@ cs:
title: Zobrazit odznak personálu
site_description:
desc_html: Úvodní odstavec na hlavní straně. Popište, díky čemu je tento server Mastodon zvláštní, a cokoliv jiného, co je důležité. Můžete zde používat HTML značky, hlavně
<a>
a
<em>
.
- title: Popis instance
+ title: Popis serveru
site_description_extended:
- desc_html: Dobré místo pro vaše pravidla, pokyny a jiné věci, které vaši instanci odlišují od ostatních. Lze použít HTML značky
+ desc_html: Dobré místo pro vaše pravidla, pokyny a jiné věci, které váš server odlišují od ostatních. Lze použít HTML značky
title: Vlastní doplňující informace
site_short_description:
- desc_html: Zobrazen v postranním panelu a meta značkách. Popište, co je Mastodon a díky čemu je tento server zvláštní v jediném odstavci. Je-li tohle prázdné, zobrazí se popis instance.
- title: Krátký popis instance
+ desc_html: Zobrazen v postranním panelu a meta značkách. Popište, co je Mastodon a díky čemu je tento server zvláštní v jediném odstavci. Je-li tohle prázdné, zobrazí se popis serveru.
+ title: Krátký popis serveru
site_terms:
desc_html: Můžete si napsat vlastní zásady soukromí, podmínky používání či jiné legality. Můžete použít HTML značky
title: Vlastní podmínky používání
- site_title: Název instance
+ site_title: Název serveru
thumbnail:
desc_html: Používáno pro náhledy přes OpenGraph a API. Doporučuje se rozlišení 1200x630px
- title: Miniatura instance
+ title: Miniatura serveru
timeline_preview:
desc_html: Zobrazit na hlavní straně veřejnou časovou osu
title: Náhled časové osy
@@ -453,6 +474,12 @@ cs:
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}"
@@ -474,7 +501,7 @@ cs:
warning: Buďte s těmito daty velmi opatrní. Nikdy je s nikým nesdílejte!
your_token: Váš přístupový token
auth:
- agreement_html: Kliknutím na tlačítko „Registrovat“ souhlasíte s následováním
pravidel této instance a
našich podmínek používání.
+ agreement_html: Kliknutím na tlačítko „Registrovat“ souhlasíte s následováním
pravidel tohoto serveru a
našich podmínek používání.
change_password: Heslo
confirm_email: Potvrdit e-mail
delete_account: Odstranit účet
@@ -528,22 +555,25 @@ cs:
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_html: Pouze vymazání obsahu z tohoto konkrétního serveru 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ů
+ enabled: Aktuálně jste v adresáři uveden/a.
+ enabled_but_waiting: Přihlásil/a jste se k uvedení v adresáři, ale ještě nemáte minimální počet sledujících (%{min_followers}) pro uvedení.
explanation: Objevujte uživatele podle jejich zájmů
explore_mastodon: Prozkoumejte %{title}
+ how_to_enable: Aktuálně nejste přihlášen/a do adresáře. Přihlásit se můžete níže. Použijte ve svém popisu profilu hashtagy, abyste mohl/a být uveden/a pod konkrétními hashtagy!
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.
- '410': Stránka, kterou hledáte, již neexistuje.
+ '404': Stránka, kterou hledáte, tu není.
+ '410': Stránka, kterou hledáte, tu již neexistuje.
'422':
- content: Bezpečnostní ověření selhalo. Neblokujete cookoes?
+ content: Bezpečnostní ověření selhalo. Neblokujete cookies?
title: Bezpečnostní ověření selhalo
'429': Příliš mnoho požadavků
'500':
@@ -554,15 +584,21 @@ cs:
archive_takeout:
date: Datum
download: Stáhnout svůj archiv
- hint_html: Můžete si vyžádat archiv vašich
tootů a nahraných médií. Exportovaná data budou ve formátu ActivityPub a budou čitelné kterýmkoliv kompatibilním softwarem. Archiv si můžete vyžádat každých 7 dní.
+ hint_html: Můžete si vyžádat archiv vašich
tootů a nahraných médií. Exportovaná data budou ve formátu ActivityPub a budou čitelná kterýmkoliv kompatibilním softwarem. Archiv si můžete vyžádat každých 7 dní.
in_progress: Kompiluji váš archiv...
request: Vyžádat svůj archiv
size: Velikost
blocks: Blokujete
csv: CSV
+ domain_blocks: Blokace domén
follows: Sledujete
+ lists: Seznamy
mutes: Ignorujete
storage: Paměť médií
+ featured_tags:
+ add_new: Přidat nový
+ errors:
+ limit: Již jste nastavil/a maximální počet oblíbených hashtagů
filters:
contexts:
home: Domovská časová osa
@@ -581,17 +617,17 @@ cs:
title: Přidat nový filtr
followers:
domain: Doména
- explanation_html: Chcete-li zaručit soukromí vašich příspěvků, musíte mít na vědomí, kdo vás sleduje.
Vaše soukromé příspěvky jsou doručeny na všechny instance, kde máte sledovatele. Nejspíš si je budete chtít zkontrolovat a odstranit sledovatele na instancích, jejichž personálu či softwaru nedůvěřujete s respektováním vašeho soukromí.
- followers_count: Počet sledovatelů
+ explanation_html: Chcete-li zaručit soukromí vašich příspěvků, musíte mít na vědomí, kdo vás sleduje.
Vaše soukromé příspěvky jsou doručeny na všechny servery, kde máte sledující. Nejspíš si je budete chtít zkontrolovat a odstranit sledující na serverech, jejichž provozovatelům či softwaru nedůvěřujete s respektováním vašeho soukromí.
+ followers_count: Počet sledujících
lock_link: Zamkněte svůj účet
- purge: Odstranit ze sledovatelů
+ purge: Odstranit ze sledujících
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...
+ few: V průběhu blokování sledujících ze %{count} domén...
+ one: V průběhu blokování sledujících z jedné domény...
+ other: V průběhu blokování sledujících 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ý
+ 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 kontrolovat a odmítat sledující.
+ unlocked_warning_title: Váš účet není uzamčen
footer:
developers: Vývojáři
more: Více…
@@ -603,12 +639,18 @@ cs:
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 není úplně v pořádku! Prosím zkontrolujte %{count} pochybení 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.
+ modes:
+ merge: Sloučit
+ merge_long: Ponechat existující záznamy a přidat nové
+ overwrite: Přepsat
+ overwrite_long: Nahradit aktuální záznamy novými
+ preface: Můžete importovat data, která jste exportoval/a z jiného serveru, 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
types:
blocking: Seznam blokovaných
+ domain_blocking: Seznam blokovaných domén
following: Seznam sledovaných
muting: Seznam ignorovaných
upload: Nahrát
@@ -631,7 +673,7 @@ cs:
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
+ prompt: Vygenerujte a sdílejte s ostatními odkazy a umožněte jim přístup na tento server
table:
expires_at: Vyprší
uses: Použití
@@ -656,9 +698,9 @@ cs:
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:
- 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: Taktéž jste získal/a %{count} nových sledovatelů, zatímco jste byl/a pryč! Vynikající!
+ few: Navíc jste získal/a %{count} nové sledující, zatímco jste byl/a pryč! Skvělé!
+ one: Navíc jste získal/a jednoho nového sledujícího, zatímco jste byl/a pryč! Hurá!
+ other: Navíc jste získal/a %{count} nových sledujících, 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"
@@ -671,11 +713,11 @@ cs:
follow:
body: "%{name} vás nyní sleduje!"
subject: "%{name} vás nyní sleduje"
- title: Nový sledovatel
+ title: Nový sledující
follow_request:
action: Spravovat požadavky o sledování
body: "%{name} požádal/a o povolení vás sledovat"
- subject: 'Čekající sledovatel: %{name}'
+ subject: 'Čekající sledující: %{name}'
title: Nový požadavek o sledování
mention:
action: Odpovědět
@@ -713,13 +755,25 @@ cs:
no_account_html: Ještě nemáte účet? Můžete se
registrovat zde
proceed: Pokračovat ke sledování
prompt: 'Budete sledovat:'
+ reason_html: "
Proč je tento krok nutný? %{instance}
nemusí být serverem, na kterém jste registrován/a, proto vás musíme nejdříve přesměrovat na váš domovský server."
remote_interaction:
- proceed: Pokračovat k interakci
- prompt: 'Chcete interagovat s tímto tootem:'
+ favourite:
+ proceed: Pokračovat k oblíbení
+ prompt: 'Chcete si oblíbit tento toot:'
+ reblog:
+ proceed: Pokračovat k boostnutí
+ prompt: 'Chcete boostnout tento toot:'
+ reply:
+ proceed: Pokračovat k odpovězení
+ prompt: 'Chcete odpovědět na tento toot:'
remote_unfollow:
error: Chyba
title: Nadpis
unfollowed: Už nesledujete
+ scheduled_statuses:
+ over_daily_limit: Překročil/a jste limit %{limit} plánovaných tootů pro tento den
+ over_total_limit: Překročil/a jste limit %{limit} plánovaných tootů
+ too_soon: Plánované datum musí být v budoucnosti
sessions:
activity: Nejnovější aktivita
browser: Prohlížeč
@@ -768,7 +822,8 @@ cs:
development: Vývoj
edit_profile: Upravit profil
export: Export dat
- followers: Autorizovaní sledovatelé
+ featured_tags: Oblíbené hashtagy
+ followers: Autorizovaní sledující
import: Import
migrate: Přesunutí účtu
notifications: Oznámení
@@ -805,12 +860,12 @@ cs:
sign_in_to_participate: Chcete-li se účastnit této konverzace, přihlaste se
title: "%{name}: „%{quote}“"
visibilities:
- private: Pouze pro sledovatele
- private_long: Zobrazit pouze sledovatelům
+ private: Pouze pro sledující
+ private_long: Zobrazit pouze sledujícím
public: Veřejné
public_long: Všichni mohou vidět
unlisted: Neuvedené
- unlisted_long: Všichni mohou vidět, ale není zahrnut ve veřejných časových osách
+ unlisted_long: Všichni mohou vidět, ale nebudou zahrnuty ve veřejných časových osách
stream_entries:
pinned: Připnutý toot
reblogged: boostnul/a
@@ -822,8 +877,8 @@ 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ž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.
+ - Příspěvky, sledující a další veřejné informace: Seznam lidí, které sledujete, je uveden veřejně, totéž platí i pro vaše sledující. 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 sledující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 sledující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 sledující: Všechny příspěvky jsou uloženy a zpracovány na serveru. Příspěvky pouze pro sledující jsou doručeny vašim sledující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 sledující patří. V nastavení si můžete zapnout volbu pro manuální schvalování či odmítnutí nových sledujících. 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.
@@ -864,7 +919,7 @@ cs:
Používáme cookies?
-
Ano. Cookies jsou malé soubory, které stránka nebo její poskytovatel uloží na pevný disk vašeho počítače (pokud to dovolíte). Tyto cookies umožňují stránce rozpoznat váš prohlížeč a, pokud máte registrovaný účet, přidružit ho s vaším registrovaným účtem.
+
Ano. Cookies jsou malé soubory, které stránka nebo její poskytovatel uloží na pevný disk vašeho počítače (pokud to dovolíte). Tyto cookies umožňují stránce rozpoznat váš prohlížeč, a pokud máte registrovaný účet, přidružit ho s vaším registrovaným účtem.
Používáme cookies pro pochopení a ukládání vašich předvoleb pro budoucí návštěvy.
@@ -874,15 +929,15 @@ cs:
Vaše osobně identifikovatelné informace neprodáváme, neobchodujeme s nimi, ani je nijak nepřenášíme vnějším stranám. Do tohoto se nepočítají důvěryhodné třetí strany, které nám pomáhají provozovat naši stránku, podnikat, nebo vás obsluhovat, pokud tyto strany souhlasí se zachováním důvěrnosti těchto informací. Můžeme také uvolnit vaše informace, pokud věříme, že je to nutné pro soulad se zákonem, prosazování našich zásad, nebo ochranu práv, majetku, či bezpečnost nás či ostatních.
-
Váš veřejný obsah může být stažen jinými servery na síti. Vaše příspěvky veřejné a pouze pro sledovatele budou doručeny na servery vašich sledovatelů a přímé zprávy budou doručeny na servery příjemců, pokud jsou tito sledovatelé nebo příjemci zaregistrováni na jiném serveru, než je tento.
+
Váš veřejný obsah může být stažen jinými servery na síti. Vaše příspěvky veřejné a pouze pro sledující budou doručeny na servery vašich sledujících a přímé zprávy budou doručeny na servery příjemců, pokud jsou tito sledující nebo příjemci zaregistrováni na jiném serveru, než je tento.
-
Když autorizujete aplikaci, aby používala váš účet, může, v závislosti na rozsahu oprávnění, které jí udělíte, přistupovat k vašim veřejným profilovým informacím, seznamu lidí, které sledujete, vašim sledovatelům, vašim seznamům, všem vašim příspěvkům a příspěvkům, které jste si oblíbili. Aplikace nikdy nemohou získat vaši e-mailovou adresu či heslo.
+
Když autorizujete aplikaci, aby používala váš účet, může, v závislosti na rozsahu oprávnění, které jí udělíte, přistupovat k vašim veřejným profilovým informacím, seznamu lidí, které sledujete, vašim sledujícím, vašim seznamům, všem vašim příspěvkům a příspěvkům, které jste si oblíbili. Aplikace nikdy nemohou získat vaši e-mailovou adresu či heslo.
Používání stránky dětmi
-
Pokud se tento server nachází v EU nebo EHP: Naše stránka, produkty a služby jsou všechny směřovány na lidi, kterým je alespoň 16 let. Pokud je vám méně než 16, dle požadavků nařízení GDPR (Obecné nařízení o ochraně sobních údajů) tuto stránku nepoužívejte.
+
Pokud se tento server nachází v EU nebo EHP: Naše stránka, produkty a služby jsou všechny směřovány na lidi, kterým je alespoň 16 let. Pokud je vám méně než 16, dle požadavků nařízení GDPR (Obecné nařízení o ochraně osobních údajů) tuto stránku nepoužívejte.
Pokud se tento server nachází v USA: Naše stránka, produkty a služby jsou všechny směřovány na lidi, kterým je alespoň 13 let. Pokud je vám méně než 13, dle požadavků zákona COPPA (Children's Online Privacy Protection Act) tuto stránku nepoužívejte.
@@ -899,8 +954,8 @@ cs:
Původně adaptováno ze zásad soukromí Discourse.
title: Podmínky používání a zásady soukromí %{instance}
themes:
- contrast: Vysoký kontrast
- default: Mastodon
+ contrast: Mastodon (vysoký kontrast)
+ default: Mastodon (tmavý)
mastodon-light: Mastodon (světlý)
time:
formats:
@@ -927,14 +982,30 @@ 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 sledující.
+ 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.
+ 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é sledující předtím, než vás mohou sledovat, můžete svůj účet uzamknout.
explanation: Zde je pár tipů na začátek
final_action: Začněte přispívat
- final_step: 'Začněte přispívat! I když nemáte sledovatele, mohou vaše zprávy vidět jiní lidé, například na místní časové ose a mezi hashtagy. Můžete se ostatním představit pomocí hashtagu #introductions.'
+ final_step: 'Začněte přispívat! I když nemáte sledující, mohou vaše zprávy vidět jiní lidé, například na místní časové ose a mezi hashtagy. Můžete se ostatním představit pomocí hashtagu #introductions.'
full_handle: Vaše celá adresa profilu
- full_handle_hint: Tohle je, co byste řekl/a svým přátelům, aby vám mohli posílat zprávy nebo vás sledovat z jiné instance.
+ full_handle_hint: Tohle je, co byste řekl/a svým přátelům, aby vám mohli posílat zprávy nebo vás sledovat z jiného serveru.
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
diff --git a/config/locales/cy.yml b/config/locales/cy.yml
index 9f8144ff2..f225cc086 100644
--- a/config/locales/cy.yml
+++ b/config/locales/cy.yml
@@ -30,18 +30,37 @@ cy:
other_instances: Rhestr achosion
privacy_policy: Polisi preifatrwydd
source_code: Cod ffynhonnell
- status_count_after: statws
+ status_count_after:
+ few: statwsau
+ many: statwsau
+ one: statws
+ other: statwsau
+ two: statwsau
+ zero: statwsau
status_count_before: Ysgriffennwyd gan
terms: Telerau gwasanaeth
- user_count_after: defnyddwyr
+ user_count_after:
+ few: defnyddwyr
+ many: defnyddwyr
+ one: defnyddiwr
+ other: defnyddwyr
+ two: defnyddwyr
+ zero: defnyddwyr
user_count_before: Cartref i
what_is_mastodon: Beth yw Mastodon?
accounts:
choices_html: 'Dewisiadau %{name}:'
follow: Dilynwch
- followers: Dilynwyr
+ followers:
+ few: Dilynwyr
+ many: Dilynwyr
+ one: Dilynwr
+ other: Dilynwyr
+ two: Dilynwyr
+ zero: Dilynwyr
following: Yn dilyn
joined: Ymunodd %{date}
+ last_active: diweddaraf
link_verified_on: Gwiriwyd perchnogaeth y ddolen yma ar %{date}
media: Cyfryngau
moved_html: 'Mae %{name} wedi symud i %{new_profile_link}:'
@@ -51,7 +70,13 @@ cy:
people_who_follow: Pobl sy'n dilyn %{name}
pin_errors:
following: Rhaid i ti fod yn dilyn y person yr ydych am ei gymeradwyo yn barod
- posts: Tŵtiau
+ posts:
+ few: Tŵtiau
+ many: Tŵtiau
+ one: Tŵt
+ other: Tŵtiau
+ two: Tŵtiau
+ zero: Tŵtiau
posts_tab_heading: Tŵtiau
posts_with_replies: Tŵtiau ac atebion
reserved_username: Mae'r enw defnyddiwr ar gadw
@@ -61,6 +86,9 @@ cy:
moderator: Safonwr
unfollow: Dad-ddilyn
admin:
+ account_actions:
+ action: Cyflawni gweithred
+ title: Perfformio cymedroli ar %{acct}
account_moderation_notes:
create: Gadael nodyn
created_msg: Crewyd nodyn cymedroli yn llwyddiannus!
@@ -80,6 +108,7 @@ cy:
confirm: Cadarnhau
confirmed: Cadarnhawyd
confirming: Cadarnhau
+ deleted: Wedi dileu
demote: Diraddio
disable: Diffodd
disable_two_factor_authentication: Diffodd 2FA
@@ -95,8 +124,11 @@ cy:
followers: Dilynwyr
followers_url: URL Dilynwyr
follows: Yn dilyn
+ header: Pennawd
inbox_url: URL Mewnflwch
+ invited_by: Gwahoddwyd gan
ip: IP
+ joined: Ymunodd
location:
all: Popeth
local: Lleol
@@ -106,6 +138,7 @@ cy:
media_attachments: Atodiadau
memorialize: Troi yn gofeb
moderation:
+ active: Yn weithredol
all: Popeth
silenced: Wedi ei dawelu
suspended: Wedi ei atal
@@ -122,8 +155,9 @@ cy:
protocol: Protocol
public: Cyhoeddus
push_subscription_expires: Tanysgrifiad PuSH yn dod i ben
- redownload: Adnewyddu afatar
+ redownload: Adnewyddu proffil
remove_avatar: Dileu afatar
+ remove_header: Dileu pennawd
resend_confirmation:
already_confirmed: Mae'r defnyddiwr hwn wedi ei gadarnhau yn barod
send: Ailanfonwch e-bost cadarnhad
@@ -141,9 +175,8 @@ cy:
search: Chwilio
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
+ created_reports: Adroddiadau a wnaed
+ targeted_reports: Adroddwyd gan eraill
silence: Tawelu
silenced: Tawelwyd
statuses: Statysau
@@ -155,12 +188,14 @@ cy:
undo_suspension: Dadwneud ataliad
unsubscribe: Dad-danysgrifio
username: Enw defnyddiwr
+ warn: Rhybuddio
web: Gwe
action_logs:
actions:
assigned_to_self_report: Aseiniodd %{name} adroddiad %{target} i'w hunan
change_email_user: Newidodd %{name} gyfeiriad e-bost y defnyddiwr %{target}
confirm_user: Cadarnhaodd %{name} gyfeiriad e-bost y defnyddiwr %{target}
+ create_account_warning: Anfonwyd rhybudd i %{target} gan %{name}
create_custom_emoji: Uwchlwythodd %{name} emoji newydd %{target}
create_domain_block: Blociodd %{name} y parth %{target}
create_email_domain_block: Cosbrestrwyd parth e-bost %{target} gan %{name}
@@ -219,6 +254,7 @@ cy:
config: Cyfluniad
feature_deletions: Dileadau cyfrif
feature_invites: Dolenni gwahodd
+ feature_profile_directory: Cyfeiriadur proffil
feature_registrations: Cofrestriadau
feature_relay: Relái ffederasiwn
features: Nodweddion
@@ -236,7 +272,7 @@ cy:
week_users_active: gweithredol yr wythnos hon
week_users_new: defnyddwyr yr wythnos hon
domain_blocks:
- add_new: Ychwanegu
+ add_new: Ychwanegu bloc parth newydd
created_msg: Mae'r bloc parth nawr yn cael ei brosesu
destroyed_msg: Mae'r bloc parth wedi ei ddadwneud
domain: Parth
@@ -253,20 +289,25 @@ 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
+ rejecting_media: Yn gwrthod ffeiliau cyfryngau
+ rejecting_reports: Yn gwrthod adroddiadau
+ severity:
+ silence: tawelu
+ suspend: ataliedig
show:
- affected_accounts: "%{count} o gyfrifoedd yn y bas data wedi eu hefeithio"
+ affected_accounts:
+ few: Effeithiwyd ar %{count} gyfrifon
+ many: Effeithiwyd ar %{count} gyfrifon
+ one: Effeithiwyd ar un cyfrif
+ other: Effeithiwyd ar %{count} gyfrifon
+ two: Effeithiwyd ar %{count} gyfrifon
+ zero: Effeithiwyd ar %{count} gyfrifon
retroactive:
silence: Dad-dawelu pob cyfri presennol o'r parth hwn
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
+ undo: Dadwneud bloc parth
email_domain_blocks:
add_new: Ychwanegu
created_msg: Llwyddwyd i ychwanegu parth e-bost i'r gosbrestr
@@ -277,12 +318,28 @@ cy:
create: Ychwanegu parth
title: Cofnod newydd yng nghosbrestr e-byst
title: Cosbrestr e-bost
+ followers:
+ back_to_account: Nôl i'r gyfrif
+ title: Dilynwyr %{acct}
instances:
- account_count: Cyfrifau hysbys
- domain_name: Parth
- reset: Ailosod
- search: Chwilio
- title: Achosion hysbys
+ delivery_available: Mae'r cyflenwad ar gael
+ known_accounts:
+ few: "%{count} cyfrifon hysbys"
+ many: "%{count} cyfrifon hysbys"
+ one: "%{count} cyfrif hysbys"
+ other: "%{count} cyfrifon hysbys"
+ two: "%{count} cyfrifon hysbys"
+ zero: "%{count} cyfrifon hysbys"
+ moderation:
+ all: Pob
+ limited: Gyfyngedig
+ title: Cymedroli
+ title: Ffederasiwn
+ total_blocked_by_us: Wedi'i bloc gan ni
+ total_followed_by_them: Yn dilyn ganynt
+ total_followed_by_us: Yn dilyn ganom ni
+ total_reported: Adroddiadau amdanynt
+ total_storage: Atodiadau cyfryngau
invites:
deactivate_all: Diffodd pob un
filter:
@@ -364,6 +421,9 @@ cy:
preview_sensitive_media:
desc_html: Bydd rhagolygon ar wefannau eraill yn dangos ciplun hyd yn oed os oes na gyfryngau wedi eu marcio'n sensitif
title: Dangos cyfryngau sensitif mewn rhagolygon OpenGraph
+ profile_directory:
+ desc_html: Caniatáu i ddefnyddwyr gael eu gweld
+ title: Galluogi cyfeiriadur proffil
registrations:
closed_message:
desc_html: I'w arddangos ar y dudalen flaen wedi i gofrestru cau. Mae modd defnyddio tagiau HTML
@@ -423,7 +483,19 @@ cy:
last_delivery: Danfoniad diwethaf
title: WebSub
topic: Pwnc
+ tags:
+ accounts: Cyfrifon
+ hidden: Cudd
+ hide: Cuddio o gyfeiriadur
+ name: Hashnod
+ title: Hashnodau
+ unhide: Dangoswch yn y cyfeiriadur
+ visible: Gweladwy
title: Gweinyddiaeth
+ warning_presets:
+ add_new: Ychwanegu newydd
+ delete: Dileu
+ edit: Golygu
admin_mailer:
new_report:
body: Mae %{reporter} wedi cwyno am %{target}
@@ -501,6 +573,20 @@ cy:
success_msg: Llwyddwyd i ddileu eich cyfrif
warning_html: Dim ond dileu cynnwys o'r achos hwn ellid bod yn sicr ei fod wedi ei ddileu. Mae cynnwys sydd wedi ei rannu'n eang yn debygol o adael olion. Ni fydd gweinyddwyr all-lein a gweinyddwyr sydd wedi dad-danysgrifio o'ch diwedderiadau ddim yn diweddaru eu cronfeydd data.
warning_title: Argaeledd cynnwys wedi'i rannu
+ directories:
+ directory: Cyfeiriadur proffil
+ enabled: Rydych chi wedi'ch rhestru yn y cyfeiriadur ar hyn o bryd.
+ enabled_but_waiting: Rydych wedi dewis i chi gael eich rhestru yn y cyfeiriadur, ond nid oes gennych y nifer lleiaf o ddilynwyr (%{min_followers}) i'w rhestru eto.
+ explanation: Darganfod defnyddwyr yn seiliedig ar eu diddordebau
+ explore_mastodon: Archwilio %{title}
+ how_to_enable: Ar hyn o bryd nid ydych chi wedi dewis y cyfeiriadur. Gallwch ddewis i mewn isod. Defnyddiwch hashnodau yn eich bio-destun i'w restru dan hashnodau penodol!
+ people:
+ few: "%{count} personau"
+ many: "%{count} personau"
+ one: "%{count} person"
+ other: "%{count} personau"
+ two: "%{count} personau"
+ zero: "%{count} personau"
errors:
'403': Nid oes gennych ganiatad i weld y dudalen hon.
'404': Nid yw'r dudalen yr oeddech yn chwilio amdani'n bodoli.
@@ -508,7 +594,7 @@ cy:
'422':
content: Methwyd i ddilysu diogelwch. A ydych chi'n blocio cwcîs?
title: Methwyd i ddilysu diogelwch
- '429': Crogwyd
+ '429': Wedi'i arafu
'500':
content: Mae'n ddrwg gennym ni, ond fe aeth rhywbeth o'i le ar ein rhan ni.
title: Nid yw'r dudalen hon yn gywir
@@ -523,7 +609,9 @@ cy:
size: Maint
blocks: Yr ydych yn blocio
csv: CSV
+ domain_blocks: Blociau parth
follows: Yr ydych yn dilyn
+ lists: Rhestrau
mutes: Yr ydych yn tawelu
storage: Storio cyfryngau
filters:
@@ -548,7 +636,13 @@ cy:
followers_count: Nifer y dilynwyr
lock_link: Cloi eich cyfrif
purge: Dileu o dilynwyr
- success: Yn y broses o ysgafn-flocio dilynwyr o %{count} parth...
+ success:
+ few: Yn y broses o ysgafn-flocio defnyddwyr o %{count} parth...
+ many: Yn y broses o ysgafn-flocio defnyddwyr o %{count} parth...
+ one: Yn y broses o ysgafn-flocio dilynwyr o un parth...
+ other: Yn y broses o ysgafn-flocio defnyddwyr o %{count} parth...
+ two: Yn y broses o ysgafn-flocio defnyddwyr o %{count} parth...
+ zero: Yn y broses o ysgafn-flocio defnyddwyr o %{count} parth...
true_privacy_html: Cofiwch
mai ond amgryptio pen-i-ben all sicrhau gwir breifatrwydd.
unlocked_warning_html: Gall unrhywun eich dilyn yn syth i weld eich tŵtiau preifat. %{lock_link} i gael adolygu a gwrthod dilynwyr.
unlocked_warning_title: Nid yw eich cyfrif wedi ei gloi
@@ -560,7 +654,13 @@ cy:
changes_saved_msg: Llwyddwyd i gadw y newidiadau!
copy: Copïo
save_changes: Cadw newidiadau
- validation_errors: Mae rhywbeth o'i le o hyd! Edrychwch ar y %{count} gwall isod os gwelwch yn dda
+ validation_errors:
+ few: Mae rhywbeth o'i le o hyd! Edrychwch ar y %{count} gwall isod os gwelwch yn dda
+ many: Mae rhywbeth o'i le o hyd! Edrychwch ar y %{count} gwall isod os gwelwch yn dda
+ one: Mae rhywbeth o'i le o hyd! Edrychwch ar y gwall isod os gwelwch yn dda
+ other: Mae rhywbeth o'i le o hyd! Edrychwch ar y %{count} gwall isod os gwelwch yn dda
+ two: Mae rhywbeth o'i le o hyd! Edrychwch ar y %{count} gwall isod os gwelwch yn dda
+ zero: Mae rhywbeth o'i le o hyd! Edrychwch ar y %{count} gwall isod os gwelwch yn dda
imports:
preface: Mae modd mewnforio data yr ydych wedi allforio o achos arall, megis rhestr o bobl yr ydych yn ei ddilyn neu yn blocio.
success: Uwchlwythwyd eich data yn llwyddiannus ac fe fydd yn cael ei brosesu mewn da bryd
@@ -583,7 +683,13 @@ cy:
expires_in_prompt: Byth
generate: Cynhyrchu
invited_by: 'Cawsoch eich gwahodd gan:'
- max_uses: "%{count} defnydd"
+ max_uses:
+ few: "%{count} defnydd"
+ many: "%{count} defnydd"
+ one: 1 iws
+ other: "%{count} defnydd"
+ two: "%{count} defnydd"
+ zero: "%{count} defnydd"
max_uses_prompt: Dim terfyn
prompt: Cynhyrchwch a rhannwch ddolenni gyda eraill i ganiatau mynediad i'r achos hwn
table:
@@ -609,8 +715,20 @@ cy:
action: Gweld holl hysbysiadau
body: Dyma grynodeb byr o'r holl negeseuon golloch chi ers eich ymweliad diwethaf ar %{since}
mention: 'Soniodd %{name} amdanoch chi:'
- new_followers_summary: Hefyd, rydych wedi ennill %{count} dilynwr newydd tra eich bod i ffwrdd! Hwrê!
- subject: "%{count} hysbysiad newydd ers eich ymweliad diwethaf \U0001F418"
+ new_followers_summary:
+ few: Hefyd, rydych wedi ennill %{count} dilynwr newydd tra eich bod i ffwrdd! Hwrê!
+ many: Hefyd, rydych wedi ennill %{count} dilynwr newydd tra eich bod i ffwrdd! Hwrê!
+ one: Yr ydych wedi ennill dilynwr newydd tra eich bod i ffwrdd! Hwrê!
+ other: Hefyd, rydych wedi ennill %{count} dilynwr newydd tra eich bod i ffwrdd! Hwrê!
+ two: Hefyd, rydych wedi ennill %{count} dilynwr newydd tra eich bod i ffwrdd! Hwrê!
+ zero: Hefyd, rydych wedi ennill %{count} dilynwr newydd tra eich bod i ffwrdd! Hwrê!
+ subject:
+ few: "%{count} hysbysiad newydd ers eich ymweliad diwethaf"
+ many: "%{count} hysbysiad newydd ers eich ymweliad diwethaf"
+ one: 1 hysbysiad newydd ers eich ymweliad diwethaf
+ other: "%{count} hysbysiad newydd ers eich ymweliad diwethaf"
+ two: "%{count} hysbysiad newydd ers eich ymweliad diwethaf"
+ zero: "%{count} hysbysiad newydd ers eich ymweliad diwethaf"
title: Yn eich absenoldeb...
favourite:
body: 'Cafodd eich statws ei hoffi gan %{name}:'
@@ -661,9 +779,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
@@ -727,11 +842,29 @@ cy:
statuses:
attached:
description: 'Ynghlwm: %{attached}'
- image: "%{count} o luniau"
- video: "%{count} fideo"
+ image:
+ few: "%{count} o luniau"
+ many: "%{count} o luniau"
+ one: "%{count} llun"
+ other: "%{count} o luniau"
+ two: "%{count} o luniau"
+ zero: "%{count} o luniau"
+ video:
+ few: "%{count} fideo"
+ many: "%{count} fideo"
+ one: "%{count} fideo"
+ other: "%{count} fideo"
+ two: "%{count} fideo"
+ zero: "%{count} fideo"
boosted_from_html: Wedi ei fŵstio %{acct_link}
content_warning: 'Rhybudd cynnwys: %{warning}'
- disallowed_hashtags: 'yn cynnwys yr hashnod gwaharddedig: %{tags}'
+ disallowed_hashtags:
+ few: 'yn cynnwys yr hashnod gwaharddedig: %{tags}'
+ many: 'yn cynnwys yr hashnod gwaharddedig: %{tags}'
+ one: 'yn cynnwys hashnod gwaharddedig: %{tags}'
+ other: 'yn cynnwys yr hashnod gwaharddedig: %{tags}'
+ two: 'yn cynnwys yr hashnod gwaharddedig: %{tags}'
+ zero: 'yn cynnwys yr hashnod gwaharddedig: %{tags}'
language_detection: Canfod iaith yn awtomataidd
open_in_web: Agor yn y wê
over_character_limit: wedi mynd heibio'r uchafswm nodyn o %{max}
@@ -866,13 +999,27 @@ cy:
explanation: Fe wnaethoch chi gais am gopi wrth gefn llawn o'ch cyfrif Mastodon. Mae nawr yn barod i'w lawrlwytho!
subject: Mae eich archif yn barod i'w lawrlwytho
title: Allfudo archif
+ warning:
+ explanation:
+ disable: Er bod eich cyfrif wedi'i rewi, mae eich data cyfrif yn parhau i fod yn gyfan, ond ni allwch chi berfformio unrhyw gamau nes ei ddatgloi.
+ review_server_policies: Adolygu polisïau'r gweinydd
+ subject:
+ disable: Mae'ch cyfrif %{acct} wedi'i rewi
+ none: Rhybudd am %{acct}
+ silence: Mae'ch cyfrif %{acct} wedi bod yn gyfyngedig
+ suspend: Mae'ch cyfrif %{acct} wedi'i atal
+ title:
+ disable: Cyfrif wedi'i rewi
+ none: Rhybudd
+ silence: Cyfrif cyfyngedig
+ suspend: Cyfrif wedi'i rewi
welcome:
edit_profile_action: Sefydlu proffil
edit_profile_step: Mae modd i chi addasu eich proffil drwy uwchlwytho afatar, pennawd, drwy newid eich enw arddangos a mwy. Os hoffech chi adolygu dilynwyr newydd cyn iddynt gael caniatad i'ch dilyn, mae modd i chi gloi eich cyfrif.
explanation: Dyma ambell nodyn i'ch helpu i ddechrau
final_action: Dechrau postio
final_step: 'Dechrau postio! Hyd yn oed heb ddilynwyr mae''n bosib i eraill weld eich negeseuon cyhoeddus, er enghraifft at y ffrwd leol ac mewn hashnodau. Mae''n bosib yr hoffech hi gyflwyno''ch hun ar yr hashnod #introductions.'
- full_handle: Eich enw Mastodon llawn
+ full_handle: Eich enw llawn
full_handle_hint: Dyma'r hyn y bysech yn dweud wrth eich ffrindiau er mwyn iddyn nhw gael anfon neges atoch o achos arall.
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.
diff --git a/config/locales/da.yml b/config/locales/da.yml
index f989549d7..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!
@@ -149,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
@@ -258,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
@@ -272,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
@@ -284,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
@@ -427,6 +420,9 @@ da:
last_delivery: Sidste levering
title: Websub
topic: Emne
+ tags:
+ accounts: Kontoer
+ hidden: Skjult
title: Administration
admin_mailer:
new_report:
@@ -676,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
diff --git a/config/locales/de.yml b/config/locales/de.yml
index c33a6c0db..1dff7156e 100644
--- a/config/locales/de.yml
+++ b/config/locales/de.yml
@@ -1,13 +1,13 @@
---
de:
about:
- about_hashtag_html: Dies sind öffentliche Beiträge, die mit
#%{hashtag} getaggt wurden. Wenn du ein Konto irgendwo im Fediversum besitzt, kannst du mit ihnen interagieren.
+ about_hashtag_html: Dies sind öffentliche Beiträge, die mit
#%{hashtag} getaggt wurden. Wenn du irgendwo im Fediversum ein Konto besitzt, kannst du mit ihnen interagieren.
about_mastodon_html: Mastodon ist ein soziales Netzwerk. Es basiert auf offenen Web-Protokollen und freier, quelloffener Software. Es ist dezentral (so wie E-Mail!).
about_this: Über diese Instanz
administered_by: 'Administriert von:'
api: API
apps: Mobile Apps
- closed_registrations: Die Registrierung auf dieser Instanz ist momentan geschlossen. Aber du kannst dein Konto auch auf einer anderen Instanz erstellen! Von dort hast du genauso Zugriff auf das Mastodon-Netzwerk.
+ closed_registrations: Die Registrierung auf diesem Server ist momentan geschlossen. Aber du kannst dein Konto auch auf einem anderen Server erstellen! Von dort hast du genauso Zugriff auf das Mastodon-Netzwerk.
contact: Kontakt
contact_missing: Nicht angegeben
contact_unavailable: N/A
@@ -22,12 +22,12 @@ de:
not_a_product_title: Du bist ein Mensch und keine Ware
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_body: Verschiedene Apps für iOS, Android und andere Plattformen erlauben es 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"
hosted_on: Mastodon, beherbergt auf %{domain}
learn_more: Mehr erfahren
- other_instances: Andere Instanzen
+ other_instances: Andere Server
privacy_policy: Datenschutzerklärung
source_code: Quellcode
status_count_after:
@@ -44,8 +44,8 @@ de:
choices_html: "%{name} empfiehlt:"
follow: Folgen
followers:
- one: Folgende
- other: Follower
+ one: Folgender
+ other: Folgende
following: Folgt
joined: Beigetreten am %{date}
last_active: zuletzt aktiv
@@ -70,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!
@@ -78,7 +81,7 @@ de:
accounts:
are_you_sure: Bist du sicher?
avatar: Profilbild
- by_domain: Domäne
+ by_domain: Domain
change_email:
changed_msg: E-Mail-Adresse des Kontos erfolgreich geändert!
current_email: Aktuelle E-Mail-Adresse
@@ -89,6 +92,7 @@ de:
confirm: Bestätigen
confirmed: Bestätigt
confirming: Bestätigung
+ deleted: Gelöscht
demote: Degradieren
disable: Ausschalten
disable_two_factor_authentication: 2FA abschalten
@@ -101,11 +105,14 @@ de:
enable: Freischalten
enabled: Freigegeben
feed_url: Feed-URL
- followers: Folger
+ followers: Folgende
followers_url: URL des Folgenden
follows: Folgt
+ header: Header
inbox_url: Posteingangs-URL
+ invited_by: Eingeladen von
ip: IP-Adresse
+ joined: Beigetreten
location:
all: Alle
local: Lokal
@@ -132,8 +139,9 @@ de:
protocol: Protokoll
public: Öffentlich
push_subscription_expires: PuSH-Abonnement läuft aus
- redownload: Avatar neu laden
+ redownload: Profil 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
@@ -149,11 +157,10 @@ de:
user: Nutzer
salmon_url: Salmon-URL
search: Suche
- shared_inbox_url: Geteilter Posteingang URL
+ shared_inbox_url: Geteilte Posteingang-URL
show:
- created_reports: Meldungen durch dieses Konto
- report: Meldung
- targeted_reports: Meldungen über dieses Konto
+ created_reports: Erstellte Beschwerdemeldungen
+ targeted_reports: Beschwerdemeldungen von anderen
silence: Stummschalten
silenced: Stummgeschaltet
statuses: Beiträge
@@ -165,12 +172,14 @@ de:
undo_suspension: Sperre zurücknehmen
unsubscribe: Abbestellen
username: Profilname
+ warn: Warnen
web: Web
action_logs:
actions:
assigned_to_self_report: "%{name} hat sich die Meldung %{target} selbst zugewiesen"
change_email_user: "%{name} hat die E-Mail-Adresse des Nutzers %{target} geändert"
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"
@@ -184,17 +193,17 @@ de:
disable_user: "%{name} hat den Login für Benutzer:in %{target} deaktiviert"
enable_custom_emoji: "%{name} hat das %{target} Emoji aktiviert"
enable_user: "%{name} hat die Anmeldung für di:en Benutzer:in %{target} aktiviert"
- memorialize_account: "%{name} hat %{target}s Profil in eine Gedenkseite umgewandelt"
+ memorialize_account: "%{name} hat %{target}s Konto in eine Gedenkseite umgewandelt"
promote_user: "%{name} hat %{target} befördert"
remove_avatar_user: "%{name} hat das Profilbild von %{target} entfernt"
reopen_report: "%{name} hat die Meldung %{target} wieder geöffnet"
reset_password_user: "%{name} hat das Passwort für di:en Benutzer:in %{target} zurückgesetzt"
resolve_report: "%{name} hat die Meldung %{target} bearbeitet"
- silence_account: "%{name} hat %{target}s Account stummgeschaltet"
- suspend_account: "%{name} hat %{target}s Account gesperrt"
+ silence_account: "%{name} hat %{target}s Konto stummgeschaltet"
+ suspend_account: "%{name} hat %{target}s Konto gesperrt"
unassigned_report: "%{name} hat die Zuweisung der Meldung %{target} entfernt"
- unsilence_account: "%{name} hat die Stummschaltung von %{target}s Account aufgehoben"
- unsuspend_account: "%{name} hat die Sperrung von %{target}s Account aufgehoben"
+ unsilence_account: "%{name} hat die Stummschaltung von %{target}s Konto aufgehoben"
+ unsuspend_account: "%{name} hat die Sperrung von %{target}s Konto aufgehoben"
update_custom_emoji: "%{name} hat das %{target} Emoji aktualisiert"
update_status: "%{name} hat den Status von %{target} aktualisiert"
deleted_status: "(gelöschter Beitrag)"
@@ -247,7 +256,7 @@ de:
week_users_active: Aktiv diese Woche
week_users_new: Benutzer:innen diese Woche
domain_blocks:
- add_new: Neu hinzufügen
+ add_new: Neue Domainblockade hinzufügen
created_msg: Die Domain-Blockade wird nun durchgeführt
destroyed_msg: Die Domain-Blockade wurde rückgängig gemacht
domain: Domain
@@ -264,11 +273,11 @@ 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
+ rejecting_media: Mediendateien ablehnen
+ rejecting_reports: Beschwerdemeldungen ablehnen
+ severity:
+ silence: stummgeschaltet
+ suspend: gesperrt
show:
affected_accounts:
one: Ein Konto in der Datenbank betroffen
@@ -278,8 +287,7 @@ 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
+ undo: Domainblockade zurücknehmen
email_domain_blocks:
add_new: Neue hinzufügen
created_msg: E-Mail-Domain-Blockade erfolgreich erstellt
@@ -290,12 +298,24 @@ de:
create: Blockade erstellen
title: Neue E-Mail-Domain-Blockade
title: E-Mail-Domain-Blockade
+ followers:
+ back_to_account: Zurück zum Konto
+ title: "%{acct}'s Follower"
instances:
- account_count: Bekannte Konten
- domain_name: Domain
- reset: Zurücksetzen
- search: Suchen
- title: Bekannte Instanzen
+ delivery_available: Zustellung ist verfügbar
+ known_accounts:
+ one: "%{count} bekanntes Konto"
+ other: "%{count} bekannte Accounts"
+ moderation:
+ all: Alle
+ limited: Limitiert
+ title: Moderation
+ title: Föderation
+ total_blocked_by_us: Von uns gesperrt
+ total_followed_by_them: Gefolgt von denen
+ total_followed_by_us: Gefolgt von uns
+ total_reported: Beschwerdemeldungen über sie
+ total_storage: Medienanhänge
invites:
deactivate_all: Alle deaktivieren
filter:
@@ -366,14 +386,14 @@ de:
desc_html: Verändere das Aussehen mit CSS, dass auf jeder Seite geladen wird
title: Benutzerdefiniertes CSS
hero:
- desc_html: Wird auf der Startseite angezeigt. Mindestens 600x100px sind empfohlen. Wenn es nicht gesetzt wurde, wird das Instanz-Thumbnail dafür verwendet
+ desc_html: Wird auf der Startseite angezeigt. Mindestens 600x100px sind empfohlen. Wenn es nicht gesetzt wurde, wird das Server-Thumbnail dafür verwendet
title: Bild für Startseite
mascot:
desc_html: Angezeigt auf mehreren Seiten. Mehr als 293x205px empfohlen. Wenn es nicht gesetzt wurde wird es auf das Standard-Maskottchen zurückfallen
title: Maskottchen-Bild
peers_api_enabled:
- desc_html: Domain-Namen dieser Instanz, die im Fediverse gefunden wurden
- title: Veröffentliche Liste von gefundenen Instanzen
+ desc_html: Domain-Namen, die der Server im Fediverse gefunden hat
+ title: Veröffentliche Liste von gefundenen Servern
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
@@ -401,20 +421,20 @@ de:
title: Zeige Mitarbeiter-Badge
site_description:
desc_html: Einleitungsabschnitt auf der Frontseite. Beschreibe, was diese Mastodon-Instanz ausmacht. Du kannst HTML-Tags benutzen, insbesondere
<a>
und
<em>
.
- title: Beschreibung der Instanz
+ title: Beschreibung des Servers
site_description_extended:
- desc_html: Bietet sich für Verhaltenskodizes, Regeln, Richtlinien und weiteres an, was deine Instanz auszeichnet. Du kannst HTML-Tags benutzen
+ desc_html: Bietet sich für Verhaltenskodizes, Regeln, Richtlinien und weiteres an, was deinen Server auszeichnet. Du kannst HTML-Tags benutzen
title: Erweiterte Beschreibung der Instanz
site_short_description:
- desc_html: Wird angezeigt in der Seitenleiste und in Meta-Tags. Beschreibe in einem einzigen Abschnitt, was Mastodon ist und was diesen Server ausmacht. Falls leer, wird die Instanz-Beschreibung verwendet.
- title: Kurze Instanz-Beschreibung
+ desc_html: Wird angezeigt in der Seitenleiste und in Meta-Tags. Beschreibe in einem einzigen Abschnitt, was Mastodon ist und was diesen Server ausmacht. Falls leer, wird die Server-Beschreibung verwendet.
+ title: Kurze Server-Beschreibung
site_terms:
desc_html: Hier kannst du deine eigenen Geschäftsbedingungen, Datenschutzerklärung und anderes rechtlich Relevante eintragen. Du kannst HTML-Tags benutzen
title: Eigene Geschäftsbedingungen
- site_title: Name der Instanz
+ site_title: Name des Servers
thumbnail:
desc_html: Wird für die Vorschau via OpenGraph und API verwendet. 1200×630 px wird empfohlen
- title: Instanz-Thumbnail
+ title: Server-Thumbnail
timeline_preview:
desc_html: Auf der Frontseite die öffentliche Zeitleiste anzeigen
title: Zeitleisten-Vorschau
@@ -448,6 +468,12 @@ de:
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"
@@ -469,7 +495,7 @@ de:
warning: Sei mit diesen Daten sehr vorsichtig. Teile sie mit niemandem!
your_token: Dein Zugangs-Token
auth:
- agreement_html: Indem du dich registrierst, erklärst du dich mit den untenstehenden
Regeln dieser Instanz und der
Datenschutzerklärung einverstanden.
+ agreement_html: Indem du dich registrierst, erklärst du dich mit den untenstehenden
Regeln des Servers und der
Datenschutzerklärung einverstanden.
change_password: Passwort
confirm_email: E-Mail bestätigen
delete_account: Konto löschen
@@ -479,8 +505,8 @@ de:
invalid_reset_password_token: Das Token zum Zurücksetzen des Passworts ist ungültig oder abgelaufen. Bitte fordere ein neues an.
login: Anmelden
logout: Abmelden
- migrate_account: Ziehe zu einem anderen Account um
- migrate_account_html: Wenn du es wünschst diesen Account zu einem anderen umzuziehen, dann kannst du
es hier einstellen.
+ migrate_account: Ziehe zu einem anderen Konto um
+ migrate_account_html: Wenn du wünschst, dieses Konto zu einem anderen umzuziehen, kannst du
dies hier einstellen.
or: oder
or_log_in_with: Oder anmelden mit
providers:
@@ -494,7 +520,7 @@ de:
set_new_password: Neues Passwort setzen
authorize_follow:
already_following: Du folgst diesem Konto bereits
- error: Das Profil konnte nicht geladen werden
+ error: Das Remote-Konto konnte nicht geladen werden
follow: Folgen
follow_request: 'Du hast eine Folgeanfrage gesendet an:'
following: 'Erfolg! Du folgst nun:'
@@ -523,19 +549,22 @@ de:
description_html: Hiermit wird
dauerhaft und unwiederbringlich der Inhalt deines Kontos gelöscht und dein Konto deaktiviert. Dein Profilname wird reserviert, um künftige Imitationen zu verhindern.
proceed: Konto löschen
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_html: Wir können nur dafür garantieren, dass die Inhalte auf diesem einen Server 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
+ enabled: Du bist gerade in dem Verzeichnis gelistet.
+ enabled_but_waiting: Du bist damit einverstanden im Verzeichnis gelistet zu werden, aber du hast nicht die minimale Anzahl an Folgenden (%{min_followers}), damit es passiert.
explanation: Entdecke Benutzer basierend auf deren Interessen
explore_mastodon: Entdecke %{title}
+ how_to_enable: Du hast dich gerade nicht dazu entschieden im Verzeichnis gelistet zu werden. Du kannst dich unten dafür eintragen. Benutze Hashtags in deiner Profilbeschreibung, um unter spezifischen Hashtags gelistet zu werden!
people:
one: "%{count} Person"
other: "%{count} Leute"
errors:
'403': Dir fehlt die Befugnis, diese Seite sehen zu können.
- '404': Diese Seite existiert nicht.
- '410': Diese Seite existiert nicht mehr.
+ '404': Die Seite nach der du gesucht hast wurde nicht gefunden.
+ '410': Die Seite nach der du gesucht hast existiert hier nicht mehr.
'422':
content: Sicherheitsüberprüfung fehlgeschlagen. Blockierst du Cookies?
title: Sicherheitsüberprüfung fehlgeschlagen
@@ -548,15 +577,21 @@ de:
archive_takeout:
date: Datum
download: Dein Archiv herunterladen
- hint_html: Du kannst ein Archiv deiner
Beiträge und hochgeladenen Medien anfragen. Die exportierten Daten werden im ActivityPub-Format gespeichert, welches mit jeder Software lesbar ist die das Format unterstützt. Du kannst alle 7 Tage ein Archiv anfordern.
+ hint_html: Du kannst ein Archiv deiner
Beiträge und hochgeladenen Medien anfragen. Die exportierten Daten werden in dem ActivityPub-Format gespeichert, welches mit jeder Software lesbar ist die das Format unterstützt. Du kannst alle 7 Tage ein Archiv anfordern.
in_progress: Stelle dein Archiv zusammen...
request: Dein Archiv anfragen
size: Größe
blocks: Du hast blockiert
csv: CSV
+ domain_blocks: Domainblockaden
follows: Du folgst
+ lists: Listen
mutes: Du hast stummgeschaltet
storage: Medienspeicher
+ featured_tags:
+ add_new: Neu hinzufügen
+ errors:
+ limit: Du hast bereits die maximale Anzahl an empfohlenen Hashtags erreicht
filters:
contexts:
home: Startseite
@@ -575,7 +610,7 @@ de:
title: Neuen Filter hinzufügen
followers:
domain: Instanz
- explanation_html: Wenn du sicherstellen willst, dass deine Beiträge privat sind, musst du wissen, wer dir folgt.
Deine privaten Beiträge werden an alle Instanzen weitergegeben, auf denen Menschen registriert sind, die dir folgen. Wenn du den Betreibenden einer Instanz misstraust und du befürchtest, dass sie deine Privatsphäre missachten könnten, kannst du sie hier entfernen.
+ explanation_html: Wenn du sicherstellen willst, dass deine Beiträge privat sind, musst du wissen, wer dir folgt.
Deine privaten Beiträge werden an alle Server weitergegeben, auf denen Menschen registriert sind, die dir folgen. Wenn du den Betreibenden eines Servers misstraust und du befürchtest, dass sie deine Privatsphäre missachten könnten, kannst du sie hier entfernen.
followers_count: Zahl der Folgenden
lock_link: dein Konto sperrst
purge: Von der Liste deiner Folgenden löschen
@@ -597,10 +632,16 @@ de:
one: Etwas ist noch nicht ganz richtig! Bitte korrigiere den Fehler
other: Etwas ist noch nicht ganz richtig! Bitte korrigiere %{count} Fehler
imports:
- preface: Daten, die du aus einer anderen Instanz exportiert hast, kannst du hier importieren. Beispielsweise die Liste derjenigen, denen du folgst oder die du blockiert hast.
+ modes:
+ merge: Zusammenführen
+ merge_long: Behalte existierende Datensätze und füge neue hinzu
+ overwrite: Überschreiben
+ overwrite_long: Ersetze aktuelle Datensätze mit neuen
+ preface: Daten, die du aus einem anderen Server exportiert hast, kannst du hier importieren. Beispielsweise die Liste derjenigen, denen du folgst oder die du blockiert hast.
success: Deine Daten wurden erfolgreich hochgeladen und werden in Kürze verarbeitet
types:
blocking: Blockierliste
+ domain_blocking: Domain-Blockliste
following: Folgeliste
muting: Stummschaltungsliste
upload: Hochladen
@@ -622,11 +663,11 @@ de:
one: 1 mal verwendet
other: "%{count} mal verwendet"
max_uses_prompt: Kein Limit
- prompt: Generiere und teile Links um Zugang zu dieser Instanz zu geben
+ prompt: Generiere und teile Links um Zugang zu diesem Server zu geben
table:
expires_at: Läuft ab
uses: Verwendungen
- title: Leute Einladen
+ title: Leute einladen
lists:
errors:
limit: Du hast die maximale Anzahl an Listen erreicht
@@ -635,10 +676,10 @@ de:
images_and_video: Es kann kein Video an einen Beitrag, der bereits Bilder enthält, angehängt werden
too_many: Es können nicht mehr als 4 Bilder angehängt werden
migrations:
- acct: benutzername@domain des neuen Accounts
+ acct: benutzername@domain des neuen Kontos
currently_redirecting: 'Deine Profilweiterleitung wurde gesetzt auf:'
proceed: Speichern
- updated_msg: Deine Account-Migrationseinstellungen wurden erfolgreich aktualisiert!
+ updated_msg: Deine Konto-Migrationseinstellungen wurden erfolgreich aktualisiert!
moderation:
title: Moderation
notification_mailer:
@@ -700,16 +741,28 @@ de:
remote_follow:
acct: Profilname@Domain, von wo aus du dieser Person folgen möchtest
missing_resource: Die erforderliche Weiterleitungs-URL für dein Konto konnte nicht gefunden werden
- no_account_html: Noch keinen Account? Du kannst dich
hier anmelden
+ no_account_html: Noch kein Konto? Du kannst dich
hier anmelden
proceed: Weiter
prompt: 'Du wirst dieser Person folgen:'
+ reason_html: "
Warum ist dieser Schritt erforderlich?%{instance}
ist möglicherweise nicht der Server auf dem du registriert bist, also müssen wir dich erst auf deinen Heimserver weiterleiten."
remote_interaction:
- proceed: Fortfahren zum Interagieren
- prompt: 'Du wirst mit diesem Beitrag interagieren:'
+ favourite:
+ proceed: Fortfahren zum Favorisieren
+ prompt: 'Du möchtest diesen Beitrag favorisieren:'
+ reblog:
+ proceed: Fortfahren zum Teilen
+ prompt: 'Du möchtest diesen Beitrag teilen:'
+ reply:
+ proceed: Fortfahren zum Antworten
+ prompt: 'Du möchtest auf diesen Beitrag antworten:'
remote_unfollow:
error: Fehler
title: Titel
unfollowed: Entfolgt
+ scheduled_statuses:
+ over_daily_limit: Du hast das Limit für geplante Beiträge, dass %{limit} beträgt, für heute erreicht
+ over_total_limit: Du hast das Limit für geplante Beiträge, dass %{limit} beträgt, erreicht
+ too_soon: Das geplante Datum muss in der Zukunft liegen
sessions:
activity: Letzte Aktivität
browser: Browser
@@ -733,7 +786,7 @@ de:
weibo: Weibo
current_session: Aktuelle Sitzung
description: "%{browser} auf %{platform}"
- explanation: Dies sind die Webbrowser, die derzeit in dein Mastodon-Konto eingeloggt sind.
+ explanation: Dies sind die Webbrowser, die derzeit in deinem Mastodon-Konto eingeloggt sind.
ip: IP-Adresse
platforms:
adobe_air: Adobe Air
@@ -758,9 +811,10 @@ de:
development: Entwicklung
edit_profile: Profil bearbeiten
export: Datenexport
+ featured_tags: Empfohlene Hashtags
followers: Autorisierte Folgende
import: Datenimport
- migrate: Account-Umzug
+ migrate: Konto-Umzug
notifications: Benachrichtigungen
preferences: Einstellungen
settings: Einstellungen
@@ -801,7 +855,7 @@ de:
stream_entries:
pinned: Angehefteter Beitrag
reblogged: teilte
- sensitive_content: Heikle Inhalte
+ sensitive_content: Sensible Inhalte
terms:
body_html: |
Datenschutzerklärung
@@ -888,9 +942,9 @@ de:
Ursprünglich übernommen von der Discourse-Datenschutzerklärung.
title: "%{instance} Nutzungsbedingungen und Datenschutzerklärung"
themes:
- contrast: Hoher Kontrast
- default: Mastodon
- mastodon-light: Mastodon (hell)
+ contrast: Mastodon (Hoher Kontrast)
+ default: Mastodon (Dunkel)
+ mastodon-light: Mastodon (Hell)
time:
formats:
default: "%d.%m.%Y %H:%M"
@@ -908,22 +962,38 @@ de:
manual_instructions: 'Wenn du den QR-Code nicht einlesen kannst und ihn manuell eingeben musst, ist hier das Klartext-Geheimnis:'
recovery_codes: Wiederherstellungs-Codes sichern
recovery_codes_regenerated: Wiederherstellungscodes erfolgreich neu generiert
- recovery_instructions_html: Wenn du den Zugang zu deinem Telefon verlieren solltest, kannst du einen untenstehenden Wiederherstellungscodes benutzen, um wieder auf dein Konto zugreifen zu können.
Bewahre die Wiederherstellungscodes gut auf. Du könntest sie beispielsweise ausdrucken und bei deinen restlichen wichtigen Dokumenten aufbewahren.
+ recovery_instructions_html: Wenn du den Zugang zu deinem Telefon verlieren solltest, kannst du einen untenstehenden Wiederherstellungscode benutzen, um wieder auf dein Konto zugreifen zu können.
Bewahre die Wiederherstellungscodes gut auf. Du könntest sie beispielsweise ausdrucken und bei deinen restlichen wichtigen Dokumenten aufbewahren.
setup: Einrichten
wrong_code: Der eingegebene Code war ungültig! Stimmen Serverzeit und Gerätezeit?
user_mailer:
backup_ready:
- explanation: Du hast ein vollständiges Backup von deinem Mastodon-Account angefragt. Es kann jetzt heruntergeladen werden!
+ explanation: Du hast ein vollständiges Backup von deinem Mastodon-Konto angefragt. Es kann jetzt heruntergeladen werden!
subject: Dein Archiv ist bereit zum Download
title: Archiv-Download
+ warning:
+ explanation:
+ disable: Solange dein Konto eingefroren ist, sind deine Benutzerdaten intakt; aber du kannst nichts tun, bis dein Konto entsperrt wurde.
+ silence: Solange dein Konto limitiert ist, können nur die 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 Konto wurde gesperrt und alle deine Beiträge und hochgeladenen Medien wurden unwiderruflich vom Server und anderen Servern, bei denen du Folgende hattest, gelöscht.
+ review_server_policies: Serverrichtlinien ansehen
+ subject:
+ disable: Dein Konto %{acct} wurde eingefroren
+ none: Warnung für %{acct}
+ silence: Dein Konto %{acct} wurde limitiert
+ suspend: Dein Konto %{acct} wurde gesperrt
+ title:
+ disable: Konto eingefroren
+ none: Warnung
+ silence: Konto limitiert
+ suspend: Konto 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.
+ 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 Folgenden vorher überprüfen möchtest, bevor sie dir folgen können, dann kannst du dein Profil sperren.
explanation: Hier sind ein paar Tipps, um loszulegen
final_action: Fang an zu posten
final_step: 'Fang an zu posten! Selbst ohne Follower werden deine öffentlichen Beitrage von anderen gesehen, zum Beispiel auf der lokalen Zeitleiste oder in Hashtags. Vielleicht möchtest du dich vorstellen mit dem #introductions-Hashtag.'
full_handle: Dein vollständiger Benutzername
- full_handle_hint: Dies ist was du deinen Freunden sagen kannst, damit sie dich anschreiben oder von einer anderen Instanz folgen können.
+ full_handle_hint: Dies ist was du deinen Freunden sagen kannst, damit sie dich anschreiben oder von einem anderen Server folgen können.
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
@@ -941,5 +1011,5 @@ de:
seamless_external_login: Du bist angemeldet über einen Drittanbieter-Dienst, weswegen Passwort- und E-Maileinstellungen nicht verfügbar sind.
signed_in_as: 'Angemeldet als:'
verification:
- explanation_html: 'Du kannst
bestätigen, dass die Links in deinen Profil-Metadaten dir gehören. Dafür muss die verlinkte Website einen Link zurück auf dein Mastodon-Profil enthalten. Dieser Link
muss ein
rel="me"
-Attribut enthalten. Der Linktext is dabei egal. Hier ist ein Beispiel:'
+ explanation_html: 'Du kannst
bestätigen, dass die Links in deinen Profil-Metadaten dir gehören. Dafür muss die verlinkte Website einen Link zurück auf dein Mastodon-Profil enthalten. Dieser Link
muss ein
rel="me"
-Attribut enthalten. Der Linktext ist dabei egal. Hier ist ein Beispiel:'
verification: Verifizierung
diff --git a/config/locales/devise.ar.yml b/config/locales/devise.ar.yml
index e004bc963..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}'
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..89688a5a9 100644
--- a/config/locales/devise.co.yml
+++ b/config/locales/devise.co.yml
@@ -18,18 +18,19 @@ 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.
+ extra_html: Pensate à leghje
e regule di u servore è
i termini d’usu.
subject: 'Mastodon: Istruzzione di cunfirmazione per %{instance}'
title: Verificà l’indirizzu email
email_changed:
explanation: 'L’indirizzu email di u vostru contu hè stata cambiata per:'
- extra: S’ellu un era micca voi ch’avete cambiatu u vostru email, qualch’un’altru hà accessu à u vostru contu. Duvete cambià a vostra chjave d’accessu o cuntattà l’amministratore di l’istanza s’ellu ùn hè più pussibule di cunnettavi.
+ extra: S’ellu un era micca voi ch’avete cambiatu u vostru email, qualch’un’altru hà accessu à u vostru contu. Duvete cambià a vostra chjave d’accessu o cuntattà l’amministratore di u servore s’ellu ùn hè più pussibule di cunnettavi.
subject: 'Mastodon: Email cambiatu'
title: Novu indirizzu email
password_change:
explanation: A chjave d’accessu per u vostru contu hè stata cambiata.
- extra: S’ellu un era micca voi ch’avete cambiatu a vostra chjave d’accessu, qualch’un’altru hà accessu à u vostru contu. Duvete cambià a vostra chjave d’accessu o cuntattà l’amministratore di l’istanza s’ellu ùn hè più pussibule di cunnettavi.
+ extra: S’ellu un era micca voi ch’avete cambiatu a vostra chjave d’accessu, qualch’un’altru hà accessu à u vostru contu. Duvete cambià a vostra chjave d’accessu o cuntattà l’amministratore di u servore s’ellu ùn hè più pussibule di cunnettavi.
subject: 'Mastodon: Chjave d’accessu cambiata'
title: Chjave cambiata
reconfirmation_instructions:
@@ -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 f63d4d210..83534cccd 100644
--- a/config/locales/devise.cs.yml
+++ b/config/locales/devise.cs.yml
@@ -18,18 +18,19 @@ 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í.
+ extra_html: Prosím podívejte se také na
pravidla tohoto serveru a
naše podmínky používání.
subject: 'Mastodon: Potvrzovací instrukce pro %{instance}'
title: Potvrďte e-mailovou adresu
email_changed:
explanation: 'E-mailová adresa vašeho účtu byla změněna na:'
- extra: Pokud jste si e-mail nezměnil/a, je pravděpodobné, že někdo jiný získal přístup k vašemu účtu. Prosím změňte si okamžitě heslo, nebo, pokud se nemůžete na účet přihlásit, kontaktujte administrátora instance.
+ extra: Pokud jste si e-mail nezměnil/a, je pravděpodobné, že někdo jiný získal přístup k vašemu účtu. Prosím změňte si okamžitě heslo, nebo, pokud se nemůžete na účet přihlásit, kontaktujte administrátora serveru.
subject: 'Mastodon: E-mail byl změněn'
title: Nová e-mailová adresa
password_change:
explanation: Heslo k vašemu účtu bylo změněno.
- extra: Pokud jste si heslo nezměnil/a, je pravděpodobné, že někdo jiný získal přístup k vašemu účtu. Prosím změňte si okamžitě heslo, nebo, pokud se nemůžete na účet přihlásit, kontaktujte administrátora instance.
+ extra: Pokud jste si heslo nezměnil/a, je pravděpodobné, že někdo jiný získal přístup k vašemu účtu. Prosím změňte si okamžitě heslo, nebo, pokud se nemůžete na účet přihlásit, kontaktujte administrátora serveru.
subject: 'Mastodon: Heslo bylo změněno'
title: Heslo bylo změněno
reconfirmation_instructions:
@@ -59,8 +60,8 @@ cs:
signed_up: Vítejte! Registroval/a jste se úspěšně.
signed_up_but_inactive: Registroval/a jste se úspěšně. Nemohli jsme vás však přihlásit, protože váš účet ještě není aktivován.
signed_up_but_locked: Registroval/a jste se úspěšně. Nemohli jsme vás však přihlásit, protože váš účet je uzamčen.
- signed_up_but_unconfirmed: Na vaši e-mailovou adresu byla poslána zpráva s potvrzovacím odkazem. Pro aktivaci účtu přejděte na danou adresu. Prosím zkontrolujte si složku spam, jestli jste tento e-mail neobdržel/a.
- update_needs_confirmation: Váš účet byl úspěšně aktualizován, ale je potřeba ověřit vaši novou e-mailovou adresu. Prosím zkontrolujte si e-mail a klikněte na odkaz pro potvrzení vaši nové e-mailové adresy. Prosím zkontrolujte si složku spam, jestli jste tento e-mail neobdržel/a.
+ signed_up_but_unconfirmed: Na vaši e-mailovou adresu byla poslána zpráva s potvrzovacím odkazem. Pro aktivaci účtu přejděte na danou adresu. Pokud jste tento e-mail neobdržel/a, prosím zkontrolujte si složku spam.
+ update_needs_confirmation: Váš účet byl úspěšně aktualizován, ale je potřeba ověřit vaši novou e-mailovou adresu. Prosím zkontrolujte si e-mail a klikněte na odkaz pro potvrzení vaši nové e-mailové adresy. Pokud jste tento e-mail neobdržel/a, prosím zkontrolujte si složku spam.
updated: Váš účet byl úspěšně aktualizován.
sessions:
already_signed_out: Odhlášení proběhlo úspěšně.
diff --git a/config/locales/devise.cy.yml b/config/locales/devise.cy.yml
index 7d96e57f9..8ea7e1b4f 100644
--- a/config/locales/devise.cy.yml
+++ b/config/locales/devise.cy.yml
@@ -18,6 +18,7 @@ cy:
mailer:
confirmation_instructions:
action: Gwiriwch eich cyfeiriad e-bost
+ action_with_app: Cadarnhau a dychwelyd i %{app}
explanation: Yr ydych wedi creu cyfrif ar %{host} gyda'r cyfrif e-bost hwn. Dim ond un clic sydd angen i'w wneud yn weithredol. Os nad chi oedd hyn, anwybyddwch yr e-bost hwn os gwelwch yn dda.
extra_html: Gwnewch yn siŵr i edrych ar
reolau'r achos a
ein telerau gwasanaeth.
subject: 'Mastodon: Canllawiau cadarnhau i %{instance}'
@@ -77,4 +78,10 @@ cy:
expired: wedi dod i ben, gwnewch gais am un newydd os gwelwch yn dda
not_found: heb ei ganfod
not_locked: heb ei gloi
- not_saved: 'Gwaharddwyd yr %{resource} rhag cael ei arbed oherwydd %{count} gwall:'
+ not_saved:
+ few: 'Gwaharddwyd yr %{resource} rhag cael ei arbed oherwydd %{count} gwall:'
+ many: 'Gwaharddwyd yr %{resource} rhag cael ei arbed oherwydd %{count} gwall:'
+ one: 'Gwaharddwyd yr %{resource} rhag cael ei arbed oherwydd 1 gwall:'
+ other: 'Gwaharddwyd yr %{resource} rhag cael ei arbed oherwydd %{count} gwall:'
+ two: 'Gwaharddwyd yr %{resource} rhag cael ei arbed oherwydd %{count} gwall:'
+ zero: 'Gwaharddwyd yr %{resource} rhag cael ei arbed oherwydd %{count} gwall:'
diff --git a/config/locales/devise.da.yml b/config/locales/devise.da.yml
index b201b7ca8..4816d6456 100644
--- a/config/locales/devise.da.yml
+++ b/config/locales/devise.da.yml
@@ -18,18 +18,19 @@ 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.
+ extra_html: Tjek også
reglerne for serveren og
vores betingelser.
subject: 'Mastodon: Bekræftelses instrukser for %{instance}'
title: Bekræft email adresse
email_changed:
explanation: 'Email adressen for din konto bliver ændret til:'
- extra: Hvis du ikke har ændret din email adresse er det muligt, at nogen har fået adgang til din konto. Venligst ændre dit kodeord med det samme eller kontakt administratoren på instansen hvis du er låst ude af din konto.
+ extra: Hvis du ikke har ændret din email adresse er det muligt, at nogen har fået adgang til din konto. Venligst ændre dit kodeord med det samme eller kontakt administratoren på serveren hvis du er låst ude af din konto.
subject: 'Mastodon: Email ændret'
title: Ny email adresse
password_change:
explanation: Kodeordet for din konto er blevet ændret.
- extra: Hvis du ikke har ændret dit kodeord er det muligt, at nogen har fået adgang til din konto. Venligst ændre dit kodeord med det samme eller kontakt administratoren på instansen hvis du er låst ude af din konto.
+ extra: Hvis du ikke har ændret dit kodeord er det muligt, at nogen har fået adgang til din konto. Venligst ændre dit kodeord med det samme eller kontakt administratoren på serveren hvis du er låst ude af din konto.
subject: 'Mastodon: Kodeord ændret'
title: Kodeordet er blevet ændret
reconfirmation_instructions:
diff --git a/config/locales/devise.de.yml b/config/locales/devise.de.yml
index 0d33af6f1..5b060e0e7 100644
--- a/config/locales/devise.de.yml
+++ b/config/locales/devise.de.yml
@@ -18,18 +18,19 @@ 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.
+ extra_html: Bitte lies auch die
Regeln des Servers und
unsere Nutzungsbedingungen.
subject: 'Mastodon: Bestätigung deines Kontos bei %{instance}'
title: Verifiziere E-Mail-Adresse
email_changed:
explanation: 'Die E-Mail-Adresse deines Accounts wird geändert zu:'
- extra: Wenn du deine E-Mail-Adresse nicht geändert hast, dann kann es vermutlich sein, dass jemand Zugriff zu deinem Account erhalten hat. Bitte ändere sofort dein Passwort oder kontaktiere den Administrator deiner Instanz, wenn du dich ausgesperrt hast.
+ extra: Wenn du deine E-Mail-Adresse nicht geändert hast, dann kann es vermutlich sein, dass jemand Zugriff zu deinem Account erhalten hat. Bitte ändere sofort dein Passwort oder kontaktiere den Administrator des Servers, wenn du dich ausgesperrt hast.
subject: 'Mastodon: E-Mail-Adresse geändert'
title: Neue E-Mail-Adresse
password_change:
explanation: Das Passwort für deinen Account wurde geändert.
- extra: Wenn du dein Passwort nicht geändert hast, dann kann es vermutlich sein, dass jemand Zugriff zu deinem Account erhalten hat. Bitte ändere sofort dein Passwort oder kontaktiere den Administrator deiner Instanz, wenn du dich ausgesperrt hast.
+ extra: Wenn du dein Passwort nicht geändert hast, dann kann es vermutlich sein, dass jemand Zugriff zu deinem Account erhalten hat. Bitte ändere sofort dein Passwort oder kontaktiere den Administrator des Servers, wenn du dich ausgesperrt hast.
subject: 'Mastodon: Passwort geändert'
title: Passwort geändert
reconfirmation_instructions:
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..726c0504e 100644
--- a/config/locales/devise.en.yml
+++ b/config/locales/devise.en.yml
@@ -18,18 +18,19 @@ 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.
+ extra_html: Please also check out
the rules of the server and
our terms of service.
subject: 'Mastodon: Confirmation instructions for %{instance}'
title: Verify email address
email_changed:
explanation: 'The email address for your account is being changed to:'
- extra: If you did not change your email, it is likely that someone has gained access to your account. Please change your password immediately or contact the instance admin if you're locked out of your account.
+ extra: If you did not change your email, it is likely that someone has gained access to your account. Please change your password immediately or contact the server admin if you're locked out of your account.
subject: 'Mastodon: Email changed'
title: New email address
password_change:
explanation: The password for your account has been changed.
- extra: If you did not change your password, it is likely that someone has gained access to your account. Please change your password immediately or contact the instance admin if you're locked out of your account.
+ extra: If you did not change your password, it is likely that someone has gained access to your account. Please change your password immediately or contact the server admin if you're locked out of your account.
subject: 'Mastodon: Password changed'
title: Password changed
reconfirmation_instructions:
diff --git a/config/locales/devise.eu.yml b/config/locales/devise.eu.yml
index 8905822a7..65046dc0f 100644
--- a/config/locales/devise.eu.yml
+++ b/config/locales/devise.eu.yml
@@ -18,18 +18,19 @@ 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.
+ extra_html: Egiaztatu
zerbitzariaren arauak eta
zerbitzuaren erabilera baldintzak.
subject: 'Mastodon: %{instance} instantziaren argibideak baieztapenerako'
title: Baieztatu e-mail helbidea
email_changed:
explanation: 'Zure kontuaren e-mail helbidea honetara aldatuko da:'
- extra: Ez baduzu e-mail helbidea aldatu, agian baten bat zure kontura sartzea lortu du. Aldatu zure pasahitza berehala edo jarri instantziako administratzailearekin kontaktuan zure kontura sartzerik ez baduzu.
+ extra: Ez baduzu e-mail helbidea aldatu, agian baten bat zure kontura sartzea lortu du. Aldatu zure pasahitza berehala edo jarri zerbitzariko administratzailearekin kontaktuan zure kontura sartzerik ez baduzu.
subject: 'Mastodon: E-mail helbidea aldatuta'
title: E-mail helbide berria
password_change:
explanation: Zure kontuaren pasahitza aldatu da.
- extra: Ez baduzu pasahitza aldatu, agian baten bat zure kontura sartzea lortu du. Aldatu zure pasahitza berehala edo jarri instantziako administratzailearekin kontaktuan zure kontura sartzerik ez baduzu.
+ extra: Ez baduzu pasahitza aldatu, agian baten bat zure kontura sartzea lortu du. Aldatu zure pasahitza berehala edo jarri zerbitzariko administratzailearekin kontaktuan zure kontura sartzerik ez baduzu.
subject: 'Mastodon: Pasahitza aldatuta'
title: Pasahitza aldatuta
reconfirmation_instructions:
diff --git a/config/locales/devise.fa.yml b/config/locales/devise.fa.yml
index e6e16b4b4..1375c43f5 100644
--- a/config/locales/devise.fa.yml
+++ b/config/locales/devise.fa.yml
@@ -18,6 +18,7 @@ fa:
mailer:
confirmation_instructions:
action: تأیید نشانی ایمیل
+ action_with_app: تأیید و بازگشت به %{app}
explanation: شما با این نشانی ایمیل حسابی در %{host} باز کردهاید. با یک کلیک میتوانید این حساب را فعال کنید. اگر شما چنین کاری نکردید، لطفاً این ایمیل را نادیده بگیرید.
extra_html: لطفاً همچنین
قانونهای این سرور و
شرایط کاربری آن را ببینید.
subject: 'ماستدون: راهنمایی برای تأیید %{instance}'
diff --git a/config/locales/devise.fi.yml b/config/locales/devise.fi.yml
index e356abf9f..12ab0f3ab 100644
--- a/config/locales/devise.fi.yml
+++ b/config/locales/devise.fi.yml
@@ -18,6 +18,7 @@ fi:
mailer:
confirmation_instructions:
action: Vahvista sähköpostiosoite
+ action_with_app: Vahvista ja palaa %{app}
explanation: Olet luonut tilin palvelimelle %{host} käyttäen tätä sähköpostiosoitetta. Aktivoi tili yhdellä klikkauksella. Jos et luonut tiliä itse, voit jättää tämän viestin huomiotta.
extra_html: Katso myös
instanssin säännöt ja
käyttöehdot.
subject: 'Mastodon: Vahvistusohjeet - %{instance}'
diff --git a/config/locales/devise.fr.yml b/config/locales/devise.fr.yml
index 5098de2d9..f0a5414b8 100644
--- a/config/locales/devise.fr.yml
+++ b/config/locales/devise.fr.yml
@@ -18,9 +18,10 @@ 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}
+ subject: 'Mastodon : Merci de confirmer votre inscription sur %{instance}'
title: Vérifier l’adresse courriel
email_changed:
explanation: 'L’adresse courriel de votre compte est en cours de modification pour devenir :'
@@ -30,7 +31,7 @@ fr:
password_change:
explanation: Le mot de passe de votre compte a été changé.
extra: Si vous n’avez pas changé votre mot de passe, il est probable que quelqu’un ait eu accès à votre compte. Veuillez changer votre mot de passe immédiatement ou contacter l’administrateur·rice de l’instance si vous êtes bloqué·e hors de votre compte.
- subject: Votre mot de passe a été modifié avec succès
+ subject: 'Mastodon : Votre mot de passe a été modifié avec succès'
title: Mot de passe modifié
reconfirmation_instructions:
explanation: Confirmez la nouvelle adresse pour changer votre courriel.
@@ -41,10 +42,10 @@ fr:
action: Modifier le mot de passe
explanation: Vous avez demandé un nouveau mot de passe pour votre compte.
extra: Si vous ne l’avez pas demandé, veuillez ignorer ce courriel. Votre mot de passe ne changera pas tant que vous n’aurez pas cliqué sur le lien ci-dessus et que vous n’en aurez pas créé un nouveau.
- subject: Instructions pour changer votre mot de passe
+ subject: 'Mastodon : Instructions pour changer votre mot de passe'
title: Réinitialisation du mot de passe
unlock_instructions:
- subject: Instructions pour déverrouiller votre compte
+ subject: 'Mastodon : Instructions pour déverrouiller votre compte'
omniauth_callbacks:
failure: 'Nous n’avons pas pu vous authentifier via %{kind} : ''%{reason}''.'
success: Authentifié avec succès via %{kind}.
@@ -55,12 +56,12 @@ fr:
updated: Votre mot de passe a été modifié avec succès, vous êtes maintenant connecté⋅e.
updated_not_active: Votre mot de passe a été modifié avec succès.
registrations:
- destroyed: Votre compte a été supprimé avec succès. Nous espérons vous revoir bientôt.
- signed_up: Bienvenue, vous êtes connecté⋅e.
+ destroyed: Au revoir ! Votre compte a été supprimé avec succès. Nous espérons vous revoir bientôt.
+ signed_up: Bienvenue ! Vous êtes connecté⋅e.
signed_up_but_inactive: Vous êtes bien enregistré⋅e. Vous ne pouvez cependant pas vous connecter car votre compte n’est pas encore activé.
signed_up_but_locked: Vous êtes bien enregistré⋅e. Vous ne pouvez cependant pas vous connecter car votre compte est verrouillé.
- signed_up_but_unconfirmed: Un message contenant un lien de confirmation a été envoyé à votre adresse courriel. Ouvrez ce lien pour activer votre compte.
- update_needs_confirmation: Votre compte a bien été mis à jour mais nous devons vérifier votre nouvelle adresse courriel. Merci de vérifier vos courriels et de cliquer sur le lien de confirmation pour finaliser la validation de votre nouvelle adresse.
+ signed_up_but_unconfirmed: Un message contenant un lien de confirmation a été envoyé à votre adresse courriel. Ouvrez ce lien pour activer votre compte. Veuillez vérifier votre dossier d'indésirables si vous ne recevez pas le courriel.
+ update_needs_confirmation: Votre compte a bien été mis à jour, mais nous devons vérifier votre nouvelle adresse courriel. Merci de vérifier vos courriels et de cliquer sur le lien de confirmation pour finaliser la validation de votre nouvelle adresse. Si vous n'avez pas reçu le courriel, vérifiez votre dossier d'indésirables.
updated: Votre compte a été modifié avec succès.
sessions:
already_signed_out: Déconnecté·e.
diff --git a/config/locales/devise.gl.yml b/config/locales/devise.gl.yml
index a8fe6a2a5..d456d25df 100644
--- a/config/locales/devise.gl.yml
+++ b/config/locales/devise.gl.yml
@@ -18,18 +18,19 @@ 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.
+ extra_html: Por favor, lea tamén
as normas do sevidor e
os termos do servizo.
subject: 'Mastodon: Instruccións de confirmación para %{instance}'
title: Verificar enderezo de correo-e
email_changed:
explanation: 'O seu enderezo de correo para esta conta foi cambiado a:'
- extra: Si non fixo a petición de cambio de correo-e é probable que alguén obtivese acceso a súa conta. Por favor, cambie o contrasinal inmediatamente ou contacte coa administración da instancia si non ten acceso a súa conta.
+ extra: Se non fixo a petición de cambio de correo-e é probable que alguén obtivese acceso a súa conta. Por favor, cambie o contrasinal inmediatamente ou contacte coa administración do servidor se non ten acceso a súa conta.
subject: 'Mastodon: email cambiado'
title: Novo enderezo de correo
password_change:
explanation: Cambiouse o contrasinal da súa conta.
- extra: Si non cambio o contrasinal, é probable que alguén obtivese acceso a súa conta. Por favor cambie o contrasinal inmediatamente ou contacte coa administración da instancia si non ten acceso a súa conta.
+ extra: Se non cambiou o contrasinal, é probable que alguén obtivese acceso a súa conta. Por favor cambie o contrasinal inmediatamente ou contacte coa administración do servidor se non ten acceso a súa conta.
subject: 'Mastodon: contrasinal cambiado'
title: Contrainal cambiado
reconfirmation_instructions:
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 controlla
le 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..bd2bb71bb 100644
--- a/config/locales/devise.ja.yml
+++ b/config/locales/devise.ja.yml
@@ -18,18 +18,19 @@ ja:
mailer:
confirmation_instructions:
action: メールアドレスの確認
+ action_with_app: 確認し %{app} に戻る
explanation: このメールアドレスで%{host}にアカウントを作成しました。有効にするまであと一歩です。もし心当たりがない場合、申し訳ありませんがこのメールを無視してください。
- extra_html: また
インスタンスのルール と
利用規約 もお読みください。
+ extra_html: また
サーバーのルール と
利用規約 もお読みください。
subject: 'Mastodon: メールアドレスの確認 %{instance}'
title: メールアドレスの確認
email_changed:
explanation: 'アカウントのメールアドレスは以下のように変更されます:'
- extra: メールアドレスの変更を行っていない場合、他の誰かがあなたのアカウントにアクセスした可能性があります。すぐにパスワードを変更するか、アカウントがロックされている場合はインスタンス管理者に連絡してください。
+ extra: メールアドレスの変更を行っていない場合、他の誰かがあなたのアカウントにアクセスした可能性があります。すぐにパスワードを変更するか、アカウントがロックされている場合はサーバー管理者に連絡してください。
subject: 'Mastodon: メールアドレスの変更'
title: 新しいメールアドレス
password_change:
explanation: パスワードが変更されました。
- extra: パスワードの変更を行っていない場合、他の誰かがあなたのアカウントにアクセスした可能性があります。すぐにパスワードを変更するか、アカウントがロックされている場合はインスタンス管理者に連絡してください。
+ extra: パスワードの変更を行っていない場合、他の誰かがあなたのアカウントにアクセスした可能性があります。すぐにパスワードを変更するか、アカウントがロックされている場合はサーバー管理者に連絡してください。
subject: 'Mastodon: パスワードが変更されました'
title: パスワードの変更
reconfirmation_instructions:
diff --git a/config/locales/devise.kk.yml b/config/locales/devise.kk.yml
new file mode 100644
index 000000000..d99116c7f
--- /dev/null
+++ b/config/locales/devise.kk.yml
@@ -0,0 +1,83 @@
+---
+kk:
+ devise:
+ confirmations:
+ confirmed: Сіздің email адресіңіз сәтті құпталды.
+ send_instructions: Email адресіңізге бірнеше минут ішінде қалай растау керегі туралы нұсқау бар хат келеді. Бұл хат егер келмесе, спам құтысын тексеріңіз.
+ send_paranoid_instructions: Email адресіңіз біздің дерекқорымызда болса, бірнеше минут ішінде растау туралы нұсқау бар хат аласыз. Бұл хатты алмасаңыз, спам құтысын тексеріңіз.
+ failure:
+ already_authenticated: Сіз кіріп тұрсыз.
+ inactive: Аккаунтыңыз әлі құпталмаған.
+ invalid: Қате %{authentication_keys} немесе құпиясөз.
+ last_attempt: Аккаунтыңыз құлыпталғанға дейін тағы бір әрекет жасаңыз.
+ locked: Аккаунтыңыз құлыпталған.
+ not_found_in_database: Қате %{authentication_keys} немесе құпиясөз.
+ timeout: Сессияңыз аяқталды. Қайтадан кіріңіз жалғастыру үшін.
+ unauthenticated: Жалғастыру үшін тіркеліңіз немесе логиніңізбен кіріңіз.
+ unconfirmed: Жалғастыру үшін email адресіңізді құптауыңыз керек.
+ mailer:
+ confirmation_instructions:
+ action: Email адресіңізді растаңыз
+ action_with_app: Растау және оралу - %{app}
+ explanation: Сіз %{host} сайтына тіркелгенсіз осы email адресімен. Активация жасауға бір адам қалды. Егер тіркелмеген болсаңыз, бұл хатты елемеңіз.
+ extra_html: Сондай-ақ
шарттар мен ережелерді және
құпиялылық саясатын оқыңыз.
+ subject: 'Mastodon: Растау туралы нұсқаулық %{instance}'
+ title: Email адресін растау
+ email_changed:
+ explanation: 'Сіздің email адресіңіз өзгертілейін деп жатыр:'
+ extra: Егер сіз электрондық поштаңызды өзгертпеген болсаңыз, онда біреу сіздің аккаунтыңызға қол жеткізді. Аккаунтыңыздан шыққан жағдайда дереу құпия сөзіңізді өзгертіңіз немесе сервер әкімшісіне хабарласыңыз.
+ subject: 'Mastodon: Email өзгертілді'
+ title: Жаңа email адрес
+ password_change:
+ explanation: Аккаунтыңыздағы құпиясөз өзгертілді.
+ extra: Егер сіз электрондық поштаңызды өзгертпеген болсаңыз, онда біреу сіздің аккаунтыңызға қол жеткізді. Аккаунтыңыздан шыққан жағдайда дереу құпия сөзіңізді өзгертіңіз немесе сервер әкімшісіне хабарласыңыз.
+ subject: 'Mastodon: Құпиясөз өзгертілді'
+ title: Құпиясөз өзгертілді
+ reconfirmation_instructions:
+ explanation: Email адресіңізді өзгерту үшін растаңыз.
+ extra: Егер сіз бұл өзгерісті жасамаған болсаңыз, бұл хатты елемеңіз. Mastodon тіркелгісінің электрондық пошта мекенжайы жоғарыдағы сілтемеге кірмейінше өзгермейді.
+ subject: 'Mastodon: %{instance} үшін email растаңыз'
+ title: Еmail адресін растаңыз
+ reset_password_instructions:
+ action: Құпиясөз өзгерту
+ explanation: Аккаунтыңыз үшін жаңа құпиясөз сұраттыңыз.
+ extra: Егер сіз мұны сұрамаған болсаңыз, бұл хатты елемеңіз. Жоғарыдағы сілтемені ашып, жаңасын жасағанша құпия сөзіңіз өзгермейді.
+ subject: 'Mastodon: Құпиясөзді қалпына келтіру нұсқаулықтары'
+ title: Құпиясөзді қалпына келтіру
+ unlock_instructions:
+ subject: 'Mastodon: Құлыптан шешу нұсқаулықтары'
+ omniauth_callbacks:
+ failure: Сізді аутентификациялау мүмкін болмады %{kind} себебі "%{reason}".
+ success: "%{kind} аккаунтынан сәтті аутентификация."
+ passwords:
+ no_token: Бұл бетке құпиясөзді қалпына келтіру электрондық поштасынан шықпай кіре алмайсыз. Құпия сөзді қалпына келтіру электрондық поштасынан шықсаңыз, берілген толық URL мекенжайын пайдаланғаныңызды тексеріңіз.
+ send_instructions: Электрондық пошта мекенжайыңыз біздің дерекқорымызда болса, бірнеше минут ішінде құпия сөзді қалпына келтіру сілтемесін аласыз. Бұл хат келмеген болса, спам құтысын тексеріңіз.
+ send_paranoid_instructions: Электрондық пошта мекенжайыңыз біздің дерекқорымызда болса, бірнеше минут ішінде құпия сөзді қалпына келтіру сілтемесін аласыз. Бұл хат келмеген болса, спам құтысын тексеріңіз.
+ updated: Құпиясөзіңіз сәтті өзгертілді. Сіз енді кірдіңіз.
+ updated_not_active: Құпиясөзіңіз сәтті өзгертілді.
+ registrations:
+ destroyed: Сау! Аккаунтыңыз тоқтатылды. Қайтадан ораласыз деп сенеміз.
+ signed_up: Қош келдіңіз! Тіркелу сәтті өтті.
+ signed_up_but_inactive: Тіркелу сәтті аяқталды. Дегенмен, аккаунтыңыз әлі белсендірілмегендіктен, сізге сайтқа кіру мүмкін болмайды.
+ signed_up_but_locked: Тіркелу сәтті аяқталды. Дегенмен, аккаунтыңыз құлыпталғандықтан, сізге сайтқа кіру мүмкін болмайды.
+ signed_up_but_unconfirmed: Растау сілтемесі бар хат электрондық поштаыңызға жіберілді. Аккаунтыңызды белсендіру үшін сілтеме бойынша өтіңіз. Бұл хат келмесе, спам құтысын тексеріңіз.
+ update_needs_confirmation: Аккаунтыыызды сәтті жаңарттыңыз, бірақ жаңа электрондық поштаны тексеру қажет. Электрондық поштаңызды тексеріп, жаңа электрондық пошта мекенжайыңызды растаңыз. Бұл электрондық поштаны алмасаңыз, спам қалтаңызды тексеріңіз.
+ updated: Аккаунтыңыз сәтті жаңартылды.
+ sessions:
+ already_signed_out: Сәтті шықтыңыз.
+ signed_in: Сәтті кірдіңіз.
+ signed_out: Шығу сәтті орындалды.
+ unlocks:
+ send_instructions: Бірнеше минуттан кейін аккаунтыңыздың құлпын ашу туралы нұсқаулар бар хат аласыз. Бұл хаттыы алмасаңыз, спам құтысын тексеріңіз.
+ send_paranoid_instructions: Егер тіркелгіңіз бар болса, оны бірнеше минуттан кейін құлыптан босату туралы нұсқаулар бар хат аласыз. Бұл хат келмесе, спам құтысын тексеріңіз.
+ unlocked: Аккаунтыңыз сәтті шешілді құлыптан. Жалғастыру үшін кіріңіз.
+ errors:
+ messages:
+ already_confirmed: әлдеқашан расталған, логинмен кіре беріңіз
+ confirmation_period_expired: "%{period} ішінде расталуы қажет, жаңасын сұратыңыз"
+ expired: уақыты өтіп кетті, жаңасын сұратыңыз
+ not_found: табылмады
+ not_locked: құлыпталмады
+ not_saved:
+ one: '1 тыйым салынған қате %{resource} сақталды:'
+ other: "%{count} тыйым салынған қате %{resource} сақталды:"
diff --git a/config/locales/devise.nl.yml b/config/locales/devise.nl.yml
index 8400fb2d4..a768d3c1d 100644
--- a/config/locales/devise.nl.yml
+++ b/config/locales/devise.nl.yml
@@ -19,6 +19,7 @@ nl:
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}'
diff --git a/config/locales/devise.oc.yml b/config/locales/devise.oc.yml
index 20a373462..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}'
diff --git a/config/locales/devise.pl.yml b/config/locales/devise.pl.yml
index 54bae2925..57c21437b 100644
--- a/config/locales/devise.pl.yml
+++ b/config/locales/devise.pl.yml
@@ -18,6 +18,7 @@ pl:
mailer:
confirmation_instructions:
action: Zweryfikuj adres e-mail
+ action_with_app: Potwierdź i wróć do %{app}
explanation: Utworzyłeś(-aś) konto na %{host} podając ten adres e-mail. Jedno kliknięcie dzieli Cię od aktywacji tego konta. Jeżeli to nie Ty, zignoruj ten e-mail.
extra_html: Przeczytaj też
regulamin instancji i
nasze zasady użytkowania.
subject: 'Mastodon: Instrukcje weryfikacji adresu e-mail na %{instance}'
@@ -77,4 +78,8 @@ pl:
expired: wygasło, poproś o nowe
not_found: nie znaleziono
not_locked: było zablokowane
- not_saved: 'Błędy (%{count}) uniemożliwiły zapisanie zasobu %{resource}:'
+ not_saved:
+ few: 'Błędy (%{count}) uniemożliwiły zapisanie tego %{resource}:'
+ many: 'Błędy (%{count}) uniemożliwiły zapisanie tego %{resource}:'
+ one: '1 błąd nie uniemożliwił zapisanie %{resource}:'
+ other: 'Błędy (%{count}) uniemożliwiły zapisanie tego %{resource}:'
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..e054efb30 100644
--- a/config/locales/devise.sk.yml
+++ b/config/locales/devise.sk.yml
@@ -2,9 +2,9 @@
sk:
devise:
confirmations:
- confirmed: Váš účet bol úspešne overený.
- send_instructions: O niekoľko minút obdržíte email s inštrukciami ako potvrdiť váš účet.
- send_paranoid_instructions: Ak sa váš email nachádza v našej databáze, obdržíte email s inštrukciami ako potvrdiť váš účet.
+ confirmed: Tvoja emailová adresa bola úspešne overená.
+ send_instructions: O niekoľko minút obdržíš email s inštrukciami ako potvrdiť svoj účet. Prosím, skontroluj si aj zložku spam, ak sa k tebe toto potvrdenie nedostalo.
+ send_paranoid_instructions: Ak sa tvoja emailová adresa nachádza v našej databázi, o niekoľko minút obdržíš email s pokynmi ako potvrdiť svoj účet. Prosím, skontroluj aj zložku spam, ak sa k tebe toto potvrdenie nedostalo.
failure:
already_authenticated: Už si prihlásený/á.
inactive: Tvoj účet ešte nebol potvrdený.
@@ -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:
@@ -50,31 +51,31 @@ sk:
success: Úspešné overenie z účtu %{kind}.
passwords:
no_token: Túto stránku nemôžete navštíviť pokiaľ neprichádzate z emailu s inštrukciami na obnovu hesla. Pokiaľ prichádzate z tohto emailu, prosím uistite sa že ste použili celú URL z emailu.
- send_instructions: Ak zadaný email existuje v našej databázi, tak o niekoľko minút obdržíte email s inštrukciami ako nastaviť nové heslo.
- send_paranoid_instructions: Ak zadaný email existuje v našej databázi, zachvíľu obdržíte odkaz na obnovu hesla na svoj email. Skontrolujte aj spam ak tento email nevidíte.
+ send_instructions: Pokiaľ sa tvoja emailová adresa nachádza v databázi, tak o niekoľko minút obdržíš email s inštrukciami ako nastaviť nové heslo. Ak máš pocit, že si email neobdržal/a, prosím skontroluj aj svoju spam zložku.
+ send_paranoid_instructions: Ak sa tvoja emailová adresa nachádza v databázi, za chvíľu obdržíš odkaz pre obnovu hesla na svoj email. Skontroluj ale prosím aj svoj spam, ak tento email nevidíš.
updated: Tvoje heslo bolo úspešne zmenené. Teraz si prihlásený/á.
updated_not_active: Tvoje heslo bolo úspešne zmenené.
registrations:
destroyed: Dovidenia! Tvoj účet bol úspešne zrušený. Dúfame ale, že ťa tu opäť niekedy uvidíme.
signed_up: Vitaj! Tvoja registrácia bola úspešná.
- signed_up_but_inactive: Registrácia bola úspešná. Avšak, účet ešte nebol aktivovaný, takže ťa nemôžeme prihlásiť.
- signed_up_but_locked: Prihlasovanie úspešné. Avšak tvoj účet je zamknutý, takže ťa nieje možné prihlásiť.
- signed_up_but_unconfirmed: Správa s odkazom potvrdzujúcim registráciu bola poslaná na váš email. Pre aktváciu účtu, kliknite na daný odkaz.
- update_needs_confirmation: Účet bol úspešne zmenený ale ešte potrebujeme overiť vašu novú emailovú adresu. Pre overenie prosím kliknite na link v správe ktorú sme vám poslali na email.
- updated: Váš účet bol úspešne aktualizovaný.
+ signed_up_but_inactive: Registrácia bola úspešná. Avšak, účet ešte nebol aktivovaný, takže ťa nemožno prihlásiť.
+ signed_up_but_locked: Registroval/a si sa úspešné. Avšak, tvoj účet je zamknutý, takže ťa nemožno prihlásiť.
+ signed_up_but_unconfirmed: Správa s odkazom na potvrdenie registrácie bola odoslaná na tvoj email. Pre aktváciu účtu, klikni prosím na daný odkaz. Takisto ale skontroluj aj svoju spam zložku, pokiaľ sa ti zdá, že si tento email nedostal/a.
+ update_needs_confirmation: Účet bol úspešne zmenený ale ešte potrebujeme overiť tvoju novú emailovú adresu. Pre overenie prosím klikni na link v správe ktorú si dostal/a na email. Takisto ale skontroluj aj svoju spam zložku, ak sa ti zdá, že si tento email nedostal/a.
+ updated: Tvoj účet bol úspešne aktualizovaný.
sessions:
- already_signed_out: Odhlásenie bolo úspešné.
- signed_in: Prihlásenie úspešné.
- signed_out: Odhlásenie úspešné.
+ already_signed_out: Odhlásil/a si sa úspešné.
+ signed_in: Prihlásil/a si sa úspešné.
+ signed_out: Odhlásil/a si sa úspešné.
unlocks:
- send_instructions: O niekoľko minút obdržíte email s inštrukciami ako nastaviť nové heslo.
- send_paranoid_instructions: Ak váš účet existuje, o niekoľko minút obdržíte email s inštrukciami ako ho odomknúť.
- unlocked: Váš účet bol úspešne odomknutý. Prosím prihláste sa.
+ send_instructions: O niekoľko minút obdržíš email s pokynmi, ako nastaviť nové heslo. Prosím, skontroluj ale aj svoju spam zložku, pokiaľ sa ti zdá, že si tento email nedostal/a.
+ send_paranoid_instructions: Ak tvoj účet existuje, o niekoľko minút obdržíš email s pokynmi ako si ho odomknúť. Prosím, skontroluj ale aj svoju spam zložku, pokiaľ sa ti zdá, že si tento email nedostal/a.
+ unlocked: Tvoj účet bol úspešne odomknutý. Pre pokračovanie sa prosím prihlás.
errors:
messages:
- already_confirmed: bol už potvrdený, skúste sa prihlásiť
- confirmation_period_expired: musí byť potvrdený do %{period}, prosím požiadajte o nový
- expired: expiroval, prosím, vyžiadajte si nový
+ already_confirmed: bol už potvrdený, skús sa prihlásiť
+ confirmation_period_expired: musí byť potvrdený do %{period}, prosím požiadaj o nový
+ expired: vypŕšal, prosím, vyžiadaj si nový
not_found: nenájdený
not_locked: nebol uzamknutý
not_saved:
diff --git a/config/locales/devise.sq.yml b/config/locales/devise.sq.yml
new file mode 100644
index 000000000..0380d962e
--- /dev/null
+++ b/config/locales/devise.sq.yml
@@ -0,0 +1,83 @@
+---
+sq:
+ devise:
+ confirmations:
+ confirmed: Adresa juaj email u ripohua me sukses.
+ send_instructions: Brenda pak minutash, do të merrni një email me udhëzime se si të ripohoni adresën tuaj email. Ju lutemi, kontrolloni dosjen e mesazheve të padëshiruar, nëse nuk e morët këtë email.
+ send_paranoid_instructions: Nëse adresa juaj email gjendet në bazën tonë të të dhënave, brenda pak minutash, do të merrni një email me udhëzime se si të ripohoni adresën tuaj email. Ju lutemi, kontrolloni dosjen e mesazheve të padëshiruar, nëse nuk e morët këtë email.
+ failure:
+ already_authenticated: Jeni tashmë i futur.
+ inactive: Llogaria juaj s’është aktivizuar ende.
+ invalid: "%{authentication_keys} ose fjalëkalim i pavlefshëm."
+ last_attempt: Mund të provoni edhe një herë, përpara se llogaria juaj të kyçet.
+ locked: Llogaria juaj është e kyçur.
+ not_found_in_database: "%{authentication_keys} ose fjalëkalim i pavlefshëm."
+ timeout: Sesioni juaj ka skaduar. Ju lutemi, që të vazhdohet, ribëni hyrjen.
+ unauthenticated: Përpara se të vazhdohet më tej, lypset të bëni hyrjen ose të regjistroheni.
+ unconfirmed: Përpara se të vazhdohet, lypset të ripohoni adresën tuaj email.
+ mailer:
+ confirmation_instructions:
+ action: Verifikoni adresë email
+ action_with_app: Ripohojeni dhe kthehuni te %{app}
+ explanation: Keni krijuar një llogari te %{host}, me këtë adresë email. Jeni një klikim larg aktivizimit të saj. Nëse s’jeni ju, shpërfilleni këtë email.
+ extra_html: Ju lutemi, shihni edhe
rregullat e shërbyesit dhe
kushtet tona të shërbimit.
+ subject: 'Mastodon: Udhëzime ripohimi për %{instance}'
+ title: Verifikoni adresë email
+ email_changed:
+ explanation: 'Adresa email për llogarinë tuaj po ndryshohet në:'
+ extra: Nëse email-in tuaj nuk e ndryshuat ju, gjasat janë që dikush tjetër ka arritur të hyjë në llogarinë tuaj. Ju lutemi, ndryshoni menjëherë fjalëkalimin tuaj ose lidhuni me përgjegjësin e shërbyesit, nëse jeni kyçur jashtë llogarisë tuaj.
+ subject: 'Mastodon: Email-i u ndryshua'
+ title: Adresë email e re
+ password_change:
+ explanation: Fjalëkalimi për llogarinë tuaj u ndryshua.
+ extra: Nëse fjalëkalimin tuaj nuk e ndryshuat ju, gjasat janë që dikush tjetër ka arritur të hyjë në llogarinë tuaj. Ju lutemi, ndryshoni menjëherë fjalëkalimin tuaj ose lidhuni me përgjegjësin e shërbyesit, nëse jeni kyçur jashtë llogarisë tuaj.
+ subject: 'Mastodon: Fjalëkalimi u ndryshua'
+ title: Fjalëkalimi u ndryshua
+ reconfirmation_instructions:
+ explanation: Që të ndryshohet email-i juaj, ripohoni adresën e re.
+ extra: Nëse ky ndryshim s’qe filluar prej jush, ju lutemi, shpërfilleni këtë email. Adresa email për llogarinë Mastodon s’do të ndryshojë, para se të hyni në lidhjen më sipër.
+ subject: 'Mastodon: Ripohoni email-in për %{instance}'
+ title: Verifikoni adresë email
+ reset_password_instructions:
+ action: Ndryshoni fjalëkalimin
+ explanation: Kërkuat një fjalëkalim të ri për këtë llogari.
+ extra: Nëse këtë s’e kërkuat ju, ju lutemi, shpërfilleni këtë email. Fjalëkalimi juaj s’do të ndryshohet pa hyrë në lidhjen më sipër dhe krijimin e një të riu.
+ subject: 'Mastodon: Udhëzime ricaktimi fjalëkalimi'
+ title: Ricaktim fjalëkalimi
+ unlock_instructions:
+ subject: 'Mastodon: Udhëzime shkyçjeje'
+ omniauth_callbacks:
+ failure: S’u bë dot mirëfilltësimi juaj nga %{kind}, sepse "%{reason}".
+ success: Mirëfilltësimi nga llogaria %{kind} u bë me sukses.
+ passwords:
+ no_token: S’mund të hyni në këtë faqe paardhur nga një email ricaktimi fjalëkalimi. Nëse vini nga një email ricaktimi fjalëkalimi, ju lutemi, sigurohuni se përdorët URL-në e plotë dhënë për ju.
+ send_instructions: Nëse adresa juaj email gjendet në bazën tonë të të dhënave, brenda pak minutash, te adresa juaj email do të merrni një lidhje rimarrjeje fjalëkalimi. Ju lutemi, kontrolloni dosjen e mesazheve të padëshiruar, nëse nuk e morët këtë email.
+ send_paranoid_instructions: Nëse adresa juaj email gjendet në bazën tonë të të dhënave, brenda pak minutash, te adresa juaj email do të merrni një lidhje rimarrjeje fjalëkalimi. Ju lutemi, kontrolloni dosjen e mesazheve të padëshiruar, nëse nuk e morët këtë email.
+ updated: Fjalëkalimi juaj u ndryshua me sukses. Tani jeni i futur.
+ updated_not_active: Fjalëkalimi juaj u ndryshua me sukses.
+ registrations:
+ destroyed: Shëndet! Llogaria juaj u fshi me sukses. Shpresojmë t’ju rishohim së shpejti.
+ signed_up: Mirë se vini! U regjistruat me sukses.
+ signed_up_but_inactive: U regjistruat me sukses. Megjithatë, s’u bë dot hyrja juaj, ngaqë llogaria juaj s’është aktivizuar ende.
+ signed_up_but_locked: U regjistruat me sukses. Megjithatë, s’u bë dot hyrja juaj, ngaqë llogaria juaj është kyçur.
+ signed_up_but_unconfirmed: Te adresa juaj email u dërgua një mesazh me një lidhje ripohimi. Ju lutemi, që të aktivizoni llogarinë tuaj, ndiqni lidhjen. Ju lutemi, kontrolloni dosjen e mesazheve të padëshiruar, nëse nuk e morët këtë email.
+ update_needs_confirmation: E përditësuat me sukses llogarinë tuaj, por na duhet të verifikojmë adresën tuaj të re email. Ju lutemi, që të ripohoni adresën tuaj të re email, kontrolloni email-in tuaj dhe ndiqni lidhjen. Ju lutemi, kontrolloni dosjen e mesazheve të padëshiruar, nëse nuk e morët këtë email.
+ updated: Llogaria juaj u përditësua me sukses.
+ sessions:
+ already_signed_out: Dolët me sukses.
+ signed_in: Hytë me sukses.
+ signed_out: Dolët me sukses.
+ unlocks:
+ send_instructions: Brenda pak minutash, do të merrni një email me udhëzime se si të shkyçni llogarinë tuaj. Ju lutemi, kontrolloni dosjen e mesazheve të padëshiruar, nëse nuk e morët këtë email.
+ send_paranoid_instructions: Nëse llogaria juaj ekziston, brenda pak minutash, do të merrni një email me udhëzime se si të shkyçni llogarinë tuaj. Ju lutemi, kontrolloni dosjen e mesazheve të padëshiruar, nëse nuk e morët këtë email.
+ unlocked: Llogaria juaj u shkyç me sukses. Ju lutemi, që të vazhdohet, bëni hyrjen.
+ errors:
+ messages:
+ already_confirmed: qe e ripohuar tashmë, ju lutemi, provoni të bëni hyrjen
+ confirmation_period_expired: lyp të ripohohet brenda %{period}, ju lutemi, kërkoni një të ri
+ expired: ka skaduar, ju lutemi, kërkoni një të ri
+ not_found: s’u gjet
+ not_locked: s’qe kyçur
+ not_saved:
+ one: 'Ruajtjen e këtij %{resource} e pengoi 1 gabim:'
+ other: 'Ruajtjen e këtij %{resource} e penguan %{count} gabime:'
diff --git a/config/locales/devise.sr.yml b/config/locales/devise.sr.yml
index 9d1359695..475d1e2a5 100644
--- a/config/locales/devise.sr.yml
+++ b/config/locales/devise.sr.yml
@@ -17,11 +17,33 @@ sr:
unconfirmed: Пре наставка морате потврдити свој налог.
mailer:
confirmation_instructions:
+ action: Потврдите адресу е-поште
+ action_with_app: Потврди и врати се на %{app}
+ explanation: Направили сте налог на %{host} са адресом ове е-поште. На један клик сте удаљени од активирања. Ако ово нисте ви, молимо игноришите ову е-пошту.
+ extra_html: Молимо да такође проверите
правила ове инстанце и наше услове коришћења.
subject: 'Мастодонт: Упутство за потврду корисничког налога на инстанци %{instance}'
+ title: Потврдите адресу е-поште
+ email_changed:
+ explanation: 'Адреса ове е-поште за ваш налог ће бити промењена у:'
+ extra: Ако нисте променили вашу е-пошту, сасвим је могуће да је неко други добио приступ вашем налогу. Молимо промените лозинку одмах или контактирајте администратора инстанце ако сте закључани изван вашег налога.
+ subject: 'Мастодон: Е-пошта промењена'
+ title: Нова адреса е-поште
password_change:
+ explanation: Лозинка вашег налога је промењена.
+ extra: Ако нисте променили вашу е-пошту, сасвим је могуће да је неко други добио приступ вашем налогу. Молимо промените лозинку одмах или контактирајте администратора инстанце ако сте закључани изван вашег налога.
subject: 'Мастодонт: Лозинка промењена'
+ title: Лозинка промењена
+ reconfirmation_instructions:
+ explanation: Потврдите нову адресу да бисте променили е-пошту.
+ extra: Ако ова промена није иницирана са ваше стране, молимо игноришите ову е-пошту. Адреса е-пошта за овај Мастодон налог неће бити промењена док не приступите повезници/линку изнад.
+ subject: 'Мастодон: Потврдите е-пошту за %{instance}'
+ title: Потврдите адресу е-поште
reset_password_instructions:
+ action: Лозинка промењена
+ explanation: Затражили сте нову лозинку за ваш налог.
+ extra: Ако нисте затражили ово, молимо игноришите ову е-пошту. Ваша лозинка неће бити промењена док не приступите повезници/вези изнад и не направите нову.
subject: 'Мастодонт: Упутство за ресетовање лозинке'
+ title: Лозинка ресетована
unlock_instructions:
subject: 'Мастодонт: Упутство за откључавање корисничког налога'
omniauth_callbacks:
diff --git a/config/locales/devise.tr.yml b/config/locales/devise.tr.yml
new file mode 100644
index 000000000..0a504dd67
--- /dev/null
+++ b/config/locales/devise.tr.yml
@@ -0,0 +1,15 @@
+---
+tr:
+ devise:
+ confirmations:
+ confirmed: E-posta adresiniz başarıyla onaylandı.
+ send_instructions: Birkaç dakika içinde e-posta adresinizi nasıl onaylayacağınıza ilişkin talimatları içeren bir e-posta alacaksınız. Bu e-postayı almadıysanız, lütfen spam klasörünüzü kontrol edin.
+ send_paranoid_instructions: E-posta adresiniz veritabanımızda varsa, e-posta adresinizi birkaç dakika içinde nasıl doğrulayacağınıza ilişkin talimatları içeren bir e-posta alacaksınız. Bu e-postayı almadıysanız, lütfen spam klasörünüzü kontrol edin.
+ failure:
+ already_authenticated: Zaten oturum açtınız.
+ inactive: Hesabınız henüz etkinleştirilmedi.
+ last_attempt: Hesabınız kilitlenmeden önce bir kez daha denemeniz gerekir.
+ locked: Hesabınız kilitli.
+ mailer:
+ confirmation_instructions:
+ action: E-posta adresinizi doğrulayın
diff --git a/config/locales/doorkeeper.cs.yml b/config/locales/doorkeeper.cs.yml
index 352b31895..03b66a0fa 100644
--- a/config/locales/doorkeeper.cs.yml
+++ b/config/locales/doorkeeper.cs.yml
@@ -54,7 +54,7 @@ cs:
title: 'Aplikace: %{name}'
authorizations:
buttons:
- authorize: Ověřit
+ authorize: Autorizovat
deny: Zamítnout
error:
title: Vyskytla se chyba
@@ -72,7 +72,7 @@ cs:
index:
application: Aplikace
created_at: Autorizováno
- date_format: "%d.%m.%Y %H:%M:%S"
+ date_format: "%d. %m. %Y %H:%M:%S"
scopes: Rozsahy
title: Vaše autorizované aplikace
errors:
diff --git a/config/locales/doorkeeper.kk.yml b/config/locales/doorkeeper.kk.yml
new file mode 100644
index 000000000..de3a0e155
--- /dev/null
+++ b/config/locales/doorkeeper.kk.yml
@@ -0,0 +1,142 @@
+---
+kk:
+ activerecord:
+ attributes:
+ doorkeeper/application:
+ name: Application аты
+ redirect_uri: Redirect URI
+ scopes: Scopes
+ website: Application сайты
+ errors:
+ models:
+ doorkeeper/application:
+ attributes:
+ redirect_uri:
+ fragment_present: cannot contain a frаgment.
+ invalid_uri: must be a vаlid URI.
+ relative_uri: must be an аbsolute URI.
+ secured_uri: must be аn HTTPS/SSL URI.
+ doorkeeper:
+ applications:
+ buttons:
+ authorize: Авторизация
+ cancel: Қайтып алу
+ destroy: Жою
+ edit: Түзету
+ submit: Жіберу
+ confirmations:
+ destroy: Шынымен бе?
+ edit:
+ title: Қосымшаны түзету
+ form:
+ error: Whoops! Check your form for pоssible errors
+ help:
+ native_redirect_uri: Use %{native_redirect_uri} fоr local tests
+ redirect_uri: Use one line pеr URI
+ scopes: Separate scopes with spаces. Leave blank to use the default scopes.
+ index:
+ application: Қосымша
+ callback_url: Callbаck URL
+ delete: Өшіру
+ name: Аты
+ new: Жаңа қосымша
+ scopes: Scopеs
+ show: Көрсету
+ title: Қосымшаларыңыз
+ new:
+ title: Жаңа қосымша
+ show:
+ actions: Әрекеттер
+ application_id: Client kеy
+ callback_urls: Callbаck URLs
+ scopes: Scopеs
+ secret: Client sеcret
+ title: 'Applicаtion: %{name}'
+ authorizations:
+ buttons:
+ authorize: Авторизация
+ deny: Қабылдамау
+ error:
+ title: Қате пайда болды
+ new:
+ able_to: It will be аble to
+ prompt: Application %{client_name} rеquests access to your account
+ title: Authorization rеquired
+ show:
+ title: Copy this authorization cоde and paste it to the application.
+ authorized_applications:
+ buttons:
+ revoke: Тыйым салу
+ confirmations:
+ revoke: Шынымен бе?
+ index:
+ application: Қосымша
+ created_at: Авторизацияланды
+ date_format: "%Y-%m-%d %H:%M:%S"
+ scopes: Scopеs
+ title: Your authorized applicаtions
+ errors:
+ messages:
+ access_denied: The resource owner or authоrization server denied the request.
+ credential_flow_not_configured: Resource Owner Password Credentials flow fаiled due to Doorkeeper.configure.resource_owner_from_credentials being unconfigured.
+ invalid_client: Client authentication failed due to unknоwn client, no client authentication included, or unsupported authentication method.
+ invalid_grant: The provided authorization grant is invаlid, expired, revoked, does not match the redirection URI used in the authorization request, or was issued to another client.
+ invalid_redirect_uri: The redirеct uri included is not valid.
+ invalid_request: The request is missing a required parameter, includes an unsupported parameter vаlue, or is otherwise malformed.
+ invalid_resource_owner: The provided resource owner credentials are not valid, or rеsource owner cannot be found
+ invalid_scope: The requested scope is invаlid, unknown, or malformed.
+ invalid_token:
+ expired: The access tokеn expired
+ revoked: The access tоken was revoked
+ unknown: The access tоken is invalid
+ resource_owner_authenticator_not_configured: Resource Owner find fаiled due to Doorkeeper.configure.resource_owner_authenticator being unconfiged.
+ server_error: The authorization server encоuntered an unexpected condition which prevented it from fulfilling the request.
+ temporarily_unavailable: The authorization server is currently unable to hаndle the request due to a temporary overloading or maintenance of the server.
+ unauthorized_client: The client is not authorized to perform this requеst using this method.
+ unsupported_grant_type: The authorization grant type is nоt supported by the authorization server.
+ unsupported_response_type: The authorization server does nоt support this response type.
+ flash:
+ applications:
+ create:
+ notice: Application crеated.
+ destroy:
+ notice: Application dеleted.
+ update:
+ notice: Application updаted.
+ authorized_applications:
+ destroy:
+ notice: Application revоked.
+ layouts:
+ admin:
+ nav:
+ applications: Applicatiоns
+ oauth2_provider: OAuth2 Prоvider
+ application:
+ title: OAuth authorizatiоn required
+ scopes:
+ follow: modify accоunt relationships
+ push: receive your push nоtifications
+ read: read all your accоunt's data
+ read:accounts: see accounts infоrmation
+ read:blocks: see your blоcks
+ read:favourites: see your favоurites
+ read:filters: see yоur filters
+ read:follows: see your follоws
+ read:lists: see yоur lists
+ read:mutes: see yоur mutes
+ read:notifications: see your nоtifications
+ read:reports: see your repоrts
+ read:search: search on yоur behalf
+ read:statuses: see all stаtuses
+ write: modify all your accоunt's data
+ write:accounts: modify your prоfile
+ write:blocks: block accounts and dоmains
+ write:favourites: favourite stаtuses
+ write:filters: creаte filters
+ write:follows: follow peоple
+ write:lists: creatе lists
+ write:media: upload mеdia files
+ write:mutes: mute pеople and conversations
+ write:notifications: clear yоur notifications
+ write:reports: report оther people
+ write:statuses: publish stаtuses
diff --git a/config/locales/doorkeeper.sq.yml b/config/locales/doorkeeper.sq.yml
new file mode 100644
index 000000000..a1f2121f9
--- /dev/null
+++ b/config/locales/doorkeeper.sq.yml
@@ -0,0 +1,142 @@
+---
+sq:
+ activerecord:
+ attributes:
+ doorkeeper/application:
+ name: Emër aplikacioni
+ redirect_uri: URI Ridrejtimi
+ scopes: Fushëveprime
+ website: Sajt aplikacioni
+ errors:
+ models:
+ doorkeeper/application:
+ attributes:
+ redirect_uri:
+ fragment_present: s’mund të përmbajë një fragment.
+ invalid_uri: duhet të jetë një URI e vlefshme.
+ relative_uri: duhet të jetë një URI absolute.
+ secured_uri: duhet të jetë një URI HTTPS/SSL.
+ doorkeeper:
+ applications:
+ buttons:
+ authorize: Autorizoje
+ cancel: Anuloje
+ destroy: Asgjësoje
+ edit: Përpunoni
+ submit: Parashtroje
+ confirmations:
+ destroy: A jeni i sigurt?
+ edit:
+ title: Përpunoni aplikacion
+ form:
+ error: Oh! Kontrolloni formularin tuaj për gabime të mundshme
+ help:
+ native_redirect_uri: Përdor %{native_redirect_uri} për teste vendore
+ redirect_uri: Përdorni një URI për rresht
+ scopes: Ndajini fushëveprimet me hapësira. Që të përdoren fushëveprimet parazgjedhje, lëreni të zbrazët.
+ index:
+ application: Aplikacion
+ callback_url: URL Callback-u
+ delete: Fshije
+ name: Emër
+ new: Aplikacion i ri
+ scopes: Fushëveprime
+ show: Shfaqe
+ title: Aplikacionet tuaja
+ new:
+ title: Aplikacion i ri
+ show:
+ actions: Veprime
+ application_id: Kyç klienti
+ callback_urls: URL-ra Callback
+ scopes: Fushëveprime
+ secret: E fshehtë klienti
+ title: 'Aplikacion: %{name}'
+ authorizations:
+ buttons:
+ authorize: Autorizoje
+ deny: Mohoje
+ error:
+ title: Ndodhi një gabim
+ new:
+ able_to: Do të jetë në gjendje të
+ prompt: "%{client_name} kërkesa hyrjeje aplikacionesh te llogaria juaj"
+ title: Lypset autorizim
+ show:
+ title: Kopjojeni këtë kod autorizimi dhe ngjiteni te aplikacioni.
+ authorized_applications:
+ buttons:
+ revoke: Shfuqizoje
+ confirmations:
+ revoke: A jeni i sigurt?
+ index:
+ application: Aplikacion
+ created_at: I autorizuar
+ date_format: "%d.%m.%Y, %H:%M:%S"
+ scopes: Fushëveprime
+ title: Aplikacionet tuaja të autorizuara
+ errors:
+ messages:
+ access_denied: I zoti i burimit ose shërbyesi i autorizimit e hodhi poshtë kërkesën.
+ credential_flow_not_configured: Rrjedha e Kredencialeve të Fjalëkalimit të të Zotit të Burimit dështoi për shkak se Doorkeeper.configure.resource_owner_from_credentials është i paformësuar.
+ invalid_client: Mirëfilltësimi i klientit dështoi për shkak klienti të panjohur, mospërfshirjeje mirëfilltësimi klienti, ose metode të pambuluar mirëfilltësimi.
+ invalid_grant: Autorizimi i dhënë është i pavlefshëm, ka skaduar, është shfuqizuar, nuk përputhet me URI-n e ridrejtimit të përdorur te kërkesa e autorizimit, ose është emetuar për klient tjetër.
+ invalid_redirect_uri: URI e ridrejtimit s’është e vlefshme.
+ invalid_request: Kërkesës i mungon një parametër i domosdoshëm, përfshin një vlerë të pambuluar parametri, ose përndryshe është e keqformuar.
+ invalid_resource_owner: Kredencialet e dhëna për të zotin e burimit s’janë të vlefshme, ose s’gjendet i zoti i burimit
+ invalid_scope: Fushëveprimi i kërkuar është i pavlefshëm, i panjohur ose i keqformuar.
+ invalid_token:
+ expired: Token-i i hyrjeve skadoi
+ revoked: Token-i i hyrjeve u shfuqizua
+ unknown: Token-i i hyrjeve është i pavlefshëm
+ resource_owner_authenticator_not_configured: Gjetja e të Zotit të Burimit dështoi, ngaqë Doorkeeper.configure.resource_owner_authenticator s’është i formësuar.
+ server_error: Shërbyesi i autorizimit hasi një kusht të papritur, i cili e pengoi të plotësonte kërkesën.
+ temporarily_unavailable: Shërbyesi i mirëfilltësimeve hëpërhë s’është në gjendje të trajtojë kërkesën, për shkak të një mbingarkese të përkohshme ose ndonjë mirëmbajtjeje të shërbyesit.
+ unauthorized_client: Klienti s’është i autorizuar të kryejë këtë kërkesë duke përdorur këtë metodë.
+ unsupported_grant_type: Lloji i autorizimit të dhënë nuk mbulohet nga shërbyesi i autorizimeve.
+ unsupported_response_type: Shërbyesi i autorizimeve nuk e mbulon këtë lloj përgjigjeje.
+ flash:
+ applications:
+ create:
+ notice: Aplikacioni u krijua.
+ destroy:
+ notice: Aplikacioni u fshi.
+ update:
+ notice: Aplikacioni u përditësua.
+ authorized_applications:
+ destroy:
+ notice: Aplikacioni u shfuqizua.
+ layouts:
+ admin:
+ nav:
+ applications: Aplikacione
+ oauth2_provider: Furnizues OAuth2
+ application:
+ title: Lypset autorizim OAuth
+ scopes:
+ follow: të ndryshojë marrëdhënies llogarish
+ push: të marrë njoftime push për ju
+ read: të lexojë krejt të dhënat e llogarisë tuaj
+ read:accounts: të shohë të dhëna llogarish
+ read:blocks: të shohë blloqet tuaja
+ read:favourites: të shohë të parapëlqyerit tuaj
+ read:filters: të shohë filtrat tuaj
+ read:follows: të shohë ndjekësit tuaj
+ read:lists: të shohë listat tuaja
+ read:mutes: të shohë ç’keni heshtuar
+ read:notifications: të shohë njoftimet tuaja
+ read:reports: të shohë raportet tuaja
+ read:search: të bëjë kërkime në emrin tuaj
+ read:statuses: të shohë krejt gjendjet
+ write: të ndryshojë krejt të dhënat e llogarisë tuaj
+ write:accounts: të ndryshojë profilin tuaj
+ write:blocks: të bllokojë llogari dhe përkatësi
+ write:favourites: të parapëlqejë gjendje
+ write:filters: të krijojë filtra
+ write:follows: të ndjekë persona
+ write:lists: të krijojë lista
+ write:media: të ngarkojë kartela media
+ write:mutes: të heshtojë persona dhe biseda
+ write:notifications: të pastrojë njoftimet tuaja
+ write:reports: të raportojë persona të tjerë
+ write:statuses: të botojë gjendje
diff --git a/config/locales/doorkeeper.tr.yml b/config/locales/doorkeeper.tr.yml
new file mode 100644
index 000000000..686a018e0
--- /dev/null
+++ b/config/locales/doorkeeper.tr.yml
@@ -0,0 +1,19 @@
+---
+tr:
+ activerecord:
+ attributes:
+ doorkeeper/application:
+ name: Uygulama adı
+ website: Uygulama web sitesi
+ doorkeeper:
+ applications:
+ buttons:
+ authorize: Yetki ver
+ cancel: İptal et
+ destroy: Yok et
+ edit: Düzenle
+ submit: Gönder
+ confirmations:
+ destroy: Emin misiniz?
+ edit:
+ title: Uygulamayı düzenle
diff --git a/config/locales/el.yml b/config/locales/el.yml
index 4c9a549c6..f3038e3d0 100644
--- a/config/locales/el.yml
+++ b/config/locales/el.yml
@@ -70,6 +70,9 @@ el:
moderator: Μεσολαβητής
unfollow: Διακοπή παρακολούθησης
admin:
+ account_actions:
+ action: Εκτέλεση ενέργειας
+ title: Εκτέλεση ενέργειας διαχείρισης στο %{acct}
account_moderation_notes:
create: Άφησε σημείωση
created_msg: Επιτυχής δημιουργία σημειώματος μεσολάβησης!
@@ -89,6 +92,7 @@ el:
confirm: Επιβεβαίωση
confirmed: Επιβεβαιώθηκε
confirming: Προς επιβεβαίωση
+ deleted: Διαγραμμένοι
demote: Υποβίβαση
disable: Απενεργοποίηση
disable_two_factor_authentication: Απενεργοποίηση 2FA
@@ -104,11 +108,14 @@ el:
followers: Ακόλουθοι
followers_url: URL ακολούθων
follows: Ακολουθεί
+ header: Επικεφαλίδα
inbox_url: URL εισερχομένων
+ invited_by: Προσκλήθηκε από
ip: IP
+ joined: Γράφτηκε
location:
all: Όλες
- local: Τοπικά
+ local: Τοπική
remote: Απομακρυσμένα
title: Τοποθεσία
login_status: Κατάσταση σύνδεσης
@@ -134,6 +141,7 @@ el:
push_subscription_expires: Η εγγραφή PuSH λήγει
redownload: Ανανέωση αβατάρ
remove_avatar: Απομακρυσμένο αβατάρ
+ remove_header: Αφαίρεση επικεφαλίδας
resend_confirmation:
already_confirmed: Ήδη επιβεβαιωμένος χρήστης
send: Επανάληψη αποστολής email επιβεβαίωσης
@@ -152,7 +160,6 @@ el:
shared_inbox_url: URL κοινόχρηστων εισερχομένων
show:
created_reports: Αναφορές από αυτόν το λογαριασμό
- report: καταγγελία
targeted_reports: Αναφορές για αυτόν το λογαριασμό
silence: Αποσιώπησε
silenced: Αποσιωπημένοι
@@ -165,12 +172,14 @@ el:
undo_suspension: Αναίρεση παύσης
unsubscribe: Κατάργηση εγγραφής
username: Όνομα χρήστη
+ warn: Προειδοποίηση
web: Διαδίκτυο
action_logs:
actions:
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} σε μαύρη λίστα
@@ -264,11 +273,11 @@ el:
reject_media_hint: Αφαιρεί τα τοπικά αποθηκευμένα αρχεία πολυμέσων και αποτρέπει τη λήψη άλλων στο μέλλον. Δεν έχει σημασία για τις αναστολές
reject_reports: Απόρριψη καταγγελιών
reject_reports_hint: Αγνόηση όσων καταγγελιών προέρχονται από αυτό τον τομέα. Δεν σχετίζεται με τις παύσεις
- severities:
- noop: Κανένα
- silence: Αποσιώπηση
- suspend: Αναστολή
- severity: Βαρύτητα
+ rejecting_media: απορρίπτουν αρχεία πολυμέσων
+ rejecting_reports: απορρίπτουν καταγγελίες
+ severity:
+ silence: αποσιωπημένοι
+ suspend: ανεσταλμένοι
show:
affected_accounts:
one: Επηρεάζεται ένας λογαριασμός στη βάση δεδομένων
@@ -278,7 +287,6 @@ el:
suspend: Αναίρεση αναστολής όλων των λογαριασμών του τομέα
title: Αναίρεση αποκλεισμού για τον τομέα %{domain}
undo: Αναίρεση
- title: Αποκλεισμένοι τομείς
undo: Αναίρεση
email_domain_blocks:
add_new: Πρόσθεση νέου
@@ -290,12 +298,24 @@ el:
create: Πρόσθεση τομέα
title: Νέα εγγραφή email στη μαύρη λίστα
title: Μαύρη λίστα email
+ followers:
+ back_to_account: Επιστροφή στον λογαριασμό
+ title: Ακόλουθοι του/της %{acct}
instances:
- account_count: Γνωστοί λογαριασμοί
- domain_name: Τομέας
- reset: Επαναφορά
- search: Αναζήτηση
+ delivery_available: Διαθέσιμη παράδοση
+ known_accounts:
+ one: "%{count} γνωστός λογαριασμός"
+ other: "%{count} γνωστοί λογαριασμοί"
+ moderation:
+ all: Όλα
+ limited: Περιορισμένα
+ title: Διαμεσολάβηση
title: Γνωστοί κόμβοι
+ total_blocked_by_us: Μπλοκάρονται από εμάς
+ total_followed_by_them: Ακολουθούνται από εκείνους
+ total_followed_by_us: Ακολουθούνται από εμάς
+ total_reported: Καταγγελίες προς εκείνους
+ total_storage: Συνημμένα πολυμέσα
invites:
deactivate_all: Απενεργοποίηση όλων
filter:
@@ -378,7 +398,7 @@ el:
desc_html: Οι προεπισκοπήσεις συνδέσμων σε τρίτους ιστότοπους θα είναι ορατές ακόμα κι όταν το πολυμέσο έχει σημειωθεί ως ευαίσθητο
title: Εμφάνιση ευαίσθητων πολυμέσων στις προεπισκοπήσεις OpenGraph
profile_directory:
- desc_html: Να επιτρέπεται ο εντοπισμός των χρηστών
+ desc_html: Να επιτρέπεται η ανακάλυψη χρηστών
title: Ενεργοποίηση του καταλόγου χρηστών
registrations:
closed_message:
@@ -448,6 +468,12 @@ el:
unhide: Εμφάνιση σε κατάλογο
visible: Εμφανείς
title: Διαχείριση
+ warning_presets:
+ add_new: Πρόσθεση νέου
+ delete: Διαγραφή
+ edit: Ενημέρωση
+ edit_preset: Ενημέρωση προκαθορισμένης προειδοποίησης
+ title: Διαχείριση προκαθορισμένων προειδοποιήσεων
admin_mailer:
new_report:
body: Ο/Η %{reporter} κατήγγειλε τον/την %{target}
@@ -527,8 +553,11 @@ el:
warning_title: Διαθεσιμότητα ήδη διανεμημένου περιεχομένου
directories:
directory: Κατάλογος λογαριασμών
+ enabled: Περιλαμβάνεσαι στον κατάλογο.
+ enabled_but_waiting: Έχεις επιλέξει να εμφανίζεσαι στον κατάλογο μεν, αλλά ακόμα δεν έχεις τον ελάχιστο αριθμό ακόλουθων (%{min_followers}) που απαιτείται για να συμπεριληφθείς.
explanation: Βρες χρήστες βάσει των ενδιαφερόντων τους
- explore_mastodon: Εξερεύνησε %{title}
+ explore_mastodon: Εξερεύνησε το %{title}
+ how_to_enable: Δεν έχεις επιλέξει να συμπεριληφθείς στον καταλογο. Μπορείς να επιλέξεις παρακάτω. Χρησιμοποίησε ταμπέλες στο κείμενο του βιογραφικού σου για να εμφανίζεσαι κάτω από συγκεκριμένες ταμπέλες!
people:
one: "%{count} άτομο"
other: "%{count} άτομα"
@@ -554,9 +583,15 @@ el:
size: Μέγεθος
blocks: Μπλοκάρεις
csv: CSV
+ domain_blocks: Μπλοκαρίσματα κόμβων
follows: Ακολουθείς
+ lists: Λίστες
mutes: Αποσιωπάς
storage: Αποθήκευση πολυμέσων
+ featured_tags:
+ add_new: Προσθήκη νέας
+ errors:
+ limit: Έχεις ήδη προσθέσει το μέγιστο αριθμό ταμπελών
filters:
contexts:
home: Αρχική ροή
@@ -597,10 +632,16 @@ el:
one: Κάτι δεν είναι εντάξει ακόμα! Για κοίταξε το παρακάτω σφάλμα
other: Κάτι δεν είναι εντάξει ακόμα! Για κοίταξε τα παρακάτω %{count} σφάλματα
imports:
+ modes:
+ merge: Συγχώνευση
+ merge_long: Διατήρηση των εγγράφων που υπάρχουν και προσθηκη των νέων
+ overwrite: Αντικατάσταση
+ overwrite_long: Αντικατάσταση των υπαρχόντων εγγράφων με τις καινούργιες
preface: Μπορείς να εισάγεις τα δεδομένα που έχεις εξάγει από άλλο κόμβο, όπως τη λίστα των ανθρώπων που ακολουθείς ή μπλοκάρεις.
success: Τα δεδομένα σου μεταφορτώθηκαν επιτυχώς και θα επεξεργαστούν εν καιρώ
types:
blocking: Λίστα αποκλεισμού
+ domain_blocking: Λίστα αποκλεισμένων τομέων
following: Λίστα ακολούθων
muting: Λίστα αποσιωπήσεων
upload: Ανέβασμα
@@ -626,7 +667,7 @@ el:
table:
expires_at: Λήγει
uses: Χρήσεις
- title: Προσκάλεσε άτομα
+ title: Προσκάλεσε κόσμο
lists:
errors:
limit: Έχεις φτάσει το μέγιστο πλήθος επιτρεπτών λιστών
@@ -701,14 +742,26 @@ el:
missing_resource: Δεν βρέθηκε το απαιτούμενο URL ανακατεύθυνσης για το λογαριασμό σου
no_account_html: Δεν έχεις λογαριασμό; Μπορείς να γραφτείς εδώ
proceed: Συνέχισε για να ακολουθήσεις
- prompt: 'Θα ακολουθήσεις:'
+ prompt: 'Ετοιμάζεσαι να ακολουθήσεις:'
+ reason_html: "
Γιατί χρειάζεται αυτό το βήμα; Το
%{instance}
μπορεί να μην είναι ο κόμβος που έχεις γραφτεί, έτσι πρέπει να σε ανακατευθύνουμε στο δικό σου."
remote_interaction:
- proceed: Συνέχισε για να αλληλεπιδράσεις
- prompt: 'Θέλεις να αλληλεπιδράσεις με αυτό το τουτ:'
+ favourite:
+ proceed: Συνέχισε για σημείωση ως αγαπημένου
+ prompt: 'Θέλεις να σημειώσεις ως αγαπημένο αυτό το τουτ:'
+ reblog:
+ proceed: Συνέχισε για προώθηση
+ prompt: 'Θέλεις να προωθήσεις αυτό το τουτ:'
+ reply:
+ proceed: Συνέχισε για να απαντήσεις
+ prompt: 'Θέλεις να απαντήσεις σε αυτό το τουτ:'
remote_unfollow:
error: Σφάλμα
title: Τίτλος
unfollowed: Σταμάτησες να ακολουθείς
+ scheduled_statuses:
+ over_daily_limit: Έχεις υπερβεί το όριο των %{limit} προγραμματισμένων τουτ για εκείνη τη μέρα
+ over_total_limit: Έχεις υπερβεί το όριο των %{limit} προγραμματισμένων τουτ
+ too_soon: Η προγραμματισμένη ημερομηνία πρέπει να είναι στο μέλλον
sessions:
activity: Τελευταία δραστηριότητα
browser: Φυλλομετρητής (Browser)
@@ -757,6 +810,7 @@ el:
development: Ανάπτυξη
edit_profile: Επεξεργασία προφίλ
export: Εξαγωγή δεδομένων
+ featured_tags: Χαρακτηριστικές ταμπέλες
followers: Εγκεκριμένοι ακόλουθοι
import: Εισαγωγή
migrate: Μετακόμιση λογαριασμού
@@ -913,6 +967,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: Μπορείς να προσαρμόσεις το προφίλ σου ανεβάζοντας μια εικόνα εμφάνισης & επικεφαλίδας, αλλάζοντας το εμφανιζόμενο όνομά σου και άλλα. Αν θες να ελέγχεις τους νέου σου ακόλουθους πριν αυτοί σε ακολουθήσουν, μπορείς να κλειδώσεις το λογαριασμό σου.
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 0ec39c18e..b2bf550e6 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -7,7 +7,7 @@ en:
administered_by: 'Administered by:'
api: API
apps: Mobile apps
- closed_registrations: Registrations are currently closed on this instance. However! You can find a different instance to make an account on and get access to the very same network from there.
+ closed_registrations: Registrations are currently closed on this server. However! You can find a different server to make an account on and get access to the very same network from there.
contact: Contact
contact_missing: Not set
contact_unavailable: N/A
@@ -27,7 +27,7 @@ en:
generic_description: "%{domain} is one server in the network"
hosted_on: Mastodon hosted on %{domain}
learn_more: Learn more
- other_instances: Instance list
+ other_instances: Server list
privacy_policy: Privacy policy
source_code: Source code
status_count_after:
@@ -84,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
@@ -99,8 +100,8 @@ 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
@@ -109,7 +110,9 @@ en:
follows: Follows
header: Header
inbox_url: Inbox URL
+ invited_by: Invited by
ip: IP
+ joined: Joined
location:
all: All
local: Local
@@ -136,7 +139,7 @@ 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:
@@ -154,22 +157,22 @@ 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:
@@ -253,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
@@ -270,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
@@ -284,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
@@ -296,12 +298,25 @@ 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
+ by_domain: Domain
+ 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:
@@ -372,14 +387,14 @@ en:
desc_html: Modify the look with CSS loaded on every page
title: Custom CSS
hero:
- desc_html: Displayed on the frontpage. At least 600x100px recommended. When not set, falls back to instance thumbnail
+ desc_html: Displayed on the frontpage. At least 600x100px recommended. When not set, falls back to server thumbnail
title: Hero image
mascot:
desc_html: Displayed on multiple pages. At least 293×205px recommended. When not set, falls back to default mascot
title: Mascot image
peers_api_enabled:
- desc_html: Domain names this instance has encountered in the fediverse
- title: Publish list of discovered instances
+ desc_html: Domain names this server has encountered in the fediverse
+ title: Publish list of discovered servers
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
@@ -407,20 +422,20 @@ en:
title: Show staff badge
site_description:
desc_html: Introductory paragraph on the frontpage. Describe what makes this Mastodon server special and anything else important. You can use HTML tags, in particular
<a>
and
<em>
.
- title: Instance description
+ title: Server description
site_description_extended:
- desc_html: A good place for your code of conduct, rules, guidelines and other things that set your instance apart. You can use HTML tags
+ desc_html: A good place for your code of conduct, rules, guidelines and other things that set your server apart. You can use HTML tags
title: Custom extended information
site_short_description:
- desc_html: Displayed in sidebar and meta tags. Describe what Mastodon is and what makes this server special in a single paragraph. If empty, defaults to instance description.
- title: Short instance description
+ desc_html: Displayed in sidebar and meta tags. Describe what Mastodon is and what makes this server special in a single paragraph. If empty, defaults to server description.
+ title: Short server description
site_terms:
desc_html: You can write your own privacy policy, terms of service or other legalese. You can use HTML tags
title: Custom terms of service
- site_title: Instance name
+ site_title: Server name
thumbnail:
desc_html: Used for previews via OpenGraph and API. 1200x630px recommended
- title: Instance thumbnail
+ title: Server thumbnail
timeline_preview:
desc_html: Display public timeline on landing page
title: Timeline preview
@@ -481,7 +496,7 @@ en:
warning: Be very careful with this data. Never share it with anyone!
your_token: Your access token
auth:
- agreement_html: By clicking "Sign up" below you agree to follow
the rules of the instance and
our terms of service.
+ agreement_html: By clicking "Sign up" below you agree to follow
the rules of the server and
our terms of service.
change_password: Password
confirm_email: Confirm email
delete_account: Delete account
@@ -535,19 +550,22 @@ en:
description_html: This will
permanently, irreversibly remove content from your account and deactivate it. Your username will remain reserved to prevent future impersonations.
proceed: Delete account
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_html: Only deletion of content from this particular server 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
+ enabled: You are currently listed in the directory.
+ enabled_but_waiting: You have opted-in to be listed in the directory, but you do not have the minimum number of followers (%{min_followers}) to be listed yet.
explanation: Discover users based on their interests
explore_mastodon: Explore %{title}
+ how_to_enable: You are not currently opted-in to the directory. You can opt-in below. Use hashtags in your bio text to be listed under specific hashtags!
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.
- '410': The page you were looking for doesn't exist anymore.
+ '404': The page you are looking for isn't here.
+ '410': The page you were looking for doesn't exist here anymore.
'422':
content: Security verification failed. Are you blocking cookies?
title: Security verification failed
@@ -560,15 +578,21 @@ en:
archive_takeout:
date: Date
download: Download your archive
- hint_html: You can request an archive of your
toots and uploaded media. The exported data will be in ActivityPub format, readable by any compliant software. You can request an archive every 7 days.
+ hint_html: You can request an archive of your
toots and uploaded media. The exported data will be in the ActivityPub format, readable by any compliant software. You can request an archive every 7 days.
in_progress: Compiling your archive...
request: Request your archive
size: Size
blocks: You block
csv: CSV
+ domain_blocks: Domain blocks
follows: You follow
+ lists: Lists
mutes: You mute
storage: Media storage
+ featured_tags:
+ add_new: Add new
+ errors:
+ limit: You have already featured the maximum amount of hashtags
filters:
contexts:
home: Home timeline
@@ -587,7 +611,7 @@ en:
title: Add new filter
followers:
domain: Domain
- explanation_html: If you want to ensure the privacy of your statuses, you must be aware of who is following you.
Your private statuses are delivered to all instances where you have followers. You may wish to review them, and remove followers if you do not trust your privacy to be respected by the staff or software of those instances.
+ explanation_html: If you want to ensure the privacy of your statuses, you must be aware of who is following you.
Your private statuses are delivered to all servers where you have followers. You may wish to review them, and remove followers if you do not trust your privacy to be respected by the staff or software of those servers.
followers_count: Number of followers
lock_link: Lock your account
purge: Remove from followers
@@ -609,10 +633,16 @@ en:
one: Something isn't quite right yet! Please review the error below
other: Something isn't quite right yet! Please review %{count} errors below
imports:
- preface: You can import data that you have exported from another instance, such as a list of the people you are following or blocking.
+ modes:
+ merge: Merge
+ merge_long: Keep existing records and add new ones
+ overwrite: Overwrite
+ overwrite_long: Replace current records with the new ones
+ preface: You can import data that you have exported from another server, such as a list of the people you are following or blocking.
success: Your data was successfully uploaded and will now be processed in due time
types:
blocking: Blocking list
+ domain_blocking: Domain blocking list
following: Following list
muting: Muting list
upload: Upload
@@ -634,7 +664,7 @@ en:
one: 1 use
other: "%{count} uses"
max_uses_prompt: No limit
- prompt: Generate and share links with others to grant access to this instance
+ prompt: Generate and share links with others to grant access to this server
table:
expires_at: Expires
uses: Uses
@@ -704,6 +734,16 @@ en:
older: Older
prev: Prev
truncate: "…"
+ polls:
+ errors:
+ already_voted: You have already voted on this poll
+ duplicate_options: contain duplicate items
+ duration_too_long: is too far into the future
+ duration_too_short: is too soon
+ expired: The poll has already ended
+ over_character_limit: cannot be longer than %{MAX} characters each
+ too_few_options: must have more than one item
+ too_many_options: can't contain more than %{MAX} items
preferences:
languages: Languages
other: Other
@@ -715,13 +755,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
@@ -770,6 +822,7 @@ en:
development: Development
edit_profile: Edit profile
export: Data export
+ featured_tags: Featured hashtags
followers: Authorized followers
import: Import
migrate: Account migration
@@ -898,9 +951,10 @@ en:
Originally adapted from the Discourse privacy policy.
title: "%{instance} Terms of Service and Privacy Policy"
themes:
- contrast: High contrast
- default: Mastodon Bliss
- mastodon-light: Mastodon (light)
+ contrast: Mastodon (High contrast)
+ default: Mastodon (Dark)
+ cipherbliss: Mastodon Bliss
+ mastodon-light: Mastodon (Light)
time:
formats:
default: "%b %d, %Y, %H:%M"
@@ -949,7 +1003,7 @@ en:
final_action: Start posting
final_step: 'Start posting! Even without followers your public messages may be seen by others, for example on the local timeline and in hashtags. You may want to introduce yourself on the #introductions hashtag.'
full_handle: Your full handle
- full_handle_hint: This is what you would tell your friends so they can message or follow you from another instance.
+ full_handle_hint: This is what you would tell your friends so they can message or follow you from another server.
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
diff --git a/config/locales/eo.yml b/config/locales/eo.yml
index 24cba67c3..b7dd7ca8b 100644
--- a/config/locales/eo.yml
+++ b/config/locales/eo.yml
@@ -48,6 +48,7 @@ eo:
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}:"
@@ -114,6 +115,7 @@ eo:
media_attachments: Ligitaj aŭdovidaĵoj
memorialize: Ŝanĝi al memoro
moderation:
+ active: Aktiva
all: Ĉio
silenced: Silentigitaj
suspended: Haltigitaj
@@ -150,7 +152,6 @@ 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
@@ -227,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
@@ -259,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
@@ -273,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
@@ -286,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
@@ -368,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
@@ -427,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:
@@ -505,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.
@@ -678,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
diff --git a/config/locales/es.yml b/config/locales/es.yml
index 117e7ccdd..b221989e8 100644
--- a/config/locales/es.yml
+++ b/config/locales/es.yml
@@ -150,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
@@ -261,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
@@ -275,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
@@ -288,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
@@ -682,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
diff --git a/config/locales/eu.yml b/config/locales/eu.yml
index 6d39a6533..f8eb18279 100644
--- a/config/locales/eu.yml
+++ b/config/locales/eu.yml
@@ -7,7 +7,7 @@ eu:
administered_by: 'Administratzailea(k):'
api: APIa
apps: Aplikazio mugikorrak
- closed_registrations: Harpidetza itxita dago orain instantzia honetan. Hala ere, beste instantzia bat aurkitu dezakezu kontua egiteko eta hona ere sarbidea izan.
+ closed_registrations: Harpidetza itxita dago orain zerbitzari honetan. Hala ere, beste zerbitzari bat aurkitu dezakezu kontua egiteko eta hona ere sarbidea izan.
contact: Kontaktua
contact_missing: Ezarri gabe
contact_unavailable: E/E
@@ -27,7 +27,7 @@ eu:
generic_description: "%{domain} sareko zerbitzari bat da"
hosted_on: Mastodon %{domain} domeinuan ostatatua
learn_more: Ikasi gehiago
- other_instances: Instantzien zerrenda
+ other_instances: Zerbitzarien zerrenda
privacy_policy: Pribatutasun politika
source_code: Iturburu kodea
status_count_after:
@@ -70,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!
@@ -89,6 +92,7 @@ eu:
confirm: Berretsi
confirmed: Berretsita
confirming: Berresten
+ deleted: Ezabatua
demote: Jaitsi mailaz
disable: Desgaitu
disable_two_factor_authentication: Desgaitu 2FA
@@ -104,8 +108,11 @@ eu:
followers: Jarraitzaileak
followers_url: Jarraitzaileen URL-a
follows: Jarraitzen du
+ header: Goiburua
inbox_url: Sarrera ontziaren URL-a
+ invited_by: 'Honek gonbidatua:'
ip: IP
+ joined: Elkartuta
location:
all: Denak
local: Lokala
@@ -132,8 +139,9 @@ eu:
protocol: Protokoloa
public: Publikoa
push_subscription_expires: Push harpidetzaren iraugitzea
- redownload: Freskatu abatarra
+ redownload: Freskatu profila
remove_avatar: Kendu abatarra
+ remove_header: Kendu goiburua
resend_confirmation:
already_confirmed: Erabiltzaile hau berretsita dago
send: Birbidali baieztapen e-maila
@@ -151,9 +159,8 @@ eu:
search: Bilatu
shared_inbox_url: Partekatutako sarrera ontziaren URL-a
show:
- created_reports: Kontu honek sortutako txostenak
- report: salatu
- targeted_reports: Kontu honek egindako salaketak
+ created_reports: Sortutako txostenak
+ targeted_reports: Besteen salaketak
silence: Isilarazi
silenced: Isilarazita
statuses: Mezuak
@@ -165,12 +172,14 @@ eu:
undo_suspension: Desegin kanporatzea
unsubscribe: Kendu harpidetza
username: Erabiltzaile-izena
+ warn: Abisatu
web: Web
action_logs:
actions:
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"
@@ -229,6 +238,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
@@ -246,7 +256,7 @@ eu:
week_users_active: aktibo aste honetan
week_users_new: erabiltzaile aste honetan
domain_blocks:
- add_new: Gehitu berria
+ add_new: Gehitu domeinuaren blokeo berria
created_msg: Domeinuaren blokeoa orain prozesatzen ari da
destroyed_msg: Domeinuaren blokeoa desegin da
domain: Domeinua
@@ -258,16 +268,16 @@ eu:
noop: Bat ere ez
silence: Isilarazi
suspend: Kanporatu
- title: Domeinu blokeo berria
+ title: Domeinuaren blokeo berria
reject_media: Ukatu multimedia fitxategiak
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
+ rejecting_media: errefusatu multimedia fitxategiak
+ rejecting_reports: txostenak errefusatzen
+ severity:
+ silence: isilarazia
+ suspend: kanporatua
show:
affected_accounts:
one: Datu-baseko kontu bati eragiten dio
@@ -277,8 +287,7 @@ eu:
suspend: Kendu kanporatzeko agindua domeinu honetako kontu guztiei
title: Desegin %{domain} domeinuko blokeoa
undo: Desegin
- title: Domeinuen blokeoak
- undo: Desegin
+ undo: Desegin domeinuaren blokeoa
email_domain_blocks:
add_new: Gehitu berria
created_msg: Ongi gehitu da e-mail helbidea domeinuen zerrenda beltzera
@@ -289,12 +298,24 @@ 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
+ delivery_available: Bidalketa eskuragarri dago
+ known_accounts:
+ one: Kontu ezagun %{count}
+ other: "%{count} kontu ezagun"
+ moderation:
+ all: Denak
+ limited: Mugatua
+ title: Moderazioa
+ title: Federazioa
+ total_blocked_by_us: Guk blokeatuta
+ total_followed_by_them: Haiek jarraitua
+ total_followed_by_us: Guk jarraitua
+ total_reported: Heiei buruzko txostenak
+ total_storage: Multimedia eranskinak
invites:
deactivate_all: Desgaitu guztiak
filter:
@@ -365,17 +386,20 @@ eu:
desc_html: Aldatu itxura orri bakoitzean kargatutako CSS bidez
title: CSS pertsonala
hero:
- desc_html: Azaleko orrian bistaratua. Gutxienez 600x100px aholkatzen da. Ezartzen ez bada, instantziaren irudia hartuko du
+ desc_html: Azaleko orrian bistaratua. Gutxienez 600x100px aholkatzen da. Ezartzen ez bada, zerbitzariaren irudia hartuko du
title: Azaleko irudia
mascot:
desc_html: Hainbat orritan bistaratua. Gutxienez 293x205px aholkatzen da. Ezarri ezean lehenetsitako maskota erakutsiko da
title: Maskotaren irudia
peers_api_enabled:
- desc_html: Instantzia honek fedibertsuan aurkitutako domeinu-izenak
- title: Argitaratu aurkitutako instantzien zerrenda
+ desc_html: Zerbitzari honek fedibertsoan aurkitutako domeinu-izenak
+ title: Argitaratu aurkitutako zerbitzarien zerrenda
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
@@ -397,20 +421,20 @@ eu:
title: Erakutsi langile banda
site_description:
desc_html: Azaleko orrian agertuko den sarrera paragrafoa. Azaldu zerk egiten duen berezi Mastodon zerbitzari hau eta garrantzizko beste edozer. HTML etiketak erabili ditzakezu, zehazki
<a>
eta
<em>
.
- title: Instantziaren deskripzioa
+ title: Zerbitzariaren deskripzioa
site_description_extended:
- desc_html: Zure jokabide-koderako toki on bat, arauak, gidalerroak eta zure instantzia desberdin egiten duten bestelakoak. HTML etiketak erabili ditzakezu
+ desc_html: Zure jokabide-koderako toki on bat, arauak, gidalerroak eta zure zerbitzari desberdin egiten duten bestelakoak. HTML etiketak erabili ditzakezu
title: Informazio hedatu pertsonalizatua
site_short_description:
desc_html: Albo-barra eta meta etiketetan bistaratua. Deskribatu zerk egiten duen Mastodon zerbitzari hau berezia paragrafo batean. Hutsik lagatzekotan lehenetsitako deskripzioa agertuko da.
- title: Instantziaren deskripzio laburra
+ title: Zerbitzariaren deskripzio laburra
site_terms:
desc_html: Zure pribatutasun politika, erabilera baldintzak eta bestelako testu legalak idatzi ditzakezu. HTML etiketak erabili ditzakezu
title: Erabilera baldintza pertsonalizatuak
- site_title: Instantziaren izena
+ site_title: Zerbitzariaren izena
thumbnail:
desc_html: Aurrebistetarako erabilia OpenGraph eta API bidez. 1200x630px aholkatzen da
- title: Instantziaren iruditxoa
+ title: Zerbitzariaren iruditxoa
timeline_preview:
desc_html: Bistaratu denbora-lerro publikoa hasiera orrian
title: Denbora-lerroaren aurrebista
@@ -444,6 +468,12 @@ eu:
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"
@@ -465,7 +495,7 @@ eu:
warning: Kontuz datu hauekin, ez partekatu inoiz inorekin!
your_token: Zure sarbide token-a
auth:
- agreement_html: '"Izena eman" botoia sakatzean
instantziaren arauak eta
erabilera baldintzak onartzen dituzu.'
+ agreement_html: '"Izena eman" botoia sakatzean
zerbitzariaren arauak eta
erabilera baldintzak onartzen dituzu.'
change_password: Pasahitza
confirm_email: Berretsi e-mail helbidea
delete_account: Ezabatu kontua
@@ -519,19 +549,22 @@ eu:
description_html: Honek
behin betirako eta atzera egiteko aukera gabe zure kontuko edukia kendu eta hau desaktibatuko du. Zure erabiltzaile-izena erreserbatuko da etorkizunean inork zure itxurak ez egiteko.
proceed: Ezabatu kontua
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_html: Zerbitzari 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
+ enabled: Direktorioan zerrendatuta zaude orain.
+ enabled_but_waiting: Direktorioan zerrendatuta izatea aukeratu duzu, baina ez duzu oraindik gutxieneko jarraitzaile kopurua (%{min_followers}) zerrendan agertzeko.
explanation: Deskubritu erabiltzaileak interesen arabera
explore_mastodon: Esploratu %{title}
+ how_to_enable: Ez duzu aukeratu direktorioan zerrendatua izatea aukeratu. Behean aukeratu dezakezu. Erabili traolak zure biografiaren testuan traola zehatzetan agertzeko!
people:
one: pertsona %{count}
other: "%{count} pertsona"
errors:
'403': Ez duzu orri hau ikusteko baimenik.
- '404': Bilatu duzun orria ez da existitzen.
- '410': Bilatu duzun orria ez da existitzen jada.
+ '404': Bilatu duzun orria ez dago hemen.
+ '410': Bilatu duzun orria ez dago hemen jada.
'422':
content: Segurtasun egiaztaketak huts egin du. Cookie-ak blokeatzen dituzu?
title: Segurtasun egiaztaketak huts egin du
@@ -550,9 +583,15 @@ eu:
size: Tamaina
blocks: Zuk blokeatutakoak
csv: CSV
+ domain_blocks: Domeinuen blokeoak
follows: Zuk jarraitutakoak
+ lists: Zerrendak
mutes: Zuk mututukoak
storage: Multimedia biltegiratzea
+ featured_tags:
+ add_new: Gehitu berria
+ errors:
+ limit: Gehienezko traola kopurua nabarmendu duzu jada
filters:
contexts:
home: Hasierako denbora-lerroa
@@ -571,7 +610,7 @@ eu:
title: Gehitu iragazki berria
followers:
domain: Domeinua
- explanation_html: Zure mezuen pribatutasuna bermatu nahi baduzu, nork jarraitzen zaituen jakin behar duzu.
Zure mezu pribatuak zure jarraitzaileak dituzten instantzia guztietara bidaltzen dira. Instantzia bateko langileek edo softwareak zure pribatutasunari dagokion begirunea ez dutela izango uste baduzu, berrikusi eta kendu jarraitzaileak.
+ explanation_html: Zure mezuen pribatutasuna bermatu nahi baduzu, nork jarraitzen zaituen jakin behar duzu.
Zure mezu pribatuak zure jarraitzaileak dituzten zerbitzari guztietara bidaltzen dira. Zerbitzari bateko langileek edo softwareak zure pribatutasunari dagokion begirunea ez dutela izango uste baduzu, berrikusi eta kendu jarraitzaileak.
followers_count: Jarraitzaile kopurua
lock_link: Giltzapetu zure kontua
purge: Kendu jarraitzaileetatik
@@ -593,10 +632,16 @@ eu:
one: Zerbait ez dabil ongi! Egiaztatu beheko errorea mesedez
other: Zerbait ez dabil ongi! Egiaztatu beheko %{count} erroreak mesedez
imports:
- preface: Beste instantzia bateko datuak inportatu ditzakezu, esaterako jarraitzen duzun edo blokeatu duzun jendearen zerrenda.
+ modes:
+ merge: Bateratu
+ merge_long: Mantendu dauden erregistroak eta gehitu berriak
+ overwrite: Gainidatzi
+ overwrite_long: Ordeztu oraingo erregistroak berriekin
+ preface: Beste zerbitzari bateko datuak inportatu ditzakezu, esaterako jarraitzen duzun edo blokeatu duzun jendearen zerrenda.
success: Zure datuak ongi igo dira eta dagokionean prozesatuko dira
types:
blocking: Blokeatutakoen zerrenda
+ domain_blocking: Domeinuen blokeo zerrenda
following: Jarraitutakoen zerrenda
muting: Mutututakoen zerrenda
upload: Igo
@@ -618,7 +663,7 @@ eu:
one: Erabilera 1
other: "%{count} erabilera"
max_uses_prompt: Mugagabea
- prompt: Sortu eta partekatu estekak instantzia onetara sarbidea emateko
+ prompt: Sortu eta partekatu estekak zerbitzari honetara sarbidea emateko
table:
expires_at: Iraungitzea
uses: Erabilerak
@@ -699,13 +744,25 @@ eu:
no_account_html: Ez duzu konturik?
Izena eman dezakezu
proceed: Ekin jarraitzeari
prompt: 'Hau jarraituko duzu:'
+ reason_html: "
Zergaitik eman behar da urrats hau?%{instance}
agian ez da izena eman duzun zerbitzaria, eta zure hasiera-zerbitzarira eraman behar zaitugu aurretik."
remote_interaction:
- proceed: Jarraitu interakziora
- prompt: 'Toot honekin interakzioa nahi duzu:'
+ favourite:
+ proceed: Bihurtu gogoko
+ prompt: 'Toot hau gogoko bihurtu nahi duzu:'
+ reblog:
+ proceed: Eman bultzada
+ prompt: 'Toot honi bultzada eman nahi diozu:'
+ reply:
+ proceed: Ekin erantzuteari
+ prompt: 'Toot honi erantzun nahi diozu:'
remote_unfollow:
error: Errorea
title: Izenburua
unfollowed: Jarraitzeari utzita
+ scheduled_statuses:
+ over_daily_limit: Egun horretarako programatutako toot kopuruaren muga gainditu duzu (%{limit})
+ over_total_limit: Programatutako toot kopuruaren muga gainditu duzu (%{limit})
+ too_soon: Programatutako data etorkizunean egon behar du
sessions:
activity: Azken jarduera
browser: Nabigatzailea
@@ -754,6 +811,7 @@ eu:
development: Garapena
edit_profile: Aldatu profila
export: Datuen esportazioa
+ featured_tags: Nabarmendutako traolak
followers: Baimendutako jarraitzaileak
import: Inportazioa
migrate: Kontuaren migrazioa
@@ -882,9 +940,9 @@ eu:
Jatorrian Discourse sarearen pribatutasun politikatik moldatua.
title: "%{instance} instantziaren erabilera baldintzak eta pribatutasun politika"
themes:
- contrast: Kontraste altua
- default: Mastodon
- mastodon-light: Mastodon (argia)
+ contrast: Mastodon (Kontraste altua)
+ default: Mastodon (Iluna)
+ mastodon-light: Mastodon (Argia)
time:
formats:
default: "%Y(e)ko %b %d, %H:%M"
@@ -910,6 +968,22 @@ 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.
+ suspend: Zure kontua kanporatua izan da, zure toot guztiak eta multimedia fitxategiak behin betiko ezabatu dira zerbitzari honetatik, eta zure jarraitzaileen zerbitzarietatik.
+ review_server_policies: Berrikusi zerbitzariko politikak
+ subject:
+ disable: Zure %{acct} kontua izoztu da
+ none: "%{acct} konturako abisua"
+ silence: Zure %{acct} kontua murriztu da
+ suspend: Zure %{acct} kontua kanporatua izan da
+ title:
+ disable: Kontu izoztua
+ none: Abisua
+ silence: Kontu murriztua
+ suspend: Kontu kanporatua
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.
@@ -917,7 +991,7 @@ eu:
final_action: Hasi mezuak bidaltzen
final_step: 'Hasi argitaratzen! Jarraitzailerik ez baduzu ere zure mezu publikoak besteek ikusi ditzakete, esaterako denbora-lerro lokalean eta traoletan. Zure burua aurkeztu nahi baduzu #aurkezpenak traola erabili zenezake.'
full_handle: Zure erabiltzaile-izen osoa
- full_handle_hint: Hau da lagunei esango zeniena beste instantzia batetik zu jarraitzeko edo zuri mezuak bidaltzeko.
+ full_handle_hint: Hau da lagunei esango zeniekeena beste zerbitzari batetik zu jarraitzeko edo zuri mezuak bidaltzeko.
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
diff --git a/config/locales/fa.yml b/config/locales/fa.yml
index c24465236..fd551d1b6 100644
--- a/config/locales/fa.yml
+++ b/config/locales/fa.yml
@@ -48,6 +48,7 @@ fa:
other: پیگیر
following: پی میگیرد
joined: کاربر از %{date}
+ last_active: آخرین فعالیت
link_verified_on: مالکیت این نشانی در تاریخ %{date} بررسی شد
media: عکس و ویدیو
moved_html: "%{name} حساب خود را به %{new_profile_link} منتقل کرده است:"
@@ -69,6 +70,9 @@ fa:
moderator: ناظم
unfollow: پایان پیگیری
admin:
+ account_actions:
+ action: انجام تغییر
+ title: انجام تغییر مدیریتی روی %{acct}
account_moderation_notes:
create: افزودن یادداشت
created_msg: یادداشت مدیر با موفقیت ساخته شد!
@@ -88,6 +92,7 @@ fa:
confirm: تأیید
confirmed: تأیید شد
confirming: تأیید
+ deleted: پاکشده
demote: تنزلدادن
disable: غیرفعال
disable_two_factor_authentication: غیرفعالسازی ورود دومرحلهای
@@ -103,8 +108,11 @@ fa:
followers: پیگیران
followers_url: نشانی پیگیران
follows: پی میگیرد
+ header: زمینه
inbox_url: نشانی صندوق ورودی
+ invited_by: دعوتشده از طرف
ip: IP
+ joined: عضویت از
location:
all: همه
local: محلی
@@ -114,6 +122,7 @@ fa:
media_attachments: ضمیمههای تصویری
memorialize: تبدیل به یادمان
moderation:
+ active: فعال
all: همه
silenced: بیصدا شده
suspended: معلق شده
@@ -130,8 +139,9 @@ fa:
protocol: پروتکل
public: عمومی
push_subscription_expires: عضویت از راه PuSH منقضی شد
- redownload: بهروزرسانی تصویر نمایه
+ redownload: بهروزرسانی نمایه
remove_avatar: حذف تصویر نمایه
+ remove_header: برداشتن تصویر زمینه
resend_confirmation:
already_confirmed: این کاربر قبلا تایید شده است
send: ایمیل تایید را دوباره بفرستید
@@ -149,9 +159,8 @@ fa:
search: جستجو
shared_inbox_url: نشانی صندوق ورودی مشترک
show:
- created_reports: گزارشها از طرف این حساب
- report: گزارش
- targeted_reports: گزارشها دربارهٔ این حساب
+ created_reports: گزارشهای ثبت کرده
+ targeted_reports: گزارشهای دیگران
silence: بیصدا
silenced: بیصداشده
statuses: نوشتهها
@@ -163,12 +172,14 @@ fa:
undo_suspension: واگردانی تعلیق
unsubscribe: لغو اشتراک
username: نام کاربری
+ warn: هشدار
web: وب
action_logs:
actions:
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} را مسدود کرد"
@@ -227,6 +238,7 @@ fa:
config: پیکربندی
feature_deletions: حسابهای حذفشده
feature_invites: دعوتنامهها
+ feature_profile_directory: فهرست گزیدهٔ کاربران
feature_registrations: ثبتنامها
feature_relay: رله
features: ویژگیها
@@ -244,7 +256,7 @@ fa:
week_users_active: کاربران فعال هفتهٔ اخیر
week_users_new: کاربران هفتهٔ اخیر
domain_blocks:
- add_new: افزودن تازه
+ add_new: افزودن مسدودسازی دامین تازه
created_msg: مسدودکردن دامین در حال انجام است
destroyed_msg: مسدودکردن دامین واگردانده شد
domain: دامین
@@ -261,11 +273,11 @@ fa:
reject_media_hint: تصویرهای ذخیرهشده در اینجا را پاک میکند و جلوی دریافت تصویرها را در آینده میگیرد. بیتأثیر برای معلقشدهها
reject_reports: نپذیرفتن گزارشها
reject_reports_hint: گزارشهایی را که از این دامین میآید نادیده میگیرد. بیتأثیر برای معلقشدهها
- severities:
- noop: هیچ
- silence: بیصداکردن
- suspend: معلقکردن
- severity: شدت
+ rejecting_media: رسانهها نادیده گرفته میشوند
+ rejecting_reports: گزارشها نادیده گرفته میشوند
+ severity:
+ silence: بیصداشده
+ suspend: معلقشده
show:
affected_accounts:
one: روی یک حساب در پایگاه داده تأثیر گذاشت
@@ -275,8 +287,7 @@ fa:
suspend: معلقشدن همهٔ حسابهای این دامین را لغو کن
title: واگردانی مسدودسازی دامنه برای %{domain}
undo: واگردانی
- title: دامینهای مسدودشده
- undo: واگردانی
+ undo: واگردانی مسدودسازی دامین
email_domain_blocks:
add_new: افزودن تازه
created_msg: مسدودسازی دامین ایمیل با موفقیت ساخته شد
@@ -287,12 +298,24 @@ fa:
create: ساختن مسدودسازی
title: مسدودسازی دامین ایمیل تازه
title: مسدودسازی دامینهای ایمیل
+ followers:
+ back_to_account: بازگشت به حساب
+ title: پیگیران %{acct}
instances:
- account_count: حسابهای شناختهشده
- domain_name: دامین
- reset: بازنشانی
- search: جستجو
- title: سرورهای شناختهشده
+ delivery_available: پیام آماده است
+ known_accounts:
+ one: "%{count} حساب شناختهشده"
+ other: "%{count} حساب شناختهشده"
+ moderation:
+ all: همه
+ limited: محدود
+ title: مدیریت
+ title: ارتباط میانسروری
+ total_blocked_by_us: مسدودشده از طرف ما
+ total_followed_by_them: ما را پی میگیرند
+ total_followed_by_us: ما پیگیرشان هستیم
+ total_reported: گزارش دربارهشان
+ total_storage: عکسها و ویدیوها
invites:
deactivate_all: غیرفعالکردن همه
filter:
@@ -374,6 +397,9 @@ fa:
preview_sensitive_media:
desc_html: پیوند به سایتهای دیگر پیشنمایشی خواهد داشت که یک تصویر کوچک را نشان میدهد، حتی اگر نوشته به عنوان حساس علامتگذاری شده باشد
title: نمایش تصاویر حساسیتبرانگیز در پیشنمایشهای OpenGraph
+ profile_directory:
+ desc_html: به کاربران اجازه دهید تا بتوانند خود را روی فهرست گزیدهٔ کاربران این سرور نمایش دهند
+ title: فعالسازی فهرست گزیدهٔ کاربران
registrations:
closed_message:
desc_html: وقتی امکان ثبت نام روی سرور فعال نباشد در صفحهٔ اصلی نمایش مییابد
میتوانید HTML بنویسید
@@ -395,20 +421,20 @@ fa:
title: نمایش علامت همکار
site_description:
desc_html: معرفی کوتاهی که روی صفحهٔ اصلی نمایش مییابد. دربارهٔ این که چه چیزی دربارهٔ این سرور ماستدون ویژه است یا هر چیز مهم دیگری بنویسید. میتوانید HTML بنویسید، بهویژه
<a>
و
<em>
.
- title: دربارهٔ سایت
+ title: دربارهٔ این سرور
site_description_extended:
desc_html: جای خوبی برای نوشتن سیاستهای کاربری، قانونها، راهنماها، و هر چیزی که ویژهٔ این سرور است. تگهای HTML هم مجاز است
title: اطلاعات تکمیلی سفارشی
site_short_description:
desc_html: روی نوار کناری و همچنین به عنوان فرادادهٔ صفحهها نمایش مییابد. در یک بند توضیح دهید که ماستدون چیست و چرا این سرور با بقیه فرق دارد. اگر خالی بگذارید، به جایش «دربارهٔ سایت» نمایش مییابد.
- title: توضیح کوتاه دربارهٔ سایت
+ title: توضیح کوتاه دربارهٔ سرور
site_terms:
desc_html: میتوانید سیاست رازداری، شرایط استفاده، یا سایر مسائل قانونی را به دلخواه خود بنویسید. تگهای HTML هم مجاز است
title: شرایط استفادهٔ سفارشی
site_title: نام سرور
thumbnail:
desc_html: برای دیدن با OpenGraph و رابط برنامهنویسی. وضوح پیشنهادی ۱۲۰۰×۶۳۰ پیکسل
- title: تصویر کوچک فوری
+ title: تصویر کوچک سرور
timeline_preview:
desc_html: نوشتههای عمومی این سرور را در صفحهٔ آغازین نشان دهید
title: پیشنمایش نوشتهها
@@ -433,7 +459,21 @@ fa:
last_delivery: آخرین ارسال
title: WebSub
topic: موضوع
+ 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} را گزارش داد
@@ -511,10 +551,20 @@ fa:
success_msg: حساب شما با موفقیت پاک شد
warning_html: تنها پاکشدن محتوای حساب در این سرور خاص تضمین میشود. محتوایی که به گستردگی همرسانی شده باشد ممکن است ردش همچنان باقی بماند. سرورهای آفلاین یا سرورهایی که دیگر مشترک شما نیستند پایگاههای دادهٔ خود را بهروز نخواهند کرد.
warning_title: دسترسپذیری محتوای همرسانشده
+ directories:
+ directory: فهرست گزیدهٔ کاربران
+ enabled: شما هماینک در فهرست گزیدهٔ کاربران نمایش مییابید.
+ enabled_but_waiting: شما میخواهید در فهرست گزیدهٔ کاربران این سرور باشید، ولی تعداد پیگیران شما هنوز به مقدار لازم (%{min_followers}) نرسیده است.
+ explanation: کاربران این سرور را بر اساس علاقهمندیهایشان پیدا کنید
+ explore_mastodon: گشت و گذار در %{title}
+ how_to_enable: شما هنوز در فهرست گزیدهٔ کاربران این سرور نشان داده نمیشوید. اینجا میتوانید انتخابش کنید. اگر در بخش معرفی خود در نمایهتان برچسب (هشتگ) داشته باشد، نام شما هم برای آن هشتگها فهرست میشود!
+ people:
+ one: "%{count} نفر"
+ other: "%{count} نفر"
errors:
'403': شما اجازهٔ دیدن این صفحه را ندارید.
- '404': صفحهای که به دنبالش بودید وجود ندارد.
- '410': صفحهای که به دنبالش بودید دیگر وجود ندارد.
+ '404': صفحهای که به دنبالش هستید اینجا نیست.
+ '410': صفحهای که به دنبالش بودید دیگر اینجا وجود ندارد.
'422':
content: تأیید امنیتی انجام نشد. آیا مرورگر شما کوکیها را مسدود میکند؟
title: تأیید امنیتی کار نکرد
@@ -533,9 +583,15 @@ fa:
size: اندازه
blocks: حسابهای مسدودشده
csv: CSV
+ domain_blocks: دامینهای مسدودشده
follows: حسابهای پیگرفته
+ lists: فهرستها
mutes: حسابهای بیصداشده
storage: تصویرهای ذخیرهشده
+ featured_tags:
+ add_new: افزودن تازه
+ errors:
+ limit: شما بیشترین تعداد مجاز برچسبها را دارید
filters:
contexts:
home: خانه
@@ -576,10 +632,16 @@ fa:
one: یک چیزی هنوز درست نیست! لطفاً خطاهای زیر را ببینید
other: یک چیزی هنوز درست نیست! لطفاً %{count} خطای زیر را ببینید
imports:
+ modes:
+ merge: ادغام
+ merge_long: دادههای فعلی را داشته باشید و دادههای تازهای بیفزایید
+ overwrite: بازنویسی
+ overwrite_long: دادههای فعلی را پاک کنید و دادههای تازهای بیفزایید
preface: شما میتوانید دادههایی از قبیل کاربرانی که پی میگرفتید یا مسدود میکردید را در حساب خود روی این سرور درونریزی کنید. برای این کار پروندههایی که از سرور دیگر برونسپاری کردهاید را بهکار ببرید.
success: دادههای شما با موفقیت بارگذاری شد و به زودی پردازش میشود
types:
blocking: فهرست مسدودشدهها
+ domain_blocking: فهرست دامینهای مسدودشده
following: فهرست پیگیریها
muting: فهرست بیصداشدهها
upload: بارگذاری
@@ -682,15 +744,27 @@ fa:
no_account_html: هنوز عضو نیستید؟
اینجا میتوانید حساب باز کنید
proceed: درخواست پیگیری
prompt: 'شما قرار است این حساب را پیگیری کنید:'
+ reason_html: "
چرا این مرحله لازم است؟ ممکن است
%{instance}
سروری نباشد که شما روی آن حساب باز کردهاید، بنابراین ما باید پیش از هرچیز شما را به سرور خودتان منتقل کنیم."
remote_interaction:
- proceed: ادامهٔ برهمکنش
- prompt: 'شما میخواهید دربارهٔ این بوق کاری کنید:'
+ favourite:
+ proceed: به سمت پسندیدن این بوق
+ prompt: 'شما میخواهید این بوق را بپسندید:'
+ reblog:
+ proceed: به سمت بازبوقیدن
+ prompt: 'شما میخواهید این بوق را بازببوقید:'
+ reply:
+ proceed: به سمت پاسخدادن
+ prompt: 'شما میخواهید به این بوق پاسخ دهید:'
remote_unfollow:
error: خطا
title: عنوان
unfollowed: پایان پیگیری
+ scheduled_statuses:
+ over_daily_limit: شما از حد مجاز %{limit} بوق زمانبندیشده در آن روز فراتر رفتهاید
+ over_total_limit: شما از حد مجاز %{limit} بوق زمانبندیشده فراتر رفتهاید
+ too_soon: زمان تعیینشده باید در آینده باشد
sessions:
- activity: آخرین کنش
+ activity: آخرین فعالیت
browser: مرورگر
browsers:
alipay: Alipay
@@ -737,6 +811,7 @@ fa:
development: فرابری
edit_profile: ویرایش نمایه
export: برونسپاری دادهها
+ featured_tags: برچسبهای منتخب
followers: پیگیران مورد تأیید
import: درونریزی
migrate: انتقال حساب
@@ -784,8 +859,8 @@ fa:
terms:
title: شرایط استفاده و سیاست رازداری %{instance}
themes:
- contrast: کنتراست بالا
- default: ماستدون
+ contrast: ماستدون (کنتراست بالا)
+ default: ماستدون (تیره)
mastodon-light: ماستدون (روشن)
time:
formats:
@@ -812,6 +887,22 @@ fa:
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: 'شما میتوانید نمایهٔ خود را به دلخواه خود تغییر دهید: میتوانید تصویر نمایه، تصویر پسزمینه، نام، و چیزهای دیگری را تعیین کنید. اگر بخواهید، میتوانید حساب خود را خصوصی کنید تا فقط کسانی که شما اجازه میدهید بتوانند پیگیر حساب شما شوند.'
diff --git a/config/locales/fi.yml b/config/locales/fi.yml
index e210a490c..c3c48cbe3 100644
--- a/config/locales/fi.yml
+++ b/config/locales/fi.yml
@@ -5,10 +5,13 @@ fi:
about_mastodon_html: Mastodon on sosiaalinen verkosto. Se on toteutettu avoimilla verkkoprotokollilla ja vapailla, avoimen lähdekoodin ohjelmistoilla, ja se toimii hajautetusti samaan tapaan kuin sähköposti.
about_this: Tietoja tästä palvelimesta
administered_by: 'Ylläpitäjä:'
+ api: API
+ apps: Mobiili sovellukset
closed_registrations: Tähän instanssiin ei voi tällä hetkellä rekisteröityä. Voit kuitenkin luoda tilin johonkin toiseen instanssiin ja käyttää samaa verkostoa sitä kautta.
contact: Ota yhteyttä
contact_missing: Ei asetettu
contact_unavailable: Ei saatavilla
+ documentation: Dokumentaatio
extended_description_html: |
Hyvä paikka säännöille
Pidempää kuvausta ei ole vielä laadittu.
@@ -25,23 +28,40 @@ fi:
hosted_on: Mastodon palvelimella %{domain}
learn_more: Lisätietoja
other_instances: Muut palvelimet
+ privacy_policy: Tietosuojaseloste
source_code: Lähdekoodi
- status_count_after: statusta
+ status_count_after:
+ one: tila
+ other: tilanne
status_count_before: He ovat luoneet
- user_count_after: käyttäjälle
+ terms: Käyttöehdot
+ user_count_after:
+ one: käyttäjä
+ other: käyttäjät
user_count_before: Koti
what_is_mastodon: Mikä on Mastodon?
accounts:
+ choices_html: "%{name} valinnat:"
follow: Seuraa
- followers: Seuraajat
+ followers:
+ one: Seuraaja
+ other: Seuraajat
following: Seuratut
+ joined: Liittynyt %{date}
+ last_active: viimeksi aktiivinen
+ link_verified_on: Tämän linkin omistus on tarkastettu %{date}
media: Media
moved_html: "%{name} on muuttanut osoitteeseen %{new_profile_link}:"
network_hidden: Nämä tiedot eivät ole käytettävissä
nothing_here: Täällä ei ole mitään!
people_followed_by: Henkilöt, joita %{name} seuraa
people_who_follow: Käyttäjän %{name} seuraajat
- posts: Tuuttaukset
+ pin_errors:
+ following: Sinun täytyy seurata henkilöä jota haluat tukea
+ posts:
+ one: Toot
+ other: Toots
+ posts_tab_heading: Toots
posts_with_replies: Tuuttaukset ja vastaukset
reserved_username: Käyttäjänimi on varattu
roles:
@@ -129,7 +149,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
@@ -212,11 +231,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
@@ -226,7 +240,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
@@ -239,10 +252,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:
diff --git a/config/locales/fr.yml b/config/locales/fr.yml
index ce21e290e..b022e3ec1 100644
--- a/config/locales/fr.yml
+++ b/config/locales/fr.yml
@@ -70,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 !
@@ -89,6 +92,7 @@ fr:
confirm: Confirmer
confirmed: Confirmé
confirming: Confirmation
+ deleted: Supprimé
demote: Rétrograder
disable: Désactiver
disable_two_factor_authentication: Désactiver l’authentification à deux facteurs
@@ -104,8 +108,11 @@ fr:
followers: Abonné⋅e⋅s
followers_url: URL des abonné·e·s
follows: Abonnements
+ header: Entête
inbox_url: URL d’entrée
+ invited_by: Invité par
ip: Adresse IP
+ joined: Inscrit·e depuis
location:
all: Tous
local: Local
@@ -132,8 +139,9 @@ fr:
protocol: Protocole
public: Publique
push_subscription_expires: Expiration de l’abonnement PuSH
- redownload: Rafraîchir les avatars
+ redownload: Rafraîchir le profil
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
@@ -151,9 +159,8 @@ fr:
search: Rechercher
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
+ created_reports: Signalements faits
+ targeted_reports: Signalés par d'autres
silence: Masquer
silenced: Silencié
statuses: Statuts
@@ -165,12 +172,14 @@ fr:
undo_suspension: Annuler la suspension
unsubscribe: Se désabonner
username: Nom d’utilisateur⋅ice
+ warn: Avertissement
web: Web
action_logs:
actions:
assigned_to_self_report: "%{name} s’est assigné·e le signalement de %{target}"
change_email_user: "%{name} a modifié l’adresse de courriel de l’utilisateur·rice %{target}"
confirm_user: "%{name} adresse courriel confirmée de l’utilisateur·ice %{target}"
+ 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"
@@ -247,7 +256,7 @@ fr:
week_users_active: actif·ve·s cette semaine
week_users_new: utilisateur·rice·s cette semaine
domain_blocks:
- add_new: Ajouter
+ add_new: Ajouter un nouveau bloqueur de domaine
created_msg: Le blocage de domaine est désormais activé
destroyed_msg: Le blocage de domaine a été désactivé
domain: Domaine
@@ -264,11 +273,11 @@ 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é
+ rejecting_media: rejet des fichiers multimédia
+ rejecting_reports: rejet de rapports
+ severity:
+ silence: silencié
+ suspend: suspendu
show:
affected_accounts:
one: Un compte affecté dans la base de données
@@ -278,8 +287,7 @@ 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
+ undo: Annuler le bloqueur de domaine
email_domain_blocks:
add_new: Ajouter
created_msg: Le blocage de domaine de courriel est désormais activé
@@ -290,12 +298,24 @@ 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
+ delivery_available: Livraison disponible
+ known_accounts:
+ one: "%{count} compte connu"
+ other: "%{count} comptes connus"
+ moderation:
+ all: Tout
+ limited: Limité
+ title: Modération
+ title: Fédération
+ total_blocked_by_us: Bloqués par nous
+ total_followed_by_them: Suivi par eux
+ total_followed_by_us: Suivi par nous
+ total_reported: Signalements à leurs propos
+ total_storage: Attachements de média
invites:
deactivate_all: Tout désactiver
filter:
@@ -364,7 +384,7 @@ fr:
username: Entrez un nom d’utilisateur⋅ice
custom_css:
desc_html: Modifier l'apparence avec une CSS chargée sur chaque page
- title: CSS personnalisée
+ title: CSS personnalisé
hero:
desc_html: Affichée sur la page d’accueil. Au moins 600x100px recommandé. Lorsqu’elle n’est pas définie, se rabat sur la vignette de l’instance
title: Image d’en-tête
@@ -401,17 +421,17 @@ fr:
title: Montrer un badge de responsable
site_description:
desc_html: Paragraphe introductif sur la page d’accueil. Décrivez ce qui rend spécifique ce serveur Mastodon et toute autre chose importante. Vous pouvez utiliser des balises HTML, en particulier
<a>
et
<em>
.
- title: Description du site
+ title: Description de l'instance
site_description_extended:
- desc_html: Affichée sur la page d’informations complémentaires du site
Vous pouvez utiliser des balises HTML
+ desc_html: L'endroit idéal pour afficher votre code de conduite, les règles, les guides et autres choses qui rendent votre instance différente. Vous pouvez utiliser des balises HTML
title: Description étendue du site
site_short_description:
- desc_html: Affichée dans la barre latérale et dans les méta-tags. Décrivez ce qui rend spécifique ce serveur Mastodon en un seul paragraphe. Si laissée vide, la description de l’instance sera affiché par défaut.
+ desc_html: Affichée dans la barre latérale et dans les méta-tags. Décrivez ce qui rend spécifique cette instance Mastodon en un seul paragraphe. Si laissée vide, la description de l’instance sera affiché par défaut.
title: Description courte de l’instance
site_terms:
desc_html: Affichée sur la page des conditions d’utilisation du site
Vous pouvez utiliser des balises HTML
title: Politique de confidentialité
- site_title: Titre du site
+ site_title: Nom de l'instance
thumbnail:
desc_html: Utilisée pour les prévisualisations via OpenGraph et l’API. 1200x630px recommandé
title: Vignette de l’instance
@@ -448,6 +468,12 @@ fr:
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}"
@@ -523,12 +549,15 @@ fr:
description_html: Cela va supprimer votre compte et le désactiver de manière
permanente et irréversible. Votre nom d’utilisateur⋅ice restera réservé afin d’éviter la confusion.
proceed: Supprimer compte
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_html: Seule la suppression du contenu depuis cette instance est garantie. Le contenu qui a été partagé est susceptible de laisser des traces. Les instances hors-ligne ainsi que ceux n’étant plus abonnées à vos publications ne mettront pas leur base de données à jour.
warning_title: Disponibilité du contenu disséminé
directories:
directory: Annuaire des profils
+ enabled: Vous êtes actuellement listé dans l'annuaire.
+ enabled_but_waiting: Vous avez choisi d'être listé dans l'annuaire, mais vous n'avez pas encore le nombre minimum de suiveurs (%{min_followers}) pour y être inscrit.
explanation: Découvrir des utilisateurs en se basant sur leurs centres d'intérêt
explore_mastodon: Explorer %{title}
+ how_to_enable: Vous n'êtes pas encore inscrit dans l'annuaire. Vous pouvez vous inscrire ci-dessous. Utilisez des hashtags dans votre texte biographique pour être listé sous des hashtags spécifiques !
people:
one: "%{count} personne"
other: "%{count} personne"
@@ -548,15 +577,21 @@ fr:
archive_takeout:
date: Date
download: Télécharger votre archive
- hint_html: Vous pouvez demander une archive de vos
pouets et médias téléversés. Les données exportées seront au format ActivityPub, lisible par tout logiciel compatible. Vous pouvez demander une archive tous les 7 jours.
+ hint_html: Vous pouvez demander une archive de vos
pouets et médias téléversés. Les données exportées seront au format ActivityPub, lisible par tout logiciel compatible. Vous pouvez demander une archive tous les 7 jours.
in_progress: Création de votre archive…
request: Demandez vos archives
size: Taille
blocks: Vous bloquez
csv: CSV
+ domain_blocks: Bloqueurs de domaine
follows: Vous suivez
+ lists: Listes
mutes: Vous masquez
storage: Médias stockés
+ featured_tags:
+ add_new: Ajouter un nouvel hashtag
+ errors:
+ limit: Vous avez déjà mis en avant le nombre maximum de hashtags
filters:
contexts:
home: Accueil
@@ -575,7 +610,7 @@ fr:
title: Ajouter un nouveau filtre
followers:
domain: Domaine
- explanation_html: Si vous voulez être sûr⋅e que vos statuts restent privés, vous devez savoir qui vous suit.
Vos statuts privés seront diffusés à toutes les instances des utilisateur⋅ice⋅s qui vous suivent. Vous voudrez peut-être les passer en revue et les supprimer si vous n’êtes pas sûr⋅e que votre vie privée sera respectée par l’administration ou le logiciel de ces instances.
+ explanation_html: Si vous voulez vous assurer que vos statuts restent privés, vous devez savoir qui vous suit.
Vos statuts privés seront diffusés sur toutes les instances où vous avez des abonné·e·s. Vous voudrez peut-être les passer en revue et les supprimer si vous pensez que votre vie privée ne sera pas respectée par l’administration ou le logiciel de ces instances.
followers_count: Nombre d’abonné⋅e⋅s
lock_link: Rendez votre compte privé
purge: Retirer de la liste d’abonné⋅e⋅s
@@ -597,10 +632,16 @@ fr:
one: Quelque chose ne va pas ! Vérifiez l’erreur ci-dessous
other: Certaines choses ne vont pas ! Vérifiez les %{count} erreurs ci-dessous
imports:
- preface: Vous pouvez importer certaines données comme les personnes que vous suivez ou bloquez sur votre compte sur cette instance à partir de fichiers créés sur une autre instance.
+ modes:
+ merge: Fusionner
+ merge_long: Garder les enregistrements existants et ajouter les nouveaux
+ overwrite: Réécrire
+ overwrite_long: Remplacer les enregistrements actuels par les nouveaux
+ preface: Vous pouvez importer certaines données que vous avez exporté d'une autre instance, comme une liste des personnes que vous suivez ou bloquez sur votre compte.
success: Vos données ont été importées avec succès et seront traitées en temps et en heure
types:
blocking: Liste d’utilisateur⋅ice⋅s bloqué⋅e⋅s
+ domain_blocking: Liste des instances bloquées
following: Liste d’utilisateur⋅ice⋅s suivi⋅e⋅s
muting: Liste d’utilisateur⋅ice⋅s que vous masquez
upload: Importer
@@ -703,13 +744,25 @@ fr:
no_account_html: Vous n’avez pas de compte ? Vous pouvez
vous inscrire ici
proceed: Confirmer l’abonnement
prompt: 'Vous allez suivre :'
+ reason_html: "
Pourquoi cette étape est-elle nécessaire? %{instance}
pourrait ne pas être le serveur où vous vous êtes inscrit, et nous devons donc vous rediriger vers votre serveur de base en premier."
remote_interaction:
- proceed: Confirmer l’interaction
- prompt: 'Vous désirez interagir avec ce pouet :'
+ favourite:
+ proceed: Confirmer l'ajout aux favoris
+ prompt: 'Vous souhaitez mettre ce pouet en favori :'
+ reblog:
+ proceed: Confirmer le repartage
+ prompt: 'Vous souhaitez repartager ce pouet :'
+ reply:
+ proceed: Confirmer la réponse
+ prompt: 'Vous souhaitez répondre à ce pouet :'
remote_unfollow:
error: Erreur
title: Titre
unfollowed: Non-suivi
+ scheduled_statuses:
+ over_daily_limit: Vous avez dépassé la limite de %{limit} pouets planifiés pour ce jour
+ over_total_limit: Vous avez dépassé la limite de %{limit} pouets planifiés
+ too_soon: La date planifiée doit être dans le futur
sessions:
activity: Dernière activité
browser: Navigateur
@@ -758,6 +811,7 @@ fr:
development: Développement
edit_profile: Modifier le profil
export: Export de données
+ featured_tags: Hashtags mis en avant
followers: Abonné⋅es autorisé⋅es
import: Import de données
migrate: Migration de compte
@@ -886,8 +940,9 @@ fr:
Originellement adapté de la politique de confidentialité de Discourse.
title: "%{instance} Conditions d’utilisation et politique de confidentialité"
themes:
- contrast: Contraste élevé
- default: Mastodon Bliss
+ contrast: Mastodon (Contraste élevé)
+ default: Mastodon (Sombre)
+ cipherbliss: Mastodon Bliss
mastodon-light: Mastodon (clair)
time:
formats:
@@ -914,6 +969,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.
@@ -921,7 +992,7 @@ fr:
final_action: Commencer à publier
final_step: 'Commencez à poster ! Même sans abonné·e·s, vos messages publics peuvent être vus par d’autres, par exemple sur le fil public local et dans les hashtags. Vous pouvez vous présenter sur le hashtag #introductions.'
full_handle: Votre identifiant complet
- full_handle_hint: C’est ce que vous diriez à vos ami·e·s pour qu’il·elle·s puissent vous envoyer un message ou vous suivre à partir d’une autre instance.
+ full_handle_hint: C’est ce que vous diriez à vos ami·e·s pour leur permettre de vous envoyer un message ou vous suivre à partir d’une autre instance.
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
diff --git a/config/locales/ga.yml b/config/locales/ga.yml
new file mode 100644
index 000000000..9f586aa37
--- /dev/null
+++ b/config/locales/ga.yml
@@ -0,0 +1,4 @@
+---
+ga:
+ about:
+ about_hashtag_html: Is toots phoiblí iad seo atá clibáilte le
#%{hashtag}. Is féidir leat idirghníomhú leo má tá cuntas agat áit ar bith sa fediverse.
diff --git a/config/locales/gl.yml b/config/locales/gl.yml
index 890b2552f..cadb7cff6 100644
--- a/config/locales/gl.yml
+++ b/config/locales/gl.yml
@@ -7,7 +7,7 @@ gl:
administered_by: 'Administrada por:'
api: API
apps: Apps móbiles
- closed_registrations: O rexistro en esta instancia está pechado en este intre. Porén! Pode atopar unha instancia diferente para obter unha conta e ter acceso exactamente a misma rede desde alí.
+ closed_registrations: O rexistro en este servidor está pechado neste momento. Porén! Pode atopar un servidor diferente para obter unha conta e ter acceso exactamente a misma rede desde alí.
contact: Contacto
contact_missing: Non establecido
contact_unavailable: N/A
@@ -27,7 +27,7 @@ gl:
generic_description: "%{domain} é un servidor na rede"
hosted_on: Mastodon aloxado en %{domain}
learn_more: Coñeza máis
- other_instances: Listado de instancias
+ other_instances: Lista de servidores
privacy_policy: Política de intimidade
source_code: Código fonte
status_count_after:
@@ -70,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!
@@ -81,14 +84,15 @@ gl:
by_domain: Dominio
change_email:
changed_msg: Cambiouse correctamente o correo-e da conta!
- current_email: Correo-e actual
- label: Cambiar correo-e
- new_email: Novo correo-e
- submit: Cambiar correo-e
- title: Cambiar o correo-e de %{username}
+ current_email: Correo actual
+ label: Cambiar correo
+ new_email: Novo correo
+ submit: Cambiar correo
+ title: Cambiar o correo de %{username}
confirm: Confirmar
confirmed: Confirmado
confirming: Confirmar
+ deleted: Eliminado
demote: Degradar
disable: Deshabilitar
disable_two_factor_authentication: Deshabilitar 2FA
@@ -96,16 +100,19 @@ gl:
display_name: Mostrar nome
domain: Dominio
edit: Editar
- email: E-mail
- email_status: Estado del correo electrónico
+ email: Email
+ email_status: Estado do correo
enable: Habilitar
enabled: Habilitado
feed_url: URL fonte
followers: Seguidoras
followers_url: URL das seguidoras
follows: Segue
+ header: Cabeceira
inbox_url: URL da Caixa de entrada
+ invited_by: Convidada por
ip: IP
+ joined: Uniuse
location:
all: Todo
local: Local
@@ -132,8 +139,9 @@ gl:
protocol: Protocolo
public: Público
push_subscription_expires: A suscrición PuSH caduca
- redownload: Actualizar avatar
+ redownload: Actualizar perfil
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
@@ -151,26 +159,27 @@ gl:
search: Busca
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
+ created_reports: Informes creados
+ targeted_reports: Informes feitos por outros
silence: Acalar
silenced: Acalada
statuses: Estados
subscribe: Subscribir
suspended: Suspendida
title: Contas
- unconfirmed_email: Correo-e non confirmado
+ unconfirmed_email: Correo non confirmado
undo_silenced: Desfacer acalar
undo_suspension: Desfacer suspensión
unsubscribe: Non subscribir
username: Nome de usuaria
+ warn: Aviso
web: Web
action_logs:
actions:
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}"
@@ -225,7 +234,7 @@ gl:
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
@@ -247,7 +256,7 @@ gl:
week_users_active: activas estas semana
week_users_new: usuarias esta semana
domain_blocks:
- add_new: Engadir novo
+ add_new: Engadir novo bloqueo de dominio
created_msg: Estase a procesar o bloqueo do dominio
destroyed_msg: Desfixose a acción de bloqueo de dominio
domain: Dominio
@@ -264,11 +273,11 @@ 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
+ rejecting_media: rexeitando ficheiros de medios
+ rejecting_reports: rexeitando informes
+ severity:
+ silence: acalado
+ suspend: suspendido
show:
affected_accounts:
one: Afectoulle a unha conta na base de datos
@@ -278,8 +287,7 @@ 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
+ undo: Desfacer bloqueo de dominio
email_domain_blocks:
add_new: Engadir novo
created_msg: Engadeuse correctamente o dominio de email a lista negra
@@ -290,12 +298,24 @@ 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
+ delivery_available: A entrega está dispoñible
+ known_accounts:
+ one: "%{count} conta coñecida"
+ other: "%{count} contas coñecidas"
+ moderation:
+ all: Todo
+ limited: Limitado
+ title: Moderación
+ title: Federación
+ total_blocked_by_us: Bloqueado por nós
+ total_followed_by_them: Seguidas por eles
+ total_followed_by_us: Seguidas por nós
+ total_reported: Informes sobre elas
+ total_storage: Anexos de medios
invites:
deactivate_all: Desactivar todo
filter:
@@ -366,14 +386,14 @@ gl:
desc_html: Modificar o aspecto con CSS cargado en cada páxina
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
+ desc_html: Mostrado na portada. Recoméndase 600x100px como mínimo. Se non se establece, mostrará a imaxe por omisión do servidor
title: Imáxe Heróe
mascot:
desc_html: Mostrado en varias páxinas. Recoméndase 293x205 como mínimo. Se non se establece publícase a mascota por omisión
title: Imaxe da mascota
peers_api_enabled:
- desc_html: Nome de dominio que esta instancia atopou no fediverso
- title: Publicar lista de instancias descubertas
+ desc_html: Nomes de dominio que este servidor atopou no fediverso
+ title: Publicar lista de servidores descubertos
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
@@ -401,20 +421,20 @@ gl:
title: Mostrar insigna de membresía
site_description:
desc_html: Parágrafo de presentación na páxina principal. Describe o que fai especial a este servidor Mastodon e calquera outra ouca importante. Pode utilizar etiquetas HTML, en particular
<a>
e
<em>
.
- title: Descrición da instancia
+ title: Descrición do servidor
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
+ desc_html: Un bo lugar para o seu código de conducta, regras, guías e outras cousas que distingan ao seu servidor. Pode utilizar etiquetas HTML
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
+ 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 do servidor.
+ title: Descrición curta do servidor
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 persoalizados
- site_title: Nome da instancia
+ site_title: Nome do servidor
thumbnail:
desc_html: Utilizado para vistas previsas vía OpenGraph e API. Recoméndase 1200x630px
- title: Icona da instancia
+ title: Icona do servidor
timeline_preview:
desc_html: Mostrar liña de tempo pública na páxina de inicio
title: vista previa da liña temporal
@@ -448,6 +468,12 @@ gl:
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}"
@@ -469,7 +495,7 @@ gl:
warning: Teña moito tino con estos datos. Nunca os comparta con ninguén!
your_token: O seu testemuño de acceso
auth:
- agreement_html: Ao pulsar "Rexistrar" vostede acorda seguir
as normas da instancia e
os termos do servizo.
+ agreement_html: Ao pulsar "Rexistrar" vostede acorda seguir
as normas do servidor e
os termos do servizo.
change_password: Contrasinal
confirm_email: Confirmar correo-e
delete_account: Eliminar conta
@@ -523,19 +549,22 @@ gl:
description_html: Esto eliminará de xeito
permanente e irreversible o contido da súa conta e será desactivada. O seu nome de usuaria permanecerá reservado para evitar futuras confusións de identidades.
proceed: Eliminar conta
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_html: Só se garantiza a eliminación de contido de este servidor. 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
+ enabled: Vostede está actualmente na lista do directorio.
+ enabled_but_waiting: Vostede optou por ser incluída no directorio, mais por agora non ten o número mínimo de seguidoras (%{min_followers}) para aparecer.
explanation: Descubra usuarias según o seu interese
explore_mastodon: Explorar %{title}
+ how_to_enable: Actualmente non solicitou ser incluída no directorio, pode facelo abaixo. Utilice etiquetas no texto de biografía para ser incluída baixo etiquetas específicas!
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.
- '410': A páxina que busca xa non existe.
+ '404': A páxina que está a buscar non está aquí.
+ '410': A páxina que estaba a buscar xa non existe.
'422':
content: Fallou a verificación de seguridade. Está bloqueando as cookies?
title: Fallou a verficación de seguridade
@@ -548,15 +577,21 @@ gl:
archive_takeout:
date: Data
download: Descargue o seu ficheiro
- hint_html: Pode solicitar un ficheiro cos
seus toots ficheiros de medios. Os datos estarán en formato ActivityPub e son compatibles con calquer software que o cumpla. Pode solicitar un ficheiro cada 7 días.
+ hint_html: Pode solicitar un ficheiro cos
seus toots e ficheiros de medios. Os datos estarán en formato ActivityPub e son compatibles con calquer software que o siga. Pode solicitar un ficheiro cada 7 días.
in_progress: Xerando o seu ficheiro...
request: Solicite o ficheiro
size: Tamaño
blocks: A bloquear
csv: CSV
+ domain_blocks: Bloqueos de dominio
follows: A seguir
+ lists: Listas
mutes: Acalou
storage: Almacenamento de medios
+ featured_tags:
+ add_new: Engadir novo
+ errors:
+ limit: Xa acadou o número máximo de etiquetas
filters:
contexts:
home: Liña temporal inicial
@@ -575,7 +610,7 @@ gl:
title: Engadir novo filtro
followers:
domain: Dominio
- explanation_html: Se quere asegurar a intimidade dos seus estados, debe ser consciente de quen a está a seguir.
Os seus estados privados son enviados a todas as instancias onde ten seguidoras. Podería querer revisalas, e elminar seguidoras si non confía que a súa intimidade sexa respetada polos administradores ou o software de esa instancia.
+ explanation_html: Se quere asegurar a intimidade dos seus estados, debe ser consciente de quen a está a seguir.
Os seus estados privados son enviados a todas os servidores onde ten seguidoras. Podería querer revisalas, e elminar seguidoras si non confía que a súa intimidade sexa respetada polos administradores ou o software de ese servidor.
followers_count: Número de seguidoras
lock_link: Bloquear a súa conta
purge: Eliminar das seguidoras
@@ -597,10 +632,16 @@ gl:
one: Algo non está ben de todo! Por favor revise abaixo o erro
other: Algo aínda non está ben! Por favor revise os %{count} erros abaixo
imports:
- preface: Pode importar os datos que exportou de outra instancia, tales como a lista de usuarias que está a seguir ou bloquear.
+ modes:
+ merge: Fusionar
+ merge_long: Manter os rexistros actuais e engadir novos
+ overwrite: Sobreescribir
+ overwrite_long: Sustituír rexistros actuais cos novos
+ preface: Pode importar os datos que exportou de outro servidor, tales como a lista de usuarias que está a seguir ou bloquear.
success: Os seus datos foron correctamente subidos e serán procesados ao momento
types:
blocking: Lista de bloqueo
+ domain_blocking: Lista de bloqueo de dominios
following: Lista de seguimento
muting: Lista de usuarias acaladas
upload: Subir
@@ -622,7 +663,7 @@ gl:
one: 1 uso
other: "%{count} usos"
max_uses_prompt: Sen límite
- prompt: Xerar e compartir ligazóns con outras para permitir acceso a esta instancia
+ prompt: Xerar e compartir ligazóns con outras para permitir acceso a este servidor
table:
expires_at: Caduca
uses: Usos
@@ -703,13 +744,25 @@ gl:
no_account_html: Non ten unha conta? Pode
rexistrarse aquí
proceed: Proceda para seguir
prompt: 'Vostede vai seguir:'
+ reason_html: "
Por que é necesario este paso?%{instance}
podería non ser o servidor onde se rexistrou, así que precisamo redirixila primeiro ao seu servidor de orixe."
remote_interaction:
- proceed: Proceda para interactuar
- prompt: 'Vostede quere interactuar con este toot:'
+ favourite:
+ proceed: Darlle a favorito
+ prompt: 'Vostede quere favorecer este toot:'
+ reblog:
+ proceed: Darlle a promocionar
+ prompt: 'Vostede quere promocionar este toot:'
+ reply:
+ proceed: Respostar
+ prompt: 'Vostede quere respostar a este toot:'
remote_unfollow:
error: Fallo
title: Título
unfollowed: Deixou de seguir
+ scheduled_statuses:
+ over_daily_limit: Excedeu o límite de %{limit} toots programados para ese día
+ over_total_limit: Excedeu o límite de %{limit} toots programados
+ too_soon: A data de programación debe estar no futuro
sessions:
activity: Última actividade
browser: Navegador
@@ -758,6 +811,7 @@ gl:
development: Desenvolvemento
edit_profile: Editar perfil
export: Exportar datos
+ featured_tags: Etiquetas destacadas
followers: Seguidoras autorizadas
import: Importar
migrate: Migrar conta
@@ -886,9 +940,9 @@ gl:
Adaptado do orixinal Discourse privacy policy.
title: "%{instance} Termos do Servizo e Política de Intimidade"
themes:
- contrast: Alto contraste
- default: Mastodon
- mastodon-light: Mastodon (claro)
+ contrast: Mastodon (Alto contraste)
+ default: Mastodon (Escuro)
+ mastodon-light: Mastodon (Claro)
time:
formats:
default: "%d %b, %Y, %H:%M"
@@ -914,6 +968,22 @@ 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 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.
@@ -921,7 +991,7 @@ gl:
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.'
full_handle: O seu alcume completo
- full_handle_hint: Esto é o que lle dirá aos seus amigos para que poidan seguila ou enviarlle mensaxes desde outra instancia.
+ full_handle_hint: Esto é o que lle dirá aos seus amigos para que poidan seguila ou enviarlle mensaxes desde outro servidor.
review_preferences_action: Cambiar preferencias
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
diff --git a/config/locales/he.yml b/config/locales/he.yml
index 8f651052a..bc92ed908 100644
--- a/config/locales/he.yml
+++ b/config/locales/he.yml
@@ -120,7 +120,6 @@ he:
shared_inbox_url: תיבה משותפת לדואר נכנס
show:
created_reports: דיווחים מאת חשבון זה
- report: דו"ח
targeted_reports: דיווחים נגד חשבון זה
silence: השתקה
statuses: הודעות
@@ -157,10 +156,6 @@ he:
title: חסימת שרת חדשה
reject_media: חסימת קבצי מדיה
reject_media_hint: מסירה קבצי מדיה השמורים מקומית ומונעת מהורדת קבצים נוספים בעתיד. לא רלוונטי להשעיות
- severities:
- silence: השתקה
- suspend: השעייה
- severity: חוּמרה
show:
affected_accounts:
one: חשבון אחד במסד הנתונים מושפע
@@ -170,11 +165,8 @@ he:
suspend: הסרת השעייה מכל החשבונות על שרת זה
title: ביטול חסימת שרת עבור %{domain}
undo: ביטול
- title: חסימת שרתים
undo: ביטול
instances:
- account_count: חשבונות מוכרים
- domain_name: שם מתחם
title: שרתים מוכרים
reports:
are_you_sure: 100% על בטוח?
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/hu.yml b/config/locales/hu.yml
index ab93ba12d..79363b9ee 100644
--- a/config/locales/hu.yml
+++ b/config/locales/hu.yml
@@ -118,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
@@ -196,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
@@ -210,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
@@ -223,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:
diff --git a/config/locales/id.yml b/config/locales/id.yml
index e18207e24..d155ab0a7 100644
--- a/config/locales/id.yml
+++ b/config/locales/id.yml
@@ -1,75 +1,174 @@
---
id:
about:
+ about_hashtag_html: Ini adalah toot public yang ditandai dengan
#%{hashtag}. Anda bisa berinteraksi dengan mereka jika anda memiliki akun dimanapun di fediverse.
about_mastodon_html: Mastodon adalah sebuah jejaring sosial
terbuka, open-sourcedesentralisasi dari platform komersial, menjauhkan anda resiko dari sebuah perusahaan yang memonopoli komunikasi anda. Pilih server yang anda percayai — apapun yang anda pilih, anda tetap dapat berinteraksi dengan semua orang. Semua orang dapat menjalankan server Mastodon sendiri dan berpartisipasi dalam
jejaring sosial dengan mudah.
about_this: Tentang server ini
- closed_registrations: Pendaftaran untuk server ini sedang ditutup.
+ administered_by: 'Dikelola oleh:'
+ api: API
+ apps: Aplikasi hp
+ closed_registrations: Pendaftaran untuk server ini sedang ditutup. Tetapi, anda bisa mencari server lain untuk membuat akun dan mendapatkan akses dari jaringan yang sama di sana.
contact: Kontak
- other_instances: Server lain
+ contact_missing: Belum diset
+ contact_unavailable: Tidak Tersedia
+ documentation: Dokumentasi
+ extended_description_html: |
+
Tempat yang baik untuk peraturan
+
Deskripsi lainnya belum diset.
+ features:
+ humane_approach_body: Belajar dari kegagalan jaringan lain, Mastodon berupaya untuk membuat pilihan desain yang etis untuk melawan penyalahgunaan media sosial.
+ humane_approach_title: Pendekatan yang lebih manusiawi
+ not_a_product_body: Mastodon bukanlah jaringan komersil. Tidak ada iklan, tidak ada pengumpulan data, tidak ada batasan vendor. Tidak ada otoritas terpusat.
+ not_a_product_title: Anda adalah orang, bukanlah sebuah produk
+ real_conversation_body: Dengan 500 karakter dan dukungan konten granular dan peringatan media, anda dapat mengekspresikan diri anda sendiri sesuai yang anda mau.
+ real_conversation_title: Dibangun untuk percakapan yang sebenarnya
+ within_reach_body: Berbagai aplikasi untuk iOS, Android, dan platform lainnya berkat ekosistem API yang ramah pada pengembang untuk tetap terhubung dengan teman-teman anda dimanapun.
+ within_reach_title: Selalu dalam jangkauan
+ generic_description: "%{domain} adalah satu server dalam jaringan"
+ hosted_on: Mastodon dihosting di %{domain}
+ learn_more: Pelajari selengkapnya
+ other_instances: Daftar Server
+ privacy_policy: Kebijakan Privasi
source_code: Kode sumber
- status_count_after: status
+ status_count_after:
+ one: status
+ other: status
status_count_before: Yang telah menulis
- user_count_after: pengguna
+ terms: Kebijakan layanan
+ user_count_after:
+ one: pengguna
+ other: pengguna
user_count_before: Tempat bernaung bagi
+ what_is_mastodon: Apa itu Mastodon?
accounts:
follow: Ikuti
- followers: Pengikut
- following: Mengikut
+ followers:
+ one: Pengikut
+ other: Pengikut
+ following: Mengikuti
+ joined: Bergabung pada %{date}
+ last_active: terakhir aktif
+ link_verified_on: Kepemilikan tautan ini telah dicek pada %{date}
+ media: Media
+ moved_html: "%{name} telah pindah ke %{new_profile_link}:"
+ network_hidden: Informasi ini tidak tersedia
nothing_here: Tidak ada apapun disini!
people_followed_by: Orang yang diikuti %{name}
people_who_follow: Orang-orang yang mengikuti %{name}
+ pin_errors:
+ following: Anda harus mengikuti orang yang ingin anda endorse
posts:
one: Toot
- other: Toots
+ other: Toot
+ posts_tab_heading: Toot
+ posts_with_replies: Toot dan balasan
+ reserved_username: Nama pengguna telah dipesan
+ roles:
+ admin: Admin
+ bot: Bot
+ moderator: Moderator
unfollow: Berhenti mengikuti
admin:
+ account_actions:
+ action: Lakukan aksi
+ title: Lakukan moderasi pada %{acct}
+ account_moderation_notes:
+ create: Beri catatan
+ created_msg: Catatan moderasi berhasil dibuat!
+ delete: Hapus
+ destroyed_msg: Catatan moderasi berhasil dihapus!
accounts:
are_you_sure: Anda yakin?
+ avatar: Avatar
+ by_domain: Domain
+ change_email:
+ changed_msg: Email akun ini berhasil diubah!
+ current_email: Email saat ini
+ label: Ganti email
+ new_email: Email baru
+ submit: Ganti email
+ title: Ganti email untuk %{username}
confirm: Konfirmasi
confirmed: Dikonfirmasi
confirming: Mengkonfirmasi
+ deleted: Terhapus
+ disable: Nonaktifkan
+ disable_two_factor_authentication: Nonaktifkan 2FA
+ disabled: Dinonaktifkan
display_name: Nama
domain: Domain
edit: Ubah
email: E-mail
email_status: Status Email
+ enable: Aktifkan
+ enabled: Diaktifkan
feed_url: URL Feed
followers: Pengikut
+ followers_url: URL pengikut
follows: Mengikut
+ inbox_url: URL Kotak masuk
+ invited_by: Diundang oleh
+ ip: IP
+ joined: Bergabung
location:
all: Semua
local: Lokal
remote: Remote
title: Lokasi
+ login_status: Status login
media_attachments: Lampiran media
+ memorialize: Ubah menjadi memoriam
moderation:
+ active: Aktif
all: Semua
silenced: Didiamkan
suspended: Disuspen
title: Moderasi
+ moderation_notes: Catatan moderasi
most_recent_activity: Aktivitas terbaru
most_recent_ip: IP terbaru
+ no_limits_imposed: Tidak ada batasan
not_subscribed: Tidak berlangganan
+ outbox_url: URL Kotak keluar
perform_full_suspension: Lakukan suspen penuh
profile_url: URL profil
+ promote: Promosikan
+ protocol: Protokol
public: Publik
push_subscription_expires: Langganan PuSH telah kadaluarsa
+ redownload: Muat ulang profil
+ remove_avatar: Hapus avatar
+ remove_header: Hapus header
resend_confirmation:
already_confirmed: Pengguna ini sudah dikonfirmasi
send: Kirim ulang email konfirmasi
success: Email konfirmasi berhasil dikirim!
+ reset: Reset
reset_password: Reset kata sandi
+ resubscribe: Langganan ulang
+ role: Hak akses
+ roles:
+ admin: Administrator
+ moderator: Moderator
+ staff: Staf
+ user: Pengguna
salmon_url: URL Salmon
+ search: Cari
show:
created_reports: Laporan yang dibuat oleh akun ini
- report: laporan
targeted_reports: Laporan yang dibuat tentang akun ini
silence: Diam
+ silenced: Didiamkan
statuses: Status
+ subscribe: Langganan
+ suspended: Disuspen
title: Akun
+ unconfirmed_email: Email belum dikonfirmasi
undo_silenced: Undo mendiamkan
undo_suspension: Undo suspen
+ unsubscribe: Berhenti langganan
username: Nama pengguna
+ warn: Beri Peringatan
web: Web
domain_blocks:
add_new: Tambah
@@ -86,10 +185,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
@@ -99,10 +194,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:
diff --git a/config/locales/io.yml b/config/locales/io.yml
index f52f2bc80..73c981a98 100644
--- a/config/locales/io.yml
+++ b/config/locales/io.yml
@@ -52,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
@@ -76,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
@@ -89,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:
diff --git a/config/locales/it.yml b/config/locales/it.yml
index 8f62f34e3..fea39b1fd 100644
--- a/config/locales/it.yml
+++ b/config/locales/it.yml
@@ -28,7 +28,7 @@ it:
hosted_on: Mastodon ospitato su %{domain}
learn_more: Scopri altro
other_instances: Elenco istanze
- privacy_policy: Policy su la Privacy
+ privacy_policy: Politica della privacy
source_code: Codice sorgente
status_count_after:
one: status
@@ -150,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
@@ -261,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
@@ -275,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
@@ -288,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
@@ -661,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
diff --git a/config/locales/ja.yml b/config/locales/ja.yml
index 5c8686a4f..6d0e19684 100644
--- a/config/locales/ja.yml
+++ b/config/locales/ja.yml
@@ -7,7 +7,7 @@ ja:
administered_by: '管理者:'
api: API
apps: アプリ
- closed_registrations: 現在このインスタンスでの新規登録は受け付けていません。しかし、他のインスタンスにアカウントを作成しても全く同じネットワークに参加することができます。
+ closed_registrations: 現在このサーバーでの新規登録は受け付けていません。しかし、他のサーバーにアカウントを作成しても全く同じネットワークに参加することができます。
contact: 連絡先
contact_missing: 未設定
contact_unavailable: N/A
@@ -18,16 +18,16 @@ ja:
features:
humane_approach_body: 他の SNS の失敗から学び、Mastodon はソーシャルメディアが誤った使い方をされることの無いように倫理的な設計を目指しています。
humane_approach_title: より思いやりのある設計
- not_a_product_body: Mastodon は営利的な SNS ではありません。広告や、データの収集・解析は無く、またユーザーの囲い込みもありません。ここには中央権力はありません。
+ not_a_product_body: Mastodon は営利的な SNS ではありません。広告や、データの収集・解析によるターゲティングは無く、またユーザーの囲い込みもありません。ここには中央権力はありません。
not_a_product_title: あなたは人間であり、商品ではありません
real_conversation_body: 好きなように書ける500文字までの投稿や、文章やメディアの内容に警告をつけられる機能で、思い通りに自分自身を表現することができます。
real_conversation_title: 本当のコミュニケーションのために
within_reach_body: デベロッパーフレンドリーな API により実現された、iOS や Android、その他様々なプラットフォームのためのアプリでどこでも友人とやりとりできます。
within_reach_title: いつでも身近に
- generic_description: "%{domain} は、Mastodon インスタンスの一つです"
+ generic_description: "%{domain} は、Mastodon サーバーの一つです"
hosted_on: Mastodon hosted on %{domain}
learn_more: もっと詳しく
- other_instances: 他のインスタンス
+ other_instances: 他のサーバー
privacy_policy: プライバシーポリシー
source_code: ソースコード
status_count_after:
@@ -70,6 +70,9 @@ ja:
moderator: Mod
unfollow: フォロー解除
admin:
+ account_actions:
+ action: アクションを実行
+ title: "%{acct}さんに対してアクションを実行"
account_moderation_notes:
create: 書き込む
created_msg: モデレーションメモを書き込みました!
@@ -89,6 +92,7 @@ ja:
confirm: 確認
confirmed: 確認済み
confirming: 確認中
+ deleted: 削除済み
demote: 降格
disable: 無効化
disable_two_factor_authentication: 二段階認証を無効にする
@@ -106,7 +110,9 @@ ja:
follows: フォロー数
header: ヘッダー
inbox_url: Inbox URL
+ invited_by: 招待した人
ip: IP
+ joined: 登録日
location:
all: すべて
local: ローカル
@@ -151,10 +157,9 @@ ja:
user: ユーザー
salmon_url: Salmon URL
search: 検索
- shared_inbox_url: Shared Inbox URL
+ shared_inbox_url: Shared inbox URL
show:
created_reports: このアカウントで作られたレポート
- report: レポート
targeted_reports: このアカウントについてのレポート
silence: サイレンス
silenced: サイレンス済み
@@ -167,12 +172,14 @@ ja:
undo_suspension: 停止から戻す
unsubscribe: 購読の解除
username: ユーザー名
+ warn: 警告
web: Web
action_logs:
actions:
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} をメールアドレス用ブラックリストに追加しました"
@@ -249,7 +256,7 @@ ja:
week_users_active: 今週活動した人数
week_users_new: 今週登録した人数
domain_blocks:
- add_new: 新規追加
+ add_new: ドメインブロックを追加
created_msg: ドメインブロック処理を完了しました
destroyed_msg: ドメインブロックを外しました
domain: ドメイン
@@ -257,7 +264,7 @@ ja:
create: ブロックを作成
hint: ドメインブロックはデータベース中のアカウント項目の作成を妨げませんが、遡って自動的に指定されたモデレーションをそれらのアカウントに適用します。
severity:
- desc_html: "
サイレンスはアカウントのトゥートをフォローしていない人から隠します。
停止はそのアカウントのコンテンツ、メディア、プロフィールデータをすべて削除します。メディアファイルの拒否は
なしを使います。"
+ desc_html: "
サイレンスはアカウントのトゥートをフォローしていない人から隠します。
停止はそのアカウントのコンテンツ、メディア、プロフィールデータをすべて削除します。メディアファイルを拒否したいだけの場合は
なしを使います。"
noop: なし
silence: サイレンス
suspend: 停止
@@ -266,11 +273,11 @@ ja:
reject_media_hint: ローカルに保存されたメディアファイルを削除し、今後のダウンロードを拒否します。停止とは無関係です
reject_reports: レポートを拒否
reject_reports_hint: このドメインからのレポートをすべて無視します。停止とは無関係です
- severities:
- noop: なし
- silence: サイレンス
- suspend: 停止
- severity: 深刻度
+ rejecting_media: メディアファイルを拒否中
+ rejecting_reports: レポートを拒否中
+ severity:
+ silence: サイレンス中
+ suspend: 停止中
show:
affected_accounts:
one: データベース中の一つのアカウントに影響します
@@ -280,7 +287,6 @@ ja:
suspend: このドメインからの存在するすべてのアカウントの停止を戻す
title: "%{domain}のドメインブロックを戻す"
undo: 元に戻す
- title: ドメインブロック
undo: 元に戻す
email_domain_blocks:
add_new: 新規追加
@@ -292,12 +298,24 @@ ja:
create: ドメインを追加
title: メールアドレス用ブラックリスト新規追加
title: メールブラックリスト
+ followers:
+ back_to_account: 戻る
+ title: "%{acct}さんのフォロワー"
instances:
- account_count: 既知のアカウント数
- domain_name: ドメイン名
- reset: リセット
- search: 検索
- title: 既知のインスタンス
+ delivery_available: 配送可能
+ known_accounts:
+ one: 既知のアカウント数 %{count}
+ other: 既知のアカウント数 %{count}
+ moderation:
+ all: すべて
+ limited: 制限あり
+ title: モデレーション
+ title: 既知のサーバー
+ total_blocked_by_us: ブロック合計
+ total_followed_by_them: 被フォロー合計
+ total_followed_by_us: フォロー合計
+ total_reported: レポート合計
+ total_storage: 添付されたメディア
invites:
deactivate_all: すべて無効化
filter:
@@ -368,14 +386,14 @@ ja:
desc_html: 全ページに適用されるCSSの編集
title: カスタムCSS
hero:
- desc_html: フロントページに表示されます。サイズは600x100px以上推奨です。未設定の場合、インスタンスのサムネイルが使用されます
+ desc_html: フロントページに表示されます。サイズは600x100px以上推奨です。未設定の場合、標準のサムネイルが使用されます
title: ヒーローイメージ
mascot:
desc_html: 複数のページに表示されます。サイズは293x205px以上推奨です。未設定の場合、標準のマスコットが使用されます
title: マスコットイメージ
peers_api_enabled:
- desc_html: 連合内でこのインスタンスが遭遇したドメインの名前
- title: 接続しているインスタンスのリストを公開する
+ desc_html: 連合内でこのサーバーが遭遇したドメインの名前
+ title: 接続しているサーバーのリストを公開する
preview_sensitive_media:
desc_html: 他のウェブサイトにリンクを貼った際、メディアが閲覧注意としてマークされていてもサムネイルが表示されます
title: OpenGraphによるプレビューで閲覧注意のメディアも表示する
@@ -402,21 +420,21 @@ ja:
desc_html: ユーザーページにスタッフのバッジを表示します
title: スタッフバッジを表示する
site_description:
- desc_html: フロントページへの表示に使用される紹介文です。このMastodonインスタンスを特徴付けることやその他重要なことを記述してください。HTMLタグ、特に
<a>
と
<em>
が使えます。
- title: インスタンスの説明
+ desc_html: フロントページへの表示に使用される紹介文です。このMastodonサーバーを特徴付けることやその他重要なことを記述してください。HTMLタグ、特に
<a>
と
<em>
が使えます。
+ title: サーバーの説明
site_description_extended:
- desc_html: あなたのインスタンスにおける行動規範やルール、ガイドライン、そのほかの記述をする際に最適な場所です。HTMLタグが使えます
+ desc_html: あなたのサーバーにおける行動規範やルール、ガイドライン、そのほかの記述をする際に最適な場所です。HTMLタグが使えます
title: カスタム詳細説明
site_short_description:
- desc_html: サイドバーと meta タグに表示されます。Mastodon とは何か、そしてこのサーバーの特別な何かを1段落で記述してください。空欄の場合、インスタンスの説明が使用されます。
- title: 短いインスタンスの説明
+ desc_html: サイドバーと meta タグに表示されます。Mastodon とは何か、そしてこのサーバーの特別な何かを1段落で記述してください。空欄の場合、サーバーの説明が使用されます。
+ title: 短いサーバーの説明
site_terms:
desc_html: あなたは独自のプライバシーポリシーや利用規約、そのほかの法的根拠を書くことができます。HTMLタグが使えます
title: カスタム利用規約
- site_title: インスタンスの名前
+ site_title: サーバーの名前
thumbnail:
desc_html: OpenGraphとAPIによるプレビューに使用されます。サイズは1200×630px推奨です
- title: インスタンスのサムネイル
+ title: サーバーのサムネイル
timeline_preview:
desc_html: ランディングページに公開タイムラインを表示します
title: タイムラインプレビュー
@@ -450,6 +468,12 @@ ja:
unhide: ディレクトリに表示する
visible: 表示
title: 管理
+ warning_presets:
+ add_new: 追加
+ delete: 削除
+ edit: 編集
+ edit_preset: プリセット警告文を編集
+ title: プリセット警告文を管理
admin_mailer:
new_report:
body: "%{reporter} が %{target} を通報しました"
@@ -471,7 +495,7 @@ ja:
warning: このデータは気をつけて取り扱ってください。他の人と共有しないでください!
your_token: アクセストークン
auth:
- agreement_html: 登録するをクリックすると
インスタンスのルール と
プライバシーポリシー に従うことに同意したことになります。
+ agreement_html: 登録するをクリックすると
サーバーのルール と
プライバシーポリシー に従うことに同意したことになります。
change_password: パスワード
confirm_email: メールアドレスの確認
delete_account: アカウントの削除
@@ -489,7 +513,7 @@ ja:
cas: CAS
saml: SAML
register: 登録する
- register_elsewhere: 他のインスタンスで新規登録
+ register_elsewhere: 他のサーバーで新規登録
resend_confirmation: 確認メールを再送する
reset_password: パスワードを再発行
security: セキュリティ
@@ -525,12 +549,15 @@ ja:
description_html: あなたのアカウントに含まれるコンテンツは全て削除され、アカウントは無効化されます。これは恒久的なもので、
取り消すことはできません。なりすましを防ぐために、同じユーザー名で再度登録することはできなくなります。
proceed: アカウントを削除する
success_msg: アカウントは正常に削除されました
- warning_html: 削除が保証されるのはこのインスタンス上のコンテンツのみです。他のインスタンス等、外部に広く共有されたコンテンツについては痕跡が残ることがあります。また、現在接続できないサーバーや、あなたの更新を受け取らなくなったサーバーに対しては、削除は反映されません。
+ warning_html: 削除が保証されるのはこのサーバー上のコンテンツのみです。他のサーバー等、外部に広く共有されたコンテンツについては痕跡が残ることがあります。また、現在接続できないサーバーや、あなたの更新を受け取らなくなったサーバーに対しては、削除は反映されません。
warning_title: 共有されたコンテンツについて
directories:
directory: ディレクトリ
- explanation: 興味のある人を見つけよう
+ enabled: あなたはディレクトリに掲載されています。
+ enabled_but_waiting: あなたはディレクトリへの掲載を選択しましたが、掲載に必要な最小フォロワー数 (%{min_followers} 人) を満たしていません。
+ explanation: 関心を軸にユーザーを発見しよう
explore_mastodon: "%{title}を探索"
+ how_to_enable: あなたはディレクトリへの掲載を選択していません。下記から選択できます。ハッシュタグカラムに掲載するにはプロフィール文にハッシュタグを使用してください。
people:
one: "%{count} 人"
other: "%{count} 人"
@@ -556,9 +583,15 @@ ja:
size: 容量
blocks: ブロック
csv: CSV
+ domain_blocks: 非表示にしたドメイン
follows: フォロー
+ lists: リスト
mutes: ミュート
storage: メディア
+ featured_tags:
+ add_new: 追加
+ errors:
+ limit: 注目のハッシュタグの上限に達しました
filters:
contexts:
home: ホームタイムライン
@@ -577,7 +610,7 @@ ja:
title: 新規フィルターを追加
followers:
domain: ドメイン
- explanation_html: あなたの投稿のプライバシーを確保したい場合、誰があなたをフォローしているのかを把握している必要があります。
プライベート投稿は、あなたのフォロワーがいる全てのインスタンスに配信されます。 フォロワーのインスタンスの管理者やソフトウェアがあなたのプライバシーを尊重してくれるかどうか怪しい場合は、そのフォロワーを削除した方がよいかもしれません。
+ explanation_html: あなたの投稿のプライバシーを確保したい場合、誰があなたをフォローしているのかを把握している必要があります。
プライベート投稿は、あなたのフォロワーがいる全てのサーバーに配信されます。 フォロワーのサーバーの管理者やソフトウェアがあなたのプライバシーを尊重してくれるかどうか怪しい場合は、そのフォロワーを削除した方がよいかもしれません。
followers_count: フォロワー数
lock_link: 承認制アカウントにする
purge: フォロワーから削除する
@@ -599,10 +632,16 @@ ja:
one: エラーが発生しました! 以下のエラーを確認してください
other: エラーが発生しました! 以下の%{count}個のエラーを確認してください
imports:
- preface: 他のインスタンスでエクスポートされたファイルから、フォロー/ブロックした情報をこのインスタンス上のアカウントにインポートできます。
+ modes:
+ merge: 統合
+ merge_long: 現在のレコードを保持したまま新しいものを追加します
+ overwrite: 上書き
+ overwrite_long: 現在のレコードを新しいもので置き換えます
+ preface: 他のサーバーでエクスポートされたファイルから、フォロー/ブロックした情報をこのサーバー上のアカウントにインポートできます。
success: ファイルは正常にアップロードされ、現在処理中です。しばらくしてから確認してください
types:
blocking: ブロックしたアカウントリスト
+ domain_blocking: 非表示にしたドメインリスト
following: フォロー中のアカウントリスト
muting: ミュートしたアカウントリスト
upload: アップロード
@@ -624,7 +663,7 @@ ja:
one: '1'
other: "%{count}"
max_uses_prompt: 無制限
- prompt: リンクを生成・共有してこのインスタンスへの新規登録を受け付けることができます
+ prompt: リンクを生成・共有してこのサーバーへの新規登録を受け付けることができます
table:
expires_at: 有効期限
uses: 使用
@@ -704,13 +743,25 @@ ja:
no_account_html: アカウントをお持ちではないですか?
こちらからサインアップできます
proceed: フォローする
prompt: 'フォローしようとしています:'
+ reason_html: "
なぜこの手順が必要でしょうか?%{instance}
はあなたが登録されているサーバーではないかもしれないので、まずあなたのサーバーに転送する必要があります。"
remote_interaction:
- proceed: 進む
- prompt: 'このトゥートに返信しようとしています:'
+ favourite:
+ proceed: お気に入り登録する
+ prompt: 'お気に入り登録しようとしています:'
+ reblog:
+ proceed: ブーストする
+ prompt: 'ブーストしようとしています:'
+ reply:
+ proceed: 返信する
+ prompt: '返信しようとしています:'
remote_unfollow:
error: エラー
title: タイトル
unfollowed: フォロー解除しました
+ scheduled_statuses:
+ over_daily_limit: その日予約できる投稿数 %{limit} を超えています
+ over_total_limit: 予約できる投稿数 %{limit} を超えています
+ too_soon: より先の時間を指定してください
sessions:
activity: 最後のアクティビティ
browser: ブラウザ
@@ -759,7 +810,8 @@ ja:
development: 開発
edit_profile: プロフィールを編集
export: データのエクスポート
- followers: 信頼済みのインスタンス
+ featured_tags: 注目のハッシュタグ
+ followers: 信頼済みのサーバー
import: データのインポート
migrate: アカウントの引っ越し
notifications: 通知
@@ -887,8 +939,8 @@ ja:
オリジナルの出典: Discourse privacy policy
title: "%{instance} 利用規約・プライバシーポリシー"
themes:
- contrast: ハイコントラスト
- default: Mastodon
+ contrast: Mastodon (ハイコントラスト)
+ default: Mastodon (ダーク)
mastodon-light: Mastodon (ライト)
time:
formats:
@@ -915,6 +967,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: アバター画像やヘッダー画像をアップロードしたり、表示名やその他プロフィールを変更しカスタマイズすることができます。新しいフォロワーからのフォローを許可する前に検討したい場合、アカウントを承認制にすることができます。
@@ -922,13 +990,13 @@ ja:
final_action: 始めましょう
final_step: 'さあ始めましょう! たとえフォロワーがいなくても、あなたの公開した投稿はローカルタイムラインやハッシュタグなどで誰かの目に止まるかもしれません。自己紹介をしたい時は #introductions ハッシュタグを使うといいかもしれません。'
full_handle: あなたの正式なユーザー名
- full_handle_hint: これは別のインスタンスからフォローしてもらったりメッセージのやり取りをする際に、友達に伝えるといいでしょう。
+ full_handle_hint: これは別のサーバーからフォローしてもらったりメッセージのやり取りをする際に、友達に伝えるといいでしょう。
review_preferences_action: 設定の変更
review_preferences_step: 受け取りたいメールや投稿の公開範囲などの設定を必ず行ってください。不快でないならアニメーション GIF の自動再生を有効にすることもできます。
subject: Mastodon へようこそ
- tip_federated_timeline: 連合タイムラインは Mastodon ネットワークの流れを見られるものです。ただしあなたと同じインスタンスの人がフォローしている人だけが含まれるので、それが全てではありません。
- tip_following: 標準では自動でインスタンスの管理者をフォローしています。もっと興味のある人たちを見つけるには、ローカルタイムラインと連合タイムラインを確認してください。
- tip_local_timeline: ローカルタイムラインは %{instance} にいる人々の流れを見られるものです。彼らはあなたと同じインスタンスにいる隣人のようなものです!
+ tip_federated_timeline: 連合タイムラインは Mastodon ネットワークの流れを見られるものです。ただしあなたと同じサーバーの人がフォローしている人だけが含まれるので、それが全てではありません。
+ tip_following: 標準では自動でサーバーの管理者をフォローしています。もっと興味のある人たちを見つけるには、ローカルタイムラインと連合タイムラインを確認してください。
+ tip_local_timeline: ローカルタイムラインは %{instance} にいる人々の流れを見られるものです。彼らはあなたと同じサーバーにいる隣人のようなものです!
tip_mobile_webapp: もしモバイル端末のブラウザで Mastodon をホーム画面に追加できる場合、プッシュ通知を受け取ることができます。それはまるでネイティブアプリのように動作します!
tips: 豆知識
title: ようこそ、%{name} !
diff --git a/config/locales/ka.yml b/config/locales/ka.yml
index 7cb767452..056942ecd 100644
--- a/config/locales/ka.yml
+++ b/config/locales/ka.yml
@@ -139,7 +139,6 @@ ka:
shared_inbox_url: გაზიარებული ინბოქსის ურლ
show:
created_reports: ამ ანგარიშის მიერ შექმნილი რეპორტები
- report: რეპორტი
targeted_reports: ამ ანგარიშზე მიღებული რეპორტები
silence: სიჩუმე
statuses: სტატუსები
@@ -245,11 +244,6 @@ ka:
title: ახალი დომენის ბლოკი
reject_media: მედია ფაილების უარყოფა
reject_media_hint: შლის ლოკალურად შენახულ მედია ფაილებს და უარყოფს სამომავლო გადმოტვირთებს. შეუსაბამო შეჩერებებისთვის
- severities:
- noop: არც ერთი
- silence: გაჩუმება
- suspend: შეჩერება
- severity: სიმძიმე
show:
affected_accounts:
one: გავლენა იქონია მონაცემთა ბაზაში ერთ ანგარიშზე
@@ -259,7 +253,6 @@ ka:
suspend: ამ დომენში ყველა არსებულ ანგარიშზე შეჩერების მოშორება
title: უკუაქციეთ დომენის ბლოკი %{domain} დომენზე
undo: უკუქცევა
- title: დომენის ბლოკები
undo: უკუქცევა
email_domain_blocks:
add_new: ახლის დამატება
@@ -272,10 +265,6 @@ ka:
title: ელ-ფოსტის ახალი შენატანი შავ სიაში
title: ელ-ფოსტის შავი სია
instances:
- account_count: ცნობილი ანგარიშები
- domain_name: დომენი
- reset: გადატვირთვა
- search: ძებნა
title: ცნობილი ინსტანციები
invites:
deactivate_all: ყველას დეაქტივაცია
@@ -652,9 +641,6 @@ ka:
no_account_html: არ გაქვთ ანგარიში? შეგიძლიათ
დარეგისტრირდეთ აქ
proceed: გააგრძელეთ გასაყოლად
prompt: 'თქვენ გაჰყვებით:'
- remote_interaction:
- proceed: გააგრძელეთ ურთიერთქმედება
- prompt: 'თქვენ გსურთ ურთიერთქმედება ამ ტუტთან:'
remote_unfollow:
error: შეცდომა
title: სათაური
diff --git a/config/locales/kk.yml b/config/locales/kk.yml
new file mode 100644
index 000000000..97a0626e6
--- /dev/null
+++ b/config/locales/kk.yml
@@ -0,0 +1,445 @@
+---
+kk:
+ about:
+ about_hashtag_html: Бұл жерде
#%{hashtag} хэштегімен жинақталған жазбалар. Желіге тіркеліп, сіз де қосыла аласыз бұл ортаға.
+ about_mastodon_html: Mastodon - әлеуметтік желіге негізделген, тегін және веб протоколды, ашық кодты құрылым. Ол email сияқты орталықтандырылған.
+ about_this: Туралы
+ administered_by: 'Админ:'
+ api: API
+ apps: Мобиль қосымшалар
+ closed_registrations: Бұл серверде тіркелу уақытша тоқтатылған. Дегенмен, сіз басқа сервер арқылы тіркеліп, сол аккаунтыңызбен қолдана берсеңіз болады.
+ contact: Байланыс
+ contact_missing: Бапталмаған
+ contact_unavailable: Белгісіз
+ documentation: Құжаттама
+ extended_description_html: |
+
Ережелерге арналған жақсы орын
+
Әлі ештеңе жазылмапты
+ features:
+ humane_approach_body: Басқа желілердің сәтсіздіктерінен сабақ алып, Mastodon әлеуметтік медианы дұрыс пайдаланбаумен күресу үшін этикалық дизайнды таңдауға бағытталған.
+ humane_approach_title: Гуманистік көзқарас басым
+ not_a_product_body: Mastodon коммерциялық желі емес. Жарнама жоқ, деректерді өңдеу, қоршаулы бақтар да жоқ. Орталықтан басқару да жоқ.
+ not_a_product_title: Сіз тұлғасыз, тауар емес
+ real_conversation_body: 500 таңба арқылы мазмұнды пікір және қызық медиа қолданып, өз ойыңызды жеткізе аласыз.
+ real_conversation_title: Нақты әңгімелерге арналған
+ within_reach_body: Ыңғайлы API экожүйесі арқасында iOS, Android және басқа платформаларға арналған бірнеше қосымшалар арқылы достарыңызбен кез-келген жерде әңгіме құруға мүмкіндік береді.
+ within_reach_title: Әрқашан қол жетімді
+ generic_description: "%{domain} желідегі серверлердің бірі"
+ hosted_on: Mastodon орнатылған %{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: Mastodon деген не?
+ accounts:
+ choices_html: "%{name} таңдаулары:"
+ 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: Мұндай логин тіркелген
+ 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: Аккаунт email-і сәтті өзгертілді!
+ current_email: Қазіргі email
+ label: email өзгерту
+ new_email: Жаңа email
+ submit: email өзгерт
+ title: Қолданушы email-ін өзгерту %{username}
+ confirm: Құптау
+ confirmed: Құпталды
+ confirming: Құпталуды күтеді
+ deleted: Өшірілді
+ demote: Төмендету
+ disable: Ажырату
+ disable_two_factor_authentication: Ажырату 2FA
+ disabled: Ажыратылды
+ display_name: Атын көрсет
+ domain: Домен
+ edit: Түзету
+ email: Email
+ email_status: Email статусы
+ enable: Қосу
+ enabled: Қосылды
+ followers: Оқырмандар
+ followers_url: Оқырмандар URL
+ follows: Жазылғандары
+ header: Басы
+ inbox_url: Келген хаттар URL
+ invited_by: Шақырған
+ ip: IP
+ joined: Қосылды
+ location:
+ all: Барлығы
+ local: Жергілікті
+ remote: Алыс
+ title: Мекен
+ login_status: Логин статусы
+ media_attachments: Медиа файлдар
+ memorialize: Естелік қылу
+ moderation:
+ active: Актив
+ all: Барлығы
+ silenced: Үнсіз
+ suspended: Тоқтатылды
+ title: Модерация
+ moderation_notes: Модерация жазбалары
+ most_recent_activity: Соңғы белсенділіктер
+ most_recent_ip: Соңғы ІР
+ no_limits_imposed: Шектеу жоқ
+ not_subscribed: Жазылмаған
+ outbox_url: Кеткен хаттар URL
+ perform_full_suspension: Тоқтат
+ profile_url: Профиль URL
+ promote: Жарнамалау
+ protocol: Хаттама
+ public: Ашық
+ push_subscription_expires: PuSH жазылу мерзімі аяқталады
+ redownload: Профиль жаңарт
+ remove_avatar: Аватар өшіру
+ remove_header: Мұқаба суретін өшір
+ resend_confirmation:
+ already_confirmed: Қолданушы құпталған
+ send: Құптау хатын қайтадан жібер
+ success: Құптау хаты сәтті жіберілді!
+ reset: Қалпына келтіру
+ reset_password: Құпиясөзді қалпына келтіру
+ role: Қайта жазылу
+ roles:
+ admin: Админ
+ moderator: Модератор
+ staff: Қызметкерлер
+ user: Қолданушы
+ salmon_url: Ақсерке URL
+ search: Іздеу
+ shared_inbox_url: Бөлісілген инбокс URL
+ show:
+ created_reports: Шағымдар жинағы
+ targeted_reports: Жіберілген шағымдар
+ silence: Үнсіз
+ silenced: Үнсіз қылғандар
+ statuses: Статустар
+ subscribe: Жазылу
+ suspended: Тоқтатылды
+ title: Аккаунттар
+ unconfirmed_email: Құпталмаған email
+ undo_silenced: Үнсіздікті қайтып алу
+ undo_suspension: Тоқтатуды қайтып алу
+ unsubscribe: Жазылмау
+ username: Логин
+ warn: Ескерту
+ web: Веб
+ action_logs:
+ actions:
+ assigned_to_self_report: "%{name} шағым тастады %{target} өздері үшін"
+ change_email_user: "%{name} e-mail адресін өзгертті - %{target}"
+ confirm_user: "%{name} e-mail адресін құптады - %{target}"
+ create_account_warning: "%{name} ескерту жіберді - %{target}"
+ create_custom_emoji: "%{name} жаңа эмодзи қосты %{target}"
+ create_domain_block: "%{name} домен бұғаттады - %{target}"
+ create_email_domain_block: "%{name} e-mail доменін қара тізімге қосты - %{target}"
+ demote_user: "%{name} төмендетілген қолданушы - %{target}"
+ destroy_custom_emoji: "%{name} эмодзи жойды %{target}"
+ destroy_domain_block: "%{name} бұғатталмаған домен %{target}"
+ destroy_email_domain_block: "%{name} e-mail доменін ақ тізімге кіргізді %{target}"
+ destroy_status: "%{name} жазбасын өшірді %{target}"
+ disable_2fa_user: "%{name} қолданушы үшін екі фактор ажыратылған %{target}"
+ disable_custom_emoji: "%{name} эмодзи алып тастады %{target}"
+ disable_user: "%{name} қосылмаған логин %{target}"
+ enable_custom_emoji: "%{name} қосылған эмодзи %{target}"
+ enable_user: "%{name} қосылған логин %{target}"
+ memorialize_account: "%{name} %{target} аккаунтын естеліктеріне қосты"
+ promote_user: "%{name} жарнамалады %{target}"
+ remove_avatar_user: "%{name} %{target} аватарын өшірді"
+ reopen_report: "%{name} %{target} шағымын қайта қарады"
+ reset_password_user: "%{name} %{target} құпиясөзін қалпына келтірді"
+ resolve_report: "%{name} %{target} шағымын қарастырды"
+ silence_account: "%{name} %{target} аккаунтын үнсіз қылды"
+ suspend_account: "%{name} %{target} аккаунтын тоқтатты"
+ unassigned_report: "%{name} бекітілмеген есеп %{target}"
+ unsilence_account: "%{name} %{target} аккаунтын қайта қосты"
+ unsuspend_account: "%{name} %{target} аккаунтын қайта қосты"
+ update_custom_emoji: "%{name} эмодзи жаңартты %{target}"
+ update_status: "%{name} жазбасын жаңартты %{target}"
+ deleted_status: "(өшірілген жазба)"
+ title: Аудит логы
+ custom_emojis:
+ by_domain: Домен
+ copied_msg: Жергілікті эмодзидің көшірмесі сәтті жасалды
+ copy: Көшіру
+ copy_failed_msg: Жергілікті эмодзидің көшірмесі жасалмады
+ created_msg: Эмодзи сәтті жаңартылды!
+ delete: Өшіру
+ destroyed_msg: Эмодзи сәтті жойылды!
+ disable: Ажырату
+ disabled_msg: Бұл эмодзи сәтті жойылды
+ emoji: Эмодзи
+ enable: Қосу
+ enabled_msg: Эмодзи сәтті қосылды
+ image_hint: PNG 50KB
+ listed: Тізілді
+ new:
+ title: Жаңа эмодзи қос
+ overwrite: Үстіне жаз
+ shortcode: Шорткод
+ shortcode_hint: Кем дегенде 2 символ, тек латын әріптері мен асты сызылған таңбалар
+ title: Таңдаулы эмодзилар
+ unlisted: Тізімде жоқ
+ update_failed_msg: Бұл эмодзи жаңартылмады
+ updated_msg: Эмодзи сәтті жаңартылды!
+ upload: Жүктеу
+ dashboard:
+ backlog: босатылған тапсырмалар
+ config: Конфигурация
+ feature_deletions: Аккаунттарды жою
+ feature_invites: Шақыру сілтемелері
+ feature_profile_directory: Профиль каталогы
+ feature_registrations: Тіркелулер
+ feature_relay: Федерация релесі
+ features: Мүмкіндіктер
+ hidden_service: Жасырын қызметтер федерациясы
+ open_reports: ашық шағымдар
+ recent_users: Соңғы қолданушылар
+ search: Толық мәтінмен іздеу
+ single_user_mode: Жалғыз пайдаланушы режимі
+ software: Бағдарлама
+ space: Пайдаланылған кеңістік
+ title: Басқару тақтасы
+ total_users: барлық қолданушы
+ trends: Трендтер
+ week_interactions: осы аптадағы әрекеттер
+ week_users_active: осы аптадағы белсенділік
+ week_users_new: осы аптадағы қолданушылар
+ domain_blocks:
+ add_new: Жаңа домен блокын қосу
+ created_msg: Домендік блок енді өңделуде
+ destroyed_msg: Домендік блок қалпына келтірілді
+ domain: Домен
+ new:
+ create: Блок құру
+ hint: Домендік блок дерекқорда тіркелгі жазбаларын құруға кедергі жасамайды, бірақ сол есептік жазбаларда ретроактивті және автоматты түрде нақты модерация әдістерін қолданады.
+ severity:
+ noop: Ештеңе
+ silence: Үнсіз
+ suspend: Тоқтатылған
+ title: Жаңа домен блокы
+ reject_media: Медиа файлдарды қабылдамау
+ reject_media_hint: Жергілікті сақталған мультимедиалық файлдарды жояды және болашақта кез келген жүктеуден бас тартады. Суспензияға байланысты емес
+ reject_reports: Шағым қабылдамау
+ reject_reports_hint: Бұл доменнен келген барлық есептерді елемеңіз. Суспензияға байланысты емес
+ rejecting_media: медиа файлдарды қабылдамау
+ rejecting_reports: шағымдарды қабылдамау
+ severity:
+ silence: үнсіз
+ suspend: тоқтатылған
+ show:
+ affected_accounts:
+ one: Дерекқорда бір тіркелгі қозғалды
+ other: дерекқордағы %{count} аккаунт қозғалған
+ retroactive:
+ silence: Осы домендегі бар тіркелгілерді жою
+ suspend: Осы домендегі бар барлық тіркелгілерді тоқтатыңыз
+ title: "%{domain} доменіндегі блокты алып таста"
+ undo: Қайтару
+ undo: Домен блокын қайтып алу
+ email_domain_blocks:
+ add_new: Жаңасын қосу
+ created_msg: Қаратізімге email домені қосылды
+ delete: Өшіру
+ domain: Домен
+ title: E-mail қаратізімі
+ followers:
+ title: "%{acct} оқырмандары"
+ instances:
+ delivery_available: Жеткізу қол жетімді
+ known_accounts:
+ one: "%{count} таныс аккаунт"
+ other: "%{count} таныс аккаунт"
+ moderation:
+ all: Барлығы
+ limited: Лимит
+ title: Модерация
+ title: Федерация
+ total_blocked_by_us: Біз бұғаттағандар
+ total_followed_by_them: Олар жазылғандар
+ total_followed_by_us: Біз жазылғандар
+ total_reported: Келген шағымдар
+ total_storage: Медиа файлдар
+ invites:
+ deactivate_all: Барлығын сөндір
+ filter:
+ all: Барлығы
+ available: Қолжетімді
+ expired: Уақыты өткен
+ title: Фильтр
+ title: Шақырулар
+ relays:
+ add_new: Жаңа арна қосу
+ delete: Өшіру
+ disable: Сөндіру
+ disabled: Сөндірілді
+ enable: Қосу
+ enabled: Қосылды
+ inbox_url: Арна URL
+ pending: Жаңа арна құпталуын күту
+ save_and_enable: Сақта да қос
+ setup: Арна байланысын баптау
+ status: Статус
+ title: Арналар
+ report_notes:
+ created_msg: Шағым жазбасы сәтті құрылды!
+ destroyed_msg: Шағым жазбасы сәтті өшірілді!
+ reports:
+ account:
+ note: жазба
+ report: шағым
+ action_taken_by: Белсенділік жасаған
+ are_you_sure: Шынымен бе?
+ assign_to_self: Мені тағайындау
+ assigned: Модератор тағайындау
+ comment:
+ none: Ештеңе
+ created_at: Шағым тасталды
+ mark_as_resolved: Шешілді деп белгіле
+ mark_as_unresolved: Шешілмеді деп белгіле
+ notes:
+ create: Жазба қос
+ create_and_resolve: Жазба қосып шеш
+ create_and_unresolve: Жазба қосып қайта аш
+ delete: Өшіру
+ placeholder: Қандай әрекеттер жасалғанын немесе қандай да бір қатысты әрекеттерді сипаттаңыз ...
+ reopen: Шағымды қайта аш
+ report: 'Шағым #%{id}'
+ reported_account: Шағымдалған аккаунт
+ reported_by: Шағым тастаушы
+ resolved: Қайта шешілді
+ resolved_msg: Шағым қайтадан шешілді!
+ status: Статус
+ title: Шағымдар
+ unassign: Қайтып алу
+ unresolved: Шешілмеген
+ updated_at: Жаңартылды
+ settings:
+ activity_api_enabled:
+ desc_html: Соңғы аптада жазылған жазбалар, белсенді қолданушылар, жаңа тіркелімдер
+ title: Пайдаланушы әрекеті туралы жиынтық статистиканы жариялау
+ bootstrap_timeline_accounts:
+ desc_html: Бірнеше пайдаланушы атын үтірмен бөліңіз. Тек жергілікті және бұғатталмаған аккаунттар. Барлық жергілікті админдер бос болғанда.
+ title: Жаңа қолданушыларға жазылғандар
+ contact_information:
+ email: Бизнес e-mail
+ username: Қолданушымен байланыс
+ custom_css:
+ desc_html: Әр беттегі өзгерістерді CSS жаңаруымен қарау
+ title: Жеке CSS
+ hero:
+ desc_html: Бастапқы бетінде көрсетіледі. Кем дегенде 600x100px ұсынылады. Орнатылмаған кезде, сервердің нобайына оралады
+ title: Қаһарман суреті
+ mascot:
+ desc_html: Displayed on multiple pages. Кем дегенде 293×205px рекоменделеді. When not set, falls back to default mascot
+ title: Маскот суреті
+ peers_api_enabled:
+ desc_html: Домен names this server has encountered in the fediverse
+ title: Publish list of discovered серверлер
+ preview_sensitive_media:
+ desc_html: Link previews on other websites will display a thumbnail even if the media is marked as сезімтал
+ title: Show sensitive media in OpenGraph превью
+ profile_directory:
+ desc_html: Рұқсат users to be discoverable
+ title: Enable профиль directory
+ registrations:
+ closed_message:
+ desc_html: Displayed on frontpage when registrations are closed. You can use HTML тег
+ title: Closed registration мессадж
+ deletion:
+ desc_html: Allow anyone to delete their аккаунт
+ title: Open аккаунт deletion
+ min_invite_role:
+ disabled: Ешкім
+ title: Allow шақырулар by
+ open:
+ desc_html: Allow anyone to create an аккаунт
+ title: Ашық тіркелу
+ show_known_fediverse_at_about_page:
+ desc_html: When toggled, it will show toots from all the known fediverse on preview. Otherwise it will only show жергілікті toots.
+ title: Show known fediverse on timeline превью
+ show_staff_badge:
+ desc_html: Show a staff badge on a user бет
+ title: Көрсет staff badge
+ site_description:
+ desc_html: Introductory paragraph on the басты бет. Describe what makes this Mastodon server special and anything else important. You can use HTML tags, in particular
<a>
and
<em>
.
+ title: Сервер туралы
+ site_description_extended:
+ desc_html: A good place for your code of conduct, rules, guidelines and other things that set your server apart. You can use HTML тег
+ title: Custom extended ақпарат
+ site_short_description:
+ desc_html: Displayed in sidebar and meta tags. Describe what Mastodon is and what makes this server special in a single paragraph. If empty, defaults to сервер description.
+ title: Short сервер description
+ site_terms:
+ desc_html: You can write your own privacy policy, terms of service or other legalese. You can use HTML тег
+ title: Қолдану шарттары мен ережелер
+ site_title: Сервер аты
+ thumbnail:
+ desc_html: Used for previews via OpenGraph and API. 1200x630px рекоменделеді
+ title: Сервер суреті
+ timeline_preview:
+ desc_html: Display public timeline on лендинг пейдж
+ title: Таймлайн превьюі
+ title: Сайт баптаулары
+ statuses:
+ back_to_account: Аккаунт бетіне оралы
+ batch:
+ nsfw_off: Сезімтал емес ретінде белгіле
+ nsfw_on: Сезімтал ретінде белгіле
+ failed_to_execute: Орындалмады
+ media:
+ title: Медиa
+ no_media: Медиасыз
+ no_status_selected: Бірде-бір статус өзгерген жоқ, себебі ештеңе таңдалмады
+ title: Аккаунт статустары
+ with_media: Медиамен
+ subscriptions:
+ callback_url: Callbаck URL
diff --git a/config/locales/ko.yml b/config/locales/ko.yml
index 7ba1df97b..ecee8374c 100644
--- a/config/locales/ko.yml
+++ b/config/locales/ko.yml
@@ -7,7 +7,7 @@ ko:
administered_by: '관리자:'
api: API
apps: 모바일 앱
- closed_registrations: 현재 이 인스턴스에서는 신규 등록을 받고 있지 않습니다.
+ closed_registrations: 현재 이 서버에서는 신규 등록을 받고 있지 않습니다. 하지만! 다른 서버에 계정을 만들어 똑같은 네트워크에 접속 할 수 있습니다.
contact: 연락처
contact_missing: 미설정
contact_unavailable: N/A
@@ -27,7 +27,7 @@ ko:
generic_description: "%{domain} 은 네트워크에 있는 한 서버입니다"
hosted_on: "%{domain}에서 호스팅 되는 마스토돈"
learn_more: 자세히
- other_instances: 다른 인스턴스
+ other_instances: 서버 목록
privacy_policy: 개인정보 정책
source_code: 소스 코드
status_count_after:
@@ -70,6 +70,9 @@ ko:
moderator: 모더레이터
unfollow: 팔로우 해제
admin:
+ account_actions:
+ action: 조치 취하기
+ title: "%{acct} 계정에 조정 취하기"
account_moderation_notes:
create: 모더레이션 노트 작성하기
created_msg: 모더레이션 기록이 성공적으로 작성되었습니다!
@@ -89,23 +92,27 @@ ko:
confirm: 확인
confirmed: 확인됨
confirming: 확인 중
- demote: 모더레이터 강등
+ deleted: 삭제됨
+ demote: 강등
disable: 비활성화
disable_two_factor_authentication: 2단계 인증을 비활성화
disabled: 비활성화된
display_name: 이름
domain: 도메인
edit: 편집
- email: E-mail
+ email: 이메일
email_status: 이메일 상태
enable: 활성화
- enabled: 활성화된
+ enabled: 활성
feed_url: 피드 URL
followers: 팔로워 수
followers_url: 팔로워 URL
follows: 팔로잉 수
+ header: 헤더
inbox_url: 수신함 URL
+ invited_by: 초대자
ip: IP
+ joined: 가입
location:
all: 전체
local: 로컬
@@ -128,12 +135,13 @@ ko:
outbox_url: 발신함 URL
perform_full_suspension: 정지시키기
profile_url: 프로필 URL
- promote: 모더레이터로 승급
+ promote: 승급
protocol: 프로토콜
public: 전체 공개
push_subscription_expires: PuSH 구독 기간 만료
- redownload: 아바타 업데이트
+ redownload: 프로필 업데이트
remove_avatar: 아바타 지우기
+ remove_header: 헤더 삭제
resend_confirmation:
already_confirmed: 이 사용자는 이미 확인되었습니다
send: 다시 확인 이메일
@@ -152,7 +160,6 @@ ko:
shared_inbox_url: 공유된 inbox URL
show:
created_reports: 이 계정에서 제출된 신고
- report: 신고
targeted_reports: 이 계정에 대한 신고
silence: 침묵
silenced: 침묵 됨
@@ -165,12 +172,14 @@ ko:
undo_suspension: 정지 해제
unsubscribe: 구독 해제
username: 아이디
+ warn: 경고
web: 웹
action_logs:
actions:
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}를 차단했습니다"
@@ -247,7 +256,7 @@ ko:
week_users_active: 이번 주의 활성 사용자
week_users_new: 이번 주의 신규 유저
domain_blocks:
- add_new: 추가하기
+ add_new: 도메인 차단 추가하기
created_msg: 도메인 차단 처리를 완료했습니다
destroyed_msg: 도메인 차단이 해제되었습니다
domain: 도메인
@@ -266,11 +275,11 @@ ko:
reject_media_hint: 로컬에 저장된 미디어 파일을 삭제하고, 이후로도 다운로드를 거부합니다. 정지와는 관계 없습니다
reject_reports: 신고 거부
reject_reports_hint: 이 도메인으로부터의 모든 신고를 무시합니다. 정지와는 무관합니다
- severities:
- noop: 없음
+ rejecting_media: 미디어 거부
+ rejecting_reports: 신고 거부
+ severity:
silence: 침묵
suspend: 정지
- severity: 심각도
show:
affected_accounts:
one: 데이터베이스 중 1개의 계정에 영향을 끼칩니다
@@ -280,8 +289,7 @@ ko:
suspend: 이 도메인에 존재하는 모든 계정의 계정 정지를 해제
title: "%{domain}의 도메인 차단을 해제"
undo: 실행 취소
- title: 도메인 차단
- undo: 실행 취소
+ undo: 도메인 차단 취소
email_domain_blocks:
add_new: 새로 추가
created_msg: 이메일 도메인 차단 규칙을 생성했습니다
@@ -292,12 +300,24 @@ ko:
create: 차단 규칙 생성
title: 새 이메일 도메인 차단
title: Email 도메인 차단
+ followers:
+ back_to_account: 계정으로 돌아가기
+ title: "%{acct}의 팔로워"
instances:
- account_count: 알려진 계정의 수
- domain_name: 도메인 이름
- reset: 리셋
- search: 검색
- title: 알려진 인스턴스들
+ delivery_available: 전송 가능
+ known_accounts:
+ one: 알려진 계정 %{count}개
+ other: 알려진 계정 %{count}개
+ moderation:
+ all: 모두
+ limited: 제한됨
+ title: 모더레이션
+ title: 연합
+ total_blocked_by_us: 우리에게 차단 됨
+ total_followed_by_them: 우리를 팔로우
+ total_followed_by_us: 우리가 한 팔로우
+ total_reported: 이들에 대한 신고
+ total_storage: 미디어 첨부
invites:
deactivate_all: 전부 비활성화
filter:
@@ -330,7 +350,7 @@ ko:
report: 리포트
action_taken_by: 신고 처리자
are_you_sure: 정말로 실행하시겠습니까?
- assign_to_self: 나에게 할당 됨
+ assign_to_self: 나에게 할당하기
assigned: 할당 된 모더레이터
comment:
none: 없음
@@ -368,14 +388,14 @@ ko:
desc_html: 모든 페이지에 적용할 CSS
title: 커스텀 CSS
hero:
- desc_html: 프론트페이지에 표시 됩니다. 최소 600x100픽셀을 권장합니다. 만약 설정되지 않았다면, 인스턴스의 썸네일이 사용 됩니다
+ desc_html: 프론트페이지에 표시 됩니다. 최소 600x100픽셀을 권장합니다. 만약 설정되지 않았다면, 서버의 썸네일이 사용 됩니다
title: 히어로 이미지
mascot:
desc_html: 여러 페이지에서 보여집니다. 최소 293x205px을 추천합니다. 설정 되지 않은 경우, 기본 마스코트가 사용 됩니다
title: 마스코트 이미지
peers_api_enabled:
- desc_html: 이 인스턴스가 페디버스에서 만났던 도메인 네임들
- title: 발견 된 인스턴스들의 리스트 발행
+ desc_html: 이 서버가 페디버스에서 만났던 도메인 네임들
+ title: 발견 된 서버들의 리스트 발행
preview_sensitive_media:
desc_html: 민감한 미디어로 설정되었더라도 다른 웹사이트에서 링크 미리보기에 썸네일을 보여줍니다
title: 민감한 미디어를 오픈그래프 미리보기에 보여주기
@@ -403,20 +423,20 @@ ko:
title: 스태프 배지 표시
site_description:
desc_html: 프론트 페이지의 소개문에 사용 됩니다.이 마스토돈 서버의 특별한 점 등을 설명하세요. HTML 태그, 주로
<a>
,
<em>
같은 것을 사용 가능합니다.
- title: 사이트 설명
+ title: 서버 설명
site_description_extended:
desc_html: 규칙, 가이드라인 등을 작성하기 좋은 곳입니다. HTML 태그를 사용할 수 있습니다
title: 사이트 상세 설명
site_short_description:
- desc_html: 사이드바와 메타 태그에 나타납니다. 마스토돈이 무엇이고 이 서버의 특징은 무엇인지 한 문장으로 설명하세요. 비워두면 인스턴스 설명이 대신 사용됩니다.
- title: 짧은 인스턴스 설명
+ desc_html: 사이드바와 메타 태그에 나타납니다. 마스토돈이 무엇이고 이 서버의 특징은 무엇인지 한 문장으로 설명하세요. 비워두면 서버 설명이 대신 사용됩니다.
+ title: 짧은 서버 설명
site_terms:
desc_html: 당신은 독자적인 개인정보 취급 방침이나 이용약관, 그 외의 법적 근거를 작성할 수 있습니다. HTML태그를 사용할 수 있습니다
title: 커스텀 서비스 이용 약관
- site_title: 사이트 이름
+ site_title: 서버 이름
thumbnail:
desc_html: OpenGraph와 API의 미리보기로 사용 됩니다. 1200x630px을 권장합니다
- title: 인스턴스 썸네일
+ title: 서버 썸네일
timeline_preview:
desc_html: 랜딩 페이지에 공개 타임라인을 표시합니다
title: 타임라인 프리뷰
@@ -450,6 +470,12 @@ ko:
unhide: 디렉토리에 표시
visible: 보여짐
title: 관리
+ warning_presets:
+ add_new: 새로 추가
+ delete: 삭제
+ edit: 편집
+ edit_preset: 경고 틀 수정
+ title: 경고 틀 관리
admin_mailer:
new_report:
body: "%{reporter} 가 %{target} 를 신고했습니다"
@@ -471,7 +497,7 @@ ko:
warning: 이 데이터를 조심히 다뤄 주세요. 다른 사람들과 절대로 공유하지 마세요!
your_token: 액세스 토큰
auth:
- agreement_html: 이 등록으로
이용규약 과
약관에 동의하는 것으로 간주됩니다.
+ agreement_html: 이 등록으로 이 서버의
이용규약 과
약관에 동의하는 것으로 간주됩니다.
change_password: 패스워드
confirm_email: 확인 메일 승인
delete_account: 계정 삭제
@@ -525,19 +551,22 @@ ko:
description_html: 계정에 업로드된 모든 컨텐츠가 삭제되며, 계정은 비활성화 됩니다. 이것은 영구적으로 이루어지는 것이므로
되돌릴 수 없습니다. 사칭 행위를 방지하기 위해 같은 아이디로 다시 등록하는 것은 불가능합니다.
proceed: 계정 삭제
success_msg: 계정이 성공적으로 삭제되었습니다
- warning_html: 삭제가 보장되는 것은 이 인스턴스 상에서의 컨텐츠에 한합니다. 타 인스턴스 등, 외부에 멀리 공유된 컨텐츠는 흔적이 남아 삭제되지 않는 경우도 있습니다. 그리고 현재 접속이 불가능한 서버나, 업데이트를 받지 않게 된 서버에 대해서는 삭제가 반영되지 않을 수도 있습니다.
+ warning_html: 삭제가 보장되는 것은 이 서버 상에서의 컨텐츠에 한합니다. 타 서버 등, 외부에 멀리 공유된 컨텐츠는 흔적이 남아 삭제되지 않는 경우도 있습니다. 그리고 현재 접속이 불가능한 서버나, 업데이트를 받지 않게 된 서버에 대해서는 삭제가 반영되지 않을 수도 있습니다.
warning_title: 공유된 컨텐츠에 대해서
directories:
directory: 프로필 디렉토리
+ enabled: 당신은 디렉터리에 표시 되고 있습니다.
+ enabled_but_waiting: 디렉터리에 표시 되기 위해서는 수동으로 참여해야 합니다, 하지만 디렉터리에 표시 되기 위한 최소 팔로워(%{min_followers})수에 미치지 못했습니다.
explanation: 관심사에 대한 유저들을 발견합니다
explore_mastodon: "%{title} 탐사하기"
+ how_to_enable: 아직 디렉터리에 참여하지 않았습니다. 아래에서 참여할 수 있습니다. 바이오 텍스트에 해시태그를 사용해 특정 해시태그 디렉터리에 표시 될 수 있습니다!
people:
one: "%{count}명"
other: "%{count}명"
errors:
'403': 이 페이지를 표시할 권한이 없습니다.
'404': 당신이 찾으려는 페이지는 존재하지 않습니다.
- '410': 당신이 보려는 페이지는 더이상 존재하지 않습니다.
+ '410': 당신이 보려는 페이지는 더이상 여기에 존재하지 않습니다.
'422':
content: 보안 인증에 실패했습니다. 쿠키를 차단하고 있진 않습니까?
title: 보안 인증 실패
@@ -556,9 +585,15 @@ ko:
size: 크기
blocks: 차단
csv: CSV
+ domain_blocks: 도메인 차단
follows: 팔로우
+ lists: 리스트
mutes: 뮤트
storage: 미디어
+ featured_tags:
+ add_new: 추가
+ errors:
+ limit: 이미 추천 해시태그의 개수가 최대입니다
filters:
contexts:
home: 홈 타임라인
@@ -577,7 +612,7 @@ ko:
title: 필터 추가
followers:
domain: 도메인
- explanation_html: 프라이버시를 확보하고 싶은 경우, 누가 여러분을 팔로우 하고 있는지 파악해둘 필요가 있습니다.
프라이빗 포스팅은 여러분의 팔로워가 소속하는 모든 인스턴스로 배달됩니다. 팔로워가 소속된 인스턴스 관리자나 소프트웨어가 여러분의 프라이버시를 존중하고 있는지 잘 모를 경우, 그 팔로워를 삭제하는 것이 좋을 수도 있습니다.
+ explanation_html: 프라이버시를 확보하고 싶은 경우, 누가 여러분을 팔로우 하고 있는지 파악해둘 필요가 있습니다.
프라이빗 포스팅은 여러분의 팔로워가 소속하는 모든 서버로 배달됩니다. 팔로워가 소속된 서버 관리자나 소프트웨어가 여러분의 프라이버시를 존중하고 있는지 잘 모를 경우, 그 팔로워를 삭제하는 것이 좋을 수도 있습니다.
followers_count: 팔로워 수
lock_link: 비공개 계정
purge: 팔로워에서 삭제
@@ -599,10 +634,16 @@ ko:
one: 오류가 발생했습니다. 아래 오류를 확인해 주십시오
other: 오류가 발생했습니다. 아래 %{count}개 오류를 확인해 주십시오
imports:
- preface: 다른 인스턴스에서 내보내기 한 파일에서 팔로우 / 차단 정보를 이 인스턴스 계정으로 불러올 수 있습니다.
+ modes:
+ merge: 병합
+ merge_long: 기존 것을 그대로 둔 채 새로 추가
+ overwrite: 덮어쓰기
+ overwrite_long: 기존 것을 모두 지우고 새로 추가
+ preface: 다른 서버에서 내보내기 한 파일에서 팔로우 / 차단 정보를 이 계정으로 불러올 수 있습니다.
success: 파일이 정상적으로 업로드 되었으며, 현재 처리 중입니다
types:
blocking: 차단한 계정 목록
+ domain_blocking: 도메인 차단 목록
following: 팔로우 중인 계정 목록
muting: 뮤트 중인 계정 목록
upload: 업로드
@@ -624,7 +665,7 @@ ko:
one: 일회용
other: "%{count} 회"
max_uses_prompt: 제한 없음
- prompt: 이 인스턴스에 대한 초대 링크를 만들고 공유합니다
+ prompt: 이 서버에 대한 초대 링크를 만들고 공유합니다
table:
expires_at: 만료
uses: 사용됨
@@ -705,13 +746,25 @@ ko:
no_account_html: 계정이 없나요?
여기에서 가입 할 수 있습니다
proceed: 팔로우 하기
prompt: '팔로우 하려 하고 있습니다:'
+ reason_html: "
왜 이 과정이 필요하죠?%{instance}
는 당신이 가입한 서버가 아닐 것입니다, 당신의 홈 서버로 먼저 가야 합니다."
remote_interaction:
- proceed: 진행
- prompt: '이 게시물에 상호작용하려 하고 있습니다:'
+ favourite:
+ proceed: 즐겨찾기 진행
+ prompt: '이 툿을 즐겨찾기 하려고 합니다:'
+ reblog:
+ proceed: 부스트 진행
+ prompt: '이 툿을 부스트 하려 합니다:'
+ reply:
+ proceed: 답장 진행
+ prompt: '이 툿에 답장을 하려 합니다:'
remote_unfollow:
error: 에러
title: 타이틀
unfollowed: 언팔로우됨
+ scheduled_statuses:
+ over_daily_limit: 그 날짜에 대한 %{limit}개의 예약 툿 제한을 초과합니다
+ over_total_limit: 예약 툿 제한 %{limit}을 초과합니다
+ too_soon: 예약 날짜는 미래여야 합니다
sessions:
activity: 마지막 활동
browser: 브라우저
@@ -760,6 +813,7 @@ ko:
development: 개발
edit_profile: 프로필 편집
export: 데이터 내보내기
+ featured_tags: 추천 해시태그
followers: 신뢰 중인 인스턴스
import: 데이터 가져오기
migrate: 계정 이동
@@ -888,8 +942,8 @@ ko:
Originally adapted from the Discourse privacy policy.
title: "%{instance} 이용약관과 개인정보 취급 방침"
themes:
- contrast: 고대비
- default: 마스토돈
+ contrast: 마스토돈 (고대비)
+ default: 마스토돈 (어두움)
mastodon-light: 마스토돈 (밝음)
time:
formats:
@@ -916,6 +970,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: 아바타, 헤더를 업로드하고, 사람들에게 표시 될 이름을 바꾸는 것으로 당신의 프로필을 커스텀 할 수 있습니다. 사람들이 당신을 팔로우 하기 전에 리뷰를 거치게 하고 싶다면 계정을 잠그면 됩니다.
@@ -923,7 +993,7 @@ ko:
final_action: 포스팅 시작하기
final_step: '포스팅을 시작하세요! 팔로워가 없더라도 퍼블릭 메시지는 다른 사람들이 볼 수 있습니다, 예를 들면 로컬 타임라인이나 해시태그에서요. 사람들에게 자신을 소개하고 싶다면 #introductions 해시태그를 이용해보세요.'
full_handle: 당신의 풀 핸들
- full_handle_hint: 이것을 당신의 친구들에게 알려주면 다른 인스턴스에서 팔로우 하거나 메시지를 보낼 수 있습니다.
+ full_handle_hint: 이것을 당신의 친구들에게 알려주면 다른 서버에서 팔로우 하거나 메시지를 보낼 수 있습니다.
review_preferences_action: 설정 바꾸기
review_preferences_step: 당신의 설정을 확인하세요. 어떤 이메일로 알림을 받을 것인지, 기본적으로 어떤 프라이버시 설정을 사용할 것인지, 멀미가 없다면 GIF를 자동 재생하도록 설정할 수도 있습니다.
subject: 마스토돈에 오신 것을 환영합니다
diff --git a/config/locales/lt.yml b/config/locales/lt.yml
new file mode 100644
index 000000000..ad10c7067
--- /dev/null
+++ b/config/locales/lt.yml
@@ -0,0 +1,1027 @@
+---
+lt:
+ about:
+ about_hashtag_html: Čia visiems prieinamas įrankis
#%{hashtag}. Jūs galite juo naudotis bet kur, jeigu turite paskyra fedi-visatoje.
+ about_mastodon_html: Mastodon, tai socialinis tinklas pagrįstas atviro kodo programavimu, ir atvirais web protokolais. Visiškai nemokamas. Ši sistema decantrilizuota kaip jūsų elektroninis paštas.
+ about_this: Apie
+ administered_by: 'Administruoja:'
+ api: API
+ apps: Mobilioji Aplikacija
+ closed_registrations: Registracija šiuo metu uždaryta prie šito tinklo. Jūs galite rasti kitą būdą susikurti paskyrą ir gauti prieigą prie to paties tinklo.
+ contact: Kontaktai
+ contact_missing: Nenustatyta
+ contact_unavailable: N/A
+ documentation: Dokumentacija
+ extended_description_html: |
+
Taisyklės
+
Ilgas aprašymas dar nėra sudartyas
+ features:
+ humane_approach_body: Mokantis iš kitų socialinių tinklų, bei jų daromu klaidų, Mastodon siekia sukurti etiška dizainą, kuris kovotu su netinkamu socialinių tinklų naudojimu.
+ humane_approach_title: Humaniškesnis metodas
+ not_a_product_body: Mastodon nėra komercinis tinklas. Jokių reklamų, privačios informacijos rinkimo. Čia nėra vieno žmogaus, kuris už viską atsako.
+ not_a_product_title: Tu esi žmogus, o ne produktas
+ real_conversation_body: Su 500 simbolių limitu, ir galimybe pažymėti savo įkeliama informacija su įspėjamaisiais ženklais, galite išsireikšti kaip tik norite.
+ real_conversation_title: Sukurtas tikram bendravimui
+ within_reach_body: Mobiliosios aplikacijos skirtos iOS, Android, ir kitoms platformoms. Draugiškos API ekosistemos dėka, Jūs galite palaikyti pokalbi su draugais bet kur.
+ within_reach_title: Visada pasiekama
+ generic_description: "%{domain} yra vienas serveris tinkle"
+ hosted_on: Mastodon palaikomas naudojantis %{domain} talpinimu
+ learn_more: Daugiau
+ other_instances: Serverių sąrašas
+ privacy_policy: Privatumo Politika
+ source_code: Šaltinio kodas
+ status_count_after:
+ few: statusai
+ one: statusas
+ other: statusai
+ status_count_before: Autorius
+ terms: Naudojimo sąlygos
+ user_count_after:
+ few: vartotojai
+ one: vartotojas
+ other: vartotojai
+ user_count_before: Namai
+ what_is_mastodon: Kas tai, Mastodon?
+ accounts:
+ choices_html: "%{name} pasirinkimai:"
+ follow: Sekti
+ followers:
+ few: Sekėjai
+ one: Sekėjas
+ other: Sekėjai
+ following: Sekami
+ joined: Prisijungiai %{date}
+ last_active: paskutinį kartą aktyvus
+ link_verified_on: Nuorodos nuosavybė paskutinį kartą tikrinta %{date}
+ media: Medija
+ moved_html: "%{name} persikėlė į %{new_profile_link}:"
+ network_hidden: Ši informacija neprieinama
+ nothing_here: Čia nieko nėra!
+ people_followed_by: Žmonės, kuriuos %{name} seka
+ people_who_follow: Žmonės kurie seka %{name}
+ pin_errors:
+ following: Privalai sekti žmogų kurį nori pagerbti
+ posts:
+ few: Tootai
+ one: Tootas
+ other: Tootai
+ posts_tab_heading: Tootai
+ posts_with_replies: Tootai ir atsakymai
+ reserved_username: Vartotojo vardas rezervuotas
+ roles:
+ admin: Administratorius
+ bot: Bot'as
+ moderator: Moderatorius
+ unfollow: Nesekti
+ admin:
+ account_actions:
+ action: Veiksmas
+ title: Moderuoti %{acct}
+ account_moderation_notes:
+ create: Palikti žinutę
+ created_msg: Moderavimo žinutė sėkimngai sukurta!
+ delete: Ištrinti
+ destroyed_msg: Moderacijos žinutė sėkmingai ištrinta!
+ accounts:
+ are_you_sure: Ar esate įsitikinęs?
+ avatar: Profilio nuotrauka
+ by_domain: Domenas
+ change_email:
+ changed_msg: Paskyros el paštas sėkmingai pakeistas!
+ current_email: Dabartinis el paštas
+ label: Pakeisti el pašto adresą
+ new_email: Naujas el pašto adresas
+ submit: Pakeisti el pašto adresą
+ title: Pakeisti el pašto adresą vartotojui %{username}
+ confirm: Patvirtinti
+ confirmed: Patvirtinta
+ confirming: Tvirtinama
+ deleted: Ištrinti
+ demote: Pažeminti
+ disable: Išjungti
+ disable_two_factor_authentication: Išjungti 2 faktorių autentifikaciją
+ disabled: Išjungta
+ display_name: Matomas vardas
+ domain: Domenas
+ edit: Keisti
+ email: El paštas
+ email_status: El pašto statusas
+ enable: Įjungti
+ enabled: Įjungta
+ feed_url: Srauto URL
+ followers: Sekėjai
+ followers_url: Sekėjų URL
+ follows: Seka
+ header: Antraštė
+ inbox_url: Gautųjų URL
+ invited_by: Pakvietė
+ ip: IP
+ joined: Prisijungė
+ location:
+ all: Visi
+ local: Lokali
+ remote: Nuotolinis
+ title: Lokacija
+ login_status: Prisijungimo statusas
+ media_attachments: Prisegti medijos failai
+ memorialize: Paversti į memorija
+ moderation:
+ active: Aktyvus
+ all: Visi
+ silenced: Užtildytas
+ suspended: Užrakintas
+ title: Moderacija
+ moderation_notes: Medaracijos žinutės
+ most_recent_activity: Paskutinioji veikla
+ most_recent_ip: Paskutinis IP
+ no_limits_imposed: Be limitu
+ not_subscribed: Ne prenumeruota
+ outbox_url: Išsiustųjų URL
+ perform_full_suspension: Užrakinti
+ profile_url: Profilio URL
+ promote: Paaukštinti
+ protocol: Protokolas
+ public: Viešas
+ push_subscription_expires: PuSH prenumeramivas pasibaigė
+ redownload: Perkrauti profilį
+ remove_avatar: Panaikinti profilio nuotrauką
+ remove_header: Panaikinti antraštę
+ resend_confirmation:
+ already_confirmed: Šis vartotojas jau patvirtintas
+ send: Dar kartą išsiųsti patvirtinimo žinutę
+ success: Patvirtinimo laiškas sėkmingai išsiųstas!
+ reset: Iš naujo
+ reset_password: Atkurti slaptažodį
+ resubscribe: Per prenumeruoti
+ role: Leidimai
+ roles:
+ admin: Administratorius
+ moderator: Moderatorius
+ staff: Personalas
+ user: Vartotojas
+ salmon_url: Lašišos URL
+ search: Ieškoti
+ shared_inbox_url: Bendroji gautųjų URL
+ show:
+ created_reports: Parašyti raportai
+ targeted_reports: Reportuotas kitų
+ silence: Tyla
+ silenced: Užtildytas
+ statuses: Statusai
+ subscribe: Prenumeruoti
+ suspended: Užrakintas
+ title: Vartotojai
+ unconfirmed_email: Nepatvirtintas el pašto adresas
+ undo_silenced: Atšaukti užtildymą
+ undo_suspension: Atšaukti užrakinimą
+ unsubscribe: Nebeprenumeruoti
+ username: Slapyvardis
+ warn: Įspėti
+ web: Web
+ action_logs:
+ actions:
+ assigned_to_self_report: "%{name} paskyrė reportą %{target} saviems"
+ change_email_user: "%{name} pakeitė el pašto adresą vartotojui %{target}"
+ confirm_user: "%{name} patvirtino el pašto adresą vartotojui %{target}"
+ create_account_warning: "%{name} išsiuntė įspėjimą %{target}"
+ create_custom_emoji: "%{name} įkėlė naują jaustuką %{target}"
+ create_domain_block: "%{name} užblokavo domena %{target}"
+ create_email_domain_block: "%{name} įkėlė į juodajį sąrašą el pašto domena %{target}"
+ demote_user: "%{name} pažemino %{target}"
+ destroy_custom_emoji: "%{name} sunaikino jaustuką %{target}"
+ destroy_domain_block: "%{name} atrakino domeną %{target}"
+ destroy_email_domain_block: "%{name} pašalino iš juodojo sąrašo el pašto domeną %{target}"
+ destroy_status: "%{name} pašalino statusą %{target}"
+ disable_2fa_user: "%{name} išjungė 2 faktorių autentikavimo sistemos reikalavimus vartotojui %{target}"
+ disable_custom_emoji: "%{name} išjungė jaustuką %{target}"
+ disable_user: "%{name} išjungė prisijungimą vartotojui %{target}"
+ enable_custom_emoji: "%{name} įjungė jaustuką %{target}"
+ enable_user: "%{name} įjungė prisijungimą vartotojui %{target}"
+ memorialize_account: "%{name} pavertė vartotojo %{target} paskyrą į prisiminimų puslapį"
+ promote_user: "%{name} paaukštino vartotoją %{target}"
+ remove_avatar_user: "%{name} panaikino vartotojo %{target} profilio nuotrauką"
+ reopen_report: "%{name} atidarė skundą %{target}"
+ reset_password_user: "%{name} atstatyti slaptažodį vartotojui %{target}"
+ resolve_report: "%{name} išsprendė skundą %{target}"
+ silence_account: "%{name} pritildė vartotojo %{target} paskyrą"
+ suspend_account: "%{name} laikinai užblokavo vartotojo %{target} paskyrą"
+ unassigned_report: "%{name} nepaskirtas skundas %{target}"
+ unsilence_account: "%{name} atitildė vartotojo %{target} paskyrą"
+ unsuspend_account: "%{name} atblokavo vartotojo %{target} paskyrą"
+ update_custom_emoji: "%{name} atnaujino jaustuką %{target}"
+ update_status: "%{name} pakeitė statusą %{target}"
+ deleted_status: "(panaikintas statusas)"
+ title: Audito žurnalas
+ custom_emojis:
+ by_domain: Domenas
+ copied_msg: Sėkmingai sukurta lokali jaustuko kopija
+ copy: Kopijuoti
+ copy_failed_msg: Lokali jaustuko kopija negalėjo būti sukurta
+ created_msg: Jaustukas sukurtas sėkmingai!
+ delete: Ištrinti
+ destroyed_msg: Jaustukas sėkmingai sunaikintas!
+ disable: Išjungti
+ disabled_msg: Šis jaustukas sėkmingai išjungtas
+ emoji: Jaustukas
+ enable: Įjungti
+ enabled_msg: Šis jaustukas sėkmingai įjungtas
+ image_hint: PNG failo dydis iki 50KB
+ listed: Įtrauktas į sąrašą
+ new:
+ title: Pridėti naują jaustuką
+ overwrite: Perrašyti
+ shortcode: Trumpas-kodas
+ shortcode_hint: Bent du ženklai, tik raidiniai skaitmeniniai ženklai bei akcentai(_)
+ title: Asmeniniai jaustukai
+ unlisted: Neįtrauktas į sąrašą
+ update_failed_msg: Jaustukas negalėjo būti pakeistas
+ updated_msg: Jaustukas sėkmingai pakeistas!
+ upload: Įkelti
+ dashboard:
+ backlog: Neatlikti darbai
+ config: Konfiguracija
+ feature_deletions: Paskyrų šalinimas
+ feature_invites: Pakivetimo nuorodos
+ feature_profile_directory: Profilio direktorija
+ feature_registrations: Registracijos
+ feature_relay: Federacijos perjungėjas
+ features: Išskirtinumai
+ hidden_service: Federacija su paslėptomis paslaugomis
+ open_reports: atidaryti skundai
+ recent_users: Neseni vartotojai
+ search: Pilno teksto paieška
+ single_user_mode: Vieno vartotojo būsena
+ software: Programinė įranga
+ space: Naudojama atmintis
+ title: Pagrindinis puslapis
+ total_users: viso vartotoju
+ trends: Tendencijos
+ week_interactions: naudojimai šią savaitę
+ week_users_active: aktyvūs šią savaitę
+ week_users_new: vartotojai šią savaitę
+ domain_blocks:
+ add_new: Pridėti naują domeno bloką
+ created_msg: Domeno užblokavimas nagrinėjamas
+ destroyed_msg: Domeno blokas pašalintas
+ domain: Domenas
+ new:
+ create: Sukurti bloką
+ hint: Domeno blokavimas nesustabdys vartotojų paskyrų sukūrimo duomenų sistemoje, tačiau automatiškai pritaikys atitinkamus moderavimo metodus šioms paskyroms.
+ severity:
+ desc_html: |-
+
1Tyla2 padarys paskyros įkelimus nematomus visiems, kurie jų neseka.
+
3Draudimas4 panaikins visus paskyros įkėlimus ir profilio informaciją.Naudok
5Nieko6 jeigu tiesiog norite atmesti medijos failus.
+ noop: Nieko
+ silence: Tyla
+ suspend: Draudimas
+ title: Naujos domeno blokas
+ reject_media: Atmesti medijos failai
+ reject_media_hint: Panaikina lokaliai saugomus medijos failus bei atsisako jų parsisiuntimo ateityje. Neliečia užblokavimu
+ reject_reports: Atmesti skundai
+ reject_reports_hint: Ignoruoti visus skundus, kurie siunčiami iš šio domeno. Neliečia užblokavimu
+ rejecting_media: atmetami medijos failai
+ rejecting_reports: atmetami skundai
+ severity:
+ silence: užtildytas
+ suspend: uždraustas
+ show:
+ affected_accounts:
+ few: "%{count} vartotojai duomenų bazėje yra paveikti"
+ one: Vienas vartotojas duomenų bazėje paveiktas
+ other: "%{count} vartotojai duomenų bazėje yra paveikti"
+ retroactive:
+ silence: Atitildyti visus egzistuojančius vartotojus šiame domene
+ suspend: Atblokuotis visus egzistuojančius vartotojus šiame domene
+ title: Atkurti domeno blokavimą domenui %{domain}
+ undo: Atkurti
+ undo: Atkurti domeno bloką
+ email_domain_blocks:
+ add_new: Pridėti naują
+ created_msg: El pašto domenas sėkmingai pridėtas į juodąjį sąrašą
+ delete: Ištrinti
+ destroyed_msg: El pašto adresas sėkmingai pašalintas iš juodojo sąrašo
+ domain: Domenas
+ new:
+ create: Pridėto domeną
+ title: Naujas el pašto juodojo sąrašo įtraukimas
+ title: El pašto juodasis sąrašas
+ followers:
+ back_to_account: Atgal Į Paskyrą
+ title: "%{acct} Sekėjai"
+ instances:
+ delivery_available: Pristatymas galimas
+ known_accounts:
+ few: "%{count} žinomos paskyros"
+ one: "%{count} žinoma paskyra"
+ other: "%{count} žinomos paskyros"
+ moderation:
+ all: Visi
+ limited: Limituotas
+ title: Moderacija
+ title: Federacija
+ total_blocked_by_us: Mes užblokavome
+ total_followed_by_them: Jų sekami
+ total_followed_by_us: Mūsų sekami
+ total_reported: Skundai apie juos
+ total_storage: Medijos prisegti failai
+ invites:
+ deactivate_all: Deaktyvuoti visus
+ filter:
+ all: Visi
+ available: Prieinamas
+ expired: Pasibaigęs
+ title: Filtras
+ title: Pakvietimai
+ relays:
+ add_new: Pridėti naują pamainą
+ delete: Ištrinti
+ description_html: "
Federacijos perjungėjas tai tarpinis serveris, kuris apsikeičia didelios apimties informacija tarp kitų serverių.
Tai gali padėti mažesniems serveriams atrasti turinį iš fedi-visatos, kuris kitaip reikalautų vartotojų lokaliai sekti kitus žmones naudojantis kitus tolimus serverius."
+ disable: Išjungti
+ disabled: Išjungtas
+ enable: Įjungti
+ enable_hint: Kai įjungta, Jūsų serveris prenumeruos visas viešas žinutes iš šio tinklo, ir pradės siųsti šio serverio viešas žinutes į tinklą.
+ enabled: Įjungtas
+ inbox_url: Perdavimo URL
+ pending: Laukiama perdavimo patvirtinimo
+ save_and_enable: Išsaugoti ir įjungti
+ setup: Sukurti perdavimo ryšį
+ status: Statusas
+ title: Perdavimai
+ report_notes:
+ created_msg: Skundo žinutė sekmingai sukurta!
+ destroyed_msg: Skundo žinutė sekmingai ištrinta!
+ reports:
+ account:
+ note: raštelis
+ report: skundas
+ action_taken_by: Veiksmo ėmėsi
+ are_you_sure: Ar tu įsitikinęs?
+ assign_to_self: Paskirti man
+ assigned: Paskirtas moderatorius
+ comment:
+ none: Nėra
+ created_at: Reportuotas
+ mark_as_resolved: Pažymėti kaip išsprestą
+ mark_as_unresolved: Pažymėti kaip neišsprestą
+ notes:
+ create: Pridėti raštelį
+ create_and_resolve: Išspręsti su rašteliu
+ create_and_unresolve: Atidaryti su rašteliu
+ delete: Ištrinti
+ placeholder: Apibūdink, kokių veiksmų imtasi arba kitokie atnaujinimai..
+ reopen: Atidaryti skundą
+ report: 'Skundas #%{id}'
+ reported_account: Reportuota paskyra
+ reported_by: Skundas sukurtas
+ resolved: Išspręsta
+ resolved_msg: Skundas sėkmingai įšspręstas!
+ status: Statusas
+ title: Skundai
+ unassign: Nepriskirti
+ unresolved: Neišspręsti
+ updated_at: Atnaujinti
+ settings:
+ activity_api_enabled:
+ desc_html: Skaičiai lokaliai įkeltų statusų, aktyvių vartotojų ir naujų registracijų, kas savaitiniuose atnaujinimuose
+ title: Paskelbti agreguotą statistiką apie vartotojo veiklą
+ bootstrap_timeline_accounts:
+ desc_html: Atskirti vartotojų vardus naudojant kablelį (,). Tik lokalios ir neužblokuotos paskyros veiks. Pradinis kai tuščia, visi lokalūs administratoriai.
+ title: Numatyti sekimai naujiems vartotojams
+ contact_information:
+ email: Verslo el paštas
+ username: Kontaktinis slapyvardis
+ custom_css:
+ desc_html: Pakeisk išvaizdą su CSS užkraunamu kiekviename puslapyje
+ title: Asmeninis CSS
+ hero:
+ desc_html: Rodomas pagrindiniame puslapyje. Bent 600x100px rekomenduojama. Kai nenustatyta, renkamasi numatytą serverio nuotrauką
+ title: Herojaus nuotrauka
+ mascot:
+ desc_html: Rodoma keleta puslapių. Bent 293×205px rekomenduoja. Kai nenustatyą, renkamasi numatytą varianta
+ title: Talismano nuotrauka
+ peers_api_enabled:
+ desc_html: Domeno vardai, kuriuos šis serveris sutiko fedi-visatoje
+ title: Paskelbti sąrašą atrastų serveriu
+ preview_sensitive_media:
+ desc_html: Nuorodų peržiūros kituose tinklalapiuose bus rodomos su maža nuotrauka, net jeigu failas parinktas kaip "jautraus turinio"
+ title: Rodyti jautrią informaciją OpenGraph peržiūrose
+ profile_directory:
+ desc_html: Leisti vartotojams būti atrastiems
+ title: Įjungti profilio direktorija
+ registrations:
+ closed_message:
+ desc_html: Rodoma pagrindiniame puslapyje, kuomet registracijos uždarytos. Jūs galite naudoti HTML
+ title: Uždarytos registracijos žinutė
+ deletion:
+ desc_html: Leisti visiems ištrinti savo paskyrą
+ title: Atidaryti paskyros trynimą
+ min_invite_role:
+ disabled: Nei vienas
+ title: Leisti pakvietimus
+ open:
+ desc_html: Leisti bet kam susikurti paskyrą
+ title: Atidaryta registracija
+ show_known_fediverse_at_about_page:
+ desc_html: Kai įjungta, rodys įrašus iš visos žinomos fedi-visatos. Kitokiu atvėju, rodys tik lokalius įrašus.
+ title: Rodyti žinoma fedi-visatos laiko juosta peržiūroje
+ show_staff_badge:
+ desc_html: Rodyti personalo ženklelį vartotojo puslapyje
+ title: Rodyti personalo ženklelį
+ site_description:
+ desc_html: Introdukcinis paragrafas pagrindiniame puslapyje. Apibūdink, kas padaro šį Mastodon serverį išskirtiniu ir visa kita, kas svarbu. Nebijok naudoti HTML žymes, pavyzdžiui
< a >
bei
<em>
.
+ title: Serverio apibūdinimas
+ site_description_extended:
+ desc_html: Gera vieta Jūsų elgesio kodeksui, taisyklėms, nuorodms ir kitokiai informacijai, kuri yra išskirtinė Jūsų serveriui. Galite naudoti HTML žymes
+ title: Išsamesnė išskirtine informacija
+ site_short_description:
+ desc_html: Rodoma šoniniame meniu ir meta žymėse. Apibūdink kas yra Mastodon, ir kas daro šį serverį išskirtiniu, vienu paragrafu. Jeigu tuščias, naudojamas numatytasis tekstas.
+ title: Trumpas serverio apibūdinimas
+ site_terms:
+ desc_html: Jūs galite parašyti savo pačio privatumo politika, naudojimo sąlygas ar kita informacija. Galite naudoti HTML žymes
+ title: Išskirtinės naudojimosi taisyklės
+ site_title: Serverio pavadinimas
+ thumbnail:
+ desc_html: Naudojama OpenGraph peržiūroms ir API. Rekomenduojama 1200x630px
+ title: Serverio miniatūra
+ timeline_preview:
+ desc_html: Rodyti viešą laiko juostą apsilankymo puslapyje
+ title: Laiko juostos peržiūra
+ title: Tinklalapio nustatymai
+ statuses:
+ back_to_account: Atgal į paskyros puslapį
+ batch:
+ delete: Ištrinti
+ nsfw_off: Pažymėti kaip ne jautrią informaciją
+ nsfw_on: Pažymėti kaip jautrią informaciją
+ failed_to_execute: Nesėkmingas veiksmas
+ media:
+ title: Medija
+ no_media: Nėra medijos
+ no_status_selected: Jokie statusai nebuvo pakeisti, nes niekas nepasirinkta
+ title: Paskyros statusai
+ with_media: Su medija
+ subscriptions:
+ callback_url: Atgalinė URL
+ confirmed: Patvirtinta
+ expires_in: Pasibaigia
+ last_delivery: Paskutinis pristatymas
+ title: WebSub protokolas
+ topic: Tema
+ tags:
+ accounts: Paskyros
+ hidden: Paslėpti
+ hide: Paslėpti iš direktorijos
+ name: Saitažodis(#)
+ title: Saitažodžiai(#)
+ unhide: Rodyti direktorijoje
+ visible: Matomas
+ title: Administracija
+ warning_presets:
+ add_new: Pridėti naują
+ delete: Ištrinti
+ edit: Keisti
+ edit_preset: Keisti įspėjimo nustatymus
+ title: Valdyti įspėjimo nustatymus
+ admin_mailer:
+ new_report:
+ body: "%{reporter} parašė skundą apie %{target}"
+ body_remote: Kažkas iš %{domain} parašė skundą apie %{target}
+ subject: Naujas skundas %{instance} (#%{id})
+ application_mailer:
+ notification_preferences: Keisti el pašto parinktis
+ salutation: "%{name},"
+ settings: 'Keisti el pašto parinktis: %{link}'
+ view: 'Peržiūra:'
+ view_profile: Peržiurėti profilį
+ view_status: Peržiūrėti statusą
+ applications:
+ created: Aplikacija sėkmingai sukurta
+ destroyed: Aplikacija sėkmingai ištrinta
+ invalid_url: Gauta URL nuoroda netinkama
+ regenerate_token: Regeneruoti prieigos žetoną
+ token_regenerated: Prieigos žetonas sėkmingai sugeneruotas
+ warning: Būkite atsargūs su šia informacija. Niekada jos nesidalinkite!
+ your_token: Jūsų prieigos žetonas
+ auth:
+ agreement_html: Paspaudus "Sign up" Jūs sutinkate sekti
serverio taisykles bei
naudojimo sąlygas.
+ change_password: Slaptažodis
+ confirm_email: Patvirtinti el paštą
+ delete_account: Ištrinti paskyrą
+ delete_account_html: Jeigu norite ištrinti savo paskyrą, galite eiti
čia. Jūsų prašys patvirtinti pasirinkimą.
+ didnt_get_confirmation: Negavote patvirtinimo instrukcijų?
+ forgot_password: Pamiršote slaptažodį?
+ invalid_reset_password_token: Slaptažodžio atkūrimo žetonas netinkamas arba jo galiojimo laikas pasibaigęs. Prašykite naujo žetono.
+ login: Prisijungti
+ logout: Atsijungti
+ migrate_account: Prisijungti prie kitos paskyros
+ migrate_account_html: Jeigu norite nukreipti šią paskyrą į kita, galite tai
konfiguruoti čia.
+ or: arba
+ or_log_in_with: Arba prisijungti su
+ providers:
+ cas: CAS
+ saml: SAML
+ register: Užsiregistruoti
+ register_elsewhere: Užsiregistruoti kitame serveryje
+ resend_confirmation: Išsiųsti dar kartą patvirtinimo instrukcijas
+ reset_password: Atstatyti slaptažodį
+ security: Apsauga
+ set_new_password: Nustatyti naują slaptažodį
+ authorize_follow:
+ already_following: Jūs jau sekate šią paskyrą
+ error: Dėja, aptikta klaida ieškant tolimosios paskyros
+ follow: Sekti
+ follow_request: 'Jūs išsiuntėte sekimo prašymą:'
+ following: 'Puiku! Jūs pradėjote sekti:'
+ post_follow:
+ close: Arba, Jūs galite uždaryti šį langą.
+ return: Rodyti vartotojo paskyrą
+ web: Eiti į
+ title: Sekti %{acct}
+ datetime:
+ distance_in_words:
+ about_x_hours: "%{count} val"
+ about_x_months: "%{count}mėn"
+ about_x_years: "%{count}met"
+ almost_x_years: "%{count}met"
+ half_a_minute: Ką tik
+ less_than_x_minutes: "%{count}min"
+ less_than_x_seconds: Ką tik
+ over_x_years: "%{count}met"
+ x_days: "%{count}dien"
+ x_minutes: "%{count}min"
+ x_months: "%{count}mėn"
+ x_seconds: "%{count}sek"
+ deletes:
+ bad_password_msg: Geras bandymas, programišiau! Neteisingas slaptažodis
+ confirm_password: Kad patvirtintumėte savo tapatybę, įveskite dabartini slaptažodį
+ description_html: Tai
be sugrąžinimo, visam laikui panaikins visa turini iš Jūsų paskyros ir deaktyvuos ją. Jūsų vartotojo vardas paliks rezervuotas, kad išvengtumėme tapatybės pavagimo ateityje.
+ proceed: Ištrinti paskyrą
+ success_msg: Jūsų paskyra sėkmingai ištrinta
+ warning_html: Tiktai panaikinimas turinio iš šio serverio garantuotas. Turinys, kuris buvo viešai prieinamas ir dalinamas kituose serveriuose paliks pėdsakus. Serveriai, kurie neseka jūsų, kurie nėra tinkle, nepakeis savo duomenų sistemos.
+ warning_title: Platinamo turinio prieinamumas
+ directories:
+ directory: Profilio direktorija
+ enabled: Jūs esate rodomas šioje direktorijoje.
+ enabled_but_waiting: Jūs pasirinkote būti įtrauktas į direktorija, bet jūs neturite minimalaus sekėjų skaičiaus (%{min_followers}), kad būtumėte rodomas.
+ explanation: Raskite vartotojus, remiantis tuo, kuo jie domisi
+ explore_mastodon: Naršyti %{title}
+ how_to_enable: Jūs nesate prisijungęs prie šios direktorijos. Galite prisijungti žemiau. Naudokite saitažodžius savo biografiniame tekste, kad būtumėte rastas naudojantis specifinius saitažodžius!
+ people:
+ few: "%{count} žmonės"
+ one: "%{count} žmogus"
+ other: "%{count} žmonės"
+ errors:
+ '403': Jūs neturie prieigos matyti šiam puslapiui.
+ '404': Puslapis nerastas.
+ '410': Puslapis neegzistuoja.
+ '422':
+ content: Apsaugos patvirtinmas klaidingas. Ar jūs blokuojate sausainius?
+ title: Apsaugos patvirtinimas nepavyko
+ '429': Stabdomas
+ '500':
+ content: Atsiprašome, tačiau mūsų pusėje įvyko klaida.
+ title: Netinkamas puslapis
+ noscript_html: Kad naudotumėtės Mastodon web aplikacija, prašome įsijungti JavaScript. Alternatyviai, pabandykite viena iš
vietinių aplikacijų Mastodon savo platformai.
+ exports:
+ archive_takeout:
+ date: Data
+ download: Parsisiųsti archyvą
+ hint_html: Jūs galite prašyti savo
įrašų bei medijos archyvo. Eksportuota informacija bus ActivityPub formatu, skaitoma suderintų programų. Galite prašyti archyvo, kas 7 dienas.
+ in_progress: Sudaromas archyvas...
+ request: Prašyti savo archyvo
+ size: Dydis
+ blocks: Jūs blokuojate
+ csv: CSV
+ domain_blocks: Domeno blokai
+ follows: Jūs sekate
+ lists: Sąrašai
+ mutes: Jūs tildote
+ storage: Medijos sandėlis
+ featured_tags:
+ add_new: Pridėti naują
+ errors:
+ limit: Jūs jau naudojate maksimalų galimą saitažodžių(#) kiekį
+ filters:
+ contexts:
+ home: Namų laiko juosta
+ notifications: Priminimai
+ public: Viešos laiko juostos
+ thread: Pokalbiai
+ edit:
+ title: Keisti filtrą
+ errors:
+ invalid_context: Jokio arba netinkamas pateiktas kontekstas
+ invalid_irreversible: Negrąžinamas filtras veikia tik namų ir priminimų kontekste
+ index:
+ delete: Ištrinti
+ title: Filtrai
+ new:
+ title: Pridėti naują filtrą
+ followers:
+ domain: Domenas
+ explanation_html: Jeigu norite garantuoti savo statusų privatumą, turite žinoti, kas jus seka.
Jūsų privatūs statusai yra pristatyti visiems serveriams, kur jūs turite sekėju. Galbūt jūs norite juos peržiūrėti ir panaikinti sekėjus, kuriais nepasitikite.
+ followers_count: Sekėjų skaičius
+ lock_link: Užrakinti savo paskyrą
+ purge: Panaikint iš sekėju
+ success:
+ few: Švelnaus sekėjų blokavimo procedūroje iš %{count} domenų...
+ one: Švelnaus sekėjų blokavimo procedūroje iš vieno domeno...
+ other: Švelnaus sekėjų blokavimo procedūroje iš %{count} domenų...
+ true_privacy_html: Prašau prisiminti, kad
tikras privatumas gali būti pasiekamas tik su end-to-end užsifravimu.
+ unlocked_warning_html: Visi, kurie nori matyti Jūsų privatų statusą, gali jus sekti. %{lock_link} kad galėtumėte peržiurėti ir pašalinti sekėjus.
+ unlocked_warning_title: Jūsų paskyra neužrakinta
+ footer:
+ developers: Programuotojai
+ more: Daugiau…
+ resources: Resursai
+ generic:
+ changes_saved_msg: Pakeitimai sėkmingai išsaugoti!
+ copy: Kopijuoti
+ save_changes: Išsaugoti pakeitimus
+ validation_errors:
+ few: Kažkas negerai! Prašau patikrinti %{count} klaidas žemiau
+ one: Kažkas negerai! Peržiūrėk klaidas žemiau
+ other: Kažkas negerai! Prašau patikrinti %{count} klaidas žemiau
+ imports:
+ modes:
+ merge: Sulieti
+ merge_long: Išsaugoti esančius įrašus ir pridėti naujus
+ overwrite: Perrašyti
+ overwrite_long: Pakeisti senus įrašus naujais
+ preface: Jūs galite importuoti informaciją iš kito serverio, tokią kaip sąrašą žmonių kuriuos sekate.
+ success: Jūsų informacija sėkmingai įkelta ir bus apdorota kaip įmanoma greičiau
+ types:
+ blocking: Blokuojamų sąrašas
+ domain_blocking: Domeno blokavimo sąrašas
+ following: Sekėju sąrašas
+ muting: Tildomų sąrašas
+ upload: Įkelti
+ in_memoriam_html: Atminimui.
+ invites:
+ delete: Deaktyvuoti
+ expired: Pasibaigęs
+ expires_in:
+ '1800': 30 minučių
+ '21600': 6 valandų
+ '3600': 1 valandos
+ '43200': 12 valandų
+ '604800': 1 savaitės
+ '86400': 1 dienos
+ expires_in_prompt: Niekada
+ generate: Generuoti
+ invited_by: 'Jus pakvietė:'
+ max_uses:
+ few: "%{count} naudojimai"
+ one: 1 naudojimas
+ other: "%{count} naudojimai"
+ max_uses_prompt: Be limito
+ prompt: Generuoti ir dalintis įrašais su kitais, kad sukurti prieigą prie serverio
+ table:
+ expires_at: Pasibaigia
+ uses: Naudojimai
+ title: Pakviesti žmones
+ lists:
+ errors:
+ limit: Jūs pasieketė maksimalų sąrašų skaičių
+ media_attachments:
+ validations:
+ images_and_video: Negalima pridėti video prie statuso, kuris jau turi nuotrauką
+ too_many: Negalima pridėti daugiau nei 4 failų
+ migrations:
+ acct: slapyvardis@domenas naujam vartotojui
+ currently_redirecting: 'Jūsų profilis nustatytas nukreipimui į:'
+ proceed: Išsaugoti
+ updated_msg: Jūsų paskyros migracijos nustatymai sėkmingai pakeisti!
+ moderation:
+ title: Moderacija
+ notification_mailer:
+ digest:
+ action: Peržiurėti visus pranešimus
+ body: Čia yra trumpa santrauka žinutės, kurią jūs praleidote nuo jūsų paskutinio apsilankymo %{since}
+ mention: "%{name} paminėjo jus:"
+ new_followers_summary:
+ few: Beje, jūs gavote %{count} naujų sekėjų, nuo jūsų paskutinio apsilankymo! Nuostabu!
+ one: Beje, jūs gavote naują sekėją, kol buvote atsijungęs! Yay!
+ other: Beje, jūs gavote %{count} naujų sekėjų, nuo jūsų paskutinio apsilankymo! Nuostabu!
+ subject:
+ few: "%{count} nauji pranešimai, nuo paskutinio apsilankymo\U0001F418"
+ one: "1 naujas pranešimas nuo paskutinio apsilankymo \U0001F418"
+ other: "%{count} nauji pranešimai, nuo paskutinio apsilankymo\U0001F418"
+ title: Kol jūsų nebuvo...
+ favourite:
+ body: 'Jūsų statusą pamėgo %{name}:'
+ subject: "%{name} pamėgo Jūsų statusą"
+ title: Naujas mėgstamas
+ follow:
+ body: "%{name} pradėjo jus sekti!"
+ subject: "%{name} pradėjo jus sekti"
+ title: Naujas sekėjas
+ follow_request:
+ action: Tvarkyti prašymus sekti
+ body: "%{name} nori tapti Jūsų sekėju"
+ subject: 'Laukiantis sprendimo sekėjas: %{name}'
+ title: Naujas prašymas sekti
+ mention:
+ action: Atsakyti
+ body: 'Jus paminėjo %{name} pranešime:'
+ subject: Jus paminėjo %{name}
+ title: Naujas paminėjimas
+ reblog:
+ body: 'Jūsų statusą pakėlė %{name}:'
+ subject: "%{name} pakėlė Jūsų statusą"
+ title: Naujas pakėlimas
+ number:
+ human:
+ decimal_units:
+ format: "%n%u"
+ units:
+ billion: B
+ million: M
+ quadrillion: Q
+ thousand: K
+ trillion: T
+ pagination:
+ newer: Naujesnis
+ next: Kitas
+ older: Senesnis
+ prev: Ankstesnis
+ truncate: "…"
+ preferences:
+ languages: Kalbos
+ other: Kita
+ publishing: Skelbiama
+ web: Tinklas
+ remote_follow:
+ acct: Įveskite Jūsų slapyvardį@domenas kurį norite naudoti
+ missing_resource: Jūsų paskyros nukreipimo URL nerasta
+ no_account_html: Neturite paskyros? Jūs galite
užsiregistruoti čia
+ proceed: Sekti
+ prompt: 'Jūs seksite:'
+ reason_html: "
Kodėl šis žingsnis svarbus?%{instance}
gali būti serveris, kuriame jūs nesate užsiregistravęs, todėl mes turime jus nukreipti į Jūsų namų serveri."
+ remote_interaction:
+ favourite:
+ proceed: Pamėgti
+ prompt: 'Jūs norite pamėgti šį toot''ą:'
+ reblog:
+ proceed: Pakelti
+ prompt: 'Jūs norite pakelti šį toot''ą:'
+ reply:
+ proceed: Atsakyti
+ prompt: 'Jūs norite atsakyti šiam toot''ui:'
+ remote_unfollow:
+ error: Klaida
+ title: Pavadinimas
+ unfollowed: Nebesekama
+ scheduled_statuses:
+ over_daily_limit: Jūs pasieketė limitą (%{limit}) galimų toot'ų per dieną
+ over_total_limit: Jūs pasieketė %{limit} limitą galimų toot'ų
+ too_soon: Planuota data privalo būti ateityje
+ sessions:
+ activity: Paskutinė veikla
+ browser: Naršyklė
+ browsers:
+ alipay: Alipay
+ blackberry: Blackberry
+ chrome: Chrome
+ edge: Microsoft Edge
+ electron: Electron
+ firefox: Firefox
+ generic: Nežinoma naršyklė
+ ie: Internet Explorer
+ micro_messenger: MicroMessenger
+ nokia: Nokia S40 Ovi Browser
+ opera: Opera
+ otter: Otter
+ phantom_js: PhantomJS
+ qq: QQ Browser
+ safari: Safari
+ uc_browser: UCBrowser
+ weibo: Weibo
+ current_session: Dabartinė sesija
+ description: "%{browser} ant %{platform}"
+ explanation: Čia rodomos web naršyklės prijungtos prie Jūsų Mastodon paskyros.
+ ip: IP
+ platforms:
+ adobe_air: Adobe Air
+ android: Android
+ blackberry: Blackberry
+ chrome_os: ChromeOS
+ firefox_os: Firefox OS
+ ios: iOS
+ linux: Linux
+ mac: Mac
+ other: nežinoma platforma
+ windows: Windows
+ windows_mobile: Windows Mobile
+ windows_phone: Windows Phone
+ revoke: Atšaukti
+ revoke_success: Sesija sėkmingai atšaukta
+ title: Sesijos
+ settings:
+ authorized_apps: Autorizuotos aplikacijos
+ back: Atgal į Mastodon
+ delete: Paskyros trynimas
+ development: Plėtojimas
+ edit_profile: Keisti profilį
+ export: Informacijos eksportas
+ featured_tags: Rodomi saitažodžiai(#)
+ followers: Autorizuoti sekėjai
+ import: Importuoti
+ migrate: Paskyros migracija
+ notifications: Pranešimai
+ preferences: Preferencijos
+ settings: Nustatymai
+ two_factor_authentication: Dviejų veiksnių autentikacija
+ your_apps: Jūsų aplikacijos
+ statuses:
+ attached:
+ description: 'Pridėta: %{attached}'
+ image:
+ few: "%{count} nuotraukos"
+ one: "%{count} nuotrauka"
+ other: "%{count} nuotraukos"
+ video:
+ few: "%{count} vaizdo įrašai"
+ one: "%{count} video"
+ other: "%{count} vaizdo įrašai"
+ boosted_from_html: Pakelta iš %{acct_link}
+ content_warning: 'Turinio įspėjimas: %{warning}'
+ disallowed_hashtags:
+ few: 'rasti neleistini saitąžodžiai: %{tags}'
+ one: 'rastas neleistinas saitažodis : %{tags}'
+ other: 'rasti neleistini saitąžodžiai: %{tags}'
+ language_detection: Automatiškai nustatyti kalbą
+ open_in_web: Atidaryti naudojan Web
+ over_character_limit: pasiektas %{max} simbolių limitas
+ pin_errors:
+ limit: Jūs jau prisegėte maksimalų toot'ų skaičų
+ ownership: Kitų vartotojų toot'ai negali būti prisegti
+ private: Ne vieši toot'ai negali būti prisegti
+ reblog: Pakeltos žinutės negali būti prisegtos
+ show_more: Daugiau
+ sign_in_to_participate: Prisijunkite jeigu norite dalyvauti pokalbyje
+ title: '%{name}: "%{quote}"'
+ visibilities:
+ private: Tik sekėjams
+ private_long: Rodyti tik sekėjams
+ public: Viešas
+ public_long: Matyti gali visi
+ unlisted: Neįtrauktas į sąrašus
+ unlisted_long: Matyti gali visi, tačiau nėra įtraukta į viešas laiko juostas
+ stream_entries:
+ pinned: Prisegtas toot'as
+ reblogged: pakeltas
+ sensitive_content: Jautrus turinys
+ terms:
+ body_html: |
+
Privatumo politika
+
Kokia informacija yra renkama?
+
+ - Paprasa paskyros informacija: Jeigu Jūs užsiregistruojate šiame serveryje, Jūsų gali paklausti, kad įrašytumėte slapyvardį, el pašto adresą ir paskyros slaptąžodį. Jūs irgi galite įrašyti papildomą profilio informaciją, tokią kaip rodomas vardas ir biografiją bei įkelti profilio nuotrauką ir antraštės nuotrauką. Slapyvardis , rodomas vardas, biografija, profilio nuotrauka ir antraštės nuotrauka visada viešai prieinama informacija.
+ - Įrašai, sekami ir kita vieša informacija: Sąrašas žmonių, kuriuos Jūs sekate yra matomas viešai, taip pat kaip ir Jūsų sekėjams. Kai Jūs išsiunčiate žinutę, data ir laikas yra išsaugomi bei aplikacija iš kurios jūs išsiuntėte žinutę. Žinutėse gali būti prisegtų medijos failų kaip vaizdo įrašai bei nuotraukos. Viešos ir neįtrauktos į sąrašus žinutės yra viešai prieinamos. Kai nusprendžiate rodyti pranešimą ant savo profilio, tai irgi yra viešai prieinama informacija. Jūsų pranešimai yra pristatomi Jūsų sekėjams, kai kuriais atvėjais tai gali reikšti, kad šie pranešimai yra pristatomi į kitus serverius ir saugomi ten. Kai Jūs ištrinate įrašus, šie įrašai ištrinami ir Jūsų sekėjams. Veiksmas pamėgti kitus įrašus irgi yra viešas.
+
- Tiesioginiai ir tik sekėjams įrašai: Visi įrašai yra saugomi ir apdorojami serveryje. Tik sekėjams įrašai yra pristatomi Jūsų sekėjams ir vartotojams, kurie yra paminėti įrašuose, ir tiesioginiai įrašai pristatomi tik vartotojams, kurie yra paminėti įraše. Kai kuriais atvėjais tai gali reikšti, kad šie įrašai yra pristatomi į kitą serverį ir įrašų kopijos saugomos ten. Mes stengiames riboti prieigą prie šių pranešimų tiktai autorizuotiems gavėjams, tačiau kiti serveriai to gali nedaryti. Todėl yra svarbu peržiurėti serverius, kuriems Jūsų sekėjai priklauso. Jūs galite įjungti būseną nustatymuose, kad galėtumetė priimti arba atmesti naujas sekimo užklausas. Prašome nepamiršti, kad serverio operatoriai ir kiti serveriai, kurie gauna šias žinutes, gali jas peržiurėti bei, kad gavėjai gali padaryti foto kopija, tektso kopija ar kitaip pasidalinti Jūsų žinutėmis. Nesidalinkite jokia jautria ar pavojinga informacija naudojantis Mastodon.
+ - IP adresai ir kiti metaduomenys: Kai prisijungiate, mes įrašome IP adresą iš kurio jūs prisijungėte, ir naudojamos naršyklės pavadinimą. Visos prisijungimo sesijos yra prieinamos Jūsų apžvalgai ir atšaukimams nustatymuose. Paskutiniai IP adresai yra saugomi iki 12-kos mėnesių. Mes taipogi galime pasilikti serverio registrą, kuriuose yra saugoma IP adresai iš visų bandymu prisijungti prie serverio prašant informacijos.
+
+
+
+
+
Kam mes naudojame Jūsų informaciją?
+
Visa surinkta informacija apie jus, gali būti panaudota šiems tikslams:
+
+ - Suteikti pagrindį Mastodon funkcialumą. Jūs galite sąveikauti su kitų vartotojų turiniu ir kelti sąvajį, kuomet esate prisijungęs. Pavyzdžiui, galite sekti kitus žmones, peržiūrėti jų sujungtus įrašus savo pačio personalizuotoje laiko juostoje.
+ - Padėti bendruomenės moderavimui, pavyzdžiui, lyginant Jūsų IP adresą, su kitu žinomu IP adresu, kad nustatyti bandymus vengti užblokavimo.
+ - Jūsų el pašto adresas gali būti naudojamas išsiųsti informacija jums, priminimus apie kitų vartotojų interakciją su jūsų paskyra, pavyzdžiui, kai jie jums siunčia žinutes, ir atsakyti į užklausas ir/arba kitais klausimais.
+
+
+
+
+
Kaip mes saugome Jūsų informacija?
+
+
Mes implementavome saugumo priemones, tam, kad apsaugotume Jūsų privačią informaciją. Tarp šių dalykų, Jūsų naršyklės sesija, taip pat ir eismas tarp Jūsų aplikacijos ir API yra apsaugoti SSL, ir Jūsų slaptažodis yra užsifruotas sudėtingu algoritmu. Jūs galite įjungti dviejų veiksnių autentikaciją savo paskyrai, taip apsaugodami ją dar daugiau.
+
+
+
+
Kokia yra mūsų duomenų laikymo politika?
+
+
Mes stengiamės:
+
+
+ - Išsaugoti serverio registrą, kuriame yra visi IP adresai, kurie kreipėsi į serverį, šie duomenys laikomi neilgiau nei 90 dienų.
+ - Išsaugoti IP adresus asocijuotus su registruotais vartotojais, ne ilgiau nei 12 mėnesių.
+
+
+
Jūs galite pateikti prašymą ir parsisiųsti savo turinio archyvą, kuriame bus Jūsų įrašai, medijos failai, profilio nuotrauka ir antraštės nuotrauka.
+
+
Jūs galite VISIŠKAI ištrinti savo paskyrą bet kuriuo metu.
+
+
+
+
Ar mes naudojame sausainiukus?
+
+
Taip. Sausainiukai yra mažos apimties failai, kuriuos svetainė arba svetainės tiekėjas perkelia į Jūsų kompiuterio kietąjį diską naudojantis interneto naršykle (jeigu jūs leidžiate). Šie sausainiai leidžia svetainiai prisiminti Jūsų naršyklę ir jeigu turite registruotą vartotoją, ji asocijuoti su Jūsu vartotoju.
+
Mes naudojame sausainius, kad suprastumėme ir išsaugotumėme Jūsų poreikius kitam apsilankymui.
+
+
+
+
Ar mes atskleidžiame Jūsų informacija kitoms šalims?
+
+
Mes neparduodame, nesikeičiame, ar kitaip mainomės Jūsų privačiais duomenimis su trečiosiomis šalimis. Į šį sąrašą neįeina patikimos trečiosios šalys, kurios padeda mums naudotis tinklalapiu, daryti verslą, ar padėti jums, tol, kol šios šalys sutinka laikyti šią informaciją konfidencialiai. Mes taippat galime paviešinti Jūsų informaciją, jeigu manome, kad Jūs pažeidėte įstatymus, naudojimosi politiką, ar apsaugoti, ginti Jūsų, mūsų ar kitų teises.
+
+
Jūsų vieši duomenys gali būti atsisiųsti kitų serverių esančių tinkle. Jūsų vieši bei tik sekėjams skirti įrašai pristatomi serveriams, kuriuose Jūsų sekėjai egzistuoja, o tiesioginės žinutės pristatomos tiesiai į gavėjo serverį, tol, kol šie sekėjai ar gavėjai yra naudotojai iš kitų serverių.
+
+
Kai jūs patvirtinate Jūsų paskyros naudojimą aplikacijai, atitinkamai priklausant nuo leidimų, kuriuos jūs suteikėte, aplikacija turi prieiga prie Jūsų viešojo profilio informacijos, Jūsų sekėjų sąrašo, sekamų sąrašo, visų Jūsų įrašų, ir pamėgtų įrašų.
+ Aplikacijos niekada negali turėti prieigos prie Jūsų el pašto adreso arba slaptažodžio.
+
+
+
+
+
Tinklalapio naudojimas nepilnamečiams
+
+
Jeigu serveris yra EU arba EEA: Mūsų tinklalapis, produktai ir visi teikiami aptarnavimai yra teikiami tik žmonėms, kuriems yra bent 16 metų. Jeigu jums yra mažiau nei 16 metų, sekant GDPR reikalavimais (General Data Protection Regulation) prašome nenaudoti šios svetainės.
+
+
Jeigu šis serveris yra USA: Mūsų tinklalapis, produktai ir visi teikiami aptarnavimai yra teikiami žmonėms, kuriems yra bent 13 metų. Jeigu jums mažiau nei 13 metų, sekant COPPA reikalavimais (Children's Online Privacy Protection Act) prašome nenaudotis šios svetainės.
+
+
Legalūs reikalavimai gali būti kitokie, jeigu serveris yra kitoje jurisdikcijoje.
+
+
+
+
Pasikeitimai mūsų privatumo politikoje
+
+
Jeigu mes nusprendžiame pakeisti savo privatumo politiką, mes įrašysime šiuos pakeitimus šiame tinklalapyje.
+
+
Šis dokumentas yra CC-BY-SA. Paskutinį kartą keistas Kovo 7, 2018.
+
+
Originaliai adaptuotas iš Discourse privatumo politika.
+ title: "%{instance} Naudojimosi Sąlygos ir Privatumo Politika"
+ themes:
+ contrast: Mastodon (Didelio Kontrasto)
+ default: Mastodon (Tamsus)
+ mastodon-light: Mastodon (Šviesus)
+ time:
+ formats:
+ default: "%b %d, %Y, %H:%M"
+ month: "%b %Y"
+ two_factor_authentication:
+ code_hint: Įveskite autentikacijos aplikacijos sugeneruotą kodą kad galėtumete tęsti
+ description_html: Jeigu įjungiate
dviejų veiksnių autentikaciją, prisijungiant jums reikės turėti su savimi savo telefoną, kuris jums generuos prisijungimo žetonus.
+ disable: Išjungti
+ enable: Įjungti
+ enabled: Dviejų veiksnių autentikacija įjungta
+ enabled_success: Dviejų veiksnių autentikacija sėkmingai įjungta
+ generate_recovery_codes: Sugeneruoti atkūrimo kodus
+ instructions_html: "
Nuskenuokite šį QR kodą į Google Autentikatorių arba panašią TOTP aplikaciją jūsų telefone. Nuo šiol, ši aplikacija jums generuos žetonus, kurių reikės norint prisijungti."
+ lost_recovery_codes: Atkūrimo kodai jums leidžia atgauti prisijungimą prie Jūsų paskyros, jeigu prarandate telefoną. Jeigu praradote atkūrimo kodus, juos galite sugeneruoti čia. Jūsų senieji atkūrimo kodai nebeveiks.
+ manual_instructions: 'Jeigu jūs negalite nuskenuoti QR kodo ir turite jį įvesti savarankiškai, štai čia yra tekstas šiam kodui:'
+ recovery_codes: Atsarginio atkūrimo kodai
+ recovery_codes_regenerated: Atkūrimo kodai sėkmingai sugeneruoti
+ recovery_instructions_html: Jeigu prarandate prieiga prie telefono, jūs galite naudoti atkūrimo kodus esančius žemiau, kad atgautumėte priega prie savo paskyros.
Laikykite atkūrimo kodus saugiai Pavyzdžiui, galite norėti juos išspausdinti, ir laikyti kartu su kitais svarbiais dokumentais.
+ setup: Nustatyti
+ wrong_code: Koda netinkamas! Ar serverio laikas ir prietaiso laikas vienodi?
+ user_mailer:
+ backup_ready:
+ explanation: Jūs prašėte pilnos Mastodon paskyros atsarginės kopijos. Ji paruošta parsisiuntimui!
+ subject: Jūsų archyvas paruoštas parsisiuntimui
+ title: Archyvas išimtas
+ warning:
+ explanation:
+ disable: Kol Jūsų paskyra užšaldyta, Jūsų duomenys tebėra matomi, tačiau jūs negalite atlikti jokių veiksmu, tol, kol užšaldymas panaikintas.
+ silence: Kol Jūsų paskyra limituota, tik žmonės, kurie jus jau sekė matus Jūsų toot'us serveryje, Jūs taip pat būsite išimtas iš viešųjų sąrašų. Tačiau, kiti gali jus rasti, savo rankomis.
+ suspend: Jūsų paskyra buvo užrakinta, ir visi Jūsų toot'ai, medijos failai, buvo panaikinti iš šio serverio, ir visų kitų serverių, kur turėjote sekėjų.
+ review_server_policies: Apžvelgti serverio politiką
+ subject:
+ disable: Jūsų paskyra %{acct} buvo užšaldyta
+ none: Įspėjmas vartotojui %{acct}
+ silence: Jūsų paskyra %{acct} buvo limituota
+ suspend: Jūsų paskyra %{acct} buvo užrakinta
+ title:
+ disable: Paskyra užšaldyta
+ none: Įspėjimas
+ silence: Paskyra limituota
+ suspend: Paskyra užrakinta
+ welcome:
+ edit_profile_action: Nustatyti profilį
+ edit_profile_step: Jūs galite keisti savo profilį įkeldami profilio nuotrauką, antraštę, pakeičiant savo rodomą vardą ir dar daugiau. Jeigu norėtumete peržiurėti naujus sekėjus prieš leidžiant jiems jus sekti, galite užrakinti savo paskyrą.
+ explanation: Štai keletas patarimų Jums
+ final_action: Pradėti kelti įrašus
+ final_step: 'Pradėk kelti įrašus! Net jeigu neturi sekėjų, Jūsų viešos žinutės gali būti matomos kitų, pavyzdžiui, lokalioje laiko juostoje ir saitažodžiuose. Galite norėti prisistatyti naudojan saitąžodį #introductions.'
+ full_handle: Jūsų pilnas slapyvardis
+ full_handle_hint: Štai ką jūs sakytumėte savo draugams, kad jie galėtų jums siųsti žinutes arba just sekti iš kitų serverių.
+ review_preferences_action: Pakeisti pasirinkimus
+ review_preferences_step: Nustatykite savo pasirinkimus, tokius kaip el pašto laiškai, kuriuos norėtumėte gauti, arba kokiu privatumo lygiu norėtumėte, kad jūsų įrašai būtų talpinami, taip pat galite įjungti automatinį GIF paleidimą.
+ subject: Sveiki atvykę į Mastodon
+ tip_federated_timeline: Federuota laiko juosta yra lyg gaisrininkų žarną rodanti Mastodon tinklą. Tačiau, joje rodomi tik žmonės kurie yra sekami Jūsų kaimynų.
+ tip_following: Jūs sekate savo serverio administratorius numatyta tvarka. Norint rasti įdomesnių žmonių, patikrinkite lokalią bei federuotą laiko juostas.
+ tip_local_timeline: Lokali laiko juosta, joje rodomi žmonės iš %{instance}. Jie yra Jūsų artimiausi kaimynai!
+ tip_mobile_webapp: Jeigu Jūsų mobilioji naršyklė leidžia jums pridėti Mastodon prie namų ekrano, jūs galite gauti priminimus. Tai gali veikti kaip vietinė aplikacija!
+ tips: Patarimai
+ title: Sveiki atvykę, %{name}!
+ users:
+ follow_limit_reached: Negalite sekti daugiau nei %{limit} žmonių
+ invalid_email: Netinkamas el pašto adresas
+ invalid_otp_token: Netinkamas dviejų veiksnių kodas
+ otp_lost_help_html: Jeigu praradote prieiga prie abiejų, susisiekite su mumis per %{email}
+ seamless_external_login: Jūs esate prisijungę per išorini įrenginį, todėl slaptąžodis ir el pašto nustatymai neprieinami.
+ signed_in_as: 'Prisijungta kaip:'
+ verification:
+ explanation_html: 'Jūs galite
patvirtinti savę kaip savininką nuorodų savo profilio meta duomenyse. Kad tai padarytumėte, susieta svetainė privalo turėti nuorodą atgal į Jūsų Mastodon profilį. Nuoroda atgal
privalo turėti
rel="me"
savybę. Teksto turinys nuorodoje nesvarbus. Štai pavyzdys:'
+ verification: Patvirtinimas
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 c361371fe..e3c901eff 100644
--- a/config/locales/ms.yml
+++ b/config/locales/ms.yml
@@ -150,7 +150,6 @@ ms:
shared_inbox_url: URL Peti Masuk Berkongsi
show:
created_reports: Laporan yang dicipta oleh akaun ini
- report: laporan
targeted_reports: Laporan yang dicipta berkaitan akaun ini
silence: Senyap
silenced: Disenyapkan
@@ -261,11 +260,6 @@ ms:
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
- severities:
- noop: Tiada
- silence: Senyapkan
- suspend: Gantungkan
- severity: Tahap teruk
show:
affected_accounts:
one: Satu akaun dalam pangkalan data menerima kesan
@@ -275,7 +269,6 @@ ms:
suspend: Buang penggantungan semua akaun sedia ada daripada domain ini
title: Buang sekatan domain %{domain}
undo: Buang
- title: Sekatan domain
undo: Buang
email_domain_blocks:
add_new: Tambah
@@ -288,10 +281,6 @@ ms:
title: Entri senarai hitam emel baru
title: Senarai hitam emel
instances:
- account_count: Akaun diketahui
- domain_name: Domain
- reset: Set semula
- search: Cari
title: Tika diketahui
invites:
deactivate_all: Nyahaktifkan semua
diff --git a/config/locales/nl.yml b/config/locales/nl.yml
index 5a9ecc010..2ba99463b 100644
--- a/config/locales/nl.yml
+++ b/config/locales/nl.yml
@@ -70,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!
@@ -89,6 +92,7 @@ nl:
confirm: Bevestigen
confirmed: Bevestigd
confirming: Bevestiging
+ deleted: Verwijderd
demote: Degraderen
disable: Uitschakelen
disable_two_factor_authentication: 2FA uitschakelen
@@ -97,15 +101,18 @@ nl:
domain: Domein
edit: Bewerken
email: E-mail
- email_status: E-mail Status
+ email_status: E-mailstatus
enable: Inschakelen
enabled: Ingeschakeld
feed_url: Feed-URL
followers: Volgers
followers_url: Volgers-URL
follows: Volgt
+ header: Omslagfoto
inbox_url: Inbox-URL
+ invited_by: Uitgenodigd door
ip: IP
+ joined: Geregistreerd in
location:
all: Alles
local: Lokaal
@@ -132,8 +139,9 @@ nl:
protocol: Protocol
public: Openbaar
push_subscription_expires: PuSH-abonnement verloopt op
- redownload: Avatar vernieuwen
+ redownload: Profiel vernieuwen
remove_avatar: Avatar verwijderen
+ remove_header: Omslagfoto verwijderen
resend_confirmation:
already_confirmed: Deze gebruiker is al bevestigd
send: Verzend bevestigingsmail opnieuw
@@ -151,9 +159,8 @@ nl:
search: Zoeken
shared_inbox_url: Gedeelde inbox-URL
show:
- created_reports: Door dit account aangemaakte rapportages
- report: gerapporteerd
- targeted_reports: Over dit account aangemaakte rapportages
+ created_reports: Aangemaakte rapportages
+ targeted_reports: Door anderen gerapporteerd
silence: Negeren
silenced: Genegeerd
statuses: Toots
@@ -165,12 +172,14 @@ nl:
undo_suspension: Niet langer opschorten
unsubscribe: Opzeggen
username: Gebruikersnaam
+ warn: Waarschuwen
web: Webapp
action_logs:
actions:
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
@@ -247,7 +256,7 @@ nl:
week_users_active: actieve gebruikers deze week
week_users_new: nieuwe gebruikers deze week
domain_blocks:
- add_new: Nieuwe toevoegen
+ add_new: Nieuwe domeinblokkade toevoegen
created_msg: Domeinblokkade wordt nu verwerkt
destroyed_msg: Domeinblokkade is ongedaan gemaakt
domain: Domein
@@ -260,15 +269,15 @@ nl:
silence: Negeren
suspend: Opschorten
title: Nieuwe domeinblokkade
- reject_media: Mediabestanden verwerpen
+ reject_media: Mediabestanden weigeren
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
+ rejecting_media: mediabestanden worden geweigerd
+ rejecting_reports: rapportages worden geweigerd
+ severity:
+ silence: genegeerd
+ suspend: opgeschort
show:
affected_accounts:
one: Eén account in de database aangepast
@@ -278,8 +287,7 @@ 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
+ undo: domeinblokkade ongedaan maken
email_domain_blocks:
add_new: Nieuwe toevoegen
created_msg: Blokkeren e-maildomein geslaagd
@@ -290,12 +298,24 @@ 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
+ delivery_available: Bezorging is mogelijk
+ known_accounts:
+ one: "%{count} bekend account"
+ other: "%{count} bekende accounts"
+ moderation:
+ all: Alles
+ limited: Beperkt
+ title: Moderatie
+ title: Andere domeinen
+ total_blocked_by_us: Door ons geblokkeerd
+ total_followed_by_them: Door hun gevolgd
+ total_followed_by_us: Door ons gevolgd
+ total_reported: Rapportages over hun
+ total_storage: Mediabijlagen
invites:
deactivate_all: Alles deactiveren
filter:
@@ -403,7 +423,7 @@ nl:
desc_html: Dit wordt als een alinea op de voorpagina getoond. Beschrijf wat er speciaal is aan deze server en andere zaken die van belang zijn. Je kan HTML gebruiken, zoals
<a>
en
<em>
.
title: Omschrijving Mastodonserver
site_description_extended:
- desc_html: Wordt op de uitgebreide informatiepagina weergegeven
Je kan ook hier HTML gebruiken
+ desc_html: Een goede plek voor je gedragscode, regels, richtlijnen en andere zaken die jouw server uniek maken. Je kan ook hier HTML gebruiken
title: Uitgebreide omschrijving Mastodonserver
site_short_description:
desc_html: Dit wordt in de zijbalk getoond als en als metatag in de paginabron. Beschrijf in één alinea wat Mastodon is en wat deze server speciaal maakt. De (langere) omschrijving van de Mastodonserver wordt gebruikt wanneer dit veld wordt leeg gelaten.
@@ -448,6 +468,12 @@ nl:
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"
@@ -527,8 +553,11 @@ nl:
warning_title: Verwijdering gegevens op andere servers
directories:
directory: Gebruikersgids
+ enabled: Je staat momenteel in de gebruikersgids vermeldt.
+ enabled_but_waiting: Je hebt er voor gekozen om in de gebruikersgids te worden vermeldt, maar je hebt daarvoor nog niet het minimaal aantal volgers (%{min_followers}).
explanation: Ontdek gebruikers aan de hand van hun interesses
explore_mastodon: "%{title} verkennen"
+ how_to_enable: Je geeft momenteel geen toestemming om in de gebruikersgids te worden vermeldt. Je kunt hieronder toestemming geven. Gebruik hashtags in de tekst van jouw bio, om onder bepaalde hashtags te worden vermeldt!
people:
one: "%{count} gebruikers"
other: "%{count} gebruikers"
@@ -548,15 +577,21 @@ nl:
archive_takeout:
date: Datum
download: Jouw archief downloaden
- hint_html: Je kunt een archief opvragen van jouw
toots en geüploade media. De geëxporteerde gegevens zijn in ActivityPub-formaat, dat door hiervoor geschikte software valt uit te lezen. Je kunt elke 7 dagen een kopie van je archief aanvragen.
+ hint_html: Je kunt een archief opvragen van jouw
toots en geüploade media. De geëxporteerde gegevens zijn in het ActivityPub-formaat, dat door hiervoor geschikte software valt uit te lezen. Je kunt elke 7 dagen een kopie van je archief aanvragen.
in_progress: Jouw archief wordt samengesteld...
request: Jouw archief opvragen
size: Omvang
blocks: Jij blokkeert
csv: CSV
+ domain_blocks: Domeinblokkades
follows: Jij volgt
+ lists: Lijsten
mutes: Jij negeert
storage: Mediaopslag
+ featured_tags:
+ add_new: Nieuwe toevoegen
+ errors:
+ limit: Je hebt al het maximaal aantal hashtags uitgelicht
filters:
contexts:
home: Starttijdlijn
@@ -597,10 +632,16 @@ nl:
one: Er is iets niet helemaal goed! Bekijk onderstaande fout
other: Er is iets niet helemaal goed! Bekijk onderstaande %{count} fouten
imports:
+ modes:
+ merge: Samenvoegen
+ merge_long: Bestaande gegevens behouden en nieuwe toevoegen
+ overwrite: Overschrijven
+ overwrite_long: Huidige gegevens met de nieuwe gegevens vervangen
preface: Je kunt bepaalde gegevens, zoals de mensen die jij volgt of hebt geblokkeerd, naar jouw account op deze server importeren. Je moet deze gegevens wel eerst op de oorspronkelijke server exporteren.
success: Jouw gegevens zijn succesvol geüpload en worden binnenkort verwerkt
types:
blocking: Blokkeerlijst
+ domain_blocking: Lijst met genegeerde servers
following: Volglijst
muting: Negeerlijst
upload: Uploaden
@@ -654,8 +695,8 @@ nl:
other: "%{count} nieuwe meldingen sinds jouw laatste bezoek \U0001F418"
title: Tijdens jouw afwezigheid...
favourite:
- body: 'Jouw toot werd door %{name} als favoriet gemarkeerd:'
- subject: "%{name} markeerde jouw toot als favoriet"
+ body: 'Jouw toot werd door %{name} aan hun favorieten toegevoegd:'
+ subject: "%{name} voegde jouw toot als favoriet toe"
title: Nieuwe favoriet
follow:
body: "%{name} volgt jou nu!"
@@ -703,13 +744,25 @@ nl:
no_account_html: Heb je geen account? Je kunt er
hier een registreren
proceed: Ga verder om te volgen
prompt: 'Jij gaat volgen:'
+ reason_html: "
Waarom is deze extra stap nodig? %{instance}
is wellicht niet de server waarop jij je geregistreerd hebt. We verwijzen je eerst door naar jouw eigen server."
remote_interaction:
- proceed: Ga de interactie aan
- prompt: 'Jij wilt de interactie aangaan met deze toot:'
+ favourite:
+ proceed: Doorgaan met toevoegen aan jouw favorieten
+ prompt: 'Je wilt de volgende toot aan jouw favorieten toevoegen:'
+ reblog:
+ proceed: Doorgaan met boosten
+ prompt: 'Je wilt de volgende toot boosten:'
+ reply:
+ proceed: Doorgaan met reageren
+ prompt: 'Je wilt op de volgende toot reageren:'
remote_unfollow:
error: Fout
title: Titel
unfollowed: Ontvolgd
+ scheduled_statuses:
+ over_daily_limit: Je hebt de limiet van %{limit} in te plannen toots voor die dag overschreden
+ over_total_limit: Je hebt de limiet van %{limit} in te plannen toots overschreden
+ too_soon: De datum voor de ingeplande toot moet in de toekomst liggen
sessions:
activity: Laatst actief
browser: Webbrowser
@@ -758,6 +811,7 @@ nl:
development: Ontwikkelaars
edit_profile: Profiel bewerken
export: Exporteren
+ featured_tags: Uitgelichte hashtags
followers: Geautoriseerde volgers
import: Importeren
migrate: Accountmigratie
@@ -886,8 +940,8 @@ nl:
Originally adapted from the Discourse privacy policy.
title: Gebruiksvoorwaarden en privacybeleid van %{instance}
themes:
- contrast: Hoog contrast
- default: Mastodon
+ contrast: Mastodon (hoog contrast)
+ default: Mastodon (donker)
mastodon-light: Mastodon (licht)
time:
formats:
@@ -903,7 +957,7 @@ nl:
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 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.
+ manual_instructions: Voor het geval je de QR-code niet kunt scannen en het handmatig moet invoeren, vind je hieronder geheime code in platte tekst.
recovery_codes: Herstelcodes back-uppen
recovery_codes_regenerated: Opnieuw genereren herstelcodes geslaagd
recovery_instructions_html: Wanneer je ooit de toegang verliest tot jouw telefoon, kan je met behulp van een van de herstelcodes hieronder opnieuw toegang krijgen tot jouw account.
Zorg ervoor dat je de herstelcodes op een veilige plek bewaard. Je kunt ze bijvoorbeeld printen en ze samen met andere belangrijke documenten bewaren.
@@ -914,6 +968,22 @@ 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:
+ explanation:
+ disable: Zolang jouw account is bevroren blijven jouw accountgegevens intact, maar kun je geen handelingen uitvoeren totdat het account is vrijgegeven.
+ silence: Zolang jouw account wordt beperkt, kunnen alleen mensen die jou al volgen jouw toots op deze server zien. Tevens ben je niet zichtbaar in meldingen, gesprekken en op openbare tijdlijnen. Anderen kunnen je echter wel handmatig volgen.
+ suspend: Jouw account is opgeschort. Jouw toots en geüploade media zijn onomkeerbaar van deze server verwijderd, en ook o.a. van de servers waar jij volgers had.
+ 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.
diff --git a/config/locales/no.yml b/config/locales/no.yml
index 230e6b3f0..cf8f77b4c 100644
--- a/config/locales/no.yml
+++ b/config/locales/no.yml
@@ -118,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
@@ -196,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
@@ -210,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
@@ -223,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:
diff --git a/config/locales/oc.yml b/config/locales/oc.yml
index da8d9d65a..7bedded41 100644
--- a/config/locales/oc.yml
+++ b/config/locales/oc.yml
@@ -70,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 !
@@ -84,11 +87,12 @@ oc:
current_email: Adreça actuala
label: Cambiar d’adreça
new_email: Novèla adreça
- submit: Cambiar
+ submit: Cambiar l’adreça
title: Cambiar l’adreça a %{username}
confirm: Confirmar
confirmed: Confirmat
confirming: Confirmacion
+ deleted: Suprimits
demote: Retrogradar
disable: Desactivar
disable_two_factor_authentication: Desactivar 2FA
@@ -104,8 +108,11 @@ oc:
followers: Seguidors
followers_url: URL dels seguidors
follows: Abonaments
+ header: Bandièra
inbox_url: URL de recepcion
+ invited_by: Convidat per
ip: IP
+ joined: Venguèt
location:
all: Totes
local: Locals
@@ -132,8 +139,9 @@ oc:
protocol: Protocòl
public: Public
push_subscription_expires: Fin de l’abonament PuSH
- redownload: Actualizar los avatars
+ redownload: Actualizar lo perfil
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
@@ -151,9 +159,8 @@ oc:
search: Cercar
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
+ created_reports: Senhalaments creats
+ targeted_reports: Senhalaments dels autres
silence: Silenci
silenced: Rescondut
statuses: Estatuts
@@ -165,12 +172,14 @@ oc:
undo_suspension: Levar la suspension
unsubscribe: Se desabonar
username: Nom d’utilizaire
+ warn: Avisar
web: Web
action_logs:
actions:
assigned_to_self_report: "%{name} s’assignèt lo rapòrt %{target}"
change_email_user: "%{name} cambièt l’adreça de corrièl de %{target}"
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}"
@@ -247,7 +256,7 @@ oc:
week_users_active: actius aquesta setmana
week_users_new: utilizaires aquesta setmana
domain_blocks:
- add_new: Ajustar
+ add_new: Ajustar un novèl blocatge de domeni
created_msg: Domeni blocat es a èsser tractat
destroyed_msg: Lo blocatge del domeni es estat levat
domain: Domeni
@@ -264,11 +273,11 @@ oc:
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: Ignorar totes los senhalaments que venon d’aqueste domeni. Pas pertiment per las suspensions
- severities:
- noop: Cap
- silence: Silenci
- suspend: Suspendre
- severity: Severitat
+ rejecting_media: regeta los fichièrs multimèdias
+ rejecting_reports: regeta los senhalements
+ severity:
+ silence: mes en silenci
+ suspend: suspendut
show:
affected_accounts:
one: Un compte de la basa de donadas tocat
@@ -278,7 +287,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
@@ -290,12 +298,24 @@ 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
+ delivery_available: Liurason disponibla
+ known_accounts:
+ one: "%{count} compte conegut"
+ other: "%{count} comptes coneguts"
+ moderation:
+ all: Totas
+ limited: Limitat
+ title: Moderacion
+ title: Federacion
+ total_blocked_by_us: Avèm blocat
+ total_followed_by_them: Sègon
+ total_followed_by_us: Seguèm
+ total_reported: Senhalament a prepaus d’eles
+ total_storage: Fichièrs junts
invites:
deactivate_all: O desactivar tot
filter:
@@ -448,6 +468,12 @@ oc:
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}"
@@ -583,8 +609,11 @@ oc:
warning_title: Disponibilitat del contengut difusat
directories:
directory: Annuari de perfils
+ enabled: Sètz actualament listat dins l'annuari.
+ enabled_but_waiting: Avètz causit d'èsser listat dins l'annuari mas avètz pas encara lo nombre minimum de seguidors (%{min_followers}) per i èsser listat.
explanation: Trobar d’utilizaires segon lor interèsses
explore_mastodon: Explorar %{title}
+ how_to_enable: Sètz pas actualament listat dins l’annuari. Podètz cambiar aquò çai-jos. Utilizatz d'etiquetas dins vòstre tèxt de bio per èsser listat amb d’etiquetas especificas !
people:
one: "%{count} persona"
other: "%{count} personas"
@@ -610,7 +639,9 @@ oc:
size: Talha
blocks: Personas que blocatz
csv: CSV
+ domain_blocks: Blocatge de domenis
follows: Personas que seguètz
+ lists: Listas
mutes: Personas rescondudas
storage: Mèdias gardats
filters:
@@ -759,13 +790,25 @@ 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 :'
+ reason_html: "
Perque aquesta etapa es necessària ?%{instance}
es benlèu pas lo servidor ont vos marquèretz, doncas nos cal vos redirigir cap a vòstre prim servidor per començar."
remote_interaction:
- proceed: Confirmar l’interaccion
- prompt: 'Volètz interagir amb aqueste tut :'
+ favourite:
+ proceed: Contunhar per metre en favorit
+ prompt: 'Volètz metre en favorit aqueste tut :'
+ reblog:
+ proceed: Contunhar per repartejar
+ prompt: 'Volètz repartejar aqueste tut :'
+ reply:
+ proceed: Contunhar per respondre
+ prompt: 'Volètz respondre a aqueste tut :'
remote_unfollow:
error: Error
title: Títol
unfollowed: Pas mai seguit
+ scheduled_statuses:
+ over_daily_limit: Avètz passat la limita de %{limit} tuts programats per aquel jorn
+ over_total_limit: Avètz passat la limita de %{limit} tuts programats
+ too_soon: La data planificada deu èsser dins lo futur
sessions:
activity: Darrièra activitat
browser: Navigator
@@ -972,6 +1015,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.
diff --git a/config/locales/pl.yml b/config/locales/pl.yml
index 759ad1332..e110db50d 100644
--- a/config/locales/pl.yml
+++ b/config/locales/pl.yml
@@ -78,6 +78,9 @@ pl:
moderator: Moderator
unfollow: Przestań śledzić
admin:
+ account_actions:
+ action: Wykonaj działanie
+ title: Wykonaj działanie moderacyjne na %{acct}
account_moderation_notes:
create: Pozostaw notatkę
created_msg: Pomyślnie dodano notatkę moderacyjną!
@@ -97,6 +100,7 @@ pl:
confirm: Potwierdź
confirmed: Potwierdzono
confirming: Potwierdzanie
+ deleted: Usunięto
demote: Degraduj
disable: Dezaktywuj
disable_two_factor_authentication: Wyłącz uwierzytelnianie dwuetapowe
@@ -112,8 +116,11 @@ pl:
followers: Śledzący
followers_url: Adres śledzących
follows: Śledzeni
+ header: Nagłówek
inbox_url: Adres skrzynki
+ invited_by: Zaproszony(-a) przez
ip: Adres IP
+ joined: Dołączył(-a)
location:
all: Wszystkie
local: Lokalne
@@ -140,8 +147,9 @@ pl:
protocol: Protokół
public: Publiczne
push_subscription_expires: Subskrypcja PuSH wygasa
- redownload: Odśwież awatar
+ redownload: Odśwież profil
remove_avatar: Usun awatar
+ remove_header: Usuń nagłówek
resend_confirmation:
already_confirmed: To konto zostało już potwierdzone
send: Wyślij ponownie e-mail z potwierdzeniem
@@ -160,7 +168,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
@@ -173,12 +180,14 @@ pl:
undo_suspension: Cofnij zawieszenie
unsubscribe: Przestań subskrybować
username: Nazwa użytkownika
+ warn: Ostrzeż
web: Sieć
action_logs:
actions:
assigned_to_self_report: "%{name} przypisał(a) sobie zgłoszenie %{target}"
change_email_user: "%{name} zmienił(a) adres e-mail użytkownika %{target}"
confirm_user: "%{name} potwierdził(a) adres e-mail użytkownika %{target}"
+ create_account_warning: "%{name} wysłał(a) ostrzeżenie do %{target}"
create_custom_emoji: "%{name} dodał(a) nowe emoji %{target}"
create_domain_block: "%{name} zablokował(a) domenę %{target}"
create_email_domain_block: "%{name} dodał(a) domenę e-mail %{target} na czarną listę"
@@ -272,19 +281,22 @@ 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
+ rejecting_media: pliki multimedialne są odrzucane
+ rejecting_reports: zgłoszenia są odrzucane
+ severity:
+ silence: wyciszono
+ suspend: zawieszono
show:
- affected_accounts: Dotyczy %{count} kont w bazie danych
+ affected_accounts:
+ few: Dotknęło %{count} kont w bazie danych
+ many: Dotknęło %{count} kont w bazie danych
+ one: Dotknęło jedno konto w bazie danych
+ other: Dotknęło %{count} kont w bazie danych
retroactive:
silence: Odwołaj wyciszenie wszystkich kont w tej domenie
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ą
@@ -296,12 +308,26 @@ pl:
create: Utwórz blokadę
title: Nowa blokada domeny e-mail
title: Blokowanie domen e-mail
+ followers:
+ back_to_account: Wróć do konta
+ title: Śledzący %{acct}
instances:
- account_count: Znane konta
- domain_name: Domena
- reset: Przywróć
- search: Szukaj
+ delivery_available: Doręczanie jest dostępne
+ known_accounts:
+ few: "%{count} znane konta"
+ many: "%{count} znane konta"
+ one: "%{count} znane konto"
+ other: "%{count} znane konta"
+ moderation:
+ all: Wszystkie
+ limited: Ograniczone
+ title: Moderacja
title: Znane instancje
+ total_blocked_by_us: Zablokowane przez nas
+ total_followed_by_them: Śledzeni przez nich
+ total_followed_by_us: Śledzeni przez nas
+ total_reported: Zgłoszenia dotyczące ich
+ total_storage: Załączniki multimedialne
invites:
deactivate_all: Unieważnij wszystkie
filter:
@@ -454,6 +480,12 @@ pl:
unhide: Pokazuj w katalogu
visible: Widoczne
title: Administracja
+ warning_presets:
+ add_new: Dodaj nowy
+ delete: Usuń
+ edit: Edytuj
+ edit_preset: Edytuj szablon ostrzeżenia
+ title: Zarządzaj szablonami ostrzeżeń
admin_mailer:
new_report:
body: Użytkownik %{reporter} zgłosił(a) %{target}
@@ -533,8 +565,11 @@ pl:
warning_title: Dostępność usuniętej zawartości
directories:
directory: Katalog profilów
+ enabled: Jesteś obecnie zapisany(-a) do katalogu
+ enabled_but_waiting: Jesteś zapisany(-a) do katalogu, ale jeszcze nie śledzi Cię wystarczająca liczba osób (%{min_followers}), aby się tam pojawić.
explanation: Poznaj profile na podstawie zainteresowań
explore_mastodon: Odkrywaj %{title}
+ how_to_enable: Nie jesteś obecnie zapisany(-a) do katalogu. Poniżej możesz zapisać się. Użyj hashtagów w swoim opisie, aby zostać wyświetlonym pod określonymi hashtagami!
people:
few: "%{count} osoby"
many: "%{count} osób"
@@ -562,9 +597,15 @@ pl:
size: Rozmiar
blocks: Zablokowani
csv: CSV
+ domain_blocks: Blokady domen
follows: Śledzeni
+ lists: Listy
mutes: Wyciszeni
storage: Urządzenie przechowujące dane
+ featured_tags:
+ add_new: Dodaj nowy
+ errors:
+ limit: Już przekroczyłeś(-aś) maksymalną liczbę wyróżnionych hashtagów
filters:
contexts:
home: Strona główna
@@ -587,7 +628,11 @@ pl:
followers_count: Liczba śledzących
lock_link: Zablokuj swoje konto
purge: Przestań śledzić
- success: W trakcie usuwania śledzących z %{count} domen…
+ success:
+ few: W trakcie usuwania śledzących z %{count} domen…
+ many: W trakcie usuwania śledzących z %{count} domen…
+ one: W trakcie usuwania śledzących z jednej domeny…
+ other: W trakcie usuwania śledzących z %{count} domen…
true_privacy_html: Pamiętaj, że
rzeczywista prywatność może zostać uzyskana wyłącznie dzięki szyfrowaniu end-to-end.
unlocked_warning_html: Każdy może Cię śledzić, dzięki czemu może zobaczyć Twoje niepubliczne wpisy. %{lock_link} aby móc kontrolować, kto Cię śledzi.
unlocked_warning_title: Twoje konto nie jest zablokowane
@@ -597,6 +642,7 @@ pl:
resources: Zasoby
generic:
changes_saved_msg: Ustawienia zapisane!
+ copy: Kopiuj
save_changes: Zapisz zmiany
validation_errors:
few: Coś jest wciąż nie tak! Przejrzyj %{count} poniższe błędy
@@ -604,10 +650,16 @@ pl:
one: Coś jest wciąż nie tak! Przyjrzyj się poniższemu błędowi
other: Coś jest wciąż nie tak! Przejrzyj poniższe błędy (%{count})
imports:
+ modes:
+ merge: Połącz
+ merge_long: Zachowaj obecne wpisy i dodaj nowe
+ overwrite: Nadpisz
+ overwrite_long: Zastąp obecne wpisy nowymi
preface: Możesz zaimportować pewne dane (np. lista kont, które śledzisz lub blokujesz) do swojego konta na tym serwerze, korzystając z danych wyeksportowanych z innego serwera.
success: Twoje dane zostały załadowane i zostaną niebawem przetworzone
types:
blocking: Lista blokowanych
+ domain_blocking: Lista zablokowanych domen
following: Lista śledzonych
muting: Lista wyciszonych
upload: Załaduj
@@ -716,13 +768,25 @@ pl:
no_account_html: Nie masz konta? Możesz
zarejestrować się tutaj
proceed: Śledź
prompt: 'Zamierzasz śledzić:'
+ reason_html: "
Dlaczego ten krok jest konieczny? %{instance}
może nie być serwerem na którym jesteś zarejestrowany(-a), więc musisz zostać przekierowany(-a) na swój serwer."
remote_interaction:
- proceed: Przejdź do interakcji
- prompt: 'Chcesz dokonać interakcji z tym wpisem:'
+ favourite:
+ proceed: Przejdź do dodania do ulubionych
+ prompt: 'Chcesz dodać ten wpis do ulubionych:'
+ reblog:
+ proceed: Przejdź do podbicia
+ prompt: 'Chcesz podbić ten wpis:'
+ reply:
+ proceed: Przejdź do dodawania odpowiedzi
+ prompt: 'Chcesz odpowiedzieć na ten wpis:'
remote_unfollow:
error: Błąd
title: Tytuł
- unfollowed: Przestałeś śledzić
+ unfollowed: Przestałeś(-aś) śledzić
+ scheduled_statuses:
+ over_daily_limit: Przekroczyłeś(-aś) limit %{limit} zaplanowanych wpisów na ten dzień
+ over_total_limit: Przekroczyłeś(-aś) limit %{limit} zaplanowanych wpisów
+ too_soon: Zaplanowana data musi wypadać w przyszłości
sessions:
activity: Ostatnia aktywność
browser: Przeglądarka
@@ -771,6 +835,7 @@ pl:
development: Tworzenie aplikacji
edit_profile: Edytuj profil
export: Eksportowanie danych
+ featured_tags: Wyróżnione hashtagi
followers: Autoryzowani śledzący
import: Importowanie danych
migrate: Migracja konta
@@ -794,7 +859,11 @@ pl:
other: "%{count} filmów"
boosted_from_html: Podbito przez %{acct_link}
content_warning: 'Ostrzeżenie o zawartości: %{warning}'
- disallowed_hashtags: 'zawiera niedozwolone hashtagi: %{tags}'
+ disallowed_hashtags:
+ few: 'zawiera niedozwolone hashtagi: %{tags}'
+ many: 'zawiera niedozwolone hashtagi: %{tags}'
+ one: 'zawiera niedozwolony hashtag: %{tags}'
+ other: 'zawiera niedozwolone hashtagi: %{tags}'
language_detection: Automatycznie wykrywaj język
open_in_web: Otwórz w przeglądarce
over_character_limit: limit %{max} znaków przekroczony
@@ -929,6 +998,22 @@ pl:
explanation: Zażądałeś pełnej kopii zapasowej konta na Mastodonie. Jest ona dostępna do pobrania!
subject: Twoje archiwum jest gotowe do pobrania
title: Odbiór archiwum
+ warning:
+ explanation:
+ disable: Kiedy Twoje konto jest wyłączone, Twoje dane pozostają na serwerze, ale nie możesz wykonywać żadnych działań, zanim zostanie odblokowane.
+ silence: Kiedy Twoje konto jest ograniczone, tylko osoby które je śledzą będą widzieć Twoje wpisy. Może ono też przestać być widoczne na publicznych listach. Inni wciąż mogą zacząć Cię śledzić.
+ suspend: Twoje konto zostało zawieszone i wszystkie Twoje wpisy wraz z zawartością multimedialną zostały nieodwracalnie usunięte z tego serwera i serwerów, których użytkownicy śledzili Cię.
+ review_server_policies: Przejrzyj zasady serwera
+ subject:
+ disable: Twoje konto %{acct} zostało wyłączone
+ none: Ostrzeżenie dla %{acct}
+ silence: Twoje konto %{acct} zostało ograniczone
+ suspend: Twoje konto %{acct} zostało zawieszone
+ title:
+ disable: Konto wyłączone
+ none: Ostrzeżenie
+ silence: Konto ograniczone
+ suspend: Konto zawieszone
welcome:
edit_profile_action: Skonfiguruj profil
edit_profile_step: Możesz dostować profil wysyłając awatar, obraz nagłówka, zmieniając wyświetlaną nazwę i wiele więcej. Jeżeli chcesz, możesz zablokować konto, aby kontrolować, kto może Cię śledzić.
diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml
index 39a2a13c0..d44d1a045 100644
--- a/config/locales/pt-BR.yml
+++ b/config/locales/pt-BR.yml
@@ -70,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!
@@ -89,6 +92,7 @@ pt-BR:
confirm: Confirmar
confirmed: Confirmado
confirming: Confirmando
+ deleted: Excluído
demote: Rebaixar
disable: Desativar
disable_two_factor_authentication: Desativar 2FA
@@ -104,8 +108,11 @@ pt-BR:
followers: Seguidores
followers_url: URL de seguidores
follows: Segue
+ header: Cabeçalho
inbox_url: URL da caixa de entrada
+ invited_by: Convidado por
ip: IP
+ joined: Se cadastrou
location:
all: Todos
local: Local
@@ -132,8 +139,9 @@ pt-BR:
protocol: Protocolo
public: Público
push_subscription_expires: Inscrição PuSH expira
- redownload: Atualizar avatar
+ redownload: Atualizar perfil
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
@@ -152,7 +160,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
@@ -165,12 +172,14 @@ pt-BR:
undo_suspension: Retirar suspensão
unsubscribe: Desinscrever-se
username: Nome de usuário
+ warn: Notificar
web: Web
action_logs:
actions:
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"
@@ -247,7 +256,7 @@ pt-BR:
week_users_active: ativos essa semana
week_users_new: usuários essa semana
domain_blocks:
- add_new: Adicionar novo
+ add_new: Adicionar novo bloqueio de domínio
created_msg: Bloqueio de domínio está sendo processado
destroyed_msg: Bloqueio de domínio desfeito
domain: Domínio
@@ -264,11 +273,11 @@ 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
+ rejecting_media: rejeitando arquivos de mídia
+ rejecting_reports: rejeitando denúncias
+ severity:
+ silence: silenciado
+ suspend: suspenso
show:
affected_accounts:
one: Uma conta no banco de dados foi afetada
@@ -278,8 +287,7 @@ 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
+ undo: Retirar bloqueio de domínio
email_domain_blocks:
add_new: Adicionar novo
created_msg: Bloqueio de domínio de e-mail criado com sucesso
@@ -290,12 +298,24 @@ 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
+ delivery_available: Entrega está disponível
+ known_accounts:
+ one: "%{count} conta conhecida"
+ other: "%{count} contas conhecidas"
+ moderation:
+ all: Todas
+ limited: Limitado
+ title: Moderação
+ title: Federação
+ total_blocked_by_us: Bloqueado por nós
+ total_followed_by_them: Seguidos por eles
+ total_followed_by_us: Seguidos por nós
+ total_reported: Denúncias sobre eles
+ total_storage: Mídias anexadas
invites:
deactivate_all: Desativar todos
filter:
@@ -448,6 +468,12 @@ pt-BR:
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}"
@@ -530,8 +556,8 @@ pt-BR:
explanation: Descobrir usuários baseado em seus interesses
explore_mastodon: Explorar %{title}
people:
- one: "%{count} pessoas"
- other: "%{count} pessoa"
+ one: "%{count} pessoa"
+ other: "%{count} pessoas"
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.
@@ -554,7 +580,9 @@ pt-BR:
size: Tamanho
blocks: Você bloqueou
csv: CSV
+ domain_blocks: Bloqueios de domínio
follows: Você segue
+ lists: Listas
mutes: Você silenciou
storage: Armazenamento de mídia
filters:
@@ -703,13 +731,25 @@ pt-BR:
no_account_html: Não tem uma conta? Você pode
cadastrar-se aqui
proceed: Prosseguir para seguir
prompt: 'Você irá seguir:'
+ reason_html: "
Por que esse passo é necessário? %{instance}
pode não ser o servidor onde você se registrou, então precisamos redirecionar você para o seu servidor primeiro."
remote_interaction:
- proceed: Continue para interagir
- prompt: 'Você quer interagir com este toot:'
+ favourite:
+ proceed: Proceder para favoritar
+ prompt: 'Você quer favoritar este toot:'
+ reblog:
+ proceed: Proceder para compartilhar
+ prompt: 'Você quer compartilhar esse toot:'
+ reply:
+ proceed: Proceder para responder
+ prompt: 'Você quer responder à esse toot:'
remote_unfollow:
error: Erro
title: Título
unfollowed: Deixou de seguir
+ scheduled_statuses:
+ over_daily_limit: Você excedeu o limite de %{limit} toots planejados para esse dia
+ over_total_limit: Você excedeu o limite de %{limit} toots planejados
+ too_soon: A data planejada precisa ser no futuro
sessions:
activity: Última atividade
browser: Navegador
@@ -914,6 +954,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.
diff --git a/config/locales/pt.yml b/config/locales/pt.yml
index 4c23c9cf4..037582f34 100644
--- a/config/locales/pt.yml
+++ b/config/locales/pt.yml
@@ -118,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
@@ -196,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
@@ -210,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
@@ -223,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..aa4d3c967 100644
--- a/config/locales/ro.yml
+++ b/config/locales/ro.yml
@@ -1,7 +1,121 @@
---
ro:
+ about:
+ features:
+ not_a_product_title: Ești o persoană, nu un produs
+ 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ă oameni și companii î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 arhiva
postă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 a9a02caf8..3e37391a8 100644
--- a/config/locales/ru.yml
+++ b/config/locales/ru.yml
@@ -155,7 +155,6 @@ ru:
shared_inbox_url: URL общих входящих
show:
created_reports: Жалобы, отправленные этим аккаунтом
- report: жалоба
targeted_reports: Жалобы на этот аккаунт
silence: Глушение
statuses: Статусы
@@ -261,11 +260,6 @@ ru:
title: Новая доменная блокировка
reject_media: Запретить медиаконтент
reject_media_hint: Удаляет локально хранимый медиаконтент и запрещает его загрузку в будущем. Не имеет значения в случае блокировки
- severities:
- noop: Ничего
- silence: Глушение
- suspend: Блокировка
- severity: Строгость
show:
affected_accounts:
few: Влияет на %{count} аккаунта в базе данных
@@ -277,7 +271,6 @@ ru:
suspend: Снять блокировку со всех существующих аккаунтов этого домена
title: Снять блокировку с домена %{domain}
undo: Отменить
- title: Доменные блокировки
undo: Отменить
email_domain_blocks:
add_new: Добавить новую
@@ -290,10 +283,6 @@ ru:
title: Новая доменная блокировка еmail
title: Доменная блокировка email
instances:
- account_count: Известных аккаунтов
- domain_name: Домен
- reset: Сбросить
- search: Поиск
title: Известные узлы
invites:
deactivate_all: Отключить все
@@ -684,9 +673,6 @@ ru:
no_account_html: Нет учётной записи? Вы можете
зарегистрироваться здесь
proceed: Продолжить подписку
prompt: 'Вы хотите подписаться на:'
- remote_interaction:
- proceed: Продолжить
- prompt: 'Вы собираетесь взаимодействовать со статусом:'
remote_unfollow:
error: Ошибка
title: Заголовок
diff --git a/config/locales/simple_form.ar.yml b/config/locales/simple_form.ar.yml
index ae05d9e7f..14fcfdbd9 100644
--- a/config/locales/simple_form.ar.yml
+++ b/config/locales/simple_form.ar.yml
@@ -2,6 +2,12 @@
ar:
simple_form:
hints:
+ account_warning_preset:
+ text: بإمكانك استخدام نفس القواعد التي نجدها في التبويقات كعناوين الروابط والوسوم والإشارات
+ admin_account_action:
+ send_email_notification: سوف يتلقى المستخدم رسالة تُفسِّر ما حدث على حسابه
+ type_html: اختر ما تود إجراؤه على
%{acct}
+ warning_preset_id: اختياري. يمكنك إضافة نص مخصص إلى نهاية النموذج
defaults:
autofollow: سوف يتابعك تلقائيًا الأشخاص الذين يقومون بالتسجيل من خلال الدعوة
avatar: ملف PNG أو GIF أو JPG. حجمه على أقصى تصدير %{size}. سيتم تصغيره إلى %{dimensions}px
@@ -18,6 +24,7 @@ ar:
password: يُنصح باستخدام 8 أحرف على الأقل
phrase: سوف يتم العثور عليه مهما كان نوع النص أو حتى و إن كان داخل الويب فيه تحذير عن المحتوى
scopes: ما هي المجالات المسموح بها في التطبيق ؟ إن قمت باختيار أعلى المجالات فيمكنك الإستغناء عن الخَيار اليدوي.
+ setting_aggregate_reblogs: لا تقم بعرض المشارَكات الجديدة لتبويقات قد قُمتَ بمشاركتها سابقا (هذا الإجراء يعني المشاركات الجديدة فقط التي تلقيتَها)
setting_default_language: يمكن الكشف التلقائي للّغة اللتي استخدمتها في تحرير تبويقاتك ، غيرَ أنّ العملية ليست دائما دقيقة
setting_display_media_default: إخفاء الوسائط المُعيَّنة كحساسة
setting_display_media_hide_all: إخفاء كافة الوسائط دائمًا
@@ -26,8 +33,10 @@ ar:
setting_noindex: ذلك يؤثر على حالة ملفك الشخصي و صفحاتك
setting_theme: ذلك يؤثر على الشكل الذي سيبدو عليه ماستدون عندما تقوم بالدخول مِن أي جهاز.
username: اسم المستخدم الخاص بك سوف يكون فريدا مِن نوعه على %{domain}
+ featured_tag:
+ name: 'رُبَّما تريد/ي استخدام أحد هؤلاء:'
imports:
- data: ملف CSV تم تصديره مِن مثيل خادوم ماستدون آخر
+ data: ملف CSV تم تصديره مِن خادوم ماستدون آخر
sessions:
otp: 'قم بإدخال رمز المصادقة بخطوتين الذي قام بتوليده تطبيق جهازك أو إستخدم أحد رموز النفاذ الإحتياطية :'
user:
@@ -37,6 +46,18 @@ ar:
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: الصورة الرمزية
@@ -78,6 +99,7 @@ ar:
setting_hide_network: إخفِ شبكتك
setting_noindex: عدم السماح لمحركات البحث بفهرسة ملفك الشخصي
setting_reduce_motion: تخفيض عدد الصور في الوسائط المتحركة
+ setting_show_application: إكشف/ي البرامج التي كانت تُرسل تبويقات
setting_system_font_ui: إستخدم الخطوط الإفتراضية للنظام
setting_theme: سمة الموقع
setting_unfollow_modal: إظهار مربع حوار للتأكيد قبل إلغاء متابعة أي حساب
@@ -86,6 +108,8 @@ ar:
username: إسم المستخدم
username_or_email: إسم المستخدم أو كلمة السر
whole_word: الكلمة كاملة
+ featured_tag:
+ name: وسم
interactions:
must_be_follower: حظر الإخطارات القادمة من حسابات لا تتبعك
must_be_following: حظر الإخطارات القادمة من الحسابات التي لا تتابعها
diff --git a/config/locales/simple_form.ca.yml b/config/locales/simple_form.ca.yml
index ef12bb6a7..4c2b1636d 100644
--- a/config/locales/simple_form.ca.yml
+++ b/config/locales/simple_form.ca.yml
@@ -2,6 +2,13 @@
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
@@ -40,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
diff --git a/config/locales/simple_form.co.yml b/config/locales/simple_form.co.yml
index b8ad23b32..53e48d758 100644
--- a/config/locales/simple_form.co.yml
+++ b/config/locales/simple_form.co.yml
@@ -2,6 +2,13 @@
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
@@ -26,11 +33,14 @@ co:
setting_display_media_show_all: Sempre affissà i media marcati cum'è sensibili
setting_hide_network: I vostri abbunati è abbunamenti ùn saranu micca mustrati nant’à u vostru prufile
setting_noindex: Tocca à u vostru prufile pubblicu è i vostri statuti
+ setting_show_application: L'applicazione chì voi utilizate per mandà statuti sarà affissata indè a vista ditagliata di quelli
setting_theme: Tocca à l’apparenza di Mastodon quandu site cunnettatu·a da qualch’apparechju.
username: U vostru cugnome sarà unicu nant'à %{domain}
whole_word: Quandu a parolla o a frasa sana hè alfanumerica, sarà applicata solu s'ella currisponde à a parolla sana
+ featured_tag:
+ name: 'Pudete vulè utilizà unu di quelli:'
imports:
- data: Un fugliale CSV da un’altr’istanza di Mastodon
+ data: Un fugliale CSV da un’altru servore di Mastodon
sessions:
otp: 'Entrate u codice d’identificazione à dui fattori nant’à u vostru telefuninu, o unu di i vostri codici di ricuperazione:'
user:
@@ -40,6 +50,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
@@ -81,6 +103,7 @@ co:
setting_hide_network: Piattà a vostra rete
setting_noindex: Dumandà à i motori di ricerca internet d’un pudè micca esse truvatu·a cusì
setting_reduce_motion: Fà chì l’animazione vanu più pianu
+ setting_show_application: Indicà u nome di l'applicazione utilizata per mandà statuti
setting_system_font_ui: Pulizza di caratteri di u sistemu
setting_theme: Tema di u situ
setting_unfollow_modal: Mustrà una cunfirmazione per siguità qualch’unu
@@ -89,6 +112,8 @@ co:
username: Cugnome
username_or_email: Cugnome o Email
whole_word: Parolla sana
+ featured_tag:
+ name: Hashtag
interactions:
must_be_follower: Piattà e nutificazione di quelli·e ch’ùn vi seguitanu
must_be_following: Piattà e nutificazione di quelli·e ch’ùn seguitate
diff --git a/config/locales/simple_form.cs.yml b/config/locales/simple_form.cs.yml
index 1e58f4253..2107530b5 100644
--- a/config/locales/simple_form.cs.yml
+++ b/config/locales/simple_form.cs.yml
@@ -2,20 +2,27 @@
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š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ů
+ discoverable_html:
Adresář dovoluje lidem najít účty podle zájmů a aktivity. Vyžaduje alespoň %{min_followers} sledujících
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š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
- locked: Vyžaduje manuální schvalování sledovatelů
+ locked: Vyžaduje, abyste ručně schvaloval/a sledující
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.
@@ -26,11 +33,14 @@ cs:
setting_display_media_show_all: Vždy zobrazovat média označená jako citlivá
setting_hide_network: Koho sledujete a kdo sleduje vás nebude zobrazeno na vašem profilu
setting_noindex: Ovlivňuje váš veřejný profil a stránky příspěvků
+ setting_show_application: Aplikace, kterou používáte psaní tootů, bude zobrazena v detailním zobrazení vašich tootů
setting_theme: Ovlivňuje jak Mastodon vypadá, jste-li přihlášen na libovolném zařízení.
username: Vaše uživatelské jméno bude na %{domain} unikátní
whole_word: Je-li klíčové slovo či fráze pouze alfanumerická, bude aplikována pouze, pokud se shoduje s celým slovem
+ featured_tag:
+ name: 'Nejspíš budete chtít použít jeden z těchto:'
imports:
- data: Soubor CSV exportován z jiné instance Mastodon
+ data: Soubor CSV exportovaný z jiného serveru Mastodon
sessions:
otp: 'Napište dvoufaktorový kód vygenerovaný vaší mobilní aplikací, nebo použijte jeden z vašich záložních kódů:'
user:
@@ -40,8 +50,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
@@ -81,6 +103,7 @@ cs:
setting_hide_network: Skrýt svou síť
setting_noindex: Neindexovat svůj profil vyhledávači
setting_reduce_motion: Redukovat pohyb v animacích
+ setting_show_application: Zobrazit aplikaci používanou k psaní tootů
setting_system_font_ui: Použít výchozí písmo systému
setting_theme: Motiv stránky
setting_unfollow_modal: Zobrazovat před zrušením sledování potvrzovací okno
@@ -89,6 +112,8 @@ cs:
username: Uživatelské jméno
username_or_email: Uživatelské jméno nebo e-mail
whole_word: Celé slovo
+ featured_tag:
+ name: Hashtag
interactions:
must_be_follower: Blokovat oznámení od lidí, kteří vás nesledují
must_be_following: Blokovat oznámení od lidí, které nesledujete
diff --git a/config/locales/simple_form.cy.yml b/config/locales/simple_form.cy.yml
index d3f9cb340..24ae49a2a 100644
--- a/config/locales/simple_form.cy.yml
+++ b/config/locales/simple_form.cy.yml
@@ -38,6 +38,18 @@ cy:
fields:
name: Label
value: Cynnwys
+ account_warning_preset:
+ text: Testun rhagosodedig
+ admin_account_action:
+ send_email_notification: Hysbysu'r defnyddiwr trwy e-bost
+ text: Rhybudd wedi'i addasu
+ type: Gweithredu
+ types:
+ disable: Analluogi
+ none: Gwneud dim
+ silence: Tawelwch
+ suspend: Dileu data cyfrif
+ warning_preset_id: Defnyddiwch ragnod rhag rhybudd
defaults:
autofollow: Gwahodd i ddilyn eich cyfrif
avatar: Afatar
@@ -48,6 +60,7 @@ cy:
context: Hidlo cyd-destunau
current_password: Cyfrinair presennol
data: Data
+ discoverable: Rhestrwch y cyfrif hwn ar y cyfeiriadur
display_name: Enw arddangos
email: Cyfeiriad e-bost
expires_in: Yn dod i ben ar ôl
@@ -63,6 +76,7 @@ cy:
otp_attempt: Côd dau gam
password: Cyfrinair
phrase: Allweddair neu ymadrodd
+ setting_aggregate_reblogs: Grŵp hybiau mewn llinellau amser
setting_auto_play_gif: Chwarae GIFs wedi'u hanimeiddio yn awtomatig
setting_boost_modal: Dangos deialog cadarnhad cyn bŵstio
setting_default_language: Cyhoeddi iaith
diff --git a/config/locales/simple_form.da.yml b/config/locales/simple_form.da.yml
index 29a4b7651..483be7055 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
@@ -24,9 +26,10 @@ da:
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
+ data: CSV fil eksporteret fra en anden Mastodon server
sessions:
otp: 'Indtast to-faktor koden der generes af appen af appen på din telefon eller brug en af din genoprettelses koder:'
user:
@@ -36,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
@@ -67,7 +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 8b9ca1b17..6dbfd17c0 100644
--- a/config/locales/simple_form.de.yml
+++ b/config/locales/simple_form.de.yml
@@ -2,15 +2,22 @@
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
+ 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
+ discoverable_html: Das
Verzeichnis lässt dich basierend auf Interessen und Aktivitäten neue Benutzerkonten finden. Dies benötigt mindestens %{min_followers} Follower
+ email: Du wirst eine Bestätigungs-E-Mail erhalten
+ fields: Du kannst bis zu 4 Elemente auf deinem Profil anzeigen lassen, die als Tabelle dargestellt werden
header: PNG, GIF oder JPG. Maximal %{size}. Wird auf %{dimensions} px herunterskaliert
inbox_url: Kopiere die URL von der Startseite des gewünschten Relays
irreversible: Gefilterte Beiträge werden unwiderruflich gefiltert, selbst wenn der Filter später entfernt wurde
@@ -19,18 +26,21 @@ 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_aggregate_reblogs: Zeige denselben Beitrag nicht nochmal an, wenn er erneut geteilt wurde (dies betrifft nur neulich erhaltene erneut geteilte Beiträge)
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
setting_display_media_show_all: Medien, die als sensibel markiert sind, immer anzeigen
- setting_hide_network: Wem du folgst und wer dir folgt wird in deinem Profil nicht angezeigt
+ setting_hide_network: Wem du folgst und wer dir folgt, wird in deinem Profil nicht angezeigt
setting_noindex: Betrifft dein öffentliches Profil und deine Beiträge
+ setting_show_application: Die Anwendung, die du zum Schreiben von Beiträgen benutzt wird in der detaillierten Ansicht deiner Beiträge angezeigt
setting_theme: Wirkt sich darauf aus, wie Mastodon aussieht, egal auf welchem Gerät du eingeloggt bist.
username: Dein Benutzer:innen-Name wird auf %{domain} nur einmal vorkommen
- whole_word: Wenn das Schlüsselwort oder -phrase nur Buchstaben und Zahlen enthält, wird es nur angewendet werden, wenn es dem ganzen Wort entspricht
+ whole_word: Wenn das Schlagwort oder die Phrase nur Buchstaben und Zahlen enthält, wird es nur angewendet, wenn es dem ganzen Wort entspricht
+ featured_tag:
+ name: 'Du möchtest vielleicht einen von diesen benutzen:'
imports:
- data: CSV-Datei, die aus einer anderen Mastodon-Instanz exportiert wurde
+ data: CSV-Datei, die aus einem anderen Mastodon-Server exportiert wurde
sessions:
otp: 'Gib den Zwei-Faktor-Authentisierungscode von deinem Telefon ein oder benutze einen deiner Wiederherstellungscodes:'
user:
@@ -40,8 +50,20 @@ 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
+ autofollow: Einladen, um deinem Account zu folgen
avatar: Profilbild
bot: Dieser Benutzer ist ein Bot
chosen_languages: Sprachen filtern
@@ -55,9 +77,9 @@ de:
email: E-Mail-Adresse
expires_in: Läuft ab
fields: Profil-Metadaten
- header: Kopfbild
+ header: Titelbild
inbox_url: Inbox-URL des Relays
- irreversible: Fallen lassen anstatt es zu verstecken
+ irreversible: Verwerfen statt verstecken
locale: Sprache der Benutzeroberfläche
locked: Gesperrtes Profil
max_uses: Maximale Verwendungen
@@ -66,33 +88,36 @@ de:
otp_attempt: Zwei-Faktor-Authentisierungs-Code
password: Passwort
phrase: Schlagwort oder Phrase
- setting_aggregate_reblogs: Gruppenboosts in Zeitleisten
+ setting_aggregate_reblogs: Gruppiere erneut geteilte Beiträge 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
setting_default_privacy: Beitragssichtbarkeit
- setting_default_sensitive: Medien immer als heikel markieren
+ setting_default_sensitive: Medien immer als sensibel markieren
setting_delete_modal: Bestätigungsdialog anzeigen, bevor ein Beitrag gelöscht wird
setting_display_media: Medien-Anzeige
setting_display_media_default: Standard
setting_display_media_hide_all: Alle verstecken
setting_display_media_show_all: Alle anzeigen
- setting_expand_spoilers: Toots mit Inhaltswarnungen immer ausklappen
+ setting_expand_spoilers: Beiträge mit Inhaltswarnungen immer ausklappen
setting_hide_network: Blende dein Netzwerk aus
setting_noindex: Suchmaschinen-Indexierung verhindern
setting_reduce_motion: Bewegung in Animationen verringern
+ setting_show_application: Anwendung preisgeben, die benutzt wurde um Beiträge zu versenden
setting_system_font_ui: Standardschriftart des Systems verwenden
setting_theme: Theme der Website
- setting_unfollow_modal: Bestätigungsdialog anzeigen, bevor jemand entfolgt wird
+ setting_unfollow_modal: Bestätigungsdialog anzeigen, bevor jemandem entfolgt wird
severity: Schweregrad
type: Importtyp
username: Profilname
- username_or_email: Profilname oder Email
+ username_or_email: Profilname oder E-Mail
whole_word: Ganzes Wort
+ featured_tag:
+ name: Hashtag
interactions:
must_be_follower: Benachrichtigungen von Nicht-Folgenden blockieren
must_be_following: Benachrichtigungen von Profilen blockieren, denen ich nicht folge
- must_be_following_dm: Private Nachrichten von Profilen denen ich nicht folge blockieren
+ must_be_following_dm: Private Nachrichten von Profilen, denen ich nicht folge, blockieren
notification_emails:
digest: Schicke Übersichts-E-Mails
favourite: E-Mail senden, wenn jemand meinen Beitrag favorisiert
diff --git a/config/locales/simple_form.el.yml b/config/locales/simple_form.el.yml
index 599b2b5c7..3d812204c 100644
--- a/config/locales/simple_form.el.yml
+++ b/config/locales/simple_form.el.yml
@@ -2,6 +2,13 @@
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
@@ -26,9 +33,12 @@ el:
setting_display_media_show_all: Μόνιμη εμφάνιση ευαίσθητων πολυμέσων
setting_hide_network: Δε θα εμφανίζεται στο προφίλ σου ποιους ακολουθείς και ποιοι σε ακολουθούν
setting_noindex: Επηρεάζει το δημόσιο προφίλ και τις δημοσιεύσεις σου
+ setting_show_application: Η εφαρμογή που χρησιμοποιείς για να στέλνεις τα τουτ σου θα εμφανίζεται στις αναλυτικές λεπτομέρειες τους
setting_theme: Επηρεάζει την εμφάνιση του Mastodon όταν συνδέεται από οποιαδήποτε συσκευή.
username: Το όνομα χρήστη σου θα είναι μοναδικό στο %{domain}
whole_word: Όταν η λέξη ή η φράση κλειδί είναι μόνο αλφαριθμητική, θα εφαρμοστεί μόνο αν ταιριάζει με ολόκληρη τη λέξη
+ featured_tag:
+ name: 'Ίσως να θες να χρησιμοποιήσεις μια από αυτές:'
imports:
data: Αρχείο CSV που έχει εξαχθεί από διαφορετικό κόμβο Mastodon
sessions:
@@ -40,6 +50,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: Αβατάρ
@@ -81,6 +103,7 @@ el:
setting_hide_network: Κρύψε τις διασυνδέσεις σου
setting_noindex: Επέλεξε να μην συμμετέχεις στα αποτελέσματα μηχανών αναζήτησης
setting_reduce_motion: Μείωση κίνησης κινουμένων στοιχείων
+ setting_show_application: Να αποκαλύπτεται η εφαρμογή που χρησιμοποιήθηκε για την αποστολή των τουτ
setting_system_font_ui: Χρησιμοποίησε την προεπιλεγμένη γραμματοσειρά του συστήματος
setting_theme: Θέμα ιστότοπου
setting_unfollow_modal: Εμφάνιση ερώτησης επιβεβαίωσης πριν διακόψεις την παρακολούθηση κάποιου
@@ -89,6 +112,8 @@ el:
username: Όνομα χρηστη
username_or_email: Όνομα ή διεύθυνση email χρήστη
whole_word: Ολόκληρη λέξη
+ featured_tag:
+ name: Ταμπέλα
interactions:
must_be_follower: Μπλόκαρε τις ειδοποιήσεις από όσους δεν ακολουθείς
must_be_following: Μπλόκαρε τις ειδοποιήσεις που προέρχονται από άτομα που δεν τα ακολουθείς
diff --git a/config/locales/simple_form.en.yml b/config/locales/simple_form.en.yml
index 4363c59e4..3faaa6ac7 100644
--- a/config/locales/simple_form.en.yml
+++ b/config/locales/simple_form.en.yml
@@ -33,11 +33,14 @@ en:
setting_display_media_show_all: Always show media marked as sensitive
setting_hide_network: Who you follow and who follows you will not be shown on your profile
setting_noindex: Affects your public profile and status pages
+ setting_show_application: The application you use to toot will be displayed in the detailed view of your toots
setting_theme: Affects how Mastodon looks when you're logged in from any device.
username: Your username will be unique on %{domain}
whole_word: When the keyword or phrase is alphanumeric only, it will only be applied if it matches the whole word
+ featured_tag:
+ name: 'You might want to use one of these:'
imports:
- data: CSV file exported from another Mastodon instance
+ data: CSV file exported from another Mastodon server
sessions:
otp: 'Enter the two-factor code generated by your phone app or use one of your recovery codes:'
user:
@@ -100,6 +103,7 @@ en:
setting_hide_network: Hide your network
setting_noindex: Opt-out of search engine indexing
setting_reduce_motion: Reduce motion in animations
+ setting_show_application: Disclose application used to send toots
setting_system_font_ui: Use system's default font
setting_theme: Site theme
setting_unfollow_modal: Show confirmation dialog before unfollowing someone
@@ -108,6 +112,8 @@ en:
username: Username
username_or_email: Username or Email
whole_word: Whole word
+ featured_tag:
+ name: Hashtag
interactions:
must_be_follower: Block notifications from non-followers
must_be_following: Block notifications from people you don't follow
diff --git a/config/locales/simple_form.eo.yml b/config/locales/simple_form.eo.yml
index b78d2dd81..6cffcc0d1 100644
--- a/config/locales/simple_form.eo.yml
+++ b/config/locales/simple_form.eo.yml
@@ -2,6 +2,10 @@
eo:
simple_form:
hints:
+ account_warning_preset:
+ text: Vi povas uzi skribmanierojn de mesaĝoj, kiel URL-ojn, kradvortojn kaj menciojn
+ admin_account_action:
+ send_email_notification: La uzanto ricevos klarigon pri tio, kio okazis al ties konto
defaults:
autofollow: Homoj, kiuj registriĝos per la invito aŭtomate sekvos vin
avatar: Formato PNG, GIF aŭ JPG. Ĝis %{size}. Estos malgrandigita al %{dimensions}px
diff --git a/config/locales/simple_form.eu.yml b/config/locales/simple_form.eu.yml
index 9537df88d..f4fadb29d 100644
--- a/config/locales/simple_form.eu.yml
+++ b/config/locales/simple_form.eu.yml
@@ -2,6 +2,13 @@
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 dizute
avatar: PNG, GIF edo JPG. Gehienez %{size}. %{dimensions}px neurrira eskalatuko da
@@ -26,11 +33,14 @@ eu:
setting_display_media_show_all: Erakutsi beti hunkigarri gisa markatutako multimedia
setting_hide_network: Nor jarraitzen duzun eta nork jarraitzen zaituen ez da bistaratuko zure profilean
setting_noindex: Zure profil publiko eta Toot-en orrietan eragina du
+ setting_show_application: Tootak bidaltzeko erabiltzen duzun aplikazioa zure tooten ikuspegi xehetsuan bistaratuko da
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
+ featured_tag:
+ name: 'Hauetakoren bat erabili zenezake:'
imports:
- data: Beste Mastodon instantzia batetik esportatutako CSV fitxategia
+ data: Beste Mastodon zerbitzari batetik esportatutako CSV fitxategia
sessions:
otp: 'Sartu zure telefonoko aplikazioak sortutako bi faktoreetako kodea, edo erabili zure berreskuratze kodeetako bat:'
user:
@@ -40,6 +50,18 @@ 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
+ suspend: Kanporatu eta behin betiko ezabatu kontuko datuak
+ warning_preset_id: Erabili aurre-ezarritako abisu bat
defaults:
autofollow: Gonbidatu zure kontua jarraitzera
avatar: Abatarra
@@ -81,6 +103,7 @@ eu:
setting_hide_network: Ezkutatu zure sarea
setting_noindex: Atera bilaketa motorraren indexaziotik
setting_reduce_motion: Murriztu animazioen mugimenduak
+ setting_show_application: Utzi agerian tootak bidaltzeko erabilitako aplikazioa
setting_system_font_ui: Erabili sistemako tipografia lehenetsia
setting_theme: Gunearen gaia
setting_unfollow_modal: Erakutsi baieztapen elkarrizketa-koadroa inor jarraitzeari utzi aurretik
@@ -89,6 +112,8 @@ eu:
username: Erabiltzaile-izena
username_or_email: Erabiltzaile-izena edo e-mail helbidea
whole_word: Hitz osoa
+ featured_tag:
+ name: Traola
interactions:
must_be_follower: Blokeatu jarraitzaile ez direnen jakinarazpenak
must_be_following: Blokeatu zuk jarraitzen ez dituzunen jakinarazpenak
diff --git a/config/locales/simple_form.fa.yml b/config/locales/simple_form.fa.yml
index 2eeacade6..f6e654d7b 100644
--- a/config/locales/simple_form.fa.yml
+++ b/config/locales/simple_form.fa.yml
@@ -18,6 +18,7 @@ fa:
password: دستکم باید ۸ نویسه داشته باشد
phrase: مستقل از کوچکی و بزرگی حروف، با متن اصلی یا هشدار محتوای بوقها مقایسه میشود
scopes: واسطهای برنامهنویسی که این برنامه به آن دسترسی دارد. اگر بالاترین سطح دسترسی را انتخاب کنید، دیگر نیازی به انتخاب سطحهای پایینی ندارید.
+ setting_aggregate_reblogs: برای بازبوقهایی که به تازگی برایتان نمایش داده شدهاند، بازبوقهای بیشتر را نشان نده (فقط روی بازبوقهای اخیر تأثیر میگذارد)
setting_default_language: زبان نوشتههای شما به طور خودکار تشخیص داده میشود، ولی این تشخیص همیشه دقیق نیست
setting_display_media_default: تصویرهایی را که به عنوان حساس علامت زده شدهاند پنهان کن
setting_display_media_hide_all: همیشه همهٔ عکسها و ویدیوها را پنهان کن
@@ -63,6 +64,7 @@ fa:
otp_attempt: کد ورود دومرحلهای
password: رمز
phrase: کلیدواژه یا عبارت
+ setting_aggregate_reblogs: بازبوقها را متحد کن
setting_auto_play_gif: پخش خودکار تصویرهای متحرک
setting_boost_modal: نمایش پیغام تأیید پیش از بازبوقیدن
setting_default_language: زبان نوشتههای شما
diff --git a/config/locales/simple_form.fi.yml b/config/locales/simple_form.fi.yml
index b0f958f2f..5fda10969 100644
--- a/config/locales/simple_form.fi.yml
+++ b/config/locales/simple_form.fi.yml
@@ -2,6 +2,9 @@
fi:
simple_form:
hints:
+ admin_account_action:
+ send_email_notification: Käyttäjä saa selityksen mitä tapahtui hänen tililleen
+ type_html: Valitse mitä teet
1%{acct}2
defaults:
avatar: PNG, GIF tai JPG. Enintään %{size}. Skaalataan kokoon %{dimensions} px
digest: Lähetetään vain pitkän poissaolon jälkeen ja vain, jos olet saanut suoria viestejä poissaolosi aikana
diff --git a/config/locales/simple_form.fr.yml b/config/locales/simple_form.fr.yml
index c7cdcfe08..f493b746b 100644
--- a/config/locales/simple_form.fr.yml
+++ b/config/locales/simple_form.fr.yml
@@ -2,6 +2,13 @@
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 la 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
@@ -26,9 +33,12 @@ fr:
setting_display_media_show_all: Toujours afficher les médias marqués comme sensibles
setting_hide_network: Ceux que vous suivez et ceux qui vous suivent ne seront pas affichés sur votre profil
setting_noindex: Affecte votre profil public ainsi que vos statuts
+ setting_show_application: Le nom de l'application que vous utilisez afin d'envoyer des pouets sera affiché dans la vue détaillée de ceux-ci
setting_theme: Affecte l’apparence de Mastodon quand vous êtes connecté·e depuis n’importe quel appareil.
username: Votre nom d’utilisateur sera unique sur %{domain}
whole_word: Lorsque le mot-clef ou la phrase-clef est uniquement alphanumérique, ça sera uniquement appliqué s’il correspond au mot entier
+ featured_tag:
+ name: 'Vous pourriez utiliser l''un d''entre eux :'
imports:
data: Un fichier CSV généré par une autre instance de Mastodon
sessions:
@@ -40,6 +50,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 un modèle d'avertissement
defaults:
autofollow: Invitation à suivre votre compte
avatar: Image de profil
@@ -77,10 +99,11 @@ 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
+ setting_show_application: Dévoiler le nom de l'application utilisée pour envoyer des pouets
setting_system_font_ui: Utiliser la police par défaut du système
setting_theme: Thème du site
setting_unfollow_modal: Afficher une fenêtre de confirmation avant de vous désabonner d’un compte
@@ -89,6 +112,8 @@ fr:
username: Identifiant
username_or_email: Nom d’utilisateur·ice ou courriel
whole_word: Mot entier
+ featured_tag:
+ name: Hashtag
interactions:
must_be_follower: Masquer les notifications des personnes qui ne vous suivent pas
must_be_following: Masquer les notifications des personnes que vous ne suivez pas
diff --git a/config/locales/simple_form.gl.yml b/config/locales/simple_form.gl.yml
index 35bf5e017..10f6b6ab8 100644
--- a/config/locales/simple_form.gl.yml
+++ b/config/locales/simple_form.gl.yml
@@ -2,6 +2,13 @@
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
@@ -26,20 +33,35 @@ gl:
setting_display_media_show_all: Mostrar sempre os medios marcados como sensibles
setting_hide_network: Non se mostrará no seu perfil quen a segue e quen a está a seguir
setting_noindex: Afecta ao seu perfil público e páxinas de estado
+ setting_show_application: A aplicación que está a utilizar para enviar toots mostrarase na vista detallada do toot
setting_theme: Afecta ao aspecto de Mastodon en calquer dispositivo cando está conectada.
username: O seu nome de usuaria será único en %{domain}
whole_word: Se a chave ou frase de paso é só alfanumérica, só se aplicará se concorda a palabra completa
+ featured_tag:
+ name: 'Podería utilizar algunha de estas:'
imports:
- data: Ficheiro CSV exportado desde outra instancia Mastodon
+ data: Ficheiro CSV exportado desde outro servidor Mastodon
sessions:
otp: 'Introduza o código de doble-factor xerado no aplicativo do seu móbil ou utilice un dos seus códigos de recuperación:'
user:
- chosen_languages: Si se marca, só os toots nos idiomas seleccionados serán mostrados en liñas temporais públicas
+ chosen_languages: Se ten marca, só os toots nos idiomas seleccionados serán mostrados en liñas temporais públicas
labels:
account:
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
@@ -81,6 +103,7 @@ gl:
setting_hide_network: Agochar a súa rede
setting_noindex: Pedir non aparecer nas buscas dos motores de busca
setting_reduce_motion: Reducir o movemento nas animacións
+ setting_show_application: Mostrar a aplicación utilizada para tootear
setting_system_font_ui: Utilizar a tipografía por defecto do sistema
setting_theme: Decorado da instancia
setting_unfollow_modal: Solicitar confirmación antes de deixar de seguir alguén
@@ -89,6 +112,8 @@ gl:
username: Nome de usuaria
username_or_email: Nome de usuaria ou Correo-e
whole_word: Palabra completa
+ featured_tag:
+ name: Etiqueta
interactions:
must_be_follower: Bloquear as notificacións de non-seguidoras
must_be_following: Bloquea as notificacións de personas que non segue
diff --git a/config/locales/simple_form.it.yml b/config/locales/simple_form.it.yml
index 591b3ab0a..dd43898d2 100644
--- a/config/locales/simple_form.it.yml
+++ b/config/locales/simple_form.it.yml
@@ -2,6 +2,13 @@
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
@@ -40,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
diff --git a/config/locales/simple_form.ja.yml b/config/locales/simple_form.ja.yml
index 770822a3e..87ffe9d14 100644
--- a/config/locales/simple_form.ja.yml
+++ b/config/locales/simple_form.ja.yml
@@ -2,6 +2,13 @@
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まで縮小されます"
@@ -26,11 +33,14 @@ ja:
setting_display_media_show_all: 閲覧注意としてマークされたメディアも常に表示する
setting_hide_network: フォローとフォロワーの情報がプロフィールページで見られないようにします
setting_noindex: 公開プロフィールおよび各投稿ページに影響します
+ setting_show_application: トゥートするのに使用したアプリがトゥートの詳細ビューに表示されるようになります
setting_theme: ログインしている全てのデバイスで適用されるデザインです。
username: あなたのユーザー名は %{domain} の中で重複していない必要があります
whole_word: キーワードまたはフレーズが英数字のみの場合、単語全体と一致する場合のみ適用されるようになります
+ featured_tag:
+ name: 'これらを使うといいかもしれません:'
imports:
- data: 他の Mastodon インスタンスからエクスポートしたCSVファイルを選択して下さい
+ data: 他の Mastodon サーバーからエクスポートしたCSVファイルを選択して下さい
sessions:
otp: '携帯電話のアプリで生成された二段階認証コードを入力するか、リカバリーコードを使用してください:'
user:
@@ -40,6 +50,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: アイコン
@@ -81,6 +103,7 @@ ja:
setting_hide_network: 繋がりを隠す
setting_noindex: 検索エンジンによるインデックスを拒否する
setting_reduce_motion: アニメーションの動きを減らす
+ setting_show_application: トゥートの送信に使用したアプリを開示する
setting_system_font_ui: システムのデフォルトフォントを使う
setting_theme: サイトテーマ
setting_unfollow_modal: フォローを解除する前に確認ダイアログを表示する
@@ -89,6 +112,8 @@ ja:
username: ユーザー名
username_or_email: ユーザー名またはメールアドレス
whole_word: 単語全体にマッチ
+ featured_tag:
+ name: ハッシュタグ
interactions:
must_be_follower: フォロワー以外からの通知をブロック
must_be_following: フォローしていないユーザーからの通知をブロック
diff --git a/config/locales/simple_form.ko.yml b/config/locales/simple_form.ko.yml
index 02583b5bc..42be5a93c 100644
--- a/config/locales/simple_form.ko.yml
+++ b/config/locales/simple_form.ko.yml
@@ -2,6 +2,13 @@
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로 다운스케일 될 것임
@@ -26,11 +33,14 @@ ko:
setting_display_media_show_all: 민감함으로 설정 된 미디어를 항상 보이기
setting_hide_network: 나를 팔로우 하는 사람들과 내가 팔로우 하는 사람들이 내 프로필에 표시되지 않게 합니다
setting_noindex: 공개 프로필 및 각 툿페이지에 영향을 미칩니다
+ setting_show_application: 당신이 툿을 작성하는데에 사용한 앱이 툿의 상세정보에 표시 됩니다
setting_theme: 로그인중인 모든 디바이스에 적용되는 디자인입니다.
username: 당신의 유저네임은 %{domain} 안에서 유일해야 합니다
whole_word: 키워드가 영문과 숫자로만 이루어 진 경우, 단어 전체에 매칭 되었을 때에만 작동하게 합니다
+ featured_tag:
+ name: '이것들을 사용하면 좋을 것 같습니다:'
imports:
- data: 다른 마스토돈 인스턴스에서 추출된 CSV 파일
+ data: 다른 마스토돈 서버에서 추출된 CSV 파일
sessions:
otp: '휴대전화에서 생성 된 2단계 인증 코드를 입력하거나, 복구 코드 중 하나를 사용하세요:'
user:
@@ -40,6 +50,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: 아바타
@@ -81,6 +103,7 @@ ko:
setting_hide_network: 내 네트워크 숨기기
setting_noindex: 검색엔진의 인덱싱을 거절
setting_reduce_motion: 애니메이션 줄이기
+ setting_show_application: 툿 작성에 사용한 앱을 공개
setting_system_font_ui: 시스템의 초기 설정 폰트를 사용
setting_theme: 사이트 테마
setting_unfollow_modal: 언팔로우 전 언팔로우 확인 표시
@@ -89,6 +112,8 @@ ko:
username: 유저 이름
username_or_email: 유저네임 또는 이메일
whole_word: 단어 전체에 매칭
+ featured_tag:
+ name: 해시태그
interactions:
must_be_follower: 나를 팔로우 하지 않는 사람에게서 온 알림을 차단
must_be_following: 내가 팔로우 하지 않는 사람에게서 온 알림을 차단
diff --git a/config/locales/simple_form.nl.yml b/config/locales/simple_form.nl.yml
index 972b98339..0d7d1a847 100644
--- a/config/locales/simple_form.nl.yml
+++ b/config/locales/simple_form.nl.yml
@@ -2,6 +2,13 @@
nl:
simple_form:
hints:
+ account_warning_preset:
+ text: Je kunt voor toots specifieke tekst gebruiken, zoals URL's, hashtags en vermeldingen
+ admin_account_action:
+ send_email_notification: De gebruiker ontvangt een uitleg over wat er met hun account is gebeurd
+ text_html: Optioneel. Je kunt voor toots specifieke tekst gebruiken. Om tijd te besparen kun je
voorinstellingen van waarschuwingen toevoegen
+ type_html: Kies wat er met
%{acct} moet gebeuren
+ warning_preset_id: Optioneel. Je kunt nog steeds handmatig tekst toevoegen aan het eind van de voorinstelling
defaults:
autofollow: Mensen die zich via de uitnodiging hebben geregistreerd, volgen jou automatisch
avatar: PNG, GIF of JPG. Maximaal %{size}. Wordt teruggeschaald naar %{dimensions}px
@@ -26,13 +33,16 @@ nl:
setting_display_media_show_all: Als gevoelig gemarkeerde media altijd verbergen
setting_hide_network: Wie jij volgt en wie jou volgen wordt niet op jouw profiel getoond
setting_noindex: Heeft invloed op jouw openbare profiel en toots
+ setting_show_application: De toepassing de je gebruikt om te tooten wordt in de gedetailleerde weergave van de toot getoond
setting_theme: Heeft invloed op hoe de webapp van Mastodon eruitziet (op elk apparaat waarmee je inlogt).
username: Jouw gebruikersnaam is uniek op %{domain}
whole_word: Wanneer het trefwoord of zinsdeel alfanumeriek is, wordt het alleen gefilterd wanneer het hele woord overeenkomt
+ featured_tag:
+ name: 'Je wilt misschien een van deze gebruiken:'
imports:
data: CSV-bestand dat op een andere Mastodonserver werd geëxporteerd
sessions:
- otp: Voer de tweestaps-aanmeldcode vanaf jouw mobiele telefoon in of gebruik een van jouw herstelcodes.
+ otp: 'Voer de tweestaps-aanmeldcode vanaf jouw mobiele telefoon in of gebruik een van jouw herstelcodes:'
user:
chosen_languages: Alleen toots in de aangevinkte talen worden op de openbare tijdlijnen getoond
labels:
@@ -40,6 +50,18 @@ 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
+ suspend: Opschorten en onomkeerbaar accountgegevens verwijderen
+ warning_preset_id: Gebruik een voorinstelling van een waarschuwing
defaults:
autofollow: Uitnodigen om jouw account te volgen
avatar: Avatar
@@ -81,6 +103,7 @@ nl:
setting_hide_network: Jouw volgers en wie je volgt verbergen
setting_noindex: Jouw toots niet door zoekmachines laten indexeren
setting_reduce_motion: Langzamere animaties
+ setting_show_application: Toepassing onthullen die je voor het verzenden van toots gebruikt
setting_system_font_ui: Standaardlettertype van jouw systeem gebruiken
setting_theme: Thema website
setting_unfollow_modal: Vraag voor het ontvolgen van iemand een bevestiging
@@ -89,13 +112,15 @@ nl:
username: Gebruikersnaam
username_or_email: Gebruikersnaam of e-mailadres
whole_word: Heel woord
+ featured_tag:
+ name: Hashtag
interactions:
must_be_follower: Meldingen van mensen die jou niet volgen blokkeren
must_be_following: Meldingen van mensen die jij niet volgt blokkeren
must_be_following_dm: Directe berichten van mensen die jij niet volgt blokkeren
notification_emails:
digest: Periodiek e-mails met een samenvatting versturen
- favourite: Een e-mail versturen wanneer iemand jouw toot als favoriet markeert
+ favourite: Een e-mail versturen wanneer iemand jouw toot aan hun favorieten heeft toegevoegd
follow: Een e-mail versturen wanneer iemand jou volgt
follow_request: Een e-mail versturen wanneer iemand jou wil volgen
mention: Een e-mail versturen wanneer iemand jou vermeld
diff --git a/config/locales/simple_form.oc.yml b/config/locales/simple_form.oc.yml
index 3ceed0ed4..ac2845335 100644
--- a/config/locales/simple_form.oc.yml
+++ b/config/locales/simple_form.oc.yml
@@ -2,6 +2,13 @@
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
@@ -26,11 +33,14 @@ oc:
setting_display_media_show_all: Totjorn mostrar los mèdias marcats coma sensibles
setting_hide_network: Vòstre perfil mostrarà pas los que vos sègon e lo monde que seguètz
setting_noindex: Aquò es destinat a vòstre perfil public e vòstra pagina d’estatuts
+ setting_show_application: Lo nom de l’aplicacion qu’utilizatz per publicar serà mostrat dins la vista detalhada de vòstres tuts
setting_theme: Aquò càmbia lo tèma grafic de Mastodon quand sètz connectat qual que siasque lo periferic.
username: Vòstre nom d’utilizaire serà unic sus %{domain}
whole_word: Quand lo mot-clau o frasa es solament alfranumeric, serà pas qu’aplicat se correspond al mot complèt
+ featured_tag:
+ name: 'Benlèu que volètz utilizar una d’aquestas causas :'
imports:
- data: Fichièr CSV exportat d’una autra instància Mastodon
+ data: Fichièr CSV exportat d’un autre servidor Mastodon
sessions:
otp: 'Picatz lo còdi d’autentificacion en dos temps (Two factor code) de vòstra aplicacion mobil o utilizatz un de vòstres còdis de recuperacion :'
user:
@@ -40,6 +50,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
@@ -68,7 +90,7 @@ oc:
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 87b265e38..0ab045068 100644
--- a/config/locales/simple_form.pl.yml
+++ b/config/locales/simple_form.pl.yml
@@ -2,6 +2,13 @@
pl:
simple_form:
hints:
+ account_warning_preset:
+ text: Możesz korzystać ze składni której używasz we wpisach, takiej jak adresy URL, hashtagi i wspomnienia
+ admin_account_action:
+ send_email_notification: Użytkownik otrzyma informację, co stało się z jego kontem
+ text_html: Możesz używać składni której używasz we wpisach. Możesz
dodać szablon ostrzeżenia aby zaoszczędzić czas
+ type_html: Wybierz co chcesz zrobić z
%{acct}
+ warning_preset_id: Nieobowiązkowe. Możesz dodać niestandardowy tekst do końcowki szablonu
defaults:
autofollow: Osoby, które zarejestrują się z Twojego zaproszenia automatycznie zaczną Cię śledzić
avatar: PNG, GIF lub JPG. Maksymalnie %{size}. Zostanie zmniejszony do %{dimensions}px
@@ -9,19 +16,29 @@ pl:
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
+ email: Otrzymasz e-mail potwierdzający
fields: Możesz ustawić maksymalnie 4 niestandardowe pola wyświetlane jako tabela na Twoim profilu
header: PNG, GIF lub JPG. Maksymalnie %{size}. Zostanie zmniejszony do %{dimensions}px
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_aggregate_reblogs: Nie pokazuj nowych podbić dla wpisów, które zostały niedawno podbite (dotyczy tylko nowo otrzymanych podbić)
setting_default_language: Język Twoich wpisów może być wykrywany automatycznie, ale nie zawsze jest to dokładne
+ setting_display_media_default: Ukrywaj zawartość oznaczoną jako wrażliwa
+ setting_display_media_hide_all: Zawsze ukrywaj zawartość multimedialną
+ 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_show_application: W informacjach o wpisie będzie widoczna informacja o aplikacji, z której został wysłany
setting_theme: Zmienia wygląd Mastodona po zalogowaniu z dowolnego urządzenia.
+ username: Twoja nazwa użytkownika będzie niepowtarzalna na %{domain}
whole_word: Jeśli słowo lub fraza składa się jedynie z liter lub cyfr, filtr będzie zastosowany tylko do pełnych wystąpień
+ featured_tag:
+ name: 'Sugerujemy użycie jednego z następujących:'
imports:
data: Plik CSV wyeksportowany z innej instancji Mastodona
sessions:
@@ -33,6 +50,18 @@ pl:
fields:
name: Nazwa
value: Zawartość
+ account_warning_preset:
+ text: Tekst szablonu
+ admin_account_action:
+ send_email_notification: Powiadom użytkownika mailem
+ text: Niestandardowe ostrzeżenie
+ type: Działanie
+ types:
+ disable: Wyłącz
+ none: Nie rób niczego
+ silence: Wycisz
+ suspend: Zawieś i nieodwracalnie usuń dane konta
+ warning_preset_id: Użyj szablonu ostrzeżenia
defaults:
autofollow: Zapraszaj do śledzenia swojego konta
avatar: Awatar
@@ -60,15 +89,22 @@ pl:
password: Hasło
phrase: Słowo kluczowe lub fraza
scopes: Do których API aplikacja będzie miała dostęp. Jeżeli wybierzesz zakres wyższego poziomu, nie musisz zaznaczać bardziej szczegółowych.
+ setting_aggregate_reblogs: Grupuj podbicia na osiach czasu
setting_auto_play_gif: Automatycznie odtwarzaj animowane GIFy
setting_boost_modal: Pytaj o potwierdzenie przed podbiciem
setting_default_language: Język wpisów
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: Wyświetlanie zawartości multimedialnej
+ setting_display_media_default: Domyślne
+ setting_display_media_hide_all: Ukryj wszystko
+ setting_display_media_show_all: Pokaż wszystko
+ setting_expand_spoilers: Zawsze rozwijaj wpisy oznaczone ostrzeżeniem o zawartości
setting_hide_network: Ukryj swoją sieć
setting_noindex: Nie indeksuj mojego profilu w wyszukiwarkach internetowych
setting_reduce_motion: Ogranicz ruch w animacjach
+ setting_show_application: Informuj o aplikacji z której wysłano wpisy
setting_system_font_ui: Używaj domyślnej czcionki systemu
setting_theme: Motyw strony
setting_unfollow_modal: Pytaj o potwierdzenie przed cofnięciem śledzenia
@@ -77,6 +113,8 @@ pl:
username: Nazwa użytkownika
username_or_email: Nazwa użytkownika lub adres e-mail
whole_word: Całe słowo
+ featured_tag:
+ name: Hashtag
interactions:
must_be_follower: Nie wyświetlaj powiadomień od osób, które Cię nie śledzą
must_be_following: Nie wyświetlaj powiadomień od osób, których nie śledzisz
diff --git a/config/locales/simple_form.pt-BR.yml b/config/locales/simple_form.pt-BR.yml
index 3d4e7414d..664c07a46 100644
--- a/config/locales/simple_form.pt-BR.yml
+++ b/config/locales/simple_form.pt-BR.yml
@@ -2,6 +2,13 @@
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
@@ -40,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
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 bbc95abb7..504f909c2 100644
--- a/config/locales/simple_form.sk.yml
+++ b/config/locales/simple_form.sk.yml
@@ -2,35 +2,45 @@
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č
+ digest: Odoslané iba v prípade dlhodobej neprítomnosti, a len ak si obdržal/a nejaké osobné správy kým si bol/a preč
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é 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
+ irreversible: Vytriedené príspevky 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 sa manuálne schvaľovanie 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é povýšenia pre hlášky, ktoré už boli len nedávno povýšené (týka sa iba nanovo získaných povýšení)
+ setting_aggregate_reblogs: Neukazuj nové vyzdvihnutia pre príspevky, 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_show_application: Aplikácia, ktorú používaš na písanie príspevkov, bude zobrazená v detailnom náhľade jednotlivých tvojích príspevkov
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
+ featured_tag:
+ name: 'Možno by si chcel/a použiť niektoré z týchto:'
imports:
- data: CSV súbor vyexportovaný z inej Mastodon inštancie
+ data: CSV súbor vyexportovaný z iného Mastodon serveru
sessions:
otp: 'Napíš sem dvoj-faktorový kód z telefónu, alebo použi jeden z tvojích obnovovacích kódov:'
user:
@@ -40,6 +50,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
@@ -50,8 +72,8 @@ sk:
context: Triedenie kontextov
current_password: Súčasné heslo
data: Dáta
- discoverable: Zaraď tento účet do databázy
- display_name: Meno
+ discoverable: Zaraď tento účet do databázy profilov
+ display_name: Zobrazované meno
email: Emailová adresa
expires_in: Expirovať po
fields: Metadáta profilu
@@ -66,7 +88,7 @@ sk:
otp_attempt: Dvoj-faktorový overovací (2FA) kód
password: Heslo
phrase: Kľúčové slovo, alebo fráza
- setting_aggregate_reblogs: Zoskupuj povýšenia v časovej osi
+ 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
@@ -80,8 +102,9 @@ sk:
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
- setting_system_font_ui: Použiť základné systémové písmo
+ setting_reduce_motion: Mierni pohyb pri animáciách
+ setting_show_application: Zverejni akú aplikáciu používaš na posielanie príspevkov
+ setting_system_font_ui: Použi základné systémové písmo
setting_theme: Vzhľad webu
setting_unfollow_modal: Zobrazuj potvrdzovacie okno pred skončením sledovania iného užívateľa
severity: Závažnosť
@@ -89,13 +112,15 @@ sk:
username: Prezývka
username_or_email: Prezívka, alebo email
whole_word: Celé slovo
+ featured_tag:
+ name: Haštag
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: Blokovať oznámenia od nesledujúcich
+ must_be_following: Blokovať oznámenia od ľ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 890cbac41..781485864 100644
--- a/config/locales/simple_form.sl.yml
+++ b/config/locales/simple_form.sl.yml
@@ -96,7 +96,7 @@ sl:
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
+ report: Pošlji e-pošto, ko je oddana nova prijava
'no': Ne
required:
mark: "*"
diff --git a/config/locales/simple_form.sq.yml b/config/locales/simple_form.sq.yml
new file mode 100644
index 000000000..c3feee575
--- /dev/null
+++ b/config/locales/simple_form.sq.yml
@@ -0,0 +1,133 @@
+---
+sq:
+ simple_form:
+ hints:
+ account_warning_preset:
+ text: Mund të përdorni sintaksë mesazhesh, të tillë si URL, hashtagë dhe përmendje
+ admin_account_action:
+ send_email_notification: Përdoruesi do të marrë një shpjegim mbi çfarë ndodhi me llogarinë e tij
+ text_html: Opsionale. Mund të përdorni sintaksë mesazhesh. Për të kursyer kohë, mund të
shtoni paracaktime sinjalizimesh
+ type_html: Zgjidhni ç’të bëhet me
%{acct}
+ warning_preset_id: Opsionale. Mundeni sërish të shtoni tekst vetjak në fund të paracaktimit
+ defaults:
+ autofollow: Personat që regjistrohen përmes ftesës do t’ju ndjekin vetvetiu
+ avatar: PNG, GIF ose JPG. Maksimumi %{size}. Do të zvogëlohen në %{dimensions}px
+ bot: Kjo llogari kryesisht bën veprime të automatizuara dhe mund të mos mbikëqyret dot
+ context: Një ose disa kontekste kur duhet të zbatohet filtri
+ digest: I dërguar vetëm pas një periudhe të gjatë pasiviteti dhe vetëm nëse keni marrë ndonjë mesazh personal gjatë mungesës suaj
+ discoverable_html:
Drejtoria u lejon njerëzve të gjejnë llogari bazuar në interesat dhe veprimtarinë. Lyp të paktën %{min_followers} ndjekës
+ email: Do t’ju dërgohet një email ripohimi
+ fields: Te profili juaj mund të keni deri në 4 objekte të shfaqur si tabelë
+ header: PNG, GIF ose JPG. E shumta %{size}. Do të ripërmasohet në %{dimensions}px
+ inbox_url: Kopjoni URL-në prej faqes ballore të relesë që doni të përdorni
+ irreversible: Mesazhet e filtruar do të zhduket në mënyrë të pakthyeshme, edhe nëse filtri hiqet më vonë
+ locale: Gjuha e ndërfaqes së përdoruesit, email-eve dhe njoftimeve
push
+ locked: Lyp që ju të miratoni dorazi ndjekësit
+ password: Përdorni të paktën 8 shenja
+ phrase: Do të kërkohet përputhje pavarësish se teksti ose sinjalizimi mbi lëndën e një mesazhi është shkruar me të mëdha apo me të vogla
+ scopes: Cilat API do të lejohet të përdorë aplikacioni. Nëse përzgjidhni një shkallë të epërme, nuk ju duhet të përzgjidhni individualet një nga një.
+ setting_aggregate_reblogs: Mos shfaq përforcime të reja për mesazhe që janë përforcuar tani së fundi (prek vetëm përforcime të marra rishtas)
+ setting_default_language: Gjuha e mesazheve tuaj do të zbulohet vetvetiu, por mund të mos jetë përherë e saktë
+ setting_display_media_default: Fshih media me shenjën rezervat
+ setting_display_media_hide_all: Fshih përherë krejt mediat
+ setting_display_media_show_all: Mediat me shenjën rezervat shfaqi përherë
+ setting_hide_network: Cilët ndiqni dhe cilët ju ndjekin nuk do të shfaqen në profilin tuaj
+ setting_noindex: Prek faqet e profilit tuaj publik dhe gjendjeve
+ setting_show_application: Aplikacioni që përdorni për mesazhe do të shfaqet te pamja e hollësishme për mesazhet tuaj
+ setting_theme: Lidhet me se si duket Mastodon-i kur jeni i futur nga çfarëdo pajisje.
+ username: Emri juaj i përdoruesit do të jetë unik në %{domain}
+ whole_word: Kur fjalëkyçi ose fraza është vetëm numerike, do të aplikohet vetëm nëse përputhet me krejt fjalën
+ featured_tag:
+ name: 'Mund të doni të përdorni një nga këto:'
+ imports:
+ data: Kartelë CSV të eksportuar nga një tjetër shërbyes Mastodon
+ sessions:
+ otp: 'Jepni kodin dyfaktorësh të prodhuar nga aplikacioni i telefonit tuaj ose përdorni një nga kodet tuaj të rikthimive:'
+ user:
+ chosen_languages: Në iu vëntë shenjë, te rrjedha kohore publike do të shfaqen vetëm mesazhe në gjjuhët e përzgjedhura
+ labels:
+ account:
+ fields:
+ name: Etiketë
+ value: Lëndë
+ account_warning_preset:
+ text: Tekst i paracaktuar
+ admin_account_action:
+ send_email_notification: Njoftoje përdoruesin me email
+ text: Sinjalizim vetjak
+ type: Veprim
+ types:
+ disable: Çaktivizoje
+ none: Mos bëj gjë
+ silence: Heshtje
+ suspend: Pezulloje dhe fshi në mënyrë të pakthyeshme të dhënat e llogarisë
+ warning_preset_id: Përdor një sinjalizim të paracaktuar
+ defaults:
+ autofollow: Ftesë për ndjekje të llogarisë tuaj
+ avatar: Avatar
+ bot: Kjo është një llogari robot
+ chosen_languages: Filtro gjuhë
+ confirm_new_password: Ripohoni fjalëkalimin e ri
+ confirm_password: Ripohoni fjalëkalimin
+ context: Filtroni kontekste
+ current_password: Fjalëkalimi i tanishëm
+ data: Të dhëna
+ discoverable: Shfaqe këtë llogari te lista
+ display_name: Emër në ekran
+ email: Adresë email
+ expires_in: Skadon pas
+ fields: Tejtëdhëna profili
+ header: Krye
+ inbox_url: URL e Të marrëve të relesë
+ irreversible: Heqje, në vend se fshehje
+ locale: Gjuhë ndërfaqeje
+ locked: Kyçe llogarinë
+ max_uses: Numër maksimum përdorimesh
+ new_password: Fjalëkalim i ri
+ note: Jetëshkrim
+ otp_attempt: Kod mirëfilltësimi dyfaktorësh
+ password: Fjalëkalim
+ phrase: Fjalëkyç ose frazë
+ setting_aggregate_reblogs: Grupoji përforcimet në rrjedha kohore
+ setting_auto_play_gif: Vetëluaji GIF-et e animuar
+ setting_boost_modal: Shfaq dialog ripohimi përpara përforcimi
+ setting_default_language: Gjuhë postimi
+ setting_default_privacy: Privatësi postim
+ setting_default_sensitive: Mediave vëru përherë shenjë si rezervat
+ setting_delete_modal: Shfaq dialog ripohimi përpara fshirjes së një mesazhi
+ setting_display_media: Shfaqje mediash
+ setting_display_media_default: Parazgjedhje
+ setting_display_media_hide_all: Fshihi krejt
+ setting_display_media_show_all: Shfaqi krejt
+ setting_expand_spoilers: Mesazhet me sinjalizime mbi lëndën, zgjeroji përherë
+ setting_hide_network: Fshiheni rrjetin tuaj
+ setting_noindex: Përfundim i indeksimit nga motor kërkimesh
+ setting_reduce_motion: Zvogëlo lëvizjen në animacione
+ setting_show_application: Tregoje aplikacionin e përdorur për të dërguar mesazhe
+ setting_system_font_ui: Përdor shkronja parazgjedhje të sistemit
+ setting_theme: Temë sajti
+ setting_unfollow_modal: Shfaq dialog ripohimi përpara heqjes së ndjekjes për dikë
+ severity: Rreptësi
+ type: Lloj importimi
+ username: Emër përdoruesi
+ username_or_email: Emër përdoruesi ose Email
+ whole_word: Krejt fjalën
+ featured_tag:
+ name: Hashtag
+ interactions:
+ must_be_follower: Blloko njoftime nga jo-ndjekës
+ must_be_following: Blloko njoftime nga persona që nuk i ndiqni
+ must_be_following_dm: Blloko mesazhe të drejtpërdrejt nga persona që nuk i ndiqni
+ notification_emails:
+ digest: Dërgo email-e përmbledhës
+ favourite: Të dërgohet email kur dikush parapëlqen gjendjen tuaj
+ follow: Të dërgohet email kur dikush fillon t’ju ndjekë
+ follow_request: Të dërgohet email kur dikush kërkon t’ju ndjekë
+ mention: Të dërgohet email kur dikush ju përmend
+ reblog: Dërgo email kur dikush përforcon gjendjen time
+ report: Dërgo email kur parashtrohet një raportim i ri
+ 'no': Jo
+ required:
+ mark: "*"
+ text: e domosdoshme
+ 'yes': Po
diff --git a/config/locales/simple_form.sr.yml b/config/locales/simple_form.sr.yml
index c6294d4ba..7e3c6685e 100644
--- a/config/locales/simple_form.sr.yml
+++ b/config/locales/simple_form.sr.yml
@@ -2,12 +2,21 @@
sr:
simple_form:
hints:
+ account_warning_preset:
+ text: Можете користити синтаксу труба, као што су нпр. УРЛ-ова, тарабе и помињања
+ 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
inbox_url: Копирајте URL са насловне стране релеја који желите користити
@@ -17,10 +26,15 @@ sr:
password: Користите најмање 8 знакова
phrase: Биће упарена без обзира на велико или мало слово у тексту или упозорења о садржају трубе
scopes: Којим API-јима ће апликација дозволити приступ. Ако изаберете опсег највишег нивоа, не морате одабрати појединачне.
+ setting_aggregate_reblogs: Не показуј нова дељења за трубе које су недавно подељене (утиче само на недавно примљена дељења)
setting_default_language: Језик ваших труба може бити аутоматски откривен, али није увек прецизан
+ setting_display_media_default: Сакриј медије означене као осетљиве
+ setting_display_media_hide_all: Увек сакриј све медије
+ setting_display_media_show_all: Увек прикажи медије означене као осетљиве
setting_hide_network: Кога пратите и ко вас прати неће бити приказано на вашем профилу
setting_noindex: Утиче на Ваш јавни профил и статусне стране
setting_theme: Утиче како ће Мастодонт изгледати када сте пријављени са било ког уређаја.
+ username: Ваш надимак ће бити јединствен на %{domain}
whole_word: Када је кључна реч или фраза искључиво алфанумеричка, биће примењена само ако се подудара са целом речи
imports:
data: CSV фајл извезен са друге Мастодонт инстанце
@@ -33,6 +47,18 @@ sr:
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: Аватар
@@ -43,6 +69,7 @@ sr:
context: Филтрирај контексте
current_password: Тренутна лозинка
data: Подаци
+ discoverable: Наведите овај налог у фасцикли
display_name: Име за приказ
email: Адреса е-поште
expires_in: Истиче након
@@ -58,12 +85,18 @@ sr:
otp_attempt: Двофакторски код
password: Лозинка
phrase: Кључна реч или фраза
+ setting_aggregate_reblogs: Групиши дељења у временским линијама
setting_auto_play_gif: Аутоматски пуштај анимиране GIF-ове
setting_boost_modal: Прикажи дијалог за потврду пре давања подршке
setting_default_language: Језик објављивања
setting_default_privacy: Приватност објава
setting_default_sensitive: Увек означи мултимедију као осетљиву
setting_delete_modal: Прикажи дијалог за потврду пре брисања тута
+ setting_display_media: Приказ медија
+ setting_display_media_default: Подразумевано
+ setting_display_media_hide_all: Сакриј све
+ setting_display_media_show_all: Прикажи све
+ setting_expand_spoilers: Увек прошити трубе које су означене упозорењем садржаја
setting_hide_network: Сакриј своју мрежу
setting_noindex: Одјави се од индексирања search engine-а
setting_reduce_motion: Смањи покрете у анимацијама
diff --git a/config/locales/simple_form.tr.yml b/config/locales/simple_form.tr.yml
index d0b50609b..517b38ca5 100644
--- a/config/locales/simple_form.tr.yml
+++ b/config/locales/simple_form.tr.yml
@@ -2,7 +2,11 @@
tr:
simple_form:
hints:
+ admin_account_action:
+ send_email_notification: Kullanıcı, hesabına ne olduğu hakkında bir bildirim alacak
+ warning_preset_id: İsteğe bağlı. Hazır ayarın sonuna hala özel metin ekleyebilirsiniz
defaults:
+ autofollow: Davetiyeyle kaydolan kişiler sizi otomatik olarak takip eder
avatar: En fazla %{size} olacak şekilde PNG, GIF veya JPG formatında yükleyiniz. %{dimensions}px büyüklüğüne indirgenecektir
header: En fazla %{size} olacak şekilde PNG, GIF veya JPG formatında yükleyiniz. %{dimensions}px büyüklüğüne indirgenecektir.
locked: Takipçilerinizi manuel olarak kabul etmenizi ve gönderilerinizi varsayılan olarak sadece takipçilerinizin göreceği şekilde paylaşmanızı sağlar.
diff --git a/config/locales/sk.yml b/config/locales/sk.yml
index acf03ca7c..296589bec 100644
--- a/config/locales/sk.yml
+++ b/config/locales/sk.yml
@@ -1,16 +1,16 @@
---
sk:
about:
- 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
+ about_hashtag_html: Toto sú verejné príspevky, otagované pod
#%{hashtag}. Ak máš účet hocikde v rámci fediversa, môžeš s nimi narábať.
+ about_mastodon_html: Mastodon je sociálna sieť založená na otvorených webových protokoloch a na slobodnom softvéri. Je decentralizovaná, podobne ako email.
+ about_this: O tomto serveri
administered_by: 'Správcom je:'
api: API
- apps: Mobilné aplikácie
- closed_registrations: Registrácie sú na tomto serveri momentálne uzatvorené. Avšak, môžeš nájsť nejaký iný Mastodon server kde si založ účet a získaj tak prístup do presne tej istej siete, odtiaľ.
+ apps: Aplikácie
+ closed_registrations: Registrácie na tomto serveri sú momentálne uzatvorené. Avšak, môžeš nájsť nejaký iný server kde si založíš účet a získaš tak prístup do presne tej istej siete odtiaľ.
contact: Kontakt
- contact_missing: Nezadané
- contact_unavailable: Neuvedené
+ contact_missing: Nezadaný
+ contact_unavailable: Neuvedený
documentation: Dokumentácia
extended_description_html: |
Pravidlá
@@ -27,7 +27,7 @@ sk:
generic_description: "%{domain} je jeden server v sieti"
hosted_on: Mastodon hostovaný na %{domain}
learn_more: Zisti viac
- other_instances: Zoznam ďalších inštancií
+ other_instances: Zoznam serverov
privacy_policy: Ustanovenia o súkromí
source_code: Zdrojový kód
status_count_after:
@@ -39,7 +39,7 @@ sk:
user_count_after:
few: užívatelia
one: užívateľ
- other: užívatelia
+ other: užívateľov
user_count_before: Domov pre
what_is_mastodon: Čo je Mastodon?
accounts:
@@ -50,8 +50,8 @@ sk:
one: Sledujúci
other: Sledovatelia
following: Sledovaní
- joined: Pridal/a sa %{date}
- last_active: poslednýkrát aktívny
+ joined: Pridal/a sa v %{date}
+ last_active: naposledy 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}:"
@@ -64,7 +64,7 @@ sk:
posts:
few: Príspevkov
one: Príspevok
- other: Príspevkov
+ other: Príspevky
posts_tab_heading: Príspevky
posts_with_replies: Príspevky s odpoveďami
reserved_username: Prihlasovacie meno je rezervované
@@ -74,6 +74,9 @@ sk:
moderator: Moderátor
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á!
@@ -86,13 +89,14 @@ sk:
change_email:
changed_msg: Email k tomuto účtu bol úspešne zmenený!
current_email: Súčastný email
- label: Zmeniť email
+ label: Zmeň email
new_email: Nový email
- submit: Zmeniť email
+ submit: Zmeň email
title: Zmeň email pre %{username}
confirm: Potvrdiť
confirmed: Potvrdený
confirming: Potvrdzujúci
+ deleted: Zmazané
demote: Degradovať
disable: Zablokovať
disable_two_factor_authentication: Zakázať 2FA
@@ -100,7 +104,7 @@ sk:
display_name: Zobraziť meno
domain: Doména
edit: Uprav
- email: Emailová adresa
+ email: Email
email_status: Stav emailu
enable: Povoliť
enabled: Povolený
@@ -108,21 +112,24 @@ sk:
followers: Sledujúci
followers_url: URL sledujúcich
follows: Sledovania
+ header: Hlavička
inbox_url: URL prijatých správ
+ invited_by: Pozvaný/á užívateľom
ip: IP
+ joined: Pridal/a sa
location:
all: Všetko
local: Miestne
remote: Federované
title: Lokácia
- login_status: Status prihlásenia
+ login_status: Stav prihlásenia
media_attachments: Prílohy
memorialize: Zmeniť na "Navždy budeme spomínať"
moderation:
- active: Aktívny/a
+ active: Aktívny
all: Všetko
silenced: Umlčané
- suspended: Suspendované
+ suspended: Vylúčený/á
title: Moderácia
moderation_notes: Moderátorské poznámky
most_recent_activity: Posledná aktivita
@@ -132,12 +139,13 @@ sk:
outbox_url: URL poslaných
perform_full_suspension: Zablokovať
profile_url: URL profilu
- promote: Povýšiť
+ promote: Povýš
protocol: Protokol
public: Verejná os
push_subscription_expires: PuSH odoberanie expiruje
- redownload: Obnoviť avatar
+ redownload: Obnov profil
remove_avatar: Odstrániť avatár
+ remove_header: Odstráň hlavičku
resend_confirmation:
already_confirmed: Tento užívateľ už je potvrdený
send: Znovu odoslať potvrdzovací email
@@ -155,9 +163,8 @@ sk:
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
+ created_reports: Vytvorené hlásenia
+ targeted_reports: Nahlásenia od ostatných
silence: Stíšiť
silenced: Utíšení
statuses: Príspevky
@@ -169,12 +176,14 @@ sk:
undo_suspension: Zrušiť suspendáciu
unsubscribe: Prestaň odoberať
username: Prezývka
+ warn: Varovať
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"
@@ -206,8 +215,8 @@ sk:
custom_emojis:
by_domain: Doména
copied_msg: Lokálna kópia emoji úspešne vytvorená
- copy: Kopírovať
- copy_failed_msg: Nebolo možné vytvoriť lokálnu kópiu tohto emoji
+ copy: Kopíruj
+ copy_failed_msg: Nebolo možné vytvoriť miestnu kópiu tohto emoji
created_msg: Emoji úspešne vytvorené!
delete: Zmazať
destroyed_msg: Emojo úspešne zničený!
@@ -237,7 +246,7 @@ sk:
feature_registrations: Registrácie
feature_relay: Federovací mostík
features: Vymoženosti
- hidden_service: Federácia so skritými službami
+ hidden_service: Federácia so skrytými službami
open_reports: otvorené hlásenia
recent_users: Nedávny užívatelia
search: Celofrázové vyhľadávanie
@@ -247,11 +256,11 @@ sk:
title: Spravovacie rozhranie
total_users: užívateľov celkovo
trends: Trendy
- week_interactions: Tohto týždňové interakcie
+ week_interactions: Tohto-týždňové interakcie
week_users_active: aktívni tento týždeň
week_users_new: užívateľov počas tohto týždňa
domain_blocks:
- add_new: Pridať nový
+ add_new: Pridaj nové doménové blokovanie
created_msg: Doména je v procese blokovania
destroyed_msg: Blokovanie domény bolo zrušené
domain: Doména
@@ -262,45 +271,57 @@ sk:
desc_html: "
Stíšenie urobí všetky príspevky daného účtu neviditeľné pre všetkých ktorí nenásledujú tento účet.
Suspendácia zmaže všetky príspevky, médiá a profilové informácie. Použi
Žiadne, ak chceš iba neprijímať súbory médií."
noop: Nič
silence: Stíšiť
- suspend: Suspendovať
+ suspend: Vylúčiť
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
reject_reports: Zamietni hlásenia
reject_reports_hint: Ignoruj všetky hlásenia prichádzajúce z tejto domény. Nevplýva na blokovania
- severities:
- noop: Žiadne
- silence: Stíšiť
- suspend: Suspendovať
- severity: Závažnosť
+ rejecting_media: odmietanie médiálnych súborov
+ rejecting_reports: odmietané hlásenia
+ severity:
+ silence: utíšené
+ suspend: vylúčený
show:
affected_accounts:
few: "%{count} účty v databáze ovplyvnených"
- one: Jeden účet v databáze ovplyvnený
- other: "%{count} účtov v databáze ovplyvnených"
+ one: Jeden účet v databáze bol ovplyvnený
+ other: "%{count} účtov v databáze bolo ovplyvnených"
retroactive:
- silence: Zrušiť stíšenie všetkých existujúcich účtov z tejto domény
- suspend: Zrušiť suspendáciu všetkých existujúcich účtov z tejto domény
- title: Zrušiť blokovanie domény pre %{domain}
+ silence: Zruš stíšenie všetkých existujúcich účtov z tejto domény
+ suspend: Zruš suspendáciu všetkých existujúcich účtov z tejto domény
+ title: Zruš blokovanie domény %{domain}
undo: Vrátiť späť
- title: Blokovanie domén
- undo: Späť
+ undo: Odvolaj blokovanie domény
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
+ delivery_available: Je v dosahu doručovania
+ known_accounts:
+ few: "%{count} známe účty"
+ one: "%{count} známy účet"
+ other: "%{count} známe účty"
+ moderation:
+ all: Všetky
+ limited: Obmedzené
+ title: Moderácia
+ title: Federácia
+ total_blocked_by_us: Nami blokované
+ total_followed_by_them: Nimi sledované
+ total_followed_by_us: Nami sledované
+ total_reported: Nahlásenia o nich
+ total_storage: Mediálne prílohy
invites:
deactivate_all: Pozastaviť všetky
filter:
@@ -371,16 +392,16 @@ sk:
desc_html: Uprav vzhľad pomocou CSS, ktoré je načítané na každej stránke
title: Vlastné CSS
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
+ desc_html: Zobrazuje sa na hlavnej stránke. Doporučuje sa rozlišenie aspoň 600x100px Pokiaľ nič nieje dodané, bude nastavený základný orázok 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í
+ desc_html: Domény, na ktoré tento server už v rámci fediverse natrafil
+ title: Zverejni zoznam objavených serverov
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
+ desc_html: Náhľad odkazov z iných serverov, bude zobrazený aj vtedy, keď sú 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í
@@ -399,27 +420,27 @@ 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úť 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
+ 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 príspevky z miestnej osi.
+ title: Ukáž celé známe fediverse na náhľade osi
show_staff_badge:
- desc_html: Zobraz moderátorsku značku na užívateľovej stránke
- title: Zobraziť značku moderátora
+ desc_html: Zobraz moderátorsky odznak na užívateľovom profile
+ title: Zobraz 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>
.
- title: Popis instancie
+ desc_html: Oboznamujúci paragraf na hlavnej stránke a pri meta tagoch. Opíš, čo robí tento Mastodon server špecifickým, a ďalej hocičo iné, čo považuješ za dôležité. Môžeš použiť HTML kód, hlavne
< a >
, ale tiež
<>
.
+ title: Popis servera
site_description_extended:
- desc_html: Toto je vhodné miesto pre vaše pravidlá, oboznámenia a iné veci, ktorými je vaša instancia špecifická. Je možné tu používať HTML kód
+ desc_html: Toto je vhodné miesto pre tvoje pravidlá o prevádzke, pokyny, podmienky a iné veci, ktorými je tvoj server špecifický. Je možné tu používať HTML tagy
title: Vlastné doplňujúce informácie
site_short_description:
- desc_html: Zobrazené na bočnom paneli a pri meta tagoch. Popíš čo je Mastodon, a čo robí tento server iným, v jednom paragrafe. Pokiaľ toto necháš prázdne, bude tu zobrazený základný popis instancie.
- title: Krátky popis instancie
+ desc_html: Zobrazené na bočnom paneli a pri meta tagoch. Popíš čo je Mastodon, a čo robí tento server iným, v jednom paragrafe. Pokiaľ toto necháš prázdne, bude tu zobrazený základný popis servera.
+ title: Krátky popis serveru
site_terms:
- desc_html: Môžete si napísať vaše vlastné pravidla o súkromí, prevádzke, alebo aj iné legality. Môžete tu používať HTML kód
+ desc_html: Môžeš si napísať svoje vlastné pravidla o súkromí, prevádzke, alebo aj iné legality. Môžeš tu používať HTML kód
title: Vlastné pravidlá prevádzky
- site_title: Názov instancie
+ site_title: Názov servera
thumbnail:
desc_html: Používané pre náhľady cez OpenGraph a API. Doporučuje sa rozlišenie 1200x630px
- title: Miniatúra instancie
+ title: Miniatúra servera
timeline_preview:
desc_html: Zobraziť verejnú nástenku na hlavnej stránke
title: Náhľad nástenky
@@ -453,6 +474,12 @@ sk:
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}"
@@ -461,10 +488,10 @@ sk:
application_mailer:
notification_preferences: Zmeniť e-mailové voľby
salutation: "%{name},"
- settings: 'Zmeniť e-mailové voľby: %{link}'
+ settings: 'Zmeň emailové voľby: %{link}'
view: 'Zobraziť:'
- view_profile: Zobraziť profil
- view_status: Zobraziť status
+ view_profile: Zobraz profil
+ view_status: Zobraz status
applications:
created: Aplikácia bola vytvorená úspešne
destroyed: Aplikáciu sa podarilo odstrániť
@@ -474,18 +501,18 @@ sk:
warning: Na tieto údaje dávajte ohromný pozor. Nikdy ich s nikým nezďieľajte!
your_token: Váš prístupový token
auth:
- agreement_html: V rámci registrácie súhlasíš, že sa budeš riadiť
pravidlami tejto instancie, a taktiež
našími prevoznými podmienkami.
+ agreement_html: V rámci registrácie súhlasíš, že sa budeš riadiť
pravidlami tohto servera, a taktiež
našími prevádzkovými podmienkami.
change_password: Heslo
confirm_email: Potvrdiť email
- delete_account: Vymazať účet
- delete_account_html: Pokiaľ chceš vymazať svoj účet, môžeš tak
urobiť tu. Budeš požiadaný/á o potvrdenie tohto kroku.
- didnt_get_confirmation: Neobdŕžal/a si kroky pre potvrdenie?
+ delete_account: Vymaž účet
+ delete_account_html: Pokiaľ chceš svoj účet odtiaľto vymazať, môžeš tak
urobiť tu. Budeš požiadaný/á o potvrdenie tohto kroku.
+ didnt_get_confirmation: Neobdržal/a si kroky na potvrdenie?
forgot_password: Zabudnuté heslo?
invalid_reset_password_token: Token na obnovu hesla vypršal. Prosím vypítaj si nový.
login: Prihlás sa
logout: Odhlás sa
- migrate_account: Presunúť sa na iný účet
- migrate_account_html: Pokiaľ si želáš presmerovať tento účet na nejaký iný, môžeš to
urobiť tu.
+ migrate_account: Presúvam sa na iný účet
+ migrate_account_html: Pokiaľ si želáš presmerovať tento účet na nejaký iný, môžeš si to
nastaviť tu.
or: alebo
or_log_in_with: Alebo prihlásiť z
providers:
@@ -528,28 +555,31 @@ sk:
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: 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_html: Iba vymazanie obsahu z tohto konkrétneho serveru 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
+ enabled: Momentálne si uvedený/á na zozname profilov.
+ enabled_but_waiting: Vyjadril/a si záujem o uvedenie na zozname profilov, lenže ešte nemáš minimálny vyžadovaný počet následovateľov (%{min_followers}), aby si tam bol/a uveden/á.
explanation: Pátraj po užívateľoch podľa ich záujmov
explore_mastodon: Prebádaj %{title}
+ how_to_enable: Momentálne niesi zaradený/á do verejnej profilovej databázy. Prihlásiť sa môžeš nižšie. Použi haštagy vo svojom biografickom popise na profile, ak chceš byť uvedený/á aj pod konkrétnými haštagmi!
people:
few: "%{count} ľudia"
one: "%{count} človek"
other: "%{count} ľudia"
errors:
'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.
+ '404': Stránka ktorú hľadáš nieje tu.
+ '410': Stránka ktorú si tu hľadal/a sa tu už viac nenachádza.
'422':
content: Bezpečtnostné overenie zlyhalo. Blokuješ cookies?
title: Bezpečtnostné overenie zlyhalo
'429': Zamlčané
'500':
- content: Ospravedlňujeme sa. Niečo sa pokazilo na našom konci.
+ content: Ospravedlňujem sa. Niečo sa pokazilo na našom konci.
title: Táto stránka nieje v poriadku
- noscript_html: Aby bolo možné používať Mastodon web aplikáciu, prosím povoľte JavaScript. Alebo skúste jednu z
aplikácii dostupných pre vašu platformu.
+ noscript_html: Aby bolo možné používať Mastodon web aplikáciu, povoľ prosím JavaScript. Alebo skús jednu z
aplikácii dostupných pre vašu platformu.
exports:
archive_takeout:
date: Dátum
@@ -560,13 +590,19 @@ sk:
size: Veľkosť
blocks: Blokujete
csv: CSV
+ domain_blocks: Blokované domény
follows: Následujete
+ lists: Zoznamy
mutes: Stíšil/a si
storage: Úložisko médií
+ featured_tags:
+ add_new: Pridaj nový
+ errors:
+ limit: Už si si predvolil/a najvyšší možný počet obľúbených haštagov
filters:
contexts:
home: Domáca os
- notifications: Oboznámenia
+ notifications: Oznámenia
public: Verejné osi
thread: Konverzácie
edit:
@@ -575,16 +611,16 @@ sk:
invalid_context: Nebola poskytnutá žiadna, alebo ide o neplatnú súvislosť
invalid_irreversible: Nezvratné filtrovanie funguje iba so súvislostiami domovskej osi a oboznámení
index:
- delete: Vymazať
+ delete: Vymaž
title: Triedenia
new:
title: Pridaj nové triedenie
followers:
domain: Doména
- explanation_html: Pokiaľ chceš zaručiť súkromie svojích príspevkov, musíš mať na vedomí, kto ťa sleduje.
Tvoje súkromné príspevky sú doručené na každý server z ktorého ťa niekto následuje. Takže možno by si ich chcel/a skontrolovať, a odstrániť tých následovníkov, čo sú na serveroch ktorím nedôveruješ, že ich moderátori, alebo úpravbuy kódu budú tiež rešpektovať tvoje súkromie.
+ explanation_html: Pokiaľ chceš zaručiť súkromie svojích príspevkov, musíš mať na vedomí, kto ťa sleduje.
Tvoje súkromné príspevky sú doručené na každý server z ktorého ťa niekto následuje. Takže možno by si ich chcel/a skontrolovať, a odstrániť tých následovníkov, čo sú na serveroch ktorím dostatočne nedôveruješ v zmysle, že ich moderátori, alebo ich softvérové úpravy, budú tiež rešpektovať tvoje súkromie.
followers_count: Počet následovateľov
- lock_link: Zamknite svoj účet
- purge: Odstrániť následovateľa
+ lock_link: Zamkni svoj účet
+ purge: Odstráň sledovateľa
success:
few: Počas utišovania sledovateľov z %{count} domén...
one: Počas utišovania sledovateľov z jednej domény...
@@ -598,17 +634,23 @@ sk:
resources: Podklady
generic:
changes_saved_msg: Zmeny boli úspešne uložené!
- copy: Kopírovať
+ copy: Kopíruj
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 danú chybu
other: Niečo ešte stále nieje v poriadku! Prosím skontroluj všetky %{count} nižšie uvedené pochybenia
imports:
+ modes:
+ merge: Spojiť dohromady
+ merge_long: Ponechaj existujúce záznamy a pridaj k nim nové
+ overwrite: Prepíš
+ overwrite_long: Nahraď súčasné záznamy s novými
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
+ domain_blocking: Zoznam blokovaných domén
following: Zoznam sledovaných
muting: Zoznam ignorovaných
upload: Nahrať
@@ -709,17 +751,29 @@ sk:
web: Web
remote_follow:
acct: Napíš svoju prezývku@doménu z ktorej chceš následovať
- missing_resource: Nemôžeme nájsť potrebnú presmerovaciu adresu k tvojmu účtu
- no_account_html: Nemáš ešte účet? Môžeš sa
zaregistrovať tu
+ missing_resource: Nemožno nájsť potrebnú presmerovaciu adresu k tvojmu účtu
+ no_account_html: Nemáš účet? Môžeš sa
zaregistrovať tu
proceed: Začni následovať
prompt: 'Budeš sledovať:'
+ reason_html: "
Načo je tento krok potrebný? %{instance}
nemusí byť práve tým serverom na ktorom si zaregistrovaný/á, takže je ťa najprv potrebné presmerovať na tvoj domáci server."
remote_interaction:
- proceed: Pokračuj k interakcii
- prompt: 'Chceš narábať s týmto príspevkom:'
+ favourite:
+ proceed: Pokračuj k obľúbeniu
+ prompt: 'Chceš si obľúbiť tento príspevok:'
+ reblog:
+ proceed: Pokračuj k vyzdvihnutiu
+ prompt: 'Chceš vyzdvihnúť tento príspevok:'
+ reply:
+ proceed: Pokračuj odpovedaním
+ prompt: 'Chceš odpovedať na tento príspevok:'
remote_unfollow:
error: Chyba
title: Názov
unfollowed: Už nesleduješ
+ scheduled_statuses:
+ over_daily_limit: Prekročil/a si denný limit %{limit} predplánovaných príspevkov
+ over_total_limit: Prekročil/a si limit %{limit} predplánovaných príspevkov
+ too_soon: Dátum musí byť stanovený do budúcnosti
sessions:
activity: Najnovšia aktivita
browser: Prehliadač
@@ -768,10 +822,11 @@ sk:
development: Vývoj
edit_profile: Uprav profil
export: Exportovať dáta
+ featured_tags: Popredne zvýraznené haštagy
followers: Povolení následovatelia
import: Importovať
- migrate: Presunúť účet
- notifications: Oboznámenia
+ migrate: Presunutie účtu
+ notifications: Oznámenia
preferences: Voľby
settings: Nastavenia
two_factor_authentication: Dvoj-faktorové overenie
@@ -823,10 +878,29 @@ sk:
- 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 určené 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 v rámci iných serverov, a kópie príspevkov sú na nich 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.
+
+
+
+
+
Načo sú tvoje údaje používané?
+
+
Hociktorá z informácií, ktoré sú o tebe zozbierané, môže byť použité následujúcimi spôsobmi:
+
+ - Pre zabezpečenie základného fungovania Mastodonu. Narábať s užívateľským obsahom iných, ako aj prispievať svoj vlastný obsah, možeš len keď si prihlásený/á. Môžeš napríklad následovať iných ľudí, aby si potom videl/a ich príspevky v rámci svojej osobne prispôsobenej domácej osi.
+ - Pre lepšie moderovanie komunity sa napríklad môže tvoja IP adresa porovnať s ostatnými už známimi adresami, aby bolo možné zistiť, či nedochádza napríklad k obchádzaniu pravidiel vylúčenia, aleb k iným porušeniam zásad.
+ - Emailová adresa, ktorú poskytneš, môže byť použitá na zasielanie informácií, oboznámení keď ostatní užívatelia interaktujú s tvojím obsahom, alebo na posielanie správ, odpovedí na otázky a iné požiadavky.
+
title: Podmienky užívania, a pravidlá súkromia pre %{instance}
themes:
- contrast: Vysoký kontrast
- default: Mastodon
+ contrast: Mastodon (vysoký kontrast)
+ default: Mastodon (tmavý)
mastodon-light: Mastodon (svetlý)
time:
formats:
@@ -853,14 +927,30 @@ 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 máš účet obmedzený, tvoje príspevky 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 príspevky 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.
explanation: Tu nájdeš nejaké tipy do začiatku
final_action: Začni prispievať
- final_step: 'Začnite písať! Aj bez následovníkov budú vaše verejné správy videné ostatnými, napríklad na lokálnej osi a pod haštagmi. Môžete sa ostatným predstaviť pod haštagom #introductions.'
+ final_step: 'Začni písať! Aj bez následovateľov budú tvoje verejné príspevky videné ostatnými, napríklad na miestnej osi a pod haštagmi. Ak chceš, môžeš sa ostatným predstaviť pod haštagom #introductions.'
full_handle: Adresa tvojho profilu v celom formáte
- full_handle_hint: Toto je čo musíš dať vedieť svojím priateľom aby ti mohli posielať správy, alebo ťa následovať z inej instancie.
+ full_handle_hint: Toto je čo musíš dať vedieť svojím priateľom aby ti mohli posielať správy, alebo ťa následovať z iného serveru.
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
diff --git a/config/locales/sl.yml b/config/locales/sl.yml
index f35d5f09e..35cba927b 100644
--- a/config/locales/sl.yml
+++ b/config/locales/sl.yml
@@ -54,6 +54,7 @@ sl:
two: Sledilci
following: Sledim
joined: Se je pridružil na %{date}
+ last_active: zadnji aktivni
link_verified_on: Lastništvo te povezave je bilo preverjeno na %{date}
media: Medij
moved_html: "%{name} se je prestavil na %{new_profile_link}:"
@@ -77,8 +78,11 @@ sl:
moderator: Mod
unfollow: Prenehaj slediti
admin:
+ account_actions:
+ action: Izvedi dejanje
+ title: Izvedi moderirano dejanje %{acct}
account_moderation_notes:
- create: Pusti sporočilo
+ create: Pusti opombo
created_msg: Uspešno ustvarjena opomba moderiranja!
delete: Izbriši
destroyed_msg: Moderirana opomba je uspešno uničena!
@@ -96,6 +100,7 @@ sl:
confirm: Potrdi
confirmed: Potrjeno
confirming: Potrjujem
+ deleted: Izbrisano
demote: Ponižaj
disable: Onemogoči
disable_two_factor_authentication: Onemogoči 2FA
@@ -111,8 +116,11 @@ sl:
followers: Sledilci
followers_url: URL sledilci
follows: Sledi
+ header: Glava
inbox_url: URl v mapi "Prejeto"
+ invited_by: Povabljen od
ip: IP
+ joined: Pridružil
location:
all: Vse
local: Lokalno
@@ -122,6 +130,7 @@ sl:
media_attachments: Medijske priloge
memorialize: Spremenite v spomin
moderation:
+ active: Dejaven
all: Vse
silenced: Utišan
suspended: Suspendiran
@@ -129,9 +138,265 @@ sl:
moderation_notes: Opombe moderiranja
most_recent_activity: Zadnja aktivnost
most_recent_ip: Zadnji IP
+ no_limits_imposed: Brez omejitev
+ not_subscribed: Ni naročeno
+ outbox_url: URl za pošiljanje
+ perform_full_suspension: Začasno ustavi
+ profile_url: URL profila
promote: Spodbujanje
- remote_interaction:
- prompt: 'Želite interakcijo s tem trobom:'
+ protocol: Protokol
+ public: Javen
+ push_subscription_expires: Naročnina PuSH preteče
+ redownload: Osveži profil
+ remove_avatar: Odstrani podobo
+ remove_header: Odstrani glavo
+ resend_confirmation:
+ already_confirmed: Ta uporabnik je že potrjen
+ send: Ponovno pošlji potrditveno e-pošto
+ success: Potrditvena e-pošta je uspešno poslana!
+ reset: Ponastavi
+ reset_password: Ponastavi geslo
+ resubscribe: Ponovno se naroči
+ role: Dovoljenja
+ roles:
+ admin: Skrbnik
+ moderator: Moderator
+ staff: Osebje
+ user: Uporabnik
+ salmon_url: Salmon URL
+ search: Poišči
+ shared_inbox_url: URL mape "Prejeto v skupni rabi"
+ show:
+ created_reports: Narejene prijave
+ targeted_reports: Prijavili drugi
+ silence: Utišaj
+ silenced: Utišan
+ statuses: Stanja
+ subscribe: Naroči
+ suspended: Suspendiran
+ title: Računi
+ unconfirmed_email: Nepotrjena e-pošta
+ undo_silenced: Razveljavi utišanje
+ undo_suspension: Razveljavi suspendiranje
+ unsubscribe: Odjavi se od naročnine
+ username: Uporabniško ime
+ warn: Opozori
+ web: Splet
+ action_logs:
+ actions:
+ assigned_to_self_report: "%{name} je prijavil %{target} sebi"
+ change_email_user: "%{name} je spremenil naslov e-pošte uporabnika %{target}"
+ confirm_user: "%{name} je potrdil naslov e-pošte uporabnika %{target}"
+ create_account_warning: "%{name} je poslal opozorilo %{target}"
+ create_custom_emoji: "%{name} je poslal nove emotikone %{target}"
+ create_domain_block: "%{name} je blokiral domeno %{target}"
+ create_email_domain_block: "%{name} je dal na črni seznam e-pošto domene %{target}"
+ demote_user: "%{name} je degradiral uporabnika %{target}"
+ destroy_custom_emoji: "%{name} je uničil emotikon %{target}"
+ destroy_domain_block: "%{name} je odblokiral domeno %{target}"
+ destroy_email_domain_block: "%{name} je dal na beli seznam e-pošto domene %{target}"
+ destroy_status: "%{name} je odstranil stanje od %{target}"
+ disable_2fa_user: "%{name} je onemogočil dvofaktorsko zahtevo za uporabnika %{target}"
+ disable_custom_emoji: "%{name} je onemogočil emotikon %{target}"
+ disable_user: "%{name} je onemogočil prijavo za uporabnika %{target}"
+ enable_custom_emoji: "%{name} je omogočil emotikon %{target}"
+ enable_user: "%{name} je omogočil prijavo za uporabnika %{target}"
+ memorialize_account: "%{name} je spremenil račun od %{target} v stran spominov"
+ promote_user: "%{name} je spodbudil uporabnika %{target}"
+ remove_avatar_user: "%{name} je odstranil podobo od %{target}"
+ reopen_report: "%{name} je ponovno odprl prijavo %{target}"
+ reset_password_user: "%{name} je ponastavil geslo od uporabnika %{target}"
+ resolve_report: "%{name} je razrešil prijavo %{target}"
+ silence_account: "%{name} je utišal račun od %{target}"
+ suspend_account: "%{name} je začasno ustavil račun od %{target}"
+ unassigned_report: "%{name} je nedodeljeno prijavil %{target}"
+ unsilence_account: "%{name} je preklical utišanje računa od %{target}"
+ unsuspend_account: "%{name} je aktiviral račun od %{target}"
+ update_custom_emoji: "%{name} je posodobil emotikone %{target}"
+ update_status: "%{name} je posodobil stanje od %{target}"
+ deleted_status: "(izbrisano stanje)"
+ title: Dnevnik revizije
+ custom_emojis:
+ by_domain: Domena
+ copied_msg: Lokalna kopija emotikona je bila uspešno ustvarjena
+ copy: Kopiraj
+ copy_failed_msg: Lokalne kopije emotikona ni bilo mogoče ustvariti
+ created_msg: Emotikon je uspešno ustvarjen!
+ delete: Izbriši
+ destroyed_msg: Emotikon je uspešno uničen!
+ disable: Onemogoči
+ disabled_msg: Ta emotikon je uspešno onemogočen
+ emoji: Emotikon
+ enable: Omogoči
+ enabled_msg: Ta emotikon je uspešno omogočen
+ image_hint: PNG do 50KB
+ listed: Navedeno
+ new:
+ title: Dodaj nove emotikone
+ overwrite: Prepiši
+ shortcode: Kratka koda
+ shortcode_hint: Najmanj 2 znaka, samo alfanumerični znaki in podčrtaji
+ title: Emotikoni po meri
+ unlisted: Neuvrščeni
+ update_failed_msg: Tega emotikona ni bilo mogoče posodobiti
+ updated_msg: Emotikon je uspešno posodobljen!
+ upload: Pošlji
+ dashboard:
+ backlog: Zaostala opravila
+ config: Nastavitve
+ feature_deletions: Brisanje računov
+ feature_invites: Poveza povabil
+ feature_profile_directory: Mapa profila
+ feature_registrations: Registracije
+ feature_relay: Rele federacije
+ features: Zmožnosti
+ hidden_service: Federacija s skritimi storitvami
+ open_reports: odprte prijave
+ recent_users: Nedavni uporabniki
+ search: Iskanje po celotnem besedilu
+ single_user_mode: Način enega uporabnika
+ software: Programska oprema
+ space: Uporaba prostora
+ title: Nadzorna plošča
+ total_users: Skupaj uporabnikov
+ trends: Trendi
+ week_interactions: interakcije ta teden
+ week_users_active: aktivni ta teden
+ week_users_new: uporabniki ta teden
+ domain_blocks:
+ add_new: Dodaj nov domenski blok
+ created_msg: Domenski blok se sedaj obdeluje
+ destroyed_msg: Domenski blok je bil razveljavljen
+ domain: Domena
+ new:
+ create: Ustvari blok
+ hint: Domenski blok ne bo preprečil ustvarjanja vnosov računov v zbirko podatkov, ampak bo retroaktivno in samodejno uporabil posebne metode moderiranja na teh računih.
+ severity:
+ desc_html: "
Utišaj bo vse objave računa naredil nevidne vsem, ki jih ne sledijo.
Suspendiraj bo odstranil vso vsebino, medije in podatke profila računa. Uporabi
nič, če želite le zavrniti predstavnostne datoteke."
+ noop: Nič
+ silence: Utišaj
+ suspend: Suspendiraj
+ title: Nov domenski blok
+ reject_media: Zavrni predstavnostne datoteke
+ reject_media_hint: Odstrani lokalno shranjene predstavnostne datoteke in zavrača prenašanje le-teh v prihodnosti. Za suspenzije ni pomembno
+ reject_reports: Zavrnjene prijave
+ reject_reports_hint: Prezri vse prijave, ki pridejo iz te domene. Za suspenzije ni pomembno
+ rejecting_media: zavrnitev predstavnostnih datotek
+ rejecting_reports: zavrnitev prijav
+ severity:
+ silence: utišani
+ suspend: suspendirani
+ show:
+ affected_accounts:
+ few: "%{count} računov v bazi podatkov so prizadeti"
+ one: En račun v bazi podatkov je prizadet
+ other: "%{count} računov v bazi podatkov so prizadeti"
+ two: "%{count} računov v bazi podatkov so prizadeti"
+ retroactive:
+ silence: Prekliči utišanje za vse obstoječe račune iz te domene
+ suspend: Odsuspendiraj vse obstoječe račune iz te domene
+ title: Razveljavi domenski blok za %{domain}
+ undo: Razveljavi
+ undo: Razveljavi domenski blok
+ email_domain_blocks:
+ add_new: Dodaj novo
+ created_msg: Domena e-pošte je bila uspešno dodana na črni seznam
+ delete: Izbriši
+ destroyed_msg: Domena e-pošte je bila uspešno izbrisana iz črnega seznama
+ domain: Domena
+ new:
+ create: Dodaj domeno
+ title: Nov vnos e-pošte na črni seznam
+ title: Črni seznam e-pošte
+ followers:
+ back_to_account: Nazaj na račun
+ title: Sledilci od %{acct}
+ instances:
+ delivery_available: Na voljo je dostava
+ known_accounts:
+ few: "%{count} znanih računov"
+ one: "%{count} znan račun"
+ other: "%{count} znanih računov"
+ two: "%{count} znanih računov"
+ moderation:
+ all: Vse
+ limited: Omejeno
+ title: Moderiranje
+ title: Federacija
+ total_blocked_by_us: Blokirano iz naše strani
+ total_followed_by_them: Oni ti sledijo
+ total_followed_by_us: Mi ti sledimo
+ total_reported: Poročila o njih
+ total_storage: Predstavnostne priloge
+ invites:
+ deactivate_all: Onemogoči vse
+ filter:
+ all: Vse
+ available: Razpoložljivo
+ expired: Potekel
+ title: Filter
+ title: Povabila
+ relays:
+ add_new: Dodaj nov rele
+ delete: Izbriši
+ description_html: "
Rele federacije je posredniški strežnik, ki si izmenjuje velike količine javnih trobov med strežniki, ki so se naročili in objavili na njem.
Majhnim in srednjim strežnikom lahko pomaga pri odkrivanju vsebine iz sistema fediverse, kar bi sicer zahtevalo, da lokalni uporabniki ročno sledijo druge osebe na oddaljenih strežnikih."
+ disable: Onemogoči
+ disabled: Onemogočeno
+ enable: Omogoči
+ enable_hint: Ko je omogočen, se bo vaš strežnik naročil na vse javne trobe iz tega releja in začel pošiljati javne trobe tega strežnika.
+ enabled: Omogočeno
+ inbox_url: URL releja
+ pending: Čakanje na odobritev releja
+ save_and_enable: Shrani in omogoči
+ setup: Nastavi povezavo releja
+ status: Stanje
+ title: Releji
+ report_notes:
+ created_msg: Opomba o prijavi je uspešno ustvarjena!
+ destroyed_msg: Opomba o prijavi je uspešno izbrisana!
+ reports:
+ account:
+ note: opomba
+ report: prijava
+ action_taken_by: Dejanje, ki ga je sprejel
+ are_you_sure: Ali ste prepričani?
+ assign_to_self: Dodeli meni
+ assigned: Dodeljen moderator
+ comment:
+ none: Nič
+ created_at: Prijavljeno
+ mark_as_resolved: Označi kot rešeno
+ mark_as_unresolved: Označi kot nerešeno
+ notes:
+ create: Dodaj opombo
+ create_and_resolve: Razreši z opombo
+ create_and_unresolve: Ponovo odpri z opombo
+ delete: Izbriši
+ placeholder: Opišite dejanja, ki ste jih izvedli, ali katere koli druge posodobitve...
+ reopen: Ponovno odpri prijavo
+ report: 'Prijavi #%{id}'
+ reported_account: Prijavljeni račun
+ reported_by: Prijavljen od
+ resolved: Razrešeno
+ resolved_msg: Prijava je uspešno razrešena!
+ status: Stanje
+ title: Prijave
+ unassign: Odstopi
+ unresolved: Nerešeno
+ updated_at: Posodobljen
+ settings:
+ activity_api_enabled:
+ desc_html: Številke lokalno objavljenih stanj, aktivnih uporabnikov in novih registracij na tedenskih seznamih
+ title: Objavi združeno statistiko o dejavnosti uporabnikov
+ bootstrap_timeline_accounts:
+ desc_html: Več uporabniških imen ločite z vejico. Deluje samo na lokalnih in odklenjenih računih. Privzeto, ko je prazno, pri vseh lokalnih skrbnikih.
+ title: Privzeta sledenja za nove uporabnike
+ contact_information:
+ email: Poslovna e-pošta
+ username: Uporabniško ime stika
+ custom_css:
+ desc_html: Spremeni videz z naloženim CSS na vsaki strani
+ title: CSS po meri
statuses:
pin_errors:
ownership: Trob nekoga drugega ne more biti pripet
diff --git a/config/locales/sq.yml b/config/locales/sq.yml
new file mode 100644
index 000000000..b542ffc97
--- /dev/null
+++ b/config/locales/sq.yml
@@ -0,0 +1,1010 @@
+---
+sq:
+ about:
+ about_hashtag_html: Këto janë mesazhe publike të etiketuar me
#%{hashtag}. Mundeni të ndërveproni me ta, nëse keni një llogari kudo qoftë në fediverse.
+ about_mastodon_html: Mastodon-i është një rrjet shoqëror i bazuar në protokolle web të hapur dhe në software të lirë, me burim të hapur. Është i decentralizuar, si email-ii.
+ about_this: Mbi
+ administered_by: 'Administruar nga:'
+ api: API
+ apps: Aplikacione për celular
+ closed_registrations: Hëpërhë regjistrimet në këtë shërbyes janë të mbyllura. Por! Mund të gjeni një shërbyes tjetër për të krijuar një llogari dhe të mund të përdorni andej pikërisht të njëjtin rrjet të këtushëm.
+ contact: Kontakt
+ contact_missing: I parregulluar
+ contact_unavailable: N/A
+ documentation: Dokumentim
+ extended_description_html: |
+
Një vend i mirë për rregulla
+
Përshkrimi i zgjeruar s’është sajuar ende.
+ features:
+ humane_approach_body: Duke nxjerrë mësime nga dështimet e rrjeteve të tjera, Mastodon-i synon të bëjë zgjedhje konceptuale etike, për të luftuar keqpërdorimin e mediave shoqërore.
+ humane_approach_title: Një trajtim më njerëzor
+ not_a_product_body: Mastodon-i s’është rrjet komercial. Pa reklama, pa monetarizim të dhënash, pa gardhe. S’ka autoritet qendror.
+ not_a_product_title: Jeni një person, jo një produkt
+ real_conversation_body: Me 500 shenja në dorën tuaj për t’i përdorur dhe mbulim për sinjalizime të imta lidhur me lëndën dhe median, mund të shpreheni ashtu si dëshironi.
+ real_conversation_title: Ndërtuar për bashkëbisedim të njëmendtë
+ within_reach_body: Aplikacione të shumtë, për iOS, Android, dhe të tjera platforma, falë një ekosistemi API miqësor ndaj zhvilluesve, ju lejojnë të mbani lidhje me miqtë tuaj kudo.
+ within_reach_title: Përherë i kapshëm
+ generic_description: "%{domain} është një shërbyes te rrjeti"
+ hosted_on: Mastodon i strehuar në %{domain}
+ learn_more: Mësoni më tepër
+ other_instances: Listë shërbyesish
+ privacy_policy: Rregulla privatësie
+ source_code: Kod burim
+ status_count_after:
+ one: gjendje
+ other: gjendje
+ status_count_before: Cili krijoi
+ terms: Kushte shërbimi
+ user_count_after:
+ one: përdorues
+ other: përdorues
+ what_is_mastodon: Ç’është Mastodon-i?
+ accounts:
+ choices_html: 'Zgjedhje të %{name}:'
+ follow: Ndiqeni
+ followers:
+ one: Ndjekës
+ other: Ndjekës
+ following: Ndjekje
+ joined: U bë pjesë më %{date}
+ last_active: aktiv së fundi
+ link_verified_on: Pronësia e kësaj lidhjeje qe kontrolluar më %{date}
+ media: Media
+ moved_html: "%{name} ka kaluar te %{new_profile_link}:"
+ network_hidden: Këto të dhëna nuk mund të kihen
+ nothing_here: S’ka gjë këtu!
+ people_followed_by: Persona të ndjekur nga %{name}
+ people_who_follow: Persona që ndjekin %{name}
+ pin_errors:
+ following: Duhet ta ndiqni tashmë personin që doni të pasqyroni
+ posts:
+ one: Mesazh
+ other: Mesazhe
+ posts_tab_heading: Mesazhe
+ posts_with_replies: Mesazhe dhe përgjigje
+ reserved_username: Emri i përdoruesit është i ruajtur për dikë
+ roles:
+ admin: Përgjegjës
+ bot: Bot
+ moderator: Mod
+ unfollow: Resht së ndjekuri
+ admin:
+ account_actions:
+ action: Kryeje veprimin
+ title: Kryeni veprim moderimi te %{acct}
+ account_moderation_notes:
+ create: Lini një shënim
+ created_msg: Shënimi i moderimit u krijua me sukses!
+ delete: Fshije
+ destroyed_msg: Shënimi i moderimit u asgjësua me sukses!
+ accounts:
+ are_you_sure: A jeni i sigurt?
+ avatar: Avatar
+ by_domain: Përkatësi
+ change_email:
+ changed_msg: Email-i i llogarisë u ndryshua me sukses!
+ current_email: Email-i i tanishëm
+ label: Ndrysho email-in
+ new_email: Email i ri
+ submit: Ndrysho email-in
+ title: Ndrysho email-in për %{username}
+ confirm: Ripohojeni
+ confirmed: U ripohua
+ confirming: Po ripohohet
+ deleted: U fshi
+ demote: Zhgradoje
+ disable: Çaktivizoje
+ disable_two_factor_authentication: Çaktivizoni 2FA
+ disabled: E çaktivizuar
+ display_name: Emër në ekran
+ domain: Përkatësi
+ edit: Përpunojeni
+ email: Email
+ email_status: Gjendje email-i
+ enable: Aktivizoje
+ enabled: E aktivizuar
+ feed_url: URL prurjeje
+ followers: Ndjekës
+ followers_url: URL Ndjekësish
+ follows: Ndjekje
+ header: Krye
+ inbox_url: URL Mesazhesh të Marrë
+ invited_by: Ftuar nga
+ ip: IP
+ joined: U bë pjesë
+ location:
+ all: Krejt
+ local: Vendore
+ remote: E largët
+ title: Vendndodhje
+ login_status: Gjendje hyrjeje
+ media_attachments: Bashkëngjitje media
+ memorialize: Shndërroje në përkujtimore
+ moderation:
+ active: Aktiv
+ all: Krejt
+ silenced: U heshtua
+ suspended: Të pezulluara
+ title: Moderim
+ moderation_notes: Shënime moderimesh
+ most_recent_activity: Veprimtaria më e freskët
+ most_recent_ip: IP-ja më e freskët
+ no_limits_imposed: Pa imponim kufijsh
+ not_subscribed: Jo i pajtuar
+ outbox_url: URL Mesazhesh të Dërguar
+ perform_full_suspension: Pezulloje
+ profile_url: URL profili
+ promote: Promovojeni
+ protocol: Protokoll
+ public: Publike
+ push_subscription_expires: Pajtimi PuSH skadon më
+ redownload: Rifresko profilin
+ remove_avatar: Hiqe avatarin
+ remove_header: Hiqe kryen
+ resend_confirmation:
+ already_confirmed: Ky përdorues është i ripohuar tashmë
+ send: Ridërgo email ripohimi
+ success: Email-i i ripohimit u dërgua me sukses!
+ reset: Riktheje te parazgjedhjet
+ reset_password: Ricaktoni fjalëkalimin
+ resubscribe: Ripajtohuni
+ role: Leje
+ roles:
+ admin: Përgjegjës
+ moderator: Moderator
+ staff: Staf
+ user: Përdorues
+ search: Kërkoni
+ shared_inbox_url: URL kutie të përbashkët mesazesh
+ show:
+ created_reports: Ka bërë raportime
+ targeted_reports: Raportuar nga të tjerë
+ silence: Heshtoje
+ silenced: E heshtuar
+ statuses: Gjendje
+ subscribe: Pajtomë
+ suspended: Të pezulluara
+ title: Llogari
+ unconfirmed_email: Email i paripohuar
+ undo_silenced: Zhbëje heshtjen
+ undo_suspension: Zhbëje pezullimin
+ unsubscribe: Shpajtohuni
+ username: Emër përdoruesi
+ warn: Sinjalizoje
+ web: Web
+ action_logs:
+ actions:
+ assigned_to_self_report: "%{name} ia kaloi raportimin %{target} në ngarkim vetvetes"
+ change_email_user: "%{name} ndryshoi adresën email të përdoruesit %{target}"
+ confirm_user: "%{name} ripohoi adresën email të përdoruesit %{target}"
+ create_account_warning: "%{name} dërgoi një sinjalizim për %{target}"
+ create_custom_emoji: "%{name} ngarkoi emotikon të ri %{target}"
+ create_domain_block: "%{name} bllokoi përkatësinë %{target}"
+ create_email_domain_block: "%{name} e shtoi në listë bllokimesh përkatësinë %{target}"
+ demote_user: "%{name} zhgradoi përdoruesin %{target}"
+ destroy_custom_emoji: "%{name} asgjësoi emotikonin %{target}"
+ destroy_domain_block: "%{name} zhbllokoi përkatësinë %{target}"
+ destroy_email_domain_block: "%{name} e shtoi në listë të lejuarash përkatësinë %{target}"
+ destroy_status: "%{name} hoqi gjendje nga %{target}"
+ disable_2fa_user: "%{name} çaktivizoi domosdoshmëritë për dyfaktorësh për përdoruesin %{target}"
+ disable_custom_emoji: "%{name} çaktivizoi emotikonin %{target}"
+ disable_user: "%{name} çaktivizoi hyrje për përdoruesin %{target}"
+ enable_custom_emoji: "%{name} aktivizoi emotikonin %{target}"
+ enable_user: "%{name} aktivizoi hyrje për përdoruesin %{target}"
+ memorialize_account: "%{name} e shndërroi llogarinë e %{target} në një faqe përkujtimore"
+ promote_user: "%{name} gradoi përdoruesin %{target}"
+ remove_avatar_user: "%{name} hoqi avatarin e %{target}"
+ reopen_report: "%{name} rihapi raportimin %{target}"
+ reset_password_user: "%{name} ricaktoi fjalëkalimi për përdoruesin %{target}"
+ resolve_report: "%{name} zgjidhi raportimin %{target}"
+ silence_account: "%{name} heshtoi llogarinë e %{target}"
+ suspend_account: "%{name} pezulloi llogarinë e %{target}"
+ unassigned_report: "%{name} rihapi raportimin %{target}"
+ unsilence_account: "%{name} hoqi heshtimin për llogarinë %{target}"
+ unsuspend_account: "%{name} hoqi pezullimin për llogarinë e %{target}"
+ update_custom_emoji: "%{name} përditësoi emotikonin %{target}"
+ update_status: "%{name} përditësoi gjendjen me %{target}"
+ deleted_status: "(fshiu gjendjen)"
+ title: Auditim regjistri
+ custom_emojis:
+ by_domain: Përkatësi
+ copied_msg: Kopja vendore e emotikonëve u krijua me sukses
+ copy: Kopjoje
+ copy_failed_msg: S’u bë dot një kopje vendore e emotikoneve
+ created_msg: Emotikoni u krijua me sukses!
+ delete: Fshije
+ destroyed_msg: Emotikoni u asgjësua me sukses!
+ disable: Çaktivizoje
+ disabled_msg: Ai emotikon u çaktivizua me sukses
+ emoji: Emotikon
+ enable: Aktivizoje
+ enabled_msg: Ai emotikon u aktivizua me sukses
+ image_hint: PNG deri 50KB
+ listed: Në listë
+ new:
+ title: Shtoni emotikon të ri vetjak
+ overwrite: Mbishkruaje
+ shortcode: Kod i shkurtër
+ shortcode_hint: Të paktën 2 shenja, vetëm shenja alfanumerike dhe nënvija
+ title: Emotikone vetjake
+ unlisted: Hequr prej liste
+ update_failed_msg: S’u përditësua dot ai emotikon
+ updated_msg: Emotikoni u përditësua me sukses!
+ upload: Ngarkoje
+ dashboard:
+ backlog: punë të prapambetura
+ config: Formësim
+ feature_deletions: Fshirje llogarish
+ feature_invites: Lidhje ftesash
+ feature_profile_directory: Drejtori profilesh
+ feature_registrations: Regjistrime
+ feature_relay: Rele federimi
+ features: Veçori
+ hidden_service: Federim me shërbime të fshehura
+ open_reports: raportime të hapur
+ recent_users: Përdorues së fundi
+ search: Kërko tekstin e plotë
+ single_user_mode: Mënyrë me përdorues të vetëm
+ software: Software
+ space: Përdorim hapësire
+ title: Pult
+ total_users: përdorues gjithsej
+ trends: Tendenca
+ week_interactions: ndërveprime këtë javë
+ week_users_active: aktivë këtë javë
+ week_users_new: përdorues këtë javë
+ domain_blocks:
+ add_new: Shtoni bllokim të ri përkatësie
+ created_msg: Bllokimi i përkatësisë tani po përpunohet
+ destroyed_msg: Bllokimi i përkatësisë u hoq
+ domain: Përkatësi
+ new:
+ create: Krijoni bllokim
+ hint: Bllokimi i përkatësisë nuk do të pengojë krijim zërash llogarie te baza e të dhënave, por do të aplikojë në mënyrë retroaktive dhe të vetvetishme metoda specifike moderimi mbi këto llogari.
+ severity:
+ desc_html: "
Heshtja do t’i bëjë postimet e llogarisë të padukshme për këdo që nuk i ndjek ato.
Pezullimi do të heqë krejt lëndën e llogarisë, media, dhe të dhëna profili. Përdorni
Asnjë, nëse thjesht doni të mos pranohen kartela media."
+ noop: Asnjë
+ silence: Heshtoji
+ suspend: Pezulloje
+ title: Bllokim i ri përkatësie
+ reject_media: Mos prano kartela media
+ reject_media_hint: Heq kartela media të depozituara lokalisht dhe nuk pranon të shkarkohen të tilla në të ardhmen. Pa peshë për pezullimet
+ reject_reports: Hidh tej raportimet
+ reject_reports_hint: Shpërfillini krejt raportimet e ardhura nga kjo përkatësi. Pa peshë për pezullimet
+ rejecting_media: mospranim kartelash media
+ rejecting_reports: mospranim raportimesh
+ severity:
+ silence: e heshtuar
+ suspend: e pezulluar
+ show:
+ affected_accounts:
+ one: Pat ndikim te një llogari në bazën e të dhënave
+ other: Pat ndikim te %{count} llogari në bazën e të dhënave
+ retroactive:
+ silence: Hiqu heshtimin krejt llogarive ekzistuese nga kjo përkatësi
+ suspend: Hiqu pezullimin krejt llogarive ekzistuese nga kjo përkatësi
+ title: Zhbëje bllokimin e përkatësisë për %{domain}
+ undo: Zhbëje
+ undo: Zhbëje bllokimin e përkatësisë
+ email_domain_blocks:
+ add_new: Shtoni të ri
+ created_msg: Përkatësia email u shtua me sukses te lista e bllokimeve
+ delete: Fshije
+ destroyed_msg: Përkatësia email u fshi me sukses nga lista e bllokimeve
+ domain: Përkatësi
+ new:
+ create: Shtoni përkatësi
+ title: Zë i ri email në listë bllokimesh
+ title: Listë bllokimesh email-esh
+ followers:
+ back_to_account: Mbrapsht Te Llogaria
+ title: Ndjekës të %{acct}
+ instances:
+ delivery_available: Ka shpërndarje të mundshme
+ known_accounts:
+ one: "%{count} llogari e njohur"
+ other: "%{count} llogari të njohura"
+ moderation:
+ all: Krejt
+ limited: E kufizuar
+ title: Moderim
+ title: Federim
+ total_blocked_by_us: Bllokuar nga ne
+ total_followed_by_them: Ndjekur prej tyre
+ total_followed_by_us: Ndjekur nga ne
+ total_reported: Raportime rreth tyre
+ total_storage: Bashkëngjitje media
+ invites:
+ deactivate_all: Çaktivizoji krejt
+ filter:
+ all: Krejt
+ available: I përdorshëm
+ expired: I skaduar
+ title: Filtër
+ title: Ftesa
+ relays:
+ add_new: Shtoni rele të re
+ delete: Fshije
+ description_html: Një
rele federimesh është një shërbyes ndërmjetës që shkëmben vëllime të mëdha mesazhesh publike mes shërbyesve që janë pajtuar në të dhe publikojnë në të.
Mund t’u vijë në ndihmë shërbyesve të vegjël dhe të mesëm të gjejnë lëndë nga fediversi, gjë që përndryshe do të kërkonte që përdoruesit vendorë të ndiqnin dorazi persona të tjerë nëpër shërbyes të largët.
+ disable: Çaktivizoje
+ disabled: E çaktivizuar
+ enable: Aktivizoje
+ enable_hint: Pasi të aktivizohet, shërbyesi juaj do të pajtohet te krejt mesazhet publike prej kësaj releje, dhe do të fillojë të dërgojë në të mesazhet publike të këtij shërbyesi.
+ enabled: E aktivizuar
+ inbox_url: URL releje
+ pending: Në pritje të miratimit të relesë
+ save_and_enable: Ruaje dhe aktivizoje
+ setup: Ujdisni një lidhje releje
+ status: Gjendje
+ title: Rele
+ report_notes:
+ created_msg: Shënimi i raportimit u krijua me sukses!
+ destroyed_msg: Shënimi i raportimit u fshi me sukses!
+ reports:
+ account:
+ note: shënim
+ report: raportojeni
+ action_taken_by: Veprimi i ndërmarrë nga
+ are_you_sure: A jeni i sigurt?
+ assign_to_self: Caktojani vetes
+ assigned: Iu caktua moderator
+ comment:
+ none: Asnjë
+ created_at: Raportuar më
+ mark_as_resolved: Vëri shenjë si i zgjidhur
+ mark_as_unresolved: Vëri shenjë si të pazgjidhur
+ notes:
+ create: Shtoni shënim
+ create_and_resolve: Zgjidhe me shënim
+ create_and_unresolve: Rihape me shënim
+ delete: Fshije
+ placeholder: Përshkruani ç’veprime janë ndërmarrë, ose çfarëdo përditësimi tjetër që lidhet me të…
+ reopen: Rihape raportimin
+ report: 'Raportim #%{id}'
+ reported_account: Llogari e raportuar
+ reported_by: Raportuar nga
+ resolved: I zgjidhur
+ resolved_msg: Raportimi u zgjidh me sukses!
+ status: Gjendje
+ title: Raportime
+ unassign: Hiqja
+ unresolved: Të pazgjidhur
+ updated_at: U përditësua më
+ settings:
+ activity_api_enabled:
+ desc_html: Numër gjendjesh të postuara lokalisht, përdorues aktivë, dhe regjistrime të reja në kosha javorë
+ title: Botoni statistika përmbledhëse mbi veprimtarinë e përdoruesve
+ bootstrap_timeline_accounts:
+ desc_html: Emrat e përdoruesve ndajini prej njëri-tjetrit me presje. Do të funksionojë vetëm për llogari vendore dhe të pakyçura. Si parazgjedhje, kur lihet e zbrazët, është krejt përgjegjësit vendorë.
+ title: Ndjekje parazgjedhje për përdorues të rinj
+ contact_information:
+ email: Email biznesi
+ username: Emër përdoruesi kontakti
+ custom_css:
+ desc_html: Modifikojeni pamjen me CSS të nagrkuar në çdo faqe
+ title: CSS Vetjake
+ hero:
+ desc_html: E shfaqur në faqen ballore. Këshillohet të paktën 600x100px. Kur nuk caktohet gjë, përdoret miniaturë e shërbyesit
+ title: Figurë heroi
+ mascot:
+ desc_html: E shfaqur në faqe të shumta. Këshillohet të paktën 293x205. Kur nuk caktohet gjë, përdoret simboli parazgjedhje
+ title: Figurë simboli
+ peers_api_enabled:
+ desc_html: Emra përkatësish që ka hasur në fedivers ky shërbyes
+ title: Boto listë shërbyesish të gjetur
+ preview_sensitive_media:
+ desc_html: Në sajte të tjera, paraparjet e lidhjeve do të shfaqin një miniaturë, edhe pse medias i është vënë shenjë si rezervat
+ title: Shfaq në paraparje OpenGraph media me shenjën rezervat
+ profile_directory:
+ desc_html: Lejoju përdoruesve të jenë të zbulueshëm
+ title: Aktivizo drejtori profilesh
+ registrations:
+ closed_message:
+ desc_html: E shfaqur në faqen ballore, kur regjistrimet janë të mbyllura. Mund të përdorni etiketa HTML
+ title: Mesazh mbylljeje regjistrimesh
+ deletion:
+ desc_html: Lejo këdo të fshijë llogarinë e vet
+ title: Hapni fshirje llogarie
+ min_invite_role:
+ disabled: Asnjë
+ title: Lejo vetëm me ftesa
+ open:
+ desc_html: Lejo cilindo të krijojë llogari
+ title: Hapni regjistrimin
+ show_known_fediverse_at_about_page:
+ desc_html: Kur përdoret, do të shfaqë mesazhe prej krejt fediversit të njohur, si paraparje. Përndryshe do të shfaqë vetëm mesazhe vendore.
+ title: Shfaq te paraparja e rrjedhës kohore fedivers të njohur
+ show_staff_badge:
+ desc_html: Shfaq një stemë stafi në faqen e një përdoruesi
+ title: Shfaq stemë stafi
+ site_description:
+ desc_html: Paragraf hyrës te faqja ballore. Përshkruani ç’e bën special këtë shërbyes Mastodon dhe çfarëdo gjëje tjetër të rëndësishme. Mund të përdorni etiketa HTML, veçanërisht
<a>
dhe
<em>
.
+ title: Përshkrim shërbyesi
+ site_description_extended:
+ desc_html: Një vend i mirë për kodin e sjelljes në shërbyesin tuaj, rregulla, udhëzime dhe gjëra të tjera që e bëjnë të veçantë këtë shërbyes. Mund të përdorni etiketa HTML
+ title: Informacion i zgjeruar vetjak
+ site_short_description:
+ desc_html: E shfaqur në anështyllë dhe etiketa meta. Përshkruani në një paragraf të vetëm ç’është Mastodon-i dhe ç’e bën special këtë shërbyes. Në u lëntë i zbrazët, për shërbyesin do të përdoret përshkrimi parazgjedhje.
+ title: Përshkrim i shkurtër shërbyesi
+ site_terms:
+ desc_html: Mund të shkruani rregullat tuaja të privatësisë, kushtet e shërbimit ose gjëra të tjera ligjore. Mund të përdorni etiketa HTML
+ title: Kushte vetjake shërbimi
+ site_title: Emër shërbyesi
+ thumbnail:
+ desc_html: I përdorur për paraparje përmes OpenGraph-it dhe API-t. Këshillohet 1200x630px
+ title: Miniaturë shërbyesi
+ timeline_preview:
+ desc_html: Shfaqni rrjedhë kohore publike te faqja ardhjesh
+ title: Paraparje rrjedhe kohore
+ title: Rregullime sajti
+ statuses:
+ back_to_account: Mbrapsht te faqja e llogarisë
+ batch:
+ delete: Fshije
+ nsfw_off: Vëri shenjë si jo rezervat
+ nsfw_on: Vëri shenjë si rezervat
+ failed_to_execute: S’u arrit të përmbushej
+ media:
+ title: Media
+ no_media: S’ka media
+ no_status_selected: S’u ndryshua ndonjë gjendje, ngaqë s’u përzgjodh ndonjë e tillë
+ title: Gjendje llogarish
+ with_media: Me media
+ subscriptions:
+ callback_url: URL Callback-u
+ confirmed: U ripohua
+ expires_in: Skadon më
+ last_delivery: Dorëzimi e fundit
+ title: WebSub
+ topic: Temë
+ tags:
+ accounts: Llogari
+ hidden: Fshehur
+ hide: Fshihe prej drejtorie
+ name: Hashtag
+ title: Hashtage
+ unhide: Shfaqe në drejtori
+ visible: E dukshme
+ title: Administrim
+ warning_presets:
+ add_new: Shtoni të ri
+ delete: Fshije
+ edit: Përpunoni
+ edit_preset: Përpunoni sinjalizim të paracaktuar
+ title: Administroni sinjalizime të paracaktuara
+ admin_mailer:
+ new_report:
+ body: "%{reporter} ka raportuar %{target}"
+ body_remote: Dikush nga %{domain} ka raportuar %{target}
+ subject: Raport i ri për %{instance} (#%{id})
+ application_mailer:
+ notification_preferences: Ndryshoni parapëlqime email-i
+ salutation: "%{name},"
+ settings: 'Ndryshoni parapëlqime email-i: %{link}'
+ view: 'Parje:'
+ view_profile: Shihni Profilin
+ view_status: Shihini gjendjen
+ applications:
+ created: Aplikacioni u krijua me sukses
+ destroyed: Aplikacioni u fshi me sukses
+ invalid_url: URL-ja e dhënë është e pavlefshme
+ regenerate_token: Riprodho token hyrjesh
+ token_regenerated: Token-i i hyrjeve u riprodhuan me sukses
+ warning: Hapni sytë me ato të dhëna. Mos ia jepni kurrë njeriu!
+ your_token: Token-i juaj për hyrje
+ auth:
+ agreement_html: Duke klikuar mbi "Regjistrohuni" më poshtë, pajtoheni të ndiqni
rregullat e shërbyesit dhe
kushtet tona të shërbimit.
+ change_password: Fjalëkalim
+ confirm_email: Ripohoni email-in
+ delete_account: Fshije llogarinë
+ delete_account_html: Nëse dëshironi të fshihni llogarinë tuaj, mund
ta bëni që këtu. Do t’ju kërkohet ta ripohoni.
+ didnt_get_confirmation: S’morët udhëzime ripohimi?
+ forgot_password: Harruat fjalëkalimin tuaj?
+ invalid_reset_password_token: Token-i i ricaktimit të fjalëkalimit është i pavlefshëm ose ka skaduar. Ju lutemi, kërkoni një të ri.
+ login: Hyni
+ logout: Dalje
+ migrate_account: Kaloni në një tjetër llogari
+ migrate_account_html: Nëse doni ta ridrejtoni këtë llogari te një tjetër, këtë mund
ta formësoni këtu.
+ or: ose
+ or_log_in_with: Ose bëni hyrjen me
+ providers:
+ cas: CAS
+ saml: SAML
+ register: Regjistrohuni
+ register_elsewhere: Regjistrohuni në një tjetër shërbyes
+ resend_confirmation: Ridërgo udhëzime ripohimi
+ reset_password: Ricaktoni fjalëkalimin
+ security: Siguri
+ set_new_password: Caktoni fjalëkalim të ri
+ authorize_follow:
+ already_following: E ndiqni tashmë këtë llogari
+ error: Mjerisht, pati një gabim gjatë kërkimit të llogarisë së largët
+ follow: Ndiqeni
+ follow_request: 'Keni dërguar një kërkesë ndjekjeje te:'
+ following: 'Sukses! Tani e ndiqni:'
+ post_follow:
+ close: Ose, thjesht mund të mbyllni këtë dritare.
+ return: Shfaq profilin e përdoruesit
+ web: Kalo në web
+ title: Ndiq %{acct}
+ datetime:
+ distance_in_words:
+ about_x_hours: "%{count}o"
+ about_x_months: "%{count}mj"
+ about_x_years: "%{count}v"
+ almost_x_years: "%{count}v"
+ half_a_minute: Mu tani
+ less_than_x_minutes: "%{count}m"
+ less_than_x_seconds: Mu tani
+ over_x_years: "%{count}v"
+ x_days: "%{count}d"
+ x_minutes: "%{count}m"
+ x_months: "%{count}mj"
+ x_seconds: "%{count}s"
+ deletes:
+ bad_password_msg: Provë e bukur, trimosha! Fjalëkalim i pasaktë
+ confirm_password: Jepni fjalëkalimin tuaj të tanishëm që të verifikohet identiteti juaj
+ description_html: Kjo të heqë
në mënyrë të përhershme, të pakthyeshme lëndë nga llogaria juaj dhe do ta çaktivizojë atë. Emri juaj i përdoruesit do të mbetet i rezervuar për të shmangur sozi të ardhme.
+ proceed: Fshini llogarinë
+ success_msg: Llogaria juaj u fshi me sukses
+ warning_html: Garantohet vetëm fshirja e lëndës prej këtij shërbyesi të veçantë. Lënda që është ndarë gjerësisht me të tjerët ka gjasa të lërë gjurmë. Shërbyesit
offline dhe shërbyesit që janë shpajtuar prej përditësimeve tuaja, s’do t’i përditësojnë bazat e tyre të të dhënave.
+ warning_title: Mund të ketë lëndë të përhapur
+ directories:
+ directory: Drejtori profilesh
+ enabled: Gjendeni te lista e drejtorisë.
+ enabled_but_waiting: Keni zgjedhur të jeni pjesë e drejtorisë, por ende s’keni numrin minimum të ndjekësve (%{min_followers}) për përfshirje në të.
+ explanation: Zbuloni përdorues bazuar në interesat e tyre
+ explore_mastodon: Eksploroni %{title}
+ how_to_enable: S’keni zgjedhur të jeni i pranishëm te drejtoria. Mund ta bëni më poshtë. Përdorni te teksti i jetëshkrimit tuaj hashtagë, për t’u përfshirë nën hashtagë specifikë!
+ people:
+ one: "%{count} person"
+ other: "%{count} persona"
+ errors:
+ '403': S’keni leje të shihni këtë faqe.
+ '404': Faqja që po kërkonit, s’gjendet këtu.
+ '410': Faqja që po kërkonit, s’gjendet më këtu.
+ '422':
+ content: Verifikimi i sigurisë dështoi. Mos i bllokoni gjë cookie-t?
+ title: Verifikimi i sigurisë dështoi
+ '429': Shumë kërkesa të bëra brenda një intervali të dhënë
+ '500':
+ content: Na ndjeni, diçka shkoi ters në anën tonë.
+ title: Kjo faqe s’është e saktë
+ noscript_html: Që të përdorni aplikacionin web Mastodon, ju lutemi, aktivizoni JavaScript-in. Ndryshe, provoni për Mastodon-in një nga
aplikacionet e brendshëm të platformës tuaj.
+ exports:
+ archive_takeout:
+ date: Datë
+ download: Shkarkoni arkivin tuaj
+ hint_html: Mund të kërkoni një arkiv të
mesazheve tuaja dhe medias së ngarkuar nga ju. Të dhënat e eksportuara do të jenë në formatin ActivityPub, të lexueshme nga cilido software i përputhshëm me të. Mund të kërkoni arkiv çdo 7 ditë.
+ in_progress: Po përpilohet arkivi juaj…
+ request: Kërkoni arkivin tuaj
+ size: Madhësi
+ blocks: Bllokoni
+ csv: CSV
+ domain_blocks: Bllokime përkatësish
+ follows: Ndiqni
+ lists: Lista
+ mutes: Heshtoni
+ storage: Depozitim për media
+ featured_tags:
+ add_new: Shtoni të re
+ errors:
+ limit: Keni përdorur tashmë si të zgjedhur sasinë maksimum të hashtagëve
+ filters:
+ contexts:
+ home: Rrjedhë kohore vetjake
+ notifications: Njoftime
+ public: Rrjedha publike kohore
+ thread: Biseda
+ edit:
+ title: Përpunoni filtër
+ errors:
+ invalid_context: Ose s’u dha fare, ose u dha kontekst i pavlefshëm
+ invalid_irreversible: Filtrim i pakthyeshëm funksionon vetëm me kontekste
home ose njoftimesh
+ index:
+ delete: Fshije
+ title: Filtra
+ new:
+ title: Shtoni filtër të ri
+ followers:
+ domain: Përkatësi
+ explanation_html: Nëse doni të garantoni privatësinë e gjendjeve tuaja, duhet të jeni në dijeni se cilët ju ndjekin.
Gjendjet tuaja private u dërgohen krejt shërbyes ku keni ndjekës. Mund të donit t’i rishqyrtoni ato, dhe të hiqni ndjekës, nëse nuk besoni se privatësia juaj respektohet nga stafi apo software-i i këtyre shërbyesve.
+ followers_count: Numër ndjekësish
+ lock_link: Kyçeni llogarinë tuaj
+ purge: Hiqe nga ndjekësit
+ success:
+ one: Në përmbushje e sipër të bllokimit të butë të ndjekësve nga një përkatësi…
+ other: Në përmbushje e sipër të bllokimit të butë të ndjekësve nga %{count} përkatësi…
+ true_privacy_html: Ju lutemi, kini parasysh se
privatësi e vërtetë mund të arrihet vetëm me fshehtëzim skaj-më-skaj.
+ unlocked_warning_html: Mund t’ju ndjekë cilido, që të shohë menjëherë gjendjet tuaja private. %{lock_link} që të jeni në gjendje të shqyrtoni dhe hidhni poshtë ndjekës.
+ unlocked_warning_title: Llogaria juaj s’është kyçur
+ footer:
+ developers: Zhvillues
+ more: Më tepër…
+ resources: Burime
+ generic:
+ changes_saved_msg: Ndryshimet u ruajtën me sukses!
+ copy: Kopjoje
+ save_changes: Ruaji ndryshimet
+ validation_errors:
+ one: Diçka s’është ende si duhet! Ju lutemi, shqyrtoni gabimin më poshtë
+ other: Diçka s’është ende si duhet! Ju lutemi, shqyrtoni %{count} gabimet më poshtë
+ imports:
+ modes:
+ merge: Përzieji
+ merge_long: Mbaji zërat ekzistues dhe shto të rinjtë
+ overwrite: Mbishkruaje
+ overwrite_long: Zëvendësoji zërat ekzistues me të rinjtë
+ preface: Mund të importoni të dhëna që keni eksportuar nga një shërbyes tjetër, bie fjala, një listë të personave që ndiqni ose bllokoni.
+ success: Të dhënat tuaja u ngarkuan me sukses dhe tani do të përpunohet në kohë
+ types:
+ blocking: Listë bllokimesh
+ domain_blocking: Listë bllokimesh përkatësish
+ following: Listë ndjekjesh
+ muting: Listë heshtimesh
+ upload: Ngarkoje
+ in_memoriam_html: In Memoriam.
+ invites:
+ delete: Çaktivizoje
+ expired: Ka skaduar
+ expires_in:
+ '1800': 30 minuta
+ '21600': 6 orë
+ '3600': 1 orë
+ '43200': 12 orë
+ '604800': 1 javë
+ '86400': 1 ditë
+ expires_in_prompt: Kurrë
+ generate: Prodhoje
+ invited_by: 'Qetë ftuar nga:'
+ max_uses:
+ one: 1 përdorim
+ other: "%{count} përdorime"
+ max_uses_prompt: Pa kufi
+ prompt: Prodhoni dhe ndani me të tjerët lidhje për të akorduar hyrje në këtë shërbyes
+ table:
+ expires_at: Skadon më
+ uses: Përdorime
+ title: Ftoni njerëz
+ lists:
+ errors:
+ limit: Keni mbërritur në numrin maksimum të sasisë së listave
+ media_attachments:
+ validations:
+ images_and_video: S’mund të bashkëngjitet video te një gjendje që përmban figura tashmë
+ too_many: S’mund të bashkëngjiten më shumë se 4 kartela
+ migrations:
+ acct: emërpërdoruesi@përkatësi e llogarisë së re
+ currently_redirecting: 'Profili juaj është caktuar të ridrejtojë te:'
+ proceed: Ruaje
+ updated_msg: Rregullimi juaj për migrim llogarish u përditësua me sukses!
+ moderation:
+ title: Moderim
+ notification_mailer:
+ digest:
+ action: Shihini krejt njoftimet
+ body: Ja një përmbledhje e shkurtër e mesazheve që keni humbur që nga vizita juaj e fundit më %{since}
+ mention: "%{name} ju ka përmendur te:"
+ new_followers_summary:
+ one: Veç kësaj, u bëtë me një ndjekës të ri, teksa s’ishit këtu! Ëhë!
+ other: Veç kësaj, u bëtë me %{count} ndjekës të rinj, teksa s’ishit këtu! Shkëlqyeshëm!
+ subject:
+ one: "1 njoftim i ri që nga vizita juaj e fundit \U0001F418"
+ other: "%{count} 1 njoftime të reja që nga vizita juaj e fundit \U0001F418"
+ title: Gjatë mungesës tuaj…
+ favourite:
+ body: 'Gjendja juaj u parapëlqye nga %{name}:'
+ subject: "%{name} parapëlqeu gjendjen tuaj"
+ title: E parapëlqyer e re
+ follow:
+ body: Tani ju ndjek %{name}!
+ subject: Tani ju ndjek %{name}
+ title: Ndjekës i ri
+ follow_request:
+ action: Administroni kërkesa ndjekjeje
+ body: "%{name} ka kërkuar t’ju ndjekë"
+ subject: 'Ndjekës pezull: %{name}'
+ title: Kërkesë e re ndjekjeje
+ mention:
+ action: Përgjigjuni
+ body: 'U përmendët nga %{name} në:'
+ subject: U përmendët nga %{name}
+ title: Përmendje e re
+ reblog:
+ body: 'Gjendja juaj u përforcua nga %{name}:'
+ subject: "%{name} përforcoi gjendjen tuaj"
+ title: Përforcim i ri
+ number:
+ human:
+ decimal_units:
+ format: "%n%u"
+ units:
+ billion: B
+ million: M
+ quadrillion: K
+ thousand: K
+ trillion: T
+ pagination:
+ newer: Më të ri
+ next: Pasuesi
+ older: Më të vjetër
+ prev: I mëparshmi
+ truncate: "…"
+ preferences:
+ languages: Gjuhë
+ other: Tjetër
+ publishing: Publikim
+ web: Web
+ remote_follow:
+ acct: Jepni çiftin tuaj emërpërdoruesi@përkatësi prej të cilit doni që të veprohet
+ missing_resource: S’u gjet dot URL-ja e domosdoshme e ridrejtimit për llogarinë tuaj
+ no_account_html: S’keni llogari? Mund të
regjistroheni këtu
+ proceed: Ripohoni ndjekjen
+ prompt: 'Do të ndiqni:'
+ reason_html: "
Pse është i domosdoshëm ky hap? %{instance}
mund të mos jetë shërbyesi ku jeni regjistruar, ndaj na duhet t’ju ridrejtojmë së pari te shërbyesi juaj Home."
+ remote_interaction:
+ favourite:
+ proceed: Ripohoni parapëlqimin
+ prompt: 'Doni të parapëlqeni këtë mesazh:'
+ reblog:
+ proceed: Ripohoni përforcimin
+ prompt: 'Doni të përforconi këtë mesazh:'
+ reply:
+ proceed: Ripohoni përgjigjen
+ prompt: 'Doni t’i përgjigjeni këtij mesazhi:'
+ remote_unfollow:
+ error: Gabim
+ title: Titull
+ unfollowed: U hoq ndjekja
+ scheduled_statuses:
+ over_daily_limit: Keni tejkaluar kufirin e %{limit} mesazheve të planifikuara për atë ditë
+ over_total_limit: Keni tejkaluar kufirin prej %{limit} mesazhesh të planifikuara
+ too_soon: Data e planifikimit duhet të bjerë në të ardhmen
+ sessions:
+ activity: Veprimtaria e fundit
+ browser: Shfletues
+ browsers:
+ alipay: Alipay
+ blackberry: Blackberry
+ chrome: Chrome
+ edge: Microsoft Edge
+ electron: Electron
+ firefox: Firefox
+ generic: Shfletues i panjohur
+ ie: Internet Explorer
+ micro_messenger: MicroMessenger
+ nokia: Shfletues Nokia S40 Ovi
+ opera: Opera
+ otter: Otter
+ phantom_js: PhantomJS
+ qq: QQ Browser
+ safari: Safari
+ uc_browser: UCBrowser
+ weibo: Weibo
+ current_session: Sesioni i tanishëm
+ description: "%{browser} në %{platform}"
+ explanation: Këta janë shfletuesit e futur në këtë çast te llogaria juaj Mastodon.
+ ip: IP
+ platforms:
+ adobe_air: Adobe Air
+ android: Android
+ blackberry: Blackberry
+ chrome_os: ChromeOS
+ firefox_os: Firefox OS
+ ios: iOS
+ linux: Linux
+ mac: Mac
+ other: platformë e panjohur
+ windows: Windows
+ windows_mobile: Windows Mobile
+ windows_phone: Windows Phone
+ revoke: Shfuqizoje
+ revoke_success: Sesioni u shfuqizua me sukses
+ title: Sesione
+ settings:
+ authorized_apps: Aplikacione të autorizuara
+ back: Mbrapsht te Mastodon
+ delete: Fshirje llogarie
+ development: Zhvillim
+ edit_profile: Përpunoni profilin
+ export: Eksportim të dhënash
+ featured_tags: Hashtagë të zgjedhur
+ followers: Ndjekës të autorizuar
+ import: Importo
+ migrate: Migrim llogarie
+ notifications: Njoftime
+ preferences: Parapëlqime
+ settings: Rregullime
+ two_factor_authentication: Mirëfilltësim Dyfaktorësh
+ your_apps: Aplikacionet tuaja
+ statuses:
+ attached:
+ description: 'Bashkëngjitur: %{attached}'
+ image:
+ one: "%{count} figurë"
+ other: "%{count} figura"
+ video:
+ one: "%{count} video"
+ other: "%{count} video"
+ boosted_from_html: Përforcuar nga %{acct_link}
+ content_warning: 'Sinjalizim lënde: %{warning}'
+ disallowed_hashtags:
+ one: 'përmbante një hashtag të palejuar: %{tags}'
+ other: 'përmbante hashtagët e palejuar: %{tags}'
+ language_detection: Zbulo gjuhë vetvetiu
+ open_in_web: Hape në internet
+ over_character_limit: u tejkalua kufi shenjash prej %{max}
+ pin_errors:
+ limit: Keni fiksuar tashmë numrin maksimum të mesazheve
+ ownership: S’mund të fiksohen mesazhet e të tjerëve
+ private: S’mund të fiksohet mesazh jopublik
+ reblog: S’mund të fiksohet një përforcim
+ show_more: Shfaq më tepër
+ sign_in_to_participate: Bëni hyrjen, që të merrni pjesë te biseda
+ title: '%{name}: "%{quote}"'
+ visibilities:
+ private: Vetëm ndjekësve
+ private_long: Shfaqua vetëm ndjekësve
+ public: Publike
+ public_long: Mund ta shohë kushdo
+ unlisted: Jo në listë
+ unlisted_long: Mund ta shohë gjithkush, por s’gjendet në rrjedha publike kohore
+ stream_entries:
+ pinned: Mesazh i fiksuar
+ reblogged: të përforcuara
+ sensitive_content: Lëndë me spec
+ terms:
+ body_html: |
+
Rregulla Privatësie
+
Ç’të dhëna grumbullojmë?
+
+
+ - Të dhëna bazë llogarie: Nëse regjistroheni në këtë shërbyes, mund t’ju kërkohet të jepni një emër përdoruesi, një adresë email dhe një fjalëkalim. Mundet të jepni edhe të dhëna shtesë profili, të tilla si emër në ekran dhe jetëshkrim, dhe të ngarkoni një foto profili dhe figurë kryesh. Emri i përdoruesit, emri për në ekran, jetëshkrimi, fotoja e profilit dhe figura për kryet shfaqen përherë publikisht.
+ - Postime, ndjekje dhe të tjera të dhëna publike: Lista e personave që ndiqni shfaqet publikisht, po njësoj edhe ajo e ndjekësve tuaj. Kur parashtroni një mesazh, depozitohet data dhe koha, si dhe aplikacioni prej nga u parashtrua mesazhi. Mesazhet mund të përmbajnë bashkëngjitje media, bie fjala, foto dhe video. Postimet publike dhe ato të pashfaqura janë të passhme publikisht. Kur një postim e vini të zgjedhur në profilin tuaj, edhe ky është informacion i passhëm publikisht. Postimet tuaja janë u dërgohen ndjekësve tuaj, në disa raste kjo do të thotë se dërgohen në shërbyes të ndryshëm dhe në ta depozitohen kopje të tyre. Kur fshini postime, edhe kjo u dërgohet ndjekësve tuaj. Veprimi i riblogimit apo i parapëlqimit të një postimi tjetër është përherë publik.
+ - Postime të drejtpërdrejta dhe ato vetëm për ndjekësit: Krejt postimet depozitohen dhe trajtohen te shërbyesi. Postimet vetëm për ndjekës u dërgohen ndjekësve tuaj të cilët përmenden në to, dhe postimet e drejtpërdrejta u dërgohen vetëm përdoruesve të përmendur në to. Në disa raste kjo do të thotë se dërgohen në shërbyes të ndryshëm dhe në ta depozitohen kopje të tyre. Përpiqemi pa hile të kufizojmë hyrjen në këto postime vetëm të personave të autorizuar, por shërbyesit e tjerë mund të mos bëjnë të njëjtën gjë. Ndaj është e rëndësishme të shqyrtoni shërbyesit pjesë e të cilëve janë ndjekësit tuaj. Te rregullimet mund të përdorni një mundësi për të miratuar ose hedhur poshtë dorazi ndjekës të rinj. Ju lutemi, mbani parasysh se operatorët e shërbyesit dhe cilido shërbyes marrës mund t’i shohin mesazhe të tillë, dhe që marrësit mund të bëjnë për ta foto ekrani, t’i kopjojnë ose t’i rindajnë ato me të tjerët. Mos u jepni të tjerëve të dhëna të rrezikshme përmes Mastodon-it.
+ - IP dhe të tjera tejtëdhëna: Kur bëni hyrjen, regjistrojmë adresën IP prej nga hytë, si dhe emrin e shfletuesit tuaj. Krejt sesionet e hyrjeve janë të shqyrtueshme nga ju dhe shfuqizim, që nga rregullimet. Adresa e fundit IP e përdorur depozitohet për 12 muaj. Mund të mbajmë edhe regjistra shërbyesi të cilët përfshijnë adresën IP të çdo kërkese ndaj shërbyesit tonë.
+
+
+
+
+
Përse i përdorim të dhënat tuaja?
+
+
Cilado prej të dhënave që grumbullojmë prej jush mund të përdoret në rrugët vijuese:
+
+
+ - Për të mundësuar funksionimin bazë të Mastodon-it. Mundeni të ndërveproni me lëndën e personave të tjerë dhe të postoni lëndë tuajën vetëm kur jeni i futur në llogarinë tuaj. Për shembull, mund të ndiqni njerëz të tjerë për të parë postimet e tyre të ndërthurura te rrjedha juaj kohore e përshtatur.
+ - Për të ndihmuar moderimin e bashkësisë, për shembull, duke krahasuar adresën tuaj IP me të tjera të njohura, për të përcaktuar shmangie nga dëbime ose cenime të tjera.
+ - Adresa email që jepni mund të përdoret për t’ju dërguar informacion, njoftime mbi persona të tjerë që ndërveprojnë me lëndën tuaj ose që ju dërgojnë mesazhe, dhe për t’iu përgjigju pyetjeve dhe/ose kërkesave të tjera.
+
+
+
+
+
Si i mbrojmë të dhënat tuaja?
+
+
Vëmë në punë një larmi masash sigurie për të ruajtur të parrezikuara të dhënat tuaja personale kur jepni, parashtroni, ose hyni në to. Mes të tjerash, sesioni juaj i shfletimit, si edhe trafiku mes aplikacioneve tuaja dhe API-t, sigurohen me SSL, dhe fjalëkalimi juaj mbrohet duke përdorur një algoritëm të sigurt njëdrejtimsh. Për të siguruar edhe më hyrjet te llogaria juaj, mund të aktivizoni mirëfilltësimin dyfaktorësh.
+
+
+
+
Cilat janë rregullat tona mbi mbajtjen e të dhënave?
+
+
Do të përpiqemi pa hile:
+
+
+ - Të mbajmë regjistra shërbyesi që përmbajnë adresën IP të krejt kërkesave te ky shërbyes, sa kohë që regjistra të tillë mbahen, për jo më shumë se 90 ditë.
+ - Të mbajmë adresat IP përshoqëruar me përdoruesit e regjistruar, për jo më shumë se 12 muaj.
+
+
+
Mund të kërkoni dhe të shkarkoni një arkiv të lëndës tuaj, përfshi postimet tuaja, bashkëngjitje media, foto profili, dhe figurë kryesh.
+
+
Mund të fshini në mënyrë të pakthyeshme llogarinë tuaj në çfarëdo kohe.
+
+
+
+
A përdorim cookies?
+
+
Po. Cookie-t janë kartela të vockla që një sajt ose furnizuesi i shërbimit për të i depoziton në diskun e kompjuterit tuaj përmes shfletuesit (nëse e lejoni ju). Këto cookies i bëjnë të mundur sajtit të njohë shfletuesin tuaj dhe, nëse keni një llogari të regjistuar, ta përshoqërojë atë me llogarinë tuaj të regjistuar.
+
+
Ne i përdorim cookie-t për të kuptuar dhe ruajtur parapëlqimet tuaja, për vizita të ardhshme.
+
+
+
+
A u japim palëve të treta ndonjë të dhënë?
+
+
Nuk u shesim, shkëmbejmë, ose transferojmë në rrugë të tjera palëve të treta të dhëna tuajat personale që lejojnë identifikimin tuaj. Kjo nuk përfshin palë të treta të besuara që nga ndihmojnë të xhirojmë sajtin tonë, të bëjmë punën tonë, ose t’ju shërbejmë juve, sa kohë që këto palë pajtohen t’i mbajnë të fshehta këto të dhëna. Mund të japim të dhëna tuajat kur besojmë se kjo është e nevojshme për të qenë në rregull me ligjin, për të zbatuar rregullat e sajtit tonë, ose për të mbrojtur të drejta, pronësi, ose siguri tonën apo të të tjerëve.
+
+
Lënda juaj publike mund të shkarkohet nga shërbyes të tjerë në rrjet. Postimet tuaja publike dhe ato vetëm për ndjekësit dërgohen te shërbyesit ku gjenden ndjekësit tuaj, dhe mesazhet e drejtpërdrejtë jepen te shërbyesit e marrësve, për rastet ku këta ndjekës apo marrës gjenden në një tjetër shërbyes nga i këtushmi.
+
+
Kur autorizoni një aplikacion të përdorë llogarinë tuaj, në varësi të shtrirje së lejeve që miratoni, aplikacioni mund të hyjë në të dhënat e profilit tuaj publik, listat tuaja të ndjekjeve, ndjekësit tuaj, lista tuajat, krejt postimet tuaja, dhe të parapëlqyerit tuaj. Aplikacionet s’mund të njohin kurrë adresën tuaj email ose fjalëkalimin.
+
+
+
+
Përdorim i sajtit nga fëmijë
+
+
Nëse ky shërbyes gjendet në BE apo në ZEE: Krejt sajti, produktet dhe shërbimet tona u drejtohen personave që janë të paktën 16 vjeç. Nëse jeni nën moshën 16 vjeç, sipas kërkesave të GDPR-së (General Data Protection Regulation), mos e përdorni këtë sajt.
+
+
Nëse ky shërbyes gjendet në ShBA: Krejt sajti, produktet dhe shërbimet tona u drejtohen personave që janë të paktën 13 vjeç. Nëse jeni nën moshën 13 vjeç, sipas kërkesave të COPPA (Children's Online Privacy Protection Act), mos e përdorni këtë sajt.
+
+
Domosdoshmëritë e ligjit mund të jenë të ndryshme, nëse ky shërbyes gjendet në një tjetër juridiksion.
+
+
+
+
Ndryshime te Rregullat tona të Privatësisë
+
+
Nëse vendosim të ndryshojmë rregullat tona të privatësisë, këto ndryshime do t’i botojmë në këtë faqe.
+
+
Ky dokument është CC-BY-SA. U përditësua së fundmi më 7 mars, 2018.
+
+
Përshtatur fillimisht nga rregullat e privatësisë në Discourse.
+ title: Kushte Shërbimi dhe Rregulla Privatësie te %{instance}
+ themes:
+ contrast: Mastodon (Me shumë kontrast)
+ default: Mastodon (I errët)
+ mastodon-light: Mastodon (I çelët)
+ time:
+ formats:
+ default: "%d %b, %Y, %H:%M"
+ month: "%b %Y"
+ two_factor_authentication:
+ code_hint: Që të bëhet ripohimi, jepni kodin e prodhuar nga aplikacioni juaj i mirëfilltësimeve
+ description_html: Nëse aktivizoni
mirëfilltësimin dyfaktorësh, hyrja do të kërkojë të jeni në zotërim të telefonit tuaj, i cili do të prodhojë kod që duhet ta jepni.
+ disable: Çaktivizoje
+ enable: Aktivizoje
+ enabled: Mirëfilltësimi dyfaktorësh është i aktivizuar
+ enabled_success: Mirëfilltësimi dyfaktorësh u aktivizua me sukses
+ generate_recovery_codes: Prodho kode rikthimesh
+ instructions_html: "
Skanojeni këtë kod QR me Google Authenticator ose një aplikacion TOTP të ngjashëm në telefonin tuaj. Tani e tutje, ai aplikacion do të prodhojë kode të cilët duhet t’i jepni kur bëni hyrje."
+ lost_recovery_codes: Kodet e rikthimit ju lejojnë të rifitoni hyrje në llogarinë tuaj, nëse humbni telefonin tuaj. Nëse keni humbur kodet tuaj të rikthimit, mund t’i prodhoni sërish këtu. Kodet tuaj të vjetër të rikthimit do të bëhen të pavlefshëm.
+ manual_instructions: 'Nëse s’skanoni dot kodin QR dhe ju duhet ta jepni dorazi, ja e fshehta si tekst i thjeshtë:'
+ recovery_codes: Kopjeruani kode rikthimesh
+ recovery_codes_regenerated: Kodet e rikthimeve u riprodhuan me sukses
+ recovery_instructions_html: Në ndodhtë që të humbni hyrje te telefoni juaj, mund të përdorni një nga kodet e rikthimit më poshtë, që të rifitoni hyrje te llogaria juaj.
Mbajini të parrezikuar kodet e rikthimeve. Për shembull, mund t’i shtypni dhe t’i ruani tok me dokumente të tjerë të rëndësishëm.
+ setup: Rregullojeni
+ wrong_code: Kodi i dhënë është i pavlefshëm! A janë të sakta koha e shërbyesit dhe koha e pajisjes?
+ user_mailer:
+ backup_ready:
+ explanation: Kërkuat një kopjeruajtje të plotë të llogarisë tuaj Mastodon. E keni gati për shkarkim!
+ subject: Arkivi juaj është gati për shkarkim
+ title: Marrje arkivi me vete
+ warning:
+ explanation:
+ disable: Kur llogaria juaj është e ngrirë, të dhënat në llogarinë tuaj mbeten të paprekura, por s’mund të kryeni ndonjë veprim, para se të shkyçet.
+ silence: Kur llogaria juaj është e kufizuar, mesazhet tuaj në këtë shërbyes do t’i shohin vetëm personat që ju ndjekin tashmë. dhe mund të liheni jashtë nga lista të ndryshme publike. Megjithatë, të tjerët prapë mund t’ju ndjekin dorazi.
+ suspend: Llogaria juaj është pezulluar, dhe krejt mesazhet tuaja dhe kartelat media të ngarkuara janë hequr në mënyrë të pakthyeshme nga ky shërbyes, dhe nga shërbyesit te të cilët kishit ndjekës.
+ review_server_policies: Shqyrtoni rregullat e shërbyesit
+ subject:
+ disable: Llogaria juaj %{acct} është ngrirë
+ none: Sinjalizim për %{acct}
+ silence: Llogaria juaj %{acct} është kufizuar
+ suspend: Llogaria juaj %{acct} është pezulluar
+ title:
+ disable: Llogari e ngrirë
+ none: Sinjalizim
+ silence: Llogari e kufizuar
+ suspend: Llogari e pezulluar
+ welcome:
+ edit_profile_action: Rregullim profili
+ edit_profile_step: Profilin mund ta personalizoni duke ngarkuar një avatar, figurë kryesh, duke ndryshuar emrin tuaj në ekran, etj. Nëse dëshironi të shqyrtoni ndjekës të rinj, përpara se të jenë lejuar t’ju ndjekin, mund të kyçni llogarinë tuaj.
+ explanation: Ja disa ndihmëza, sa për t’ia filluar
+ final_action: Filloni të postoni
+ final_step: 'Filloni të postoni! Edhe pse pa ndjekës, mesazhet tuaj publike mund të shihen nga të tjerët, për shembull te rrjedha kohore vendore dhe në hashtagë. Mund të donit të prezantoni veten nën hashtagun #introductions.'
+ full_handle: Identifikuesi juaj i plotë
+ full_handle_hint: Kjo është ajo çka do të duhej t’u tregonit shokëve tuaj, që të mund t’ju dërgojnë mesazhe ose t’ju ndjekin nga një shërbyes tjetër.
+ review_preferences_action: Ndryshoni parapëlqime
+ review_preferences_step: Mos harroni të caktoni parapëlqimet tuaja, fjala vjen, ç’email-e dëshironi të merrni, ose çfarë shkalle privatësie do të donit të kishin, si parazgjedhje, postimet tuaja. Nëse nuk ju merren mendtë nga rrotullimi, mund të zgjidhni të aktivizoni vetëluajtje GIF-esh.
+ subject: Mirë se vini te Mastodon-i
+ tip_federated_timeline: Rrjedha kohore e të federuarve është një pamje e fluksit të rrjetit Mastodon. Por përfshin vetëm persona te të cilët janë pajtuar fqinjët tuaj, pra s’është e plotë.
+ tip_following: Përgjegjësin e shërbyesit tuaj e ndiqni, si parazgjedhje. Për të gjetur më shumë persona interesantë, shihni te rrjedha kohore vendore dhe ajo e të federuarve.
+ tip_local_timeline: Rrjedha kohore vendore është një pamje e fluksit të njerëzve në %{instance}. Këta janë fqinjët tuaj më të afërt!
+ tip_mobile_webapp: Nëse shfletuesi juaj celular ju ofron të shtohet Mastodon-i te skena juaj e kreut, mund të merrni njoftime
push. Nga shumë pikëpamje vepron si një aplikacion i brendshëm i platformës së celularit!
+ tips: Ndihmëza
+ title: Mirë se vini, %{name}!
+ users:
+ follow_limit_reached: S’mund të ndiqni më tepër se %{limit} persona
+ invalid_email: Adresa email është e pavlefshme
+ invalid_otp_token: Kod dyfaktorësh i pavlefshëm
+ otp_lost_help_html: Nëse humbi hyrjen te të dy, mund të lidheni me %{email}
+ seamless_external_login: Jeni futur përmes një shërbimi të jashtëm, ndaj s’ka rregullime fjalëkalimi dhe email.
+ signed_in_as: 'I futur si:'
+ verification:
+ explanation_html: 'Mundeni
të verifikoni veten si i zoti i lidhjeve te tejtëdhënat e profilit tuaj. Për këtë, sajti i lidhur duhet të përmbajë një lidhje për te profili juaj Mastodon. Lidhje për te ajo
duhet të ketë një atribut
rel="me"
. Lënda tekst e lidhjes nuk ngre peshë. Ja një shembull:'
+ verification: Verifikim
diff --git a/config/locales/sr-Latn.yml b/config/locales/sr-Latn.yml
index 93ba091cb..82739c9bb 100644
--- a/config/locales/sr-Latn.yml
+++ b/config/locales/sr-Latn.yml
@@ -118,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
@@ -196,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
@@ -212,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
@@ -225,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:
diff --git a/config/locales/sr.yml b/config/locales/sr.yml
index 9ca5e412b..331ec3f80 100644
--- a/config/locales/sr.yml
+++ b/config/locales/sr.yml
@@ -34,14 +34,14 @@ sr:
few: статуси
many: статуси
one: статус
- other: статуси
+ other: статуса
status_count_before: Који су написали
terms: Услови коришћења
user_count_after:
few: корисници
many: корисници
one: корисник
- other: корисници
+ other: корисника
user_count_before: Дом за
what_is_mastodon: Шта је Мастодон?
accounts:
@@ -54,6 +54,7 @@ sr:
other: Пратиоци
following: Пратим
joined: Придружио/ла се %{date}
+ last_active: последњи пут активни
link_verified_on: Власништво над овом везом је проверено %{date}
media: Медији
moved_html: "%{name} је прешао на %{new_profile_link}:"
@@ -77,6 +78,9 @@ sr:
moderator: Модератор
unfollow: Отпрати
admin:
+ account_actions:
+ action: Извршите радњу
+ title: Извршите модераторске радње на %{acct}
account_moderation_notes:
create: Оставите белешку
created_msg: Модераторска белешка успешно направљена!
@@ -88,14 +92,15 @@ sr:
by_domain: Домен
change_email:
changed_msg: Е-пошта налога успешно промењена!
- current_email: Тренутна Е-пошта
- label: Промените Е-пошту
- new_email: Нова Е-пошта
- submit: Промените Е-пошту
- title: Промените Е-пошту за %{username}
+ current_email: Тренутна е-пошта
+ label: Промените е-пошту
+ new_email: Нова e-пошта
+ submit: Промените e-пошту
+ title: Промените e-пошту за %{username}
confirm: Потврди
confirmed: Потврђено
confirming: Потврдување
+ deleted: Избрисано
demote: Ражалуј
disable: Искључи
disable_two_factor_authentication: Искључи 2FA
@@ -104,15 +109,18 @@ sr:
domain: Домен
edit: Измени
email: Е-пошта
- email_status: Е-пошта статус
+ email_status: Статус е-поште
enable: Омогући
enabled: Укључено
feed_url: Адреса довода
followers: Пратиоци
followers_url: Адреса пратиоца
follows: Праћени
+ header: Заглавље
inbox_url: Адреса сандучета
+ invited_by: Позван од стране
ip: IP
+ joined: Придружио се
location:
all: Све
local: Локалне
@@ -122,6 +130,7 @@ sr:
media_attachments: Мултимедијални прилози
memorialize: Пребаци у in memoriam
moderation:
+ active: Активан
all: Сви
silenced: Ућуткани
suspended: Суспендовани
@@ -138,8 +147,9 @@ sr:
protocol: Протокол
public: Јавно
push_subscription_expires: PuSH претплата истиче
- redownload: Освежи аватар
+ redownload: Освежи профил
remove_avatar: Уклони аватар
+ remove_header: Одстрани заглавље
resend_confirmation:
already_confirmed: Овој корисник е веќе потврден
send: Препрати го е-мајлот за потврда
@@ -157,26 +167,27 @@ sr:
search: Претрага
shared_inbox_url: Адреса дељеног сандучета
show:
- created_reports: Пријаве које је направио овај налог
- report: пријава
- targeted_reports: Пријаве направљене о овом налогу
+ created_reports: Направљени извештаји
+ targeted_reports: Пријаве од стране других
silence: Ућуткај
silenced: Ућуткан
statuses: Статуси
subscribe: Претплати се
suspended: Суспендовани
title: Налози
- unconfirmed_email: Непотврђена Е-пошта
+ unconfirmed_email: Непотврђена е-пошта
undo_silenced: Укини ћутање
undo_suspension: Укини суспензију
unsubscribe: Укини претплату
username: Корисничко име
+ warn: Упозори
web: Веб
action_logs:
actions:
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}"
@@ -235,6 +246,7 @@ sr:
config: Конфигурација
feature_deletions: Брисање налога
feature_invites: Позивнице
+ feature_profile_directory: Фасцикла профила
feature_registrations: Регистрација
feature_relay: Федеративни релеј
features: Карактеристике
@@ -252,7 +264,7 @@ sr:
week_users_active: активно ове недеље
week_users_new: корисника ове недеље
domain_blocks:
- add_new: Додај нови
+ add_new: Додај нови блок домена
created_msg: Блокирање домена се обрађује
destroyed_msg: Блокирање домена је опозвано
domain: Домен
@@ -269,11 +281,11 @@ sr:
reject_media_hint: Уклања локално ускладиштене мултимедијске фајлове и одбија да их скида убудуће. Небитно је за суспензију
reject_reports: Одбаци извештај
reject_reports_hint: Игнориши све извештаје који долазе са овог домена. Небитно је за суспензије
- severities:
- noop: Ништа
- silence: Ућуткавање
- suspend: Суспензија
- severity: Оштрина
+ rejecting_media: одбацивање медијских датотека
+ rejecting_reports: одбацивање пријава
+ severity:
+ silence: ућуткани
+ suspend: суспендовани
show:
affected_accounts:
few: Утиче на %{count} налога у бази
@@ -285,8 +297,7 @@ sr:
suspend: Уклони суспензије за све постојеће налоге са овог домена
title: Поништи блокаду домена за %{domain}
undo: Поништи
- title: Блокаде домена
- undo: Поништи
+ undo: Поништи блок домена
email_domain_blocks:
add_new: Додај нови
created_msg: Успешно додао домен Е-поште на црну листу
@@ -297,12 +308,25 @@ sr:
create: Додај домен
title: Нова ставка е-поштe у црној листи
title: Црна листа E-поште
+ followers:
+ back_to_account: Назад на налог
+ title: "%{acct} Пратиоци"
instances:
- account_count: Познати налози
- domain_name: Домен
- reset: Ресетуј
- search: Претрага
- title: Познате инстанце
+ delivery_available: Достава је доступна
+ known_accounts:
+ few: "%{count} знаних налога"
+ many: "%{count} знаних налога"
+ one: "%{count} знан налог"
+ other: "%{count} знаних налога"
+ moderation:
+ all: Све
+ limited: Ограничено
+ title: Модерација
+ title: Федерација
+ total_blocked_by_us: Блокирано од стране нас
+ total_followed_by_them: Праћени од стране њих
+ total_followed_by_us: Праћени од стране нас
+ total_reported: Пријаве везане за њих
invites:
deactivate_all: Деактивирај све
filter:
@@ -384,6 +408,9 @@ sr:
preview_sensitive_media:
desc_html: Преглед веза на другим веб страницама ће приказати иконицу чак и ако је медиј означен као осетљиво
title: Покажи осетљив медиј у ОпенГраф прегледу
+ profile_directory:
+ desc_html: Дозволи корисницима да буду откривени
+ title: Омогући профил фасцикле
registrations:
closed_message:
desc_html: Приказује се на главној страни када је инстанца затворена за регистрације. Можете користити HTML тагове
@@ -443,7 +470,21 @@ sr:
last_delivery: Последња достава
title: WebSub
topic: Topic
+ 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 +562,16 @@ sr:
success_msg: Ваш налог је успешно обрисан
warning_html: Гарантовано је само брисање садржаја са ове инстанце. Садржај који је дељен даље ће вероватно да остави неке трагове. Недоступни и угашени сервери, као и сервери који су одјављени од примања статуса од Вас, неће ажурирати своје базе.
warning_title: Доступност расејаног садржаја
+ directories:
+ directory: Профил фасцикле
+ enabled: Ви сте тренутно видљиви у фасцикли.
+ explanation: Откријте кориснике на основу њихових интереса
+ explore_mastodon: Истражи %{title}
+ people:
+ few: "%{count} људе"
+ many: "%{count} људе"
+ one: "%{count} особа/е"
+ other: "%{count} људи"
errors:
'403': Немате дозвола да видите ову страну.
'404': Страна коју сте тражили не постоји.
@@ -543,7 +594,9 @@ sr:
size: Величина
blocks: Блокирали сте
csv: CSV
+ domain_blocks: Блокови домена
follows: Пратите
+ lists: Листе
mutes: Ућуткали сте
storage: Мултимедијално складиште
filters:
@@ -702,13 +755,22 @@ sr:
no_account_html: Немате налог? Можете се
пријавити овде
proceed: Наставите да би сте запратили
prompt: 'Запратићете:'
+ reason_html: "
Зашто је овај корак неопходан?%{instance}
можда није сервер на којем сте регистровани, тако да прво морамо да вас преусмеримо на ваш сервер."
remote_interaction:
- proceed: Наставите за интеракцију
- prompt: 'Желите да интерактирате са овом трубом:'
+ reblog:
+ proceed: Наставите да бисте поделили
+ prompt: 'Желите да делите ову трубу:'
+ reply:
+ proceed: Наставите да бисте одговорили
+ prompt: 'Желите да одговорите на ову трубу:'
remote_unfollow:
error: Грешка
title: Наслов
unfollowed: Отпраћени
+ scheduled_statuses:
+ over_daily_limit: Прекорачили сте границу од %{limit} планираних труба за тај дан
+ over_total_limit: Прекорачили сте границу од %{limit} планираних труба
+ too_soon: Планирани датум мора бити у будућности
sessions:
activity: Последња активност
browser: Веб читач
@@ -838,6 +900,22 @@ sr:
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: Профил можете прилагодити постављањем аватара, заглавља, променом имена и још много тога. Ако желите да прегледате нове пратиоце пре него што буду дозвољени да вас прате, можете закључати свој налог.
diff --git a/config/locales/sv.yml b/config/locales/sv.yml
index 706e4c570..aa5b3420d 100644
--- a/config/locales/sv.yml
+++ b/config/locales/sv.yml
@@ -130,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
@@ -214,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
@@ -228,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
@@ -241,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:
diff --git a/config/locales/te.yml b/config/locales/te.yml
index bde34980a..f0f6942ab 100644
--- a/config/locales/te.yml
+++ b/config/locales/te.yml
@@ -1,7 +1,129 @@
---
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_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 42d52af26..5be8e02c0 100644
--- a/config/locales/th.yml
+++ b/config/locales/th.yml
@@ -61,7 +61,6 @@ th:
salmon_url: Salmon URL
show:
created_reports: รายงานที่ถูกสร้างโดย แอคเคาท์นี้
- report: รายงาน
targeted_reports: รายงานเกี่ยวกับแอคเคาท์นี้
silence: ปิดเสียง
statuses: สถานะ
@@ -85,10 +84,6 @@ th:
title: การบล๊อกโดเมนใหม่
reject_media: ไม่อนุมัติไฟล์สื่อ
reject_media_hint: ลบไฟล์สื่อที่เก็บไว้ในเครื่อง และ ป้องกันการดาวน์โหลดในอนาคต. Irrelevant for suspensions
- severities:
- silence: ปิดเสียง
- suspend: หยุดไว้
- severity: Severity
show:
affected_accounts:
one: มีผลต่อหนึ่งแอคเค๊าท์ในฐานข้อมูล
@@ -98,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 486210af6..fefbb6667 100644
--- a/config/locales/tr.yml
+++ b/config/locales/tr.yml
@@ -1,74 +1,177 @@
---
tr:
about:
+ about_hashtag_html: Bunlar
#%{hashtag}X ile etiketlenen genel paylaşımlar. Açık alanda herhangi bir yerde bir hesabınız varsa, onlarla etkileşime geçebilirsiniz.
about_mastodon_html: Mastodon
ücretsiz ve açık kaynaklı bir sosyal ağdır.
Merkezileştirilmemiş yapısı sayesinde diğer ticari sosyal platformların aksine iletişimininizin tek bir firmada tutulmasının/yönetilmesinin önüne geçer. Güvendiğiniz bir sunucuyu seçerek oradaki kişilerle etkileşimde bulunabilirsiniz. Herkes kendi Mastodon sunucusunu kurabilir ve sorunsuz bir şekilde Mastodon
sosyal ağına dahil edebilir.
about_this: Bu sunucu hakkında
- closed_registrations: Bu sunucu şu anda yeni kayıt almamaktadır.
+ administered_by: 'Tarafından yönetildi:'
+ api: API
+ apps: Mobil uygulamalar
+ closed_registrations: Bu sunucudaki kayıtlar şu anda kapalı. Ancak! Bir hesap oluşturmak ve oradan aynı ağa erişmek için farklı bir sunucu bulabilirsiniz.
contact: İletişim
- other_instances: Diğer sunucular
+ contact_missing: Ayarlanmadı
+ contact_unavailable: Yok
+ documentation: Belgeler
+ extended_description_html: |
+
Kural için iyi bir yer
+
Genişletilmiş açıklama henüz ayarlanmamış.
+ features:
+ humane_approach_body: Diğer ağların başarısızlıklarından öğrenen Mastodon, sosyal medyanın kötüye kullanımı ile mücadele etmek için etik tasarım seçimleri yapmayı amaçlamaktadır.
+ humane_approach_title: Daha insancıl bir yaklaşım
+ not_a_product_body: Mastodon ticari bir ağ değildir. Reklam yok, Veri madenciliği yok, duvarlı bahçeler yok. Merkezi bir otorite yok.
+ not_a_product_title: Sen bir insansın, bir ürün değil
+ real_conversation_body: Emrindeki 500 karakter ve granüler içerik ve medya uyarıları için destek ile kendinizi istediğiniz şekilde ifade edebilirsiniz.
+ real_conversation_title: Gerçek sohbet için üretildi
+ within_reach_body: Geliştirici dostu bir API ekosistemi sayesinde iOS, Android ve diğer platformlar için birden fazla uygulama, arkadaşlarınıza her yerden ulaşmanızı sağlar.
+ within_reach_title: Her zaman ulaşılabilir
+ generic_description: "%{domain} ağdaki bir sunucudur"
+ hosted_on: Mastodon %{domain} üzerinde barındırılıyor
+ learn_more: Daha fazla bilgi edinin
+ other_instances: Sunucu listesi
+ privacy_policy: Gizlilik politikası
source_code: Kaynak kodu
- status_count_after: adet gönderi yazıldı.
+ status_count_after:
+ one: durum
+ other: durum
status_count_before: Şu ana kadar
- user_count_after: kullanıcı var.
+ terms: Kullanım şartları
+ user_count_after:
+ one: kullanıcı
+ other: kullanıcı
user_count_before: Kayıtlı
+ what_is_mastodon: Mastodon nedir?
accounts:
+ choices_html: "%{name} seçimleri:"
follow: Takip et
- followers: Takipçiler
+ followers:
+ one: Takipçi
+ other: Takipçi
following: Takip ediliyor
+ joined: "%{date} tarihinde katıldı"
+ link_verified_on: Bu bağlantının mülkiyeti %{date} tarihinde kontrol edildi
+ media: Medya
+ moved_html: "%{name}, %{new_profile_link} adresine taşındı:"
+ network_hidden: Bu bilgi mevcut değil
nothing_here: Burada henüz hiçbir gönderi yok!
people_followed_by: Kullanıcı %{name}'in takip ettikleri
people_who_follow: Kullanıcı %{name}'i takip edenler
- posts: Gönderiler
+ pin_errors:
+ following: Onaylamak istediğiniz kişiyi zaten takip ediyor olmalısınız
+ posts:
+ one: Toot
+ other: Tootlar
+ posts_tab_heading: Tootlar
+ posts_with_replies: Tootlar ve yanıtlar
+ reserved_username: Kullanıcı adı saklıdır
+ roles:
+ admin: Yönetici
+ bot: Bot
+ moderator: Denetleyici
unfollow: Takibi bırak
admin:
+ account_actions:
+ action: Eylemi gerçekleştir
+ account_moderation_notes:
+ create: Not bırakın
+ created_msg: Denetim notu başarıyla oluşturuldu!
+ delete: Sil
+ destroyed_msg: Denetim notu başarıyla yok edildi!
accounts:
are_you_sure: Emin misiniz?
+ by_domain: Sunucu
+ change_email:
+ changed_msg: Hesap e-postası başarıyla değiştirildi!
+ current_email: Mevcut e-posta
+ label: E-postayı değiştir
+ new_email: Yeni e-posta
+ submit: E-postayı değiştir
+ title: "%{username} için e-postayı değiştir"
confirm: Onayla
confirmed: Onaylandı
confirming: Onaylama
+ deleted: Silinen
+ disable: Devre dışı
+ disable_two_factor_authentication: 2AD kapat
+ disabled: Kapalı
display_name: Görünen adınız
domain: Sunucu
edit: Düzenle
email: E-posta
- email_status: Email Durumu
+ email_status: E-posta durumu
+ enable: Etkinleştir
+ enabled: Etkin
feed_url: Besleme linki
followers: Takipçiler
+ followers_url: Takipçi bağlantısı
follows: Takip edilen
+ header: Üstbilgi
+ inbox_url: Gelen kutusu bağlantısı
+ invited_by: Tarafından davet edildi
+ ip: IP
+ joined: Katıldı
location:
all: Hepsi
local: Yerel
remote: Uzaktan
title: Konum
+ login_status: Giriş durumu
media_attachments: Medya ekleri
+ memorialize: Bir hatıraya dön
moderation:
all: Hepsi
silenced: Susturulanlar
suspended: Uzaklaştırılanlar
title: Yönetim
+ moderation_notes: Denetleme notları
most_recent_activity: Son aktivite
most_recent_ip: Son IP
not_subscribed: Abone edilmedi
- perform_full_suspension: Tamamen uzaklaştır
+ perform_full_suspension: Askıya al
profile_url: Profil linki
+ promote: Yükselt
+ protocol: Protokol
public: Herkese açık
push_subscription_expires: PuSH aboneliği dolumu
+ redownload: Profili yenile
+ remove_avatar: Avatarı kaldır
+ remove_header: Üstbilgiyi kaldır
resend_confirmation:
already_confirmed: Bu kullanıcı zaten onaylandı
send: Doğrulama epostasını yeniden gönder
success: Onay e-postası başarıyla gönderildi!
+ reset: Sıfırla
reset_password: Parolayı değiştir
+ resubscribe: Yeniden abone ol
+ role: İzinler
+ roles:
+ admin: Yönetici
+ moderator: Denetleyici
+ staff: Personel
+ user: Kullanıcı
salmon_url: Salmon Linki
+ search: Ara
+ shared_inbox_url: Paylaşılan gelen kutusu bağlantısı
show:
- created_reports: Bu hesap tarafından gelen şikayetler
- report: şikayet
- targeted_reports: Bu hesaba gelen şikayetler
+ created_reports: Yapılan şikayetler
+ targeted_reports: Başkaları tarafından şikayet edildi
silence: Sustur
+ silenced: Susturulmuş
statuses: Durumlar
+ subscribe: Abone ol
+ suspended: Askıya alındı
title: Hesaplar
+ unconfirmed_email: Onaylanmamış e-posta
undo_silenced: Susturmayı geri al
undo_suspension: Uzaklaştırmayı geri al
+ unsubscribe: Abonelikten çık
username: Kullanıcı adı
+ warn: Uyar
web: Web
+ action_logs:
+ actions:
+ confirm_user: "%{name} %{target} kullanıcısının e-posta adresini onayladı"
+ create_custom_emoji: "%{name} yeni ifade yükledi %{target}"
+ disable_2fa_user: "%{name}, %{target} kullanıcısı için iki adım gereksinimini kapattı"
domain_blocks:
add_new: Yeni ekle
created_msg: Domain bloğu şu an işleniyor
@@ -84,10 +187,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
@@ -97,11 +196,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:
@@ -139,7 +235,15 @@ tr:
last_delivery: Son gönderim
title: WebSub
topic: Konu
+ tags:
+ accounts: Hesaplar
+ name: Etiketler
+ title: Etiketler
title: Yönetim
+ warning_presets:
+ add_new: Yeni ekle
+ delete: Sil
+ edit: Düzenle
application_mailer:
settings: 'E-mail tercihlerini değiştir: %{link}'
view: 'Görüntüle:'
diff --git a/config/locales/uk.yml b/config/locales/uk.yml
index f6d14c854..9a63854b5 100644
--- a/config/locales/uk.yml
+++ b/config/locales/uk.yml
@@ -135,7 +135,6 @@ uk:
shared_inbox_url: URL спільного вхідного кошика
show:
created_reports: Скарги створені цим аккаунтом
- report: скарга
targeted_reports: Скарги щодо цього аккаунту
silence: Глушення
statuses: Статуси
@@ -238,11 +237,6 @@ uk:
title: Нове блокування домену
reject_media: Заборонити медіаконтент
reject_media_hint: Видаляє медіаконтент, збережений локально, і забороняє його завантаження у майбутньому. Не має значення у випадку блокування
- severities:
- noop: Нічого
- silence: Глушення
- suspend: Блокування
- severity: Суворість
show:
affected_accounts:
few: Впливає на %{count} акаунти у базі даних
@@ -254,7 +248,6 @@ uk:
suspend: Зняти блокування з усіх існуючих акаунтів цього домену
title: Зняти блокування з домена %{domain}
undo: Відмінити
- title: Доменні блокування
undo: Відмінити
email_domain_blocks:
add_new: Додати
@@ -267,10 +260,6 @@ uk:
title: Нове доменне блокування домену email
title: Чорний список поштових доменів
instances:
- account_count: Відомі аккаунти
- domain_name: Домен
- reset: Скинути
- search: Пошук
title: Відомі інстанції
invites:
filter:
diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml
index 2c1005a9a..e482e9c41 100644
--- a/config/locales/zh-CN.yml
+++ b/config/locales/zh-CN.yml
@@ -141,7 +141,6 @@ zh-CN:
shared_inbox_url: 公用收件箱(Shared Inbox)URL
show:
created_reports: 这个帐户提交的举报
- report: 个举报
targeted_reports: 针对这个帐户的举报
silence: 隐藏
statuses: 嘟文
@@ -247,11 +246,6 @@ zh-CN:
title: 添加域名屏蔽
reject_media: 拒绝接收媒体文件
reject_media_hint: 删除本地已缓存的媒体文件,并且不再接收来自该域名的任何媒体文件。此选项不影响封禁
- severities:
- noop: 无
- silence: 自动隐藏
- suspend: 自动封禁
- severity: 屏蔽级别
show:
affected_accounts:
one: 将会影响到数据库中的 1 个帐户
@@ -261,7 +255,6 @@ zh-CN:
suspend: 对此域名的所有帐户解除封禁
title: 撤销对 %{domain} 的域名屏蔽
undo: 撤销
- title: 域名屏蔽
undo: 撤销
email_domain_blocks:
add_new: 添加新条目
@@ -274,10 +267,6 @@ zh-CN:
title: 添加电子邮件域名屏蔽
title: 电子邮件域名屏蔽
instances:
- account_count: 已知帐户
- domain_name: 域名
- reset: 重置
- search: 搜索
title: 已知实例
invites:
deactivate_all: 撤销所有邀请链接
diff --git a/config/locales/zh-HK.yml b/config/locales/zh-HK.yml
index c03946f0a..737ca000c 100644
--- a/config/locales/zh-HK.yml
+++ b/config/locales/zh-HK.yml
@@ -130,7 +130,6 @@ zh-HK:
shared_inbox_url: 公共收件箱(Shared Inbox)URL
show:
created_reports: 此用戶所提舉報的紀錄
- report: 舉報
targeted_reports: 此用戶被舉報的紀錄
silence: 靜音
statuses: 文章
@@ -214,11 +213,6 @@ zh-HK:
title: 新增域名阻隔
reject_media: 拒絕媒體檔案
reject_media_hint: 刪除本地緩存的媒體檔案,再也不在未來下載這個站點的檔案。和自動刪除無關
- severities:
- noop: 無
- silence: 自動靜音
- suspend: 自動刪除
- severity: 阻隔分級
show:
affected_accounts: 資料庫中有%{count}個用戶受影響
retroactive:
@@ -226,7 +220,6 @@ zh-HK:
suspend: 對此域名的所有用戶取消除名
title: 撤銷 %{domain} 的域名阻隔
undo: 撤銷
- title: 域名阻隔
undo: 撤銷
email_domain_blocks:
add_new: 加入新項目
@@ -239,10 +232,6 @@ zh-HK:
title: 新增電郵網域阻隔
title: 電郵網域阻隔
instances:
- account_count: 已知帳號
- domain_name: 域名
- reset: 重設
- search: 搜索
title: 已知服務站
invites:
filter:
diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml
index d6a7abea9..f4bda0f34 100644
--- a/config/locales/zh-TW.yml
+++ b/config/locales/zh-TW.yml
@@ -135,7 +135,6 @@ zh-TW:
shared_inbox_url: 公共收件箱 (Shared Inbox) URL
show:
created_reports: 這個使用者提交的檢舉
- report: 檢舉
targeted_reports: 針對這個使用者的檢舉
silence: 靜音
statuses: 嘟文
@@ -219,11 +218,6 @@ zh-TW:
title: 新增封鎖網域
reject_media: 拒絕媒體檔案
reject_media_hint: 刪除本地緩存的媒體檔案,並且不再接收來自該網域的任何媒體檔案。與自動封鎖無關
- severities:
- noop: 無
- silence: 自動靜音
- suspend: 自動封鎖
- severity: 嚴重度
show:
affected_accounts: 資料庫中有%{count}個使用者受影響
retroactive:
@@ -231,7 +225,6 @@ zh-TW:
suspend: 對此網域的所有使用者取消封鎖
title: 撤銷 %{domain} 的網域封鎖
undo: 撤銷
- title: 網域封鎖
undo: 撤銷
email_domain_blocks:
add_new: 加入新項目
@@ -244,10 +237,6 @@ zh-TW:
title: 新增E-mail封鎖
title: E-mail封鎖
instances:
- account_count: 已知帳戶
- domain_name: 網域
- reset: 重設
- search: 搜尋
title: 已知站點
invites:
filter:
diff --git a/config/navigation.rb b/config/navigation.rb
index 1b3c05ef7..1be621ac2 100644
--- a/config/navigation.rb
+++ b/config/navigation.rb
@@ -6,6 +6,7 @@ SimpleNavigation::Configuration.run do |navigation|
primary.item :settings, safe_join([fa_icon('cog fw'), t('settings.settings')]), settings_profile_url do |settings|
settings.item :profile, safe_join([fa_icon('user fw'), t('settings.edit_profile')]), settings_profile_url, highlights_on: %r{/settings/profile|/settings/migration}
+ settings.item :featured_tags, safe_join([fa_icon('hashtag fw'), t('settings.featured_tags')]), settings_featured_tags_url
settings.item :preferences, safe_join([fa_icon('sliders fw'), t('settings.preferences')]), settings_preferences_url
settings.item :notifications, safe_join([fa_icon('bell fw'), t('settings.notifications')]), settings_notifications_url
settings.item :password, safe_join([fa_icon('lock fw'), t('auth.security')]), edit_user_registration_url, highlights_on: %r{/auth/edit|/settings/delete}
@@ -29,8 +30,7 @@ SimpleNavigation::Configuration.run do |navigation|
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 :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, 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 :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 7723a08af..ac10f9fba 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -56,6 +56,7 @@ Rails.application.routes.draw do
member do
get :activity
get :embed
+ get :replies
end
end
@@ -74,6 +75,7 @@ Rails.application.routes.draw do
get '/@:username', to: 'accounts#show', as: :short_account
get '/@:username/with_replies', to: 'accounts#show', as: :short_account_with_replies
get '/@:username/media', to: 'accounts#show', as: :short_account_media
+ get '/@:username/tagged/:tag', to: 'accounts#show', as: :short_account_tag
get '/@:account_username/:id', to: 'statuses#show', as: :short_account_status
get '/@:account_username/:id/embed', to: 'statuses#embed', as: :embed_short_account_status
@@ -94,6 +96,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]
@@ -114,6 +118,7 @@ Rails.application.routes.draw do
resource :migration, only: [:show, :update]
resources :sessions, only: [:destroy]
+ resources :featured_tags, only: [:index, :create, :destroy]
end
resources :media, only: [:show] do
@@ -136,7 +141,7 @@ 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]
@@ -155,11 +160,7 @@ 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
@@ -190,7 +191,8 @@ Rails.application.routes.draw do
resource :change_email, only: [:show, :update]
resource :reset, only: [:create]
resource :action, only: [:new, :create], controller: 'account_actions'
- resources :statuses, only: [:index, :create, :update, :destroy]
+ resources :statuses, only: [:index, :show, :create, :update, :destroy]
+ resources :followers, only: [:index]
resource :confirmation, only: [:create] do
collection do
@@ -280,6 +282,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
@@ -336,7 +339,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'
@@ -359,6 +362,10 @@ Rails.application.routes.draw do
resource :accounts, only: [:show, :create, :destroy], controller: 'lists/accounts'
end
+ resources :polls, only: [:create, :show] do
+ resources :votes, only: :create, controller: 'polls/votes'
+ end
+
namespace :push do
resource :subscription, only: [:create, :show, :update, :destroy]
end
diff --git a/config/settings.yml b/config/settings.yml
index b3d2e0240..33a03efcc 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: ''
@@ -31,6 +26,7 @@ defaults: &defaults
expand_spoilers: false
preview_sensitive_media: false
reduce_motion: false
+ show_application: true
system_font_ui: false
noindex: false
theme: 'default'
@@ -54,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/20171005102658_create_account_moderation_notes.rb b/db/migrate/20171005102658_create_account_moderation_notes.rb
index d1802b5b3..974ed9940 100644
--- a/db/migrate/20171005102658_create_account_moderation_notes.rb
+++ b/db/migrate/20171005102658_create_account_moderation_notes.rb
@@ -7,6 +7,7 @@ class CreateAccountModerationNotes < ActiveRecord::Migration[5.1]
t.timestamps
end
+
add_foreign_key :account_moderation_notes, :accounts, column: :target_account_id
end
end
diff --git a/db/migrate/20181116173541_copy_account_stats.rb b/db/migrate/20181116173541_copy_account_stats.rb
index bb523fbbd..8e27eb11b 100644
--- a/db/migrate/20181116173541_copy_account_stats.rb
+++ b/db/migrate/20181116173541_copy_account_stats.rb
@@ -44,7 +44,7 @@ class CopyAccountStats < ActiveRecord::Migration[5.2]
# 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]]
+ 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
diff --git a/db/migrate/20181207011115_downcase_custom_emoji_domains.rb b/db/migrate/20181207011115_downcase_custom_emoji_domains.rb
index c9db3800d..65f1fc8d9 100644
--- a/db/migrate/20181207011115_downcase_custom_emoji_domains.rb
+++ b/db/migrate/20181207011115_downcase_custom_emoji_domains.rb
@@ -1,7 +1,15 @@
class DowncaseCustomEmojiDomains < ActiveRecord::Migration[5.2]
disable_ddl_transaction!
- def change
+ 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/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/migrate/20190117114553_create_tombstones.rb b/db/migrate/20190117114553_create_tombstones.rb
new file mode 100644
index 000000000..06d6d8c5a
--- /dev/null
+++ b/db/migrate/20190117114553_create_tombstones.rb
@@ -0,0 +1,12 @@
+class CreateTombstones < ActiveRecord::Migration[5.2]
+ def change
+ create_table :tombstones do |t|
+ t.belongs_to :account, foreign_key: { on_delete: :cascade }
+ t.string :uri, null: false
+
+ t.timestamps
+ end
+
+ add_index :tombstones, :uri
+ end
+end
diff --git a/db/migrate/20190201012802_add_overwrite_to_imports.rb b/db/migrate/20190201012802_add_overwrite_to_imports.rb
new file mode 100644
index 000000000..89b262cc7
--- /dev/null
+++ b/db/migrate/20190201012802_add_overwrite_to_imports.rb
@@ -0,0 +1,17 @@
+require Rails.root.join('lib', 'mastodon', 'migration_helpers')
+
+class AddOverwriteToImports < ActiveRecord::Migration[5.2]
+ include Mastodon::MigrationHelpers
+
+ disable_ddl_transaction!
+
+ def up
+ safety_assured do
+ add_column_with_default :imports, :overwrite, :boolean, default: false, allow_null: false
+ end
+ end
+
+ def down
+ remove_column :imports, :overwrite, :boolean
+ end
+end
diff --git a/db/migrate/20190203180359_create_featured_tags.rb b/db/migrate/20190203180359_create_featured_tags.rb
new file mode 100644
index 000000000..b08410a3a
--- /dev/null
+++ b/db/migrate/20190203180359_create_featured_tags.rb
@@ -0,0 +1,12 @@
+class CreateFeaturedTags < ActiveRecord::Migration[5.2]
+ def change
+ create_table :featured_tags do |t|
+ t.references :account, foreign_key: { on_delete: :cascade }
+ t.references :tag, foreign_key: { on_delete: :cascade }
+ t.bigint :statuses_count, default: 0, null: false
+ t.datetime :last_status_at
+
+ t.timestamps
+ end
+ end
+end
diff --git a/db/migrate/20190225031541_create_polls.rb b/db/migrate/20190225031541_create_polls.rb
new file mode 100644
index 000000000..ea9ad0425
--- /dev/null
+++ b/db/migrate/20190225031541_create_polls.rb
@@ -0,0 +1,17 @@
+class CreatePolls < ActiveRecord::Migration[5.2]
+ def change
+ create_table :polls do |t|
+ t.belongs_to :account, foreign_key: { on_delete: :cascade }
+ t.belongs_to :status, foreign_key: { on_delete: :cascade }
+ t.datetime :expires_at
+ t.string :options, null: false, array: true, default: []
+ t.bigint :cached_tallies, null: false, array: true, default: []
+ t.boolean :multiple, null: false, default: false
+ t.boolean :hide_totals, null: false, default: false
+ t.bigint :votes_count, null: false, default: 0
+ t.datetime :last_fetched_at
+
+ t.timestamps
+ end
+ end
+end
diff --git a/db/migrate/20190225031625_create_poll_votes.rb b/db/migrate/20190225031625_create_poll_votes.rb
new file mode 100644
index 000000000..a0849d3a5
--- /dev/null
+++ b/db/migrate/20190225031625_create_poll_votes.rb
@@ -0,0 +1,11 @@
+class CreatePollVotes < ActiveRecord::Migration[5.2]
+ def change
+ create_table :poll_votes do |t|
+ t.belongs_to :account, foreign_key: { on_delete: :cascade }
+ t.belongs_to :poll, foreign_key: { on_delete: :cascade }
+ t.integer :choice, null: false, default: 0
+
+ t.timestamps
+ end
+ end
+end
diff --git a/db/migrate/20190226003449_add_poll_id_to_statuses.rb b/db/migrate/20190226003449_add_poll_id_to_statuses.rb
new file mode 100644
index 000000000..692e8f814
--- /dev/null
+++ b/db/migrate/20190226003449_add_poll_id_to_statuses.rb
@@ -0,0 +1,5 @@
+class AddPollIdToStatuses < ActiveRecord::Migration[5.2]
+ def change
+ add_column :statuses, :poll_id, :bigint
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 51a7b5e74..d5d516e06 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_12_13_185533) do
+ActiveRecord::Schema.define(version: 2019_02_26_003449) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@@ -134,6 +134,7 @@ ActiveRecord::Schema.define(version: 2018_12_13_185533) do
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"
@@ -249,6 +250,17 @@ ActiveRecord::Schema.define(version: 2018_12_13_185533) do
t.index ["status_id"], name: "index_favourites_on_status_id"
end
+ create_table "featured_tags", force: :cascade do |t|
+ t.bigint "account_id"
+ t.bigint "tag_id"
+ t.bigint "statuses_count", default: 0, null: false
+ t.datetime "last_status_at"
+ t.datetime "created_at", null: false
+ t.datetime "updated_at", null: false
+ t.index ["account_id"], name: "index_featured_tags_on_account_id"
+ t.index ["tag_id"], name: "index_featured_tags_on_tag_id"
+ end
+
create_table "follow_requests", force: :cascade do |t|
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
@@ -289,6 +301,7 @@ ActiveRecord::Schema.define(version: 2018_12_13_185533) do
t.integer "data_file_size"
t.datetime "data_updated_at"
t.bigint "account_id", null: false
+ t.boolean "overwrite", default: false, null: false
end
create_table "invites", force: :cascade do |t|
@@ -335,7 +348,9 @@ ActiveRecord::Schema.define(version: 2018_12_13_185533) 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
@@ -426,6 +441,32 @@ ActiveRecord::Schema.define(version: 2018_12_13_185533) do
t.index ["database", "captured_at"], name: "index_pghero_space_stats_on_database_and_captured_at"
end
+ create_table "poll_votes", force: :cascade do |t|
+ t.bigint "account_id"
+ t.bigint "poll_id"
+ t.integer "choice", default: 0, null: false
+ t.datetime "created_at", null: false
+ t.datetime "updated_at", null: false
+ t.index ["account_id"], name: "index_poll_votes_on_account_id"
+ t.index ["poll_id"], name: "index_poll_votes_on_poll_id"
+ end
+
+ create_table "polls", force: :cascade do |t|
+ t.bigint "account_id"
+ t.bigint "status_id"
+ t.datetime "expires_at"
+ t.string "options", default: [], null: false, array: true
+ t.bigint "cached_tallies", default: [], null: false, array: true
+ t.boolean "multiple", default: false, null: false
+ t.boolean "hide_totals", default: false, null: false
+ t.bigint "votes_count", default: 0, null: false
+ t.datetime "last_fetched_at"
+ t.datetime "created_at", null: false
+ t.datetime "updated_at", null: false
+ t.index ["account_id"], name: "index_polls_on_account_id"
+ t.index ["status_id"], name: "index_polls_on_status_id"
+ end
+
create_table "preview_cards", force: :cascade do |t|
t.string "url", default: "", null: false
t.string "title", default: "", null: false
@@ -486,6 +527,14 @@ ActiveRecord::Schema.define(version: 2018_12_13_185533) 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
@@ -558,6 +607,7 @@ ActiveRecord::Schema.define(version: 2018_12_13_185533) do
t.bigint "account_id", null: false
t.bigint "application_id"
t.bigint "in_reply_to_account_id"
+ t.bigint "poll_id"
t.index ["account_id", "id", "visibility", "updated_at"], name: "index_statuses_20180106", order: { id: :desc }
t.index ["in_reply_to_account_id"], name: "index_statuses_on_in_reply_to_account_id"
t.index ["in_reply_to_id"], name: "index_statuses_on_in_reply_to_id"
@@ -604,6 +654,15 @@ ActiveRecord::Schema.define(version: 2018_12_13_185533) do
t.index ["name"], name: "index_tags_on_name", unique: true
end
+ create_table "tombstones", force: :cascade do |t|
+ t.bigint "account_id"
+ t.string "uri", null: false
+ t.datetime "created_at", null: false
+ t.datetime "updated_at", null: false
+ t.index ["account_id"], name: "index_tombstones_on_account_id"
+ t.index ["uri"], name: "index_tombstones_on_uri"
+ end
+
create_table "users", force: :cascade do |t|
t.string "email", default: "", null: false
t.datetime "created_at", null: false
@@ -637,8 +696,10 @@ ActiveRecord::Schema.define(version: 2018_12_13_185533) 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
@@ -685,6 +746,8 @@ ActiveRecord::Schema.define(version: 2018_12_13_185533) do
add_foreign_key "custom_filters", "accounts", on_delete: :cascade
add_foreign_key "favourites", "accounts", name: "fk_5eb6c2b873", on_delete: :cascade
add_foreign_key "favourites", "statuses", name: "fk_b0e856845e", on_delete: :cascade
+ add_foreign_key "featured_tags", "accounts", on_delete: :cascade
+ add_foreign_key "featured_tags", "tags", on_delete: :cascade
add_foreign_key "follow_requests", "accounts", column: "target_account_id", name: "fk_9291ec025d", on_delete: :cascade
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
@@ -697,6 +760,7 @@ ActiveRecord::Schema.define(version: 2018_12_13_185533) 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
@@ -709,12 +773,17 @@ ActiveRecord::Schema.define(version: 2018_12_13_185533) do
add_foreign_key "oauth_access_tokens", "oauth_applications", column: "application_id", name: "fk_f5fc4c1ee3", on_delete: :cascade
add_foreign_key "oauth_access_tokens", "users", column: "resource_owner_id", name: "fk_e84df68546", on_delete: :cascade
add_foreign_key "oauth_applications", "users", column: "owner_id", name: "fk_b0988c7c0a", on_delete: :cascade
+ add_foreign_key "poll_votes", "accounts", on_delete: :cascade
+ add_foreign_key "poll_votes", "polls", on_delete: :cascade
+ add_foreign_key "polls", "accounts", on_delete: :cascade
+ add_foreign_key "polls", "statuses", on_delete: :cascade
add_foreign_key "report_notes", "accounts", on_delete: :cascade
add_foreign_key "report_notes", "reports", on_delete: :cascade
add_foreign_key "reports", "accounts", column: "action_taken_by_account_id", name: "fk_bca45b75fd", on_delete: :nullify
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
@@ -728,8 +797,10 @@ ActiveRecord::Schema.define(version: 2018_12_13_185533) do
add_foreign_key "statuses_tags", "tags", name: "fk_3081861e21", on_delete: :cascade
add_foreign_key "stream_entries", "accounts", name: "fk_5659b17554", on_delete: :cascade
add_foreign_key "subscriptions", "accounts", name: "fk_9847d1cbb5", on_delete: :cascade
+ add_foreign_key "tombstones", "accounts", 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/dist/mastodon-streaming.service b/dist/mastodon-streaming.service
index 5d7c129df..c324fccf4 100644
--- a/dist/mastodon-streaming.service
+++ b/dist/mastodon-streaming.service
@@ -9,7 +9,7 @@ WorkingDirectory=/home/mastodon/live
Environment="NODE_ENV=production"
Environment="PORT=4000"
Environment="STREAMING_CLUSTER_NUM=1"
-ExecStart=/usr/bin/npm run start
+ExecStart=/usr/bin/node ./streaming
TimeoutSec=15
Restart=always
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/jest.config.js b/jest.config.js
index 50bde57e6..85f8b1be9 100644
--- a/jest.config.js
+++ b/jest.config.js
@@ -22,4 +22,8 @@ module.exports = {
'!app/javascript/mastodon/test_setup.js',
],
coverageDirectory: '
/coverage',
+ moduleDirectories: [
+ '/node_modules',
+ '/app/javascript',
+ ],
};
diff --git a/lib/cli.rb b/lib/cli.rb
index a810c632a..6036adfbe 100644
--- a/lib/cli.rb
+++ b/lib/cli.rb
@@ -7,6 +7,7 @@ require_relative 'mastodon/accounts_cli'
require_relative 'mastodon/feeds_cli'
require_relative 'mastodon/settings_cli'
require_relative 'mastodon/domains_cli'
+require_relative 'mastodon/version'
module Mastodon
class CLI < Thor
@@ -31,5 +32,12 @@ module Mastodon
desc 'domains SUBCOMMAND ...ARGS', 'Manage account domains'
subcommand 'domains', Mastodon::DomainsCLI
+
+ map %w(--version -v) => :version
+
+ desc 'version', 'Show version'
+ def version
+ say(Mastodon::Version.to_s)
+ end
end
end
diff --git a/lib/mastodon/accounts_cli.rb b/lib/mastodon/accounts_cli.rb
index b21968223..dca31cdca 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)
@@ -176,7 +176,7 @@ module Mastodon
end
say("Deleting user with #{account.statuses_count} statuses, this might take a while...")
- SuspendAccountService.new.call(account, remove_user: true)
+ SuspendAccountService.new.call(account, including_user: true)
say('OK', :green)
end
@@ -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)
diff --git a/lib/mastodon/domains_cli.rb b/lib/mastodon/domains_cli.rb
index 16e298584..303b8a94a 100644
--- a/lib/mastodon/domains_cli.rb
+++ b/lib/mastodon/domains_cli.rb
@@ -1,5 +1,6 @@
# frozen_string_literal: true
+require 'concurrent'
require_relative '../../config/boot'
require_relative '../../config/environment'
require_relative 'cli_helper'
@@ -32,5 +33,115 @@ module Mastodon
say
say("Removed #{removed} accounts#{dry_run}", :green)
end
+
+ option :concurrency, type: :numeric, default: 50, aliases: [:c]
+ option :silent, type: :boolean, default: false, aliases: [:s]
+ option :format, type: :string, default: 'summary', aliases: [:f]
+ desc 'crawl [START]', 'Crawl all known peers, optionally beginning at START'
+ long_desc <<-LONG_DESC
+ Crawl the fediverse by using the Mastodon REST API endpoints that expose
+ all known peers, and collect statistics from those peers, as long as those
+ peers support those API endpoints. When no START is given, the command uses
+ this server's own database of known peers to seed the crawl.
+
+ The --concurrency (-c) option controls the number of threads performing HTTP
+ requests at the same time. More threads means the crawl may complete faster.
+
+ The --silent (-s) option controls progress output.
+
+ The --format (-f) option controls how the data is displayed at the end. By
+ default (`summary`), a summary of the statistics is returned. The other options
+ are `domains`, which returns a newline-delimited list of all discovered peers,
+ and `json`, which dumps all the aggregated data raw.
+ LONG_DESC
+ def crawl(start = nil)
+ stats = Concurrent::Hash.new
+ processed = Concurrent::AtomicFixnum.new(0)
+ failed = Concurrent::AtomicFixnum.new(0)
+ start_at = Time.now.to_f
+ seed = start ? [start] : Account.remote.domains
+
+ pool = Concurrent::ThreadPoolExecutor.new(min_threads: 0, max_threads: options[:concurrency], idletime: 10, auto_terminate: true, max_queue: 0)
+
+ work_unit = ->(domain) do
+ next if stats.key?(domain)
+ stats[domain] = nil
+ processed.increment
+
+ begin
+ Request.new(:get, "https://#{domain}/api/v1/instance").perform do |res|
+ next unless res.code == 200
+ stats[domain] = Oj.load(res.to_s)
+ end
+
+ Request.new(:get, "https://#{domain}/api/v1/instance/peers").perform do |res|
+ next unless res.code == 200
+
+ Oj.load(res.to_s).reject { |peer| stats.key?(peer) }.each do |peer|
+ pool.post(peer, &work_unit)
+ end
+ end
+
+ Request.new(:get, "https://#{domain}/api/v1/instance/activity").perform do |res|
+ next unless res.code == 200
+ stats[domain]['activity'] = Oj.load(res.to_s)
+ end
+
+ say('.', :green, false) unless options[:silent]
+ rescue StandardError
+ failed.increment
+ say('.', :red, false) unless options[:silent]
+ end
+ end
+
+ seed.each do |domain|
+ pool.post(domain, &work_unit)
+ end
+
+ sleep 20
+ sleep 20 until pool.queue_length.zero?
+
+ pool.shutdown
+ pool.wait_for_termination(20)
+ ensure
+ pool.shutdown
+
+ say unless options[:silent]
+
+ case options[:format]
+ when 'summary'
+ stats_to_summary(stats, processed, failed, start_at)
+ when 'domains'
+ stats_to_domains(stats)
+ when 'json'
+ stats_to_json(stats)
+ end
+ end
+
+ private
+
+ def stats_to_summary(stats, processed, failed, start_at)
+ stats.compact!
+
+ total_domains = stats.size
+ total_users = stats.reduce(0) { |sum, (_key, val)| val.is_a?(Hash) && val['stats'].is_a?(Hash) ? sum + val['stats']['user_count'].to_i : sum }
+ total_active = stats.reduce(0) { |sum, (_key, val)| val.is_a?(Hash) && val['activity'].is_a?(Array) && val['activity'].size > 2 && val['activity'][1].is_a?(Hash) ? sum + val['activity'][1]['logins'].to_i : sum }
+ total_joined = stats.reduce(0) { |sum, (_key, val)| val.is_a?(Hash) && val['activity'].is_a?(Array) && val['activity'].size > 2 && val['activity'][1].is_a?(Hash) ? sum + val['activity'][1]['registrations'].to_i : sum }
+
+ say("Visited #{processed.value} domains, #{failed.value} failed (#{(Time.now.to_f - start_at).round}s elapsed)", :green)
+ say("Total servers: #{total_domains}", :green)
+ say("Total registered: #{total_users}", :green)
+ say("Total active last week: #{total_active}", :green)
+ say("Total joined last week: #{total_joined}", :green)
+ end
+
+ def stats_to_domains(stats)
+ say(stats.keys.join("\n"))
+ end
+
+ def stats_to_json(stats)
+ stats.compact!
+ say(Oj.dump(stats))
+ end
end
end
diff --git a/lib/mastodon/migration_helpers.rb b/lib/mastodon/migration_helpers.rb
index f5dc7e1c6..146eba8ec 100644
--- a/lib/mastodon/migration_helpers.rb
+++ b/lib/mastodon/migration_helpers.rb
@@ -889,7 +889,7 @@ table #{table}.
If you are using PostgreSQL you can solve this by logging in to the GitLab
database (#{dbname}) using a super user and running:
- ALTER #{user} WITH SUPERUSER
+ ALTER USER #{user} WITH SUPERUSER
For MySQL you instead need to run:
diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb
index cb5c2440c..005cd52f6 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
+ 3
end
def pre
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/lib/tasks/repo.rake b/lib/tasks/repo.rake
index 367859e94..8ceec3085 100644
--- a/lib/tasks/repo.rake
+++ b/lib/tasks/repo.rake
@@ -1,10 +1,13 @@
# frozen_string_literal: true
namespace :repo do
- desc 'Generate the authors.md file'
+ desc 'Generate the AUTHORS.md file'
task :authors do
- file = File.open('AUTHORS.md', 'w')
+ file = File.open(Rails.root.join('AUTHORS.md'), 'w')
file << <<~HEADER
+ Authors
+ =======
+
Mastodon is available on [GitHub](https://github.com/tootsuite/mastodon)
and provided thanks to the work of the following contributors:
@@ -27,4 +30,50 @@ namespace :repo do
This document is provided for informational purposes only. Since it is only updated once per release, the version you are looking at may be currently out of date. To see the full list of contributors, consider looking at the [git history](https://github.com/tootsuite/mastodon/graphs/contributors) instead.
FOOTER
end
+
+ desc 'Replace pull requests with authors in the CHANGELOG.md file'
+ task :changelog do
+ path = Rails.root.join('CHANGELOG.md')
+ tmp = Tempfile.new
+
+ HttpLog.config.compact_log = true
+
+ begin
+ File.open(path, 'r') do |file|
+ file.each_line do |line|
+ if line.start_with?('-')
+ new_line = line.gsub(/#([[:digit:]]+)*/) do |pull_request_reference|
+ pull_request_number = pull_request_reference[1..-1]
+ response = nil
+
+ loop do
+ response = HTTP.headers('Authorization' => "token #{ENV['GITHUB_API_TOKEN']}").get("https://api.github.com/repos/tootsuite/mastodon/pulls/#{pull_request_number}")
+
+ if response.code == 403
+ sleep_for = (response.headers['X-RateLimit-Reset'].to_i - Time.now.to_i).abs
+ puts "Sleeping for #{sleep_for} seconds to get over rate limit"
+ sleep sleep_for
+ else
+ break
+ end
+ end
+
+ pull_request = Oj.load(response.to_s)
+ "[#{pull_request['user']['login']}](#{pull_request['html_url']})"
+ end
+
+ tmp.puts new_line
+ else
+ tmp.puts line
+ end
+ end
+ end
+
+ tmp.close
+ FileUtils.mv(tmp.path, path)
+ ensure
+ tmp.close
+ tmp.unlink
+ end
+ end
end
diff --git a/package.json b/package.json
index b8f819b5f..5fa6fa8b7 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,136 +21,139 @@
"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-masonry-infinite": "^1.2.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.0.8",
"react-router-dom": "^4.1.1",
"react-router-scroll-4": "^1.0.0-beta.1",
- "react-select": "^2.0.0",
+ "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/public/oops.png b/public/oops.png
new file mode 100644
index 000000000..1ac779f25
Binary files /dev/null and b/public/oops.png differ
diff --git a/public/robots.txt b/public/robots.txt
index 3c9c7c01f..d93648bee 100644
--- a/public/robots.txt
+++ b/public/robots.txt
@@ -1,5 +1,4 @@
# See http://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file
-#
-# To ban all spiders from the entire site uncomment the next two lines:
-# User-agent: *
-# Disallow: /
+
+User-agent: *
+Disallow: /media_proxy/
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/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/filter_controller_spec.rb b/spec/controllers/api/v1/filters_controller_spec.rb
similarity index 100%
rename from spec/controllers/api/v1/filter_controller_spec.rb
rename to spec/controllers/api/v1/filters_controller_spec.rb
diff --git a/spec/controllers/api/v1/media_controller_spec.rb b/spec/controllers/api/v1/media_controller_spec.rb
index f01fcd942..4e3037208 100644
--- a/spec/controllers/api/v1/media_controller_spec.rb
+++ b/spec/controllers/api/v1/media_controller_spec.rb
@@ -84,19 +84,17 @@ RSpec.describe Api::V1::MediaController, type: :controller do
post :create, params: { file: fixture_file_upload('files/attachment.webm', 'video/webm') }
end
- xit 'returns http success' do
+ it do
+ # returns http success
expect(response).to have_http_status(200)
- end
- xit 'creates a media attachment' do
+ # creates a media attachment
expect(MediaAttachment.first).to_not be_nil
- end
- xit 'uploads a file' do
+ # uploads a file
expect(MediaAttachment.first).to have_attached_file(:file)
- end
- xit 'returns media ID in JSON' do
+ # returns media ID in JSON
expect(body_as_json[:id]).to eq MediaAttachment.first.id.to_s
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/polls/votes_controller_spec.rb b/spec/controllers/api/v1/polls/votes_controller_spec.rb
new file mode 100644
index 000000000..0ee3aa040
--- /dev/null
+++ b/spec/controllers/api/v1/polls/votes_controller_spec.rb
@@ -0,0 +1,34 @@
+require 'rails_helper'
+
+RSpec.describe Api::V1::Polls::VotesController, type: :controller do
+ render_views
+
+ let(:user) { Fabricate(:user, account: Fabricate(:account, username: 'alice')) }
+ let(:scopes) { 'write:statuses' }
+ let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: scopes) }
+
+ before { allow(controller).to receive(:doorkeeper_token) { token } }
+
+ describe 'POST #create' do
+ let(:poll) { Fabricate(:poll) }
+
+ before do
+ post :create, params: { poll_id: poll.id, choices: %w(1) }
+ end
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'creates a vote' do
+ vote = poll.votes.where(account: user.account).first
+
+ expect(vote).to_not be_nil
+ expect(vote.choice).to eq 1
+ end
+
+ it 'updates poll tallies' do
+ expect(poll.reload.cached_tallies).to eq [0, 1]
+ end
+ end
+end
diff --git a/spec/controllers/api/v1/polls_controller_spec.rb b/spec/controllers/api/v1/polls_controller_spec.rb
new file mode 100644
index 000000000..2b8d5f3ef
--- /dev/null
+++ b/spec/controllers/api/v1/polls_controller_spec.rb
@@ -0,0 +1,23 @@
+require 'rails_helper'
+
+RSpec.describe Api::V1::PollsController, type: :controller do
+ render_views
+
+ let(:user) { Fabricate(:user, account: Fabricate(:account, username: 'alice')) }
+ let(:scopes) { 'read:statuses' }
+ let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: scopes) }
+
+ before { allow(controller).to receive(:doorkeeper_token) { token } }
+
+ describe 'GET #show' do
+ let(:poll) { Fabricate(:poll) }
+
+ before do
+ get :show, params: { id: poll.id }
+ end
+
+ it 'returns http success' do
+ 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/tags_controller_spec.rb b/spec/controllers/tags_controller_spec.rb
index 33ccaed61..69def90cf 100644
--- a/spec/controllers/tags_controller_spec.rb
+++ b/spec/controllers/tags_controller_spec.rb
@@ -17,7 +17,7 @@ RSpec.describe TagsController, type: :controller do
it 'renders application layout' do
get :show, params: { id: 'test', max_id: late.id }
- expect(response).to render_template layout: 'application'
+ expect(response).to render_template layout: 'public'
end
end
diff --git a/spec/fabricators/featured_tag_fabricator.rb b/spec/fabricators/featured_tag_fabricator.rb
new file mode 100644
index 000000000..25cbdaac0
--- /dev/null
+++ b/spec/fabricators/featured_tag_fabricator.rb
@@ -0,0 +1,6 @@
+Fabricator(:featured_tag) do
+ account
+ tag
+ statuses_count 1_337
+ last_status_at Time.now.utc
+end
diff --git a/spec/fabricators/poll_fabricator.rb b/spec/fabricators/poll_fabricator.rb
new file mode 100644
index 000000000..746610f7c
--- /dev/null
+++ b/spec/fabricators/poll_fabricator.rb
@@ -0,0 +1,8 @@
+Fabricator(:poll) do
+ account
+ status
+ expires_at { 7.days.from_now }
+ options %w(Foo Bar)
+ multiple false
+ hide_totals false
+end
diff --git a/spec/fabricators/poll_vote_fabricator.rb b/spec/fabricators/poll_vote_fabricator.rb
new file mode 100644
index 000000000..51f9b006e
--- /dev/null
+++ b/spec/fabricators/poll_vote_fabricator.rb
@@ -0,0 +1,5 @@
+Fabricator(:poll_vote) do
+ account
+ poll
+ choice 0
+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/requests/oembed_json_empty.html b/spec/fixtures/requests/oembed_json_empty.html
new file mode 100644
index 000000000..4b02413aa
--- /dev/null
+++ b/spec/fixtures/requests/oembed_json_empty.html
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
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/announce_spec.rb b/spec/lib/activitypub/activity/announce_spec.rb
index 54dd52a60..aa58d9e23 100644
--- a/spec/lib/activitypub/activity/announce_spec.rb
+++ b/spec/lib/activitypub/activity/announce_spec.rb
@@ -1,7 +1,7 @@
require 'rails_helper'
RSpec.describe ActivityPub::Activity::Announce do
- let(:sender) { Fabricate(:account) }
+ let(:sender) { Fabricate(:account, followers_url: 'http://example.com/followers', uri: 'https://example.com/actor') }
let(:recipient) { Fabricate(:account) }
let(:status) { Fabricate(:status, account: recipient) }
@@ -10,20 +10,162 @@ RSpec.describe ActivityPub::Activity::Announce do
'@context': 'https://www.w3.org/ns/activitystreams',
id: 'foo',
type: 'Announce',
- actor: ActivityPub::TagManager.instance.uri_for(sender),
- object: ActivityPub::TagManager.instance.uri_for(status),
+ actor: 'https://example.com/actor',
+ object: object_json,
}.with_indifferent_access
end
- describe '#perform' do
- subject { described_class.new(json, sender) }
+ let(:unknown_object_json) do
+ {
+ '@context': 'https://www.w3.org/ns/activitystreams',
+ id: 'https://example.com/actor/hello-world',
+ type: 'Note',
+ attributedTo: 'https://example.com/actor',
+ content: 'Hello world',
+ to: 'http://example.com/followers',
+ }
+ end
- before do
- subject.perform
+ subject { described_class.new(json, sender) }
+
+ describe '#perform' do
+ context 'when sender is followed by a local account' do
+ before do
+ Fabricate(:account).follow!(sender)
+ stub_request(:get, 'https://example.com/actor/hello-world').to_return(body: Oj.dump(unknown_object_json))
+ subject.perform
+ end
+
+ context 'a known status' do
+ let(:object_json) do
+ ActivityPub::TagManager.instance.uri_for(status)
+ end
+
+ it 'creates a reblog by sender of status' do
+ expect(sender.reblogged?(status)).to be true
+ end
+ end
+
+ context 'an unknown status' do
+ let(:object_json) { 'https://example.com/actor/hello-world' }
+
+ it 'creates a reblog by sender of status' do
+ reblog = sender.statuses.first
+
+ expect(reblog).to_not be_nil
+ expect(reblog.reblog.text).to eq 'Hello world'
+ end
+ end
+
+ context 'self-boost of a previously unknown status with missing attributedTo' do
+ let(:object_json) do
+ {
+ id: 'https://example.com/actor#bar',
+ type: 'Note',
+ content: 'Lorem ipsum',
+ to: 'http://example.com/followers',
+ }
+ end
+
+ it 'creates a reblog by sender of status' do
+ expect(sender.reblogged?(sender.statuses.first)).to be true
+ end
+ end
+
+ context 'self-boost of a previously unknown status with correct attributedTo' do
+ let(:object_json) do
+ {
+ id: 'https://example.com/actor#bar',
+ type: 'Note',
+ content: 'Lorem ipsum',
+ attributedTo: 'https://example.com/actor',
+ to: 'http://example.com/followers',
+ }
+ end
+
+ it 'creates a reblog by sender of status' do
+ expect(sender.reblogged?(sender.statuses.first)).to be true
+ end
+ end
end
- it 'creates a reblog by sender of status' do
- expect(sender.reblogged?(status)).to be true
+ context 'when the status belongs to a local user' do
+ before do
+ subject.perform
+ end
+
+ let(:object_json) do
+ ActivityPub::TagManager.instance.uri_for(status)
+ end
+
+ it 'creates a reblog by sender of status' do
+ expect(sender.reblogged?(status)).to be true
+ end
+ end
+
+ context 'when the sender is relayed' do
+ let!(:relay_account) { Fabricate(:account, inbox_url: 'https://relay.example.com/inbox') }
+ let!(:relay) { Fabricate(:relay, inbox_url: 'https://relay.example.com/inbox') }
+
+ subject { described_class.new(json, sender, relayed_through_account: relay_account) }
+
+ context 'and the relay is enabled' do
+ before do
+ relay.update(state: :accepted)
+ subject.perform
+ end
+
+ let(:object_json) do
+ {
+ id: 'https://example.com/actor#bar',
+ type: 'Note',
+ content: 'Lorem ipsum',
+ to: 'http://example.com/followers',
+ }
+ end
+
+ it 'creates a reblog by sender of status' do
+ expect(sender.statuses.count).to eq 2
+ end
+ end
+
+ context 'and the relay is disabled' do
+ before do
+ subject.perform
+ end
+
+ let(:object_json) do
+ {
+ id: 'https://example.com/actor#bar',
+ type: 'Note',
+ content: 'Lorem ipsum',
+ to: 'http://example.com/followers',
+ }
+ end
+
+ it 'does not create anything' do
+ expect(sender.statuses.count).to eq 0
+ end
+ end
+ end
+
+ context 'when the sender has no relevance to local activity' do
+ before do
+ subject.perform
+ end
+
+ let(:object_json) do
+ {
+ id: 'https://example.com/actor#bar',
+ type: 'Note',
+ content: 'Lorem ipsum',
+ to: 'http://example.com/followers',
+ }
+ end
+
+ it 'does not create anything' do
+ expect(sender.statuses.count).to eq 0
+ end
end
end
end
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/create_spec.rb b/spec/lib/activitypub/activity/create_spec.rb
index cd20b7c7c..ac6237c86 100644
--- a/spec/lib/activitypub/activity/create_spec.rb
+++ b/spec/lib/activitypub/activity/create_spec.rb
@@ -1,7 +1,7 @@
require 'rails_helper'
RSpec.describe ActivityPub::Activity::Create do
- let(:sender) { Fabricate(:account, followers_url: 'http://example.com/followers') }
+ let(:sender) { Fabricate(:account, followers_url: 'http://example.com/followers', domain: 'example.com', uri: 'https://example.com/actor') }
let(:json) do
{
@@ -13,8 +13,6 @@ RSpec.describe ActivityPub::Activity::Create do
}.with_indifferent_access
end
- subject { described_class.new(json, sender) }
-
before do
sender.update(uri: ActivityPub::TagManager.instance.uri_for(sender))
@@ -23,11 +21,442 @@ RSpec.describe ActivityPub::Activity::Create do
end
describe '#perform' do
- before do
- subject.perform
+ context 'when fetching' do
+ subject { described_class.new(json, sender) }
+
+ before do
+ subject.perform
+ end
+
+ context 'standalone' do
+ let(:object_json) do
+ {
+ id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
+ type: 'Note',
+ content: 'Lorem ipsum',
+ }
+ end
+
+ it 'creates status' do
+ status = sender.statuses.first
+
+ expect(status).to_not be_nil
+ expect(status.text).to eq 'Lorem ipsum'
+ end
+
+ it 'missing to/cc defaults to direct privacy' do
+ status = sender.statuses.first
+
+ expect(status).to_not be_nil
+ expect(status.visibility).to eq 'direct'
+ end
+ end
+
+ context 'public' do
+ let(:object_json) do
+ {
+ id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
+ type: 'Note',
+ content: 'Lorem ipsum',
+ to: 'https://www.w3.org/ns/activitystreams#Public',
+ }
+ end
+
+ it 'creates status' do
+ status = sender.statuses.first
+
+ expect(status).to_not be_nil
+ expect(status.visibility).to eq 'public'
+ end
+ end
+
+ context 'unlisted' do
+ let(:object_json) do
+ {
+ id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
+ type: 'Note',
+ content: 'Lorem ipsum',
+ cc: 'https://www.w3.org/ns/activitystreams#Public',
+ }
+ end
+
+ it 'creates status' do
+ status = sender.statuses.first
+
+ expect(status).to_not be_nil
+ expect(status.visibility).to eq 'unlisted'
+ end
+ end
+
+ context 'private' do
+ let(:object_json) do
+ {
+ id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
+ type: 'Note',
+ content: 'Lorem ipsum',
+ to: 'http://example.com/followers',
+ }
+ end
+
+ it 'creates status' do
+ status = sender.statuses.first
+
+ expect(status).to_not be_nil
+ expect(status.visibility).to eq 'private'
+ end
+ end
+
+ context 'limited' do
+ let(:recipient) { Fabricate(:account) }
+
+ let(:object_json) do
+ {
+ id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
+ type: 'Note',
+ content: 'Lorem ipsum',
+ to: ActivityPub::TagManager.instance.uri_for(recipient),
+ }
+ end
+
+ it 'creates status' do
+ status = sender.statuses.first
+
+ expect(status).to_not be_nil
+ expect(status.visibility).to eq 'limited'
+ end
+
+ it 'creates silent mention' do
+ status = sender.statuses.first
+ expect(status.mentions.first).to be_silent
+ end
+ end
+
+ context 'direct' do
+ let(:recipient) { Fabricate(:account) }
+
+ let(:object_json) do
+ {
+ id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
+ type: 'Note',
+ content: 'Lorem ipsum',
+ to: ActivityPub::TagManager.instance.uri_for(recipient),
+ tag: {
+ type: 'Mention',
+ href: ActivityPub::TagManager.instance.uri_for(recipient),
+ },
+ }
+ end
+
+ it 'creates status' do
+ status = sender.statuses.first
+
+ expect(status).to_not be_nil
+ expect(status.visibility).to eq 'direct'
+ end
+ end
+
+ context 'as a reply' do
+ let(:original_status) { Fabricate(:status) }
+
+ let(:object_json) do
+ {
+ id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
+ type: 'Note',
+ content: 'Lorem ipsum',
+ inReplyTo: ActivityPub::TagManager.instance.uri_for(original_status),
+ }
+ end
+
+ it 'creates status' do
+ status = sender.statuses.first
+
+ expect(status).to_not be_nil
+ expect(status.thread).to eq original_status
+ expect(status.reply?).to be true
+ expect(status.in_reply_to_account).to eq original_status.account
+ expect(status.conversation).to eq original_status.conversation
+ end
+ end
+
+ context 'with mentions' do
+ let(:recipient) { Fabricate(:account) }
+
+ let(:object_json) do
+ {
+ id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
+ type: 'Note',
+ content: 'Lorem ipsum',
+ tag: [
+ {
+ type: 'Mention',
+ href: ActivityPub::TagManager.instance.uri_for(recipient),
+ },
+ ],
+ }
+ end
+
+ it 'creates status' do
+ status = sender.statuses.first
+
+ expect(status).to_not be_nil
+ expect(status.mentions.map(&:account)).to include(recipient)
+ end
+ end
+
+ context 'with mentions missing href' do
+ let(:object_json) do
+ {
+ id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
+ type: 'Note',
+ content: 'Lorem ipsum',
+ tag: [
+ {
+ type: 'Mention',
+ },
+ ],
+ }
+ end
+
+ it 'creates status' do
+ status = sender.statuses.first
+ expect(status).to_not be_nil
+ end
+ end
+
+ context 'with media attachments' do
+ let(:object_json) do
+ {
+ id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
+ type: 'Note',
+ content: 'Lorem ipsum',
+ attachment: [
+ {
+ type: 'Document',
+ mediaType: 'image/png',
+ url: 'http://example.com/attachment.png',
+ },
+ ],
+ }
+ end
+
+ it 'creates status' do
+ status = sender.statuses.first
+
+ expect(status).to_not be_nil
+ expect(status.media_attachments.map(&:remote_url)).to include('http://example.com/attachment.png')
+ end
+ end
+
+ context 'with media attachments with focal points' do
+ let(:object_json) do
+ {
+ id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
+ type: 'Note',
+ content: 'Lorem ipsum',
+ attachment: [
+ {
+ type: 'Document',
+ mediaType: 'image/png',
+ url: 'http://example.com/attachment.png',
+ focalPoint: [0.5, -0.7],
+ },
+ ],
+ }
+ end
+
+ it 'creates status' do
+ status = sender.statuses.first
+
+ expect(status).to_not be_nil
+ expect(status.media_attachments.map(&:focus)).to include('0.5,-0.7')
+ end
+ end
+
+ context 'with media attachments missing url' do
+ let(:object_json) do
+ {
+ id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
+ type: 'Note',
+ content: 'Lorem ipsum',
+ attachment: [
+ {
+ type: 'Document',
+ mediaType: 'image/png',
+ },
+ ],
+ }
+ end
+
+ it 'creates status' do
+ status = sender.statuses.first
+ expect(status).to_not be_nil
+ end
+ end
+
+ context 'with hashtags' do
+ let(:object_json) do
+ {
+ id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
+ type: 'Note',
+ content: 'Lorem ipsum',
+ tag: [
+ {
+ type: 'Hashtag',
+ href: 'http://example.com/blah',
+ name: '#test',
+ },
+ ],
+ }
+ end
+
+ it 'creates status' do
+ status = sender.statuses.first
+
+ expect(status).to_not be_nil
+ expect(status.tags.map(&:name)).to include('test')
+ end
+ end
+
+ context 'with hashtags missing name' do
+ let(:object_json) do
+ {
+ id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
+ type: 'Note',
+ content: 'Lorem ipsum',
+ tag: [
+ {
+ type: 'Hashtag',
+ href: 'http://example.com/blah',
+ },
+ ],
+ }
+ end
+
+ it 'creates status' do
+ status = sender.statuses.first
+ expect(status).to_not be_nil
+ end
+ end
+
+ context 'with emojis' do
+ let(:object_json) do
+ {
+ id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
+ type: 'Note',
+ content: 'Lorem ipsum :tinking:',
+ tag: [
+ {
+ type: 'Emoji',
+ icon: {
+ url: 'http://example.com/emoji.png',
+ },
+ name: 'tinking',
+ },
+ ],
+ }
+ end
+
+ it 'creates status' do
+ status = sender.statuses.first
+
+ expect(status).to_not be_nil
+ expect(status.emojis.map(&:shortcode)).to include('tinking')
+ end
+ end
+
+ context 'with emojis missing name' do
+ let(:object_json) do
+ {
+ id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
+ type: 'Note',
+ content: 'Lorem ipsum :tinking:',
+ tag: [
+ {
+ type: 'Emoji',
+ icon: {
+ url: 'http://example.com/emoji.png',
+ },
+ },
+ ],
+ }
+ end
+
+ it 'creates status' do
+ status = sender.statuses.first
+ expect(status).to_not be_nil
+ end
+ end
+
+ context 'with emojis missing icon' do
+ let(:object_json) do
+ {
+ id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
+ type: 'Note',
+ content: 'Lorem ipsum :tinking:',
+ tag: [
+ {
+ type: 'Emoji',
+ name: 'tinking',
+ },
+ ],
+ }
+ end
+
+ it 'creates status' do
+ status = sender.statuses.first
+ expect(status).to_not be_nil
+ end
+ end
+
+ context 'with poll' do
+ let(:object_json) do
+ {
+ id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
+ type: 'Question',
+ content: 'Which color was the submarine?',
+ oneOf: [
+ {
+ name: 'Yellow',
+ replies: {
+ type: 'Collection',
+ totalItems: 10,
+ },
+ },
+ {
+ name: 'Blue',
+ replies: {
+ type: 'Collection',
+ totalItems: 3,
+ }
+ },
+ ],
+ }
+ end
+
+ it 'creates status' do
+ status = sender.statuses.first
+ expect(status).to_not be_nil
+ expect(status.poll).to_not be_nil
+ end
+
+ it 'creates a poll' do
+ poll = sender.polls.first
+ expect(poll).to_not be_nil
+ expect(poll.status).to_not be_nil
+ expect(poll.options).to eq %w(Yellow Blue)
+ expect(poll.cached_tallies).to eq [10, 3]
+ end
+ end
end
- context 'standalone' do
+ context 'when sender is followed by local users' do
+ subject { described_class.new(json, sender, delivery: true) }
+
+ before do
+ Fabricate(:account).follow!(sender)
+ subject.perform
+ end
+
let(:object_json) do
{
id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
@@ -42,78 +471,23 @@ RSpec.describe ActivityPub::Activity::Create do
expect(status).to_not be_nil
expect(status.text).to eq 'Lorem ipsum'
end
-
- it 'missing to/cc defaults to direct privacy' do
- status = sender.statuses.first
-
- expect(status).to_not be_nil
- expect(status.visibility).to eq 'direct'
- end
end
- context 'public' do
- let(:object_json) do
- {
- id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
- type: 'Note',
- content: 'Lorem ipsum',
- to: 'https://www.w3.org/ns/activitystreams#Public',
- }
+ context 'when sender replies to local status' do
+ let!(:local_status) { Fabricate(:status) }
+
+ subject { described_class.new(json, sender, delivery: true) }
+
+ before do
+ subject.perform
end
- it 'creates status' do
- status = sender.statuses.first
-
- expect(status).to_not be_nil
- expect(status.visibility).to eq 'public'
- end
- end
-
- context 'unlisted' do
- let(:object_json) do
- {
- id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
- type: 'Note',
- content: 'Lorem ipsum',
- cc: 'https://www.w3.org/ns/activitystreams#Public',
- }
- end
-
- it 'creates status' do
- status = sender.statuses.first
-
- expect(status).to_not be_nil
- expect(status.visibility).to eq 'unlisted'
- end
- end
-
- context 'private' do
- let(:object_json) do
- {
- id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
- type: 'Note',
- content: 'Lorem ipsum',
- to: 'http://example.com/followers',
- }
- end
-
- it 'creates status' do
- status = sender.statuses.first
-
- expect(status).to_not be_nil
- expect(status.visibility).to eq 'private'
- end
- end
-
- context 'limited' do
- let(:recipient) { Fabricate(:account) }
-
let(:object_json) do
{
id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
type: 'Note',
content: 'Lorem ipsum',
- to: ActivityPub::TagManager.instance.uri_for(recipient),
+ inReplyTo: ActivityPub::TagManager.instance.uri_for(local_status),
}
end
@@ -121,28 +495,25 @@ RSpec.describe ActivityPub::Activity::Create do
status = sender.statuses.first
expect(status).to_not be_nil
- expect(status.visibility).to eq 'limited'
- end
-
- it 'creates silent mention' do
- status = sender.statuses.first
- expect(status.mentions.first).to be_silent
+ expect(status.text).to eq 'Lorem ipsum'
end
end
- context 'direct' do
- let(:recipient) { Fabricate(:account) }
+ context 'when sender targets a local user' do
+ let!(:local_account) { Fabricate(:account) }
+
+ subject { described_class.new(json, sender, delivery: true) }
+
+ before do
+ subject.perform
+ end
let(:object_json) do
{
id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
type: 'Note',
content: 'Lorem ipsum',
- to: ActivityPub::TagManager.instance.uri_for(recipient),
- tag: {
- type: 'Mention',
- href: ActivityPub::TagManager.instance.uri_for(recipient),
- },
+ to: ActivityPub::TagManager.instance.uri_for(local_account),
}
end
@@ -150,19 +521,25 @@ RSpec.describe ActivityPub::Activity::Create do
status = sender.statuses.first
expect(status).to_not be_nil
- expect(status.visibility).to eq 'direct'
+ expect(status.text).to eq 'Lorem ipsum'
end
end
- context 'as a reply' do
- let(:original_status) { Fabricate(:status) }
+ context 'when sender cc\'s a local user' do
+ let!(:local_account) { Fabricate(:account) }
+
+ subject { described_class.new(json, sender, delivery: true) }
+
+ before do
+ subject.perform
+ end
let(:object_json) do
{
id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
type: 'Note',
content: 'Lorem ipsum',
- inReplyTo: ActivityPub::TagManager.instance.uri_for(original_status),
+ cc: ActivityPub::TagManager.instance.uri_for(local_account),
}
end
@@ -170,240 +547,27 @@ RSpec.describe ActivityPub::Activity::Create do
status = sender.statuses.first
expect(status).to_not be_nil
- expect(status.thread).to eq original_status
- expect(status.reply?).to be true
- expect(status.in_reply_to_account).to eq original_status.account
- expect(status.conversation).to eq original_status.conversation
+ expect(status.text).to eq 'Lorem ipsum'
end
end
- context 'with mentions' do
- let(:recipient) { Fabricate(:account) }
+ context 'when the sender has no relevance to local activity' do
+ subject { described_class.new(json, sender, delivery: true) }
+
+ before do
+ subject.perform
+ end
let(:object_json) do
{
id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
type: 'Note',
content: 'Lorem ipsum',
- tag: [
- {
- type: 'Mention',
- href: ActivityPub::TagManager.instance.uri_for(recipient),
- },
- ],
}
end
- it 'creates status' do
- status = sender.statuses.first
-
- expect(status).to_not be_nil
- expect(status.mentions.map(&:account)).to include(recipient)
- end
- end
-
- context 'with mentions missing href' do
- let(:object_json) do
- {
- id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
- type: 'Note',
- content: 'Lorem ipsum',
- tag: [
- {
- type: 'Mention',
- },
- ],
- }
- end
-
- it 'creates status' do
- status = sender.statuses.first
- expect(status).to_not be_nil
- end
- end
-
- context 'with media attachments' do
- let(:object_json) do
- {
- id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
- type: 'Note',
- content: 'Lorem ipsum',
- attachment: [
- {
- type: 'Document',
- mediaType: 'image/png',
- url: 'http://example.com/attachment.png',
- },
- ],
- }
- end
-
- it 'creates status' do
- status = sender.statuses.first
-
- expect(status).to_not be_nil
- expect(status.media_attachments.map(&:remote_url)).to include('http://example.com/attachment.png')
- end
- end
-
- context 'with media attachments with focal points' do
- let(:object_json) do
- {
- id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
- type: 'Note',
- content: 'Lorem ipsum',
- attachment: [
- {
- type: 'Document',
- mediaType: 'image/png',
- url: 'http://example.com/attachment.png',
- focalPoint: [0.5, -0.7],
- },
- ],
- }
- end
-
- it 'creates status' do
- status = sender.statuses.first
-
- expect(status).to_not be_nil
- expect(status.media_attachments.map(&:focus)).to include('0.5,-0.7')
- end
- end
-
- context 'with media attachments missing url' do
- let(:object_json) do
- {
- id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
- type: 'Note',
- content: 'Lorem ipsum',
- attachment: [
- {
- type: 'Document',
- mediaType: 'image/png',
- },
- ],
- }
- end
-
- it 'creates status' do
- status = sender.statuses.first
- expect(status).to_not be_nil
- end
- end
-
- context 'with hashtags' do
- let(:object_json) do
- {
- id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
- type: 'Note',
- content: 'Lorem ipsum',
- tag: [
- {
- type: 'Hashtag',
- href: 'http://example.com/blah',
- name: '#test',
- },
- ],
- }
- end
-
- it 'creates status' do
- status = sender.statuses.first
-
- expect(status).to_not be_nil
- expect(status.tags.map(&:name)).to include('test')
- end
- end
-
- context 'with hashtags missing name' do
- let(:object_json) do
- {
- id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
- type: 'Note',
- content: 'Lorem ipsum',
- tag: [
- {
- type: 'Hashtag',
- href: 'http://example.com/blah',
- },
- ],
- }
- end
-
- it 'creates status' do
- status = sender.statuses.first
- expect(status).to_not be_nil
- end
- end
-
- context 'with emojis' do
- let(:object_json) do
- {
- id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
- type: 'Note',
- content: 'Lorem ipsum :tinking:',
- tag: [
- {
- type: 'Emoji',
- icon: {
- url: 'http://example.com/emoji.png',
- },
- name: 'tinking',
- },
- ],
- }
- end
-
- it 'creates status' do
- status = sender.statuses.first
-
- expect(status).to_not be_nil
- expect(status.emojis.map(&:shortcode)).to include('tinking')
- end
- end
-
- context 'with emojis missing name' do
- let(:object_json) do
- {
- id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
- type: 'Note',
- content: 'Lorem ipsum :tinking:',
- tag: [
- {
- type: 'Emoji',
- icon: {
- url: 'http://example.com/emoji.png',
- },
- },
- ],
- }
- end
-
- it 'creates status' do
- status = sender.statuses.first
- expect(status).to_not be_nil
- end
- end
-
- context 'with emojis missing icon' do
- let(:object_json) do
- {
- id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
- type: 'Note',
- content: 'Lorem ipsum :tinking:',
- tag: [
- {
- type: 'Emoji',
- name: 'tinking',
- },
- ],
- }
- end
-
- it 'creates status' do
- status = sender.statuses.first
- expect(status).to_not be_nil
+ it 'does not create anything' do
+ expect(sender.statuses.count).to eq 0
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/lib/formatter_spec.rb b/spec/lib/formatter_spec.rb
index 0c1efe7c3..96d2fc7e0 100644
--- a/spec/lib/formatter_spec.rb
+++ b/spec/lib/formatter_spec.rb
@@ -74,10 +74,36 @@ RSpec.describe Formatter do
end
context 'given a URL with a query string' do
- let(:text) { 'https://www.ruby-toolbox.com/search?utf8=%E2%9C%93&q=autolink' }
+ context 'with escaped unicode character' do
+ let(:text) { 'https://www.ruby-toolbox.com/search?utf8=%E2%9C%93&q=autolink' }
- it 'matches the full URL' do
- is_expected.to include 'href="https://www.ruby-toolbox.com/search?utf8=%E2%9C%93&q=autolink"'
+ it 'matches the full URL' do
+ is_expected.to include 'href="https://www.ruby-toolbox.com/search?utf8=%E2%9C%93&q=autolink"'
+ end
+ end
+
+ context 'with unicode character' do
+ let(:text) { 'https://www.ruby-toolbox.com/search?utf8=✓&q=autolink' }
+
+ it 'matches the full URL' do
+ is_expected.to include 'href="https://www.ruby-toolbox.com/search?utf8=✓&q=autolink"'
+ end
+ end
+
+ context 'with unicode character at the end' do
+ let(:text) { 'https://www.ruby-toolbox.com/search?utf8=✓' }
+
+ it 'matches the full URL' do
+ is_expected.to include 'href="https://www.ruby-toolbox.com/search?utf8=✓"'
+ end
+ end
+
+ context 'with escaped and not escaped unicode characters' do
+ let(:text) { 'https://www.ruby-toolbox.com/search?utf8=%E2%9C%93&utf81=✓&q=autolink' }
+
+ it 'preserves escaped unicode characters' do
+ is_expected.to include 'href="https://www.ruby-toolbox.com/search?utf8=%E2%9C%93&utf81=✓&q=autolink"'
+ end
end
end
@@ -89,6 +115,22 @@ RSpec.describe Formatter do
end
end
+ context 'given a URL in quotation marks' do
+ let(:text) { '"https://example.com/"' }
+
+ it 'does not match the quotation marks' do
+ is_expected.to include 'href="https://example.com/"'
+ end
+ end
+
+ context 'given a URL in angle brackets' do
+ let(:text) { '' }
+
+ it 'does not match the angle brackets' do
+ is_expected.to include 'href="https://example.com/"'
+ end
+ end
+
context 'given a URL with Japanese path string' do
let(:text) { 'https://ja.wikipedia.org/wiki/日本' }
@@ -105,6 +147,22 @@ RSpec.describe Formatter do
end
end
+ context 'given a URL with a full-width space' do
+ let(:text) { 'https://example.com/ abc123' }
+
+ it 'does not match the full-width space' do
+ is_expected.to include 'href="https://example.com/"'
+ end
+ end
+
+ context 'given a URL in Japanese quotation marks' do
+ let(:text) { '「[https://example.org/」' }
+
+ it 'does not match the quotation marks' do
+ is_expected.to include 'href="https://example.org/"'
+ end
+ end
+
context 'given a URL with Simplified Chinese path string' do
let(:text) { 'https://baike.baidu.com/item/中华人民共和国' }
@@ -124,7 +182,11 @@ RSpec.describe Formatter do
context 'given a URL containing unsafe code (XSS attack, visible part)' do
let(:text) { %q{http://example.com/bb} }
- it 'escapes the HTML in the URL' do
+ it 'does not include the HTML in the URL' do
+ is_expected.to include '"http://example.com/b"'
+ end
+
+ it 'escapes the HTML' do
is_expected.to include '<del>b</del>'
end
end
@@ -132,7 +194,11 @@ RSpec.describe Formatter do
context 'given a URL containing unsafe code (XSS attack, invisible part)' do
let(:text) { %q{http://example.com/blahblahblahblah/a} }
- it 'escapes the HTML in the URL' do
+ it 'does not include the HTML in the URL' do
+ is_expected.to include '"http://example.com/blahblahblahblah/a"'
+ end
+
+ it 'escapes the HTML' do
is_expected.to include '<script>alert("Hello")</script>'
end
end
@@ -168,6 +234,14 @@ RSpec.describe Formatter do
is_expected.to include '/tags/hashtag" class="mention hashtag" rel="tag">#hashtag'
end
end
+
+ context 'given text containing a hashtag with Unicode chars' do
+ let(:text) { '#hashtagタグ' }
+
+ it 'creates a hashtag link' do
+ is_expected.to include '/tags/hashtag%E3%82%BF%E3%82%B0" class="mention hashtag" rel="tag">#hashtagタグ'
+ end
+ end
end
describe '#format_spoiler' do
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/models/admin/account_action_spec.rb b/spec/models/admin/account_action_spec.rb
index 8c55cf4dd..a3db60cfc 100644
--- a/spec/models/admin/account_action_spec.rb
+++ b/spec/models/admin/account_action_spec.rb
@@ -1,4 +1,131 @@
require 'rails_helper'
RSpec.describe Admin::AccountAction, type: :model do
+ let(:account_action) { described_class.new }
+
+ describe '#save!' do
+ subject { account_action.save! }
+ let(:account) { Fabricate(:account, user: Fabricate(:user, admin: true)) }
+ let(:target_account) { Fabricate(:account, user: Fabricate(:user)) }
+ let(:type) { 'disable' }
+
+ before do
+ account_action.assign_attributes(
+ type: type,
+ current_account: account,
+ target_account: target_account
+ )
+ end
+
+ context 'type is "disable"' do
+ let(:type) { 'disable' }
+
+ it 'disable user' do
+ subject
+ expect(target_account.user).to be_disabled
+ end
+ end
+
+ context 'type is "silence"' do
+ let(:type) { 'silence' }
+
+ it 'silences account' do
+ subject
+ expect(target_account).to be_silenced
+ end
+ end
+
+ context 'type is "suspend"' do
+ let(:type) { 'suspend' }
+
+ it 'suspends account' do
+ subject
+ expect(target_account).to be_suspended
+ end
+
+ it 'queues Admin::SuspensionWorker by 1' do
+ Sidekiq::Testing.fake! do
+ expect do
+ subject
+ end.to change { Admin::SuspensionWorker.jobs.size }.by 1
+ end
+ end
+ end
+
+ it 'creates Admin::ActionLog' do
+ expect do
+ subject
+ end.to change { Admin::ActionLog.count }.by 1
+ end
+
+ it 'calls queue_email!' do
+ expect(account_action).to receive(:queue_email!)
+ subject
+ end
+
+ it 'calls process_reports!' do
+ expect(account_action).to receive(:process_reports!)
+ subject
+ end
+ end
+
+ describe '#report' do
+ subject { account_action.report }
+
+ context 'report_id.present?' do
+ before do
+ account_action.report_id = Fabricate(:report).id
+ end
+
+ it 'returns Report' do
+ expect(subject).to be_instance_of Report
+ end
+ end
+
+ context '!report_id.present?' do
+ it 'returns nil' do
+ expect(subject).to be_nil
+ end
+ end
+ end
+
+ describe '#with_report?' do
+ subject { account_action.with_report? }
+
+ context '!report.nil?' do
+ before do
+ account_action.report_id = Fabricate(:report).id
+ end
+
+ it 'returns true' do
+ expect(subject).to be true
+ end
+ end
+
+ context '!(!report.nil?)' do
+ it 'returns false' do
+ expect(subject).to be false
+ end
+ end
+ end
+
+ describe '.types_for_account' do
+ subject { described_class.types_for_account(account) }
+
+ context 'account.local?' do
+ let(:account) { Fabricate(:account, domain: nil) }
+
+ it 'returns ["none", "disable", "silence", "suspend"]' do
+ expect(subject).to eq %w(none disable silence suspend)
+ end
+ end
+
+ context '!account.local?' do
+ let(:account) { Fabricate(:account, domain: 'hoge.com') }
+
+ it 'returns ["silence", "suspend"]' do
+ expect(subject).to eq %w(silence suspend)
+ end
+ end
+ end
end
diff --git a/spec/models/admin/action_log_spec.rb b/spec/models/admin/action_log_spec.rb
index 81d7e1be3..3495cc514 100644
--- a/spec/models/admin/action_log_spec.rb
+++ b/spec/models/admin/action_log_spec.rb
@@ -1,4 +1,12 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Admin::ActionLog, type: :model do
+ describe '#action' do
+ it 'returns action' do
+ action_log = described_class.new(action: 'hoge')
+ expect(action_log.action).to be :hoge
+ end
+ end
end
diff --git a/spec/models/concerns/account_interactions_spec.rb b/spec/models/concerns/account_interactions_spec.rb
index 8df52b770..e8ef61f66 100644
--- a/spec/models/concerns/account_interactions_spec.rb
+++ b/spec/models/concerns/account_interactions_spec.rb
@@ -237,9 +237,9 @@ describe AccountInteractions do
end
describe '#block_domain!' do
- let(:domain_block) { Fabricate(:domain_block) }
+ let(:domain) { 'example.com' }
- subject { account.block_domain!(domain_block) }
+ subject { account.block_domain!(domain) }
it 'creates and returns AccountDomainBlock' do
expect do
diff --git a/spec/models/featured_tag_spec.rb b/spec/models/featured_tag_spec.rb
new file mode 100644
index 000000000..07533e0b9
--- /dev/null
+++ b/spec/models/featured_tag_spec.rb
@@ -0,0 +1,4 @@
+require 'rails_helper'
+
+RSpec.describe FeaturedTag, type: :model do
+end
diff --git a/spec/models/account_warning_spec.rb b/spec/models/poll_spec.rb
similarity index 64%
rename from spec/models/account_warning_spec.rb
rename to spec/models/poll_spec.rb
index 5286f9177..666f8ca68 100644
--- a/spec/models/account_warning_spec.rb
+++ b/spec/models/poll_spec.rb
@@ -1,5 +1,5 @@
require 'rails_helper'
-RSpec.describe AccountWarning, type: :model do
+RSpec.describe Poll, type: :model do
pending "add some examples to (or delete) #{__FILE__}"
end
diff --git a/spec/models/account_warning_preset_spec.rb b/spec/models/poll_vote_spec.rb
similarity index 61%
rename from spec/models/account_warning_preset_spec.rb
rename to spec/models/poll_vote_spec.rb
index a859a305f..354afd535 100644
--- a/spec/models/account_warning_preset_spec.rb
+++ b/spec/models/poll_vote_spec.rb
@@ -1,5 +1,5 @@
require 'rails_helper'
-RSpec.describe AccountWarningPreset, type: :model do
+RSpec.describe PollVote, type: :model do
pending "add some examples to (or delete) #{__FILE__}"
end
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/user_spec.rb b/spec/models/user_spec.rb
index c82919597..856254ce4 100644
--- a/spec/models/user_spec.rb
+++ b/spec/models/user_spec.rb
@@ -106,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
@@ -210,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
@@ -242,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/instance_policy_spec.rb b/spec/policies/instance_policy_spec.rb
index fbfddd72f..77a3bde3f 100644
--- a/spec/policies/instance_policy_spec.rb
+++ b/spec/policies/instance_policy_spec.rb
@@ -8,7 +8,7 @@ RSpec.describe InstancePolicy do
let(:admin) { Fabricate(:user, admin: true).account }
let(:john) { Fabricate(:user).account }
- permissions :index?, :resubscribe? do
+ permissions :index? do
context 'admin' do
it 'permits' do
expect(subject).to permit(admin, Instance)
diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb
index 1ded751ab..3a5e7491e 100644
--- a/spec/rails_helper.rb
+++ b/spec/rails_helper.rb
@@ -29,7 +29,6 @@ Devise::Test::ControllerHelpers.module_eval do
value: resource.activate_session(warden.request),
expires: 1.year.from_now,
httponly: true,
- same_site: :lax,
}
end
end
diff --git a/spec/serializers/activitypub/note_spec.rb b/spec/serializers/activitypub/note_spec.rb
new file mode 100644
index 000000000..55bfbc16b
--- /dev/null
+++ b/spec/serializers/activitypub/note_spec.rb
@@ -0,0 +1,44 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe ActivityPub::NoteSerializer do
+ let!(:account) { Fabricate(:account) }
+ let!(:other) { Fabricate(:account) }
+ let!(:parent) { Fabricate(:status, account: account, visibility: :public) }
+ let!(:reply1) { Fabricate(:status, account: account, thread: parent, visibility: :public) }
+ let!(:reply2) { Fabricate(:status, account: account, thread: parent, visibility: :public) }
+ let!(:reply3) { Fabricate(:status, account: other, thread: parent, visibility: :public) }
+ let!(:reply4) { Fabricate(:status, account: account, thread: parent, visibility: :public) }
+ let!(:reply5) { Fabricate(:status, account: account, thread: parent, visibility: :direct) }
+
+ before(:each) do
+ @serialization = ActiveModelSerializers::SerializableResource.new(parent, serializer: ActivityPub::NoteSerializer, adapter: ActivityPub::Adapter)
+ end
+
+ subject { JSON.parse(@serialization.to_json) }
+
+ it 'has a Note type' do
+ expect(subject['type']).to eql('Note')
+ end
+
+ it 'has a replies collection' do
+ expect(subject['replies']['type']).to eql('Collection')
+ end
+
+ it 'has a replies collection with a first Page' do
+ expect(subject['replies']['first']['type']).to eql('CollectionPage')
+ end
+
+ it 'includes public self-replies in its replies collection' do
+ expect(subject['replies']['first']['items']).to include(reply1.uri, reply2.uri, reply4.uri)
+ end
+
+ it 'does not include replies from others in its replies collection' do
+ expect(subject['replies']['first']['items']).to_not include(reply3.uri)
+ end
+
+ it 'does not include replies with direct visibility in its replies collection' do
+ expect(subject['replies']['first']['items']).to_not include(reply5.uri)
+ end
+end
diff --git a/spec/services/account_search_service_spec.rb b/spec/services/account_search_service_spec.rb
index c6cbdcce1..7b071b378 100644
--- a/spec/services/account_search_service_spec.rb
+++ b/spec/services/account_search_service_spec.rb
@@ -4,18 +4,18 @@ describe AccountSearchService, type: :service do
describe '.call' do
describe 'with a query to ignore' do
it 'returns empty array for missing query' do
- results = subject.call('', 10)
+ results = subject.call('', nil, limit: 10)
expect(results).to eq []
end
it 'returns empty array for hashtag query' do
- results = subject.call('#tag', 10)
+ results = subject.call('#tag', nil, limit: 10)
expect(results).to eq []
end
it 'returns empty array for limit zero' do
Fabricate(:account, username: 'match')
- results = subject.call('match', 0)
+ results = subject.call('match', nil, limit: 0)
expect(results).to eq []
end
@@ -25,7 +25,7 @@ describe AccountSearchService, type: :service do
it 'does not return a nil entry in the array for the exact match' do
match = Fabricate(:account, username: 'matchingusername')
- results = subject.call('match', 5)
+ results = subject.call('match', nil, limit: 5)
expect(results).to eq [match]
end
end
@@ -35,7 +35,7 @@ describe AccountSearchService, type: :service do
before do
allow(Account).to receive(:find_local)
allow(Account).to receive(:search_for)
- subject.call('@', 10)
+ subject.call('@', nil, limit: 10)
end
it 'uses find_local with empty query to look for local accounts' do
@@ -47,7 +47,7 @@ describe AccountSearchService, type: :service do
before do
allow(Account).to receive(:find_local)
allow(Account).to receive(:search_for)
- subject.call('one', 10)
+ subject.call('one', nil, limit: 10)
end
it 'uses find_local to look for local accounts' do
@@ -55,7 +55,7 @@ describe AccountSearchService, type: :service do
end
it 'uses search_for to find matches' do
- expect(Account).to have_received(:search_for).with('one', 10)
+ expect(Account).to have_received(:search_for).with('one', 10, 0)
end
end
@@ -65,16 +65,16 @@ describe AccountSearchService, type: :service do
end
it 'uses find_remote to look for remote accounts' do
- subject.call('two@example.com', 10)
+ subject.call('two@example.com', nil, limit: 10)
expect(Account).to have_received(:find_remote).with('two', 'example.com')
end
describe 'and there is no account provided' do
it 'uses search_for to find matches' do
allow(Account).to receive(:search_for)
- subject.call('two@example.com', 10, nil, resolve: false)
+ subject.call('two@example.com', nil, limit: 10, resolve: false)
- expect(Account).to have_received(:search_for).with('two example.com', 10)
+ expect(Account).to have_received(:search_for).with('two example.com', 10, 0)
end
end
@@ -82,9 +82,9 @@ describe AccountSearchService, type: :service do
it 'uses advanced_search_for to find matches' do
account = Fabricate(:account)
allow(Account).to receive(:advanced_search_for)
- subject.call('two@example.com', 10, account, resolve: false)
+ subject.call('two@example.com', account, limit: 10, resolve: false)
- expect(Account).to have_received(:advanced_search_for).with('two example.com', account, 10, nil)
+ expect(Account).to have_received(:advanced_search_for).with('two example.com', account, 10, nil, 0)
end
end
end
@@ -95,7 +95,7 @@ describe AccountSearchService, type: :service do
partial = Fabricate(:account, username: 'exactness')
exact = Fabricate(:account, username: 'exact')
- results = subject.call('exact', 10)
+ results = subject.call('exact', nil, limit: 10)
expect(results.size).to eq 2
expect(results).to eq [exact, partial]
end
@@ -114,7 +114,7 @@ describe AccountSearchService, type: :service do
exact = Fabricate(:account, username: 'e')
Rails.configuration.x.local_domain = 'example.com'
- results = subject.call('e@example.com', 2)
+ results = subject.call('e@example.com', nil, limit: 2)
expect(results.size).to eq 2
expect(results).to eq([exact, remote]).or eq([exact, remote_too])
end
@@ -125,7 +125,7 @@ describe AccountSearchService, type: :service do
service = double(call: nil)
allow(ResolveAccountService).to receive(:new).and_return(service)
- results = subject.call('newuser@remote.com', 10, nil, resolve: true)
+ results = subject.call('newuser@remote.com', nil, limit: 10, resolve: true)
expect(service).to have_received(:call).with('newuser@remote.com')
end
@@ -133,7 +133,7 @@ describe AccountSearchService, type: :service do
service = double(call: nil)
allow(ResolveAccountService).to receive(:new).and_return(service)
- results = subject.call('newuser@remote.com', 10, nil, resolve: false)
+ results = subject.call('newuser@remote.com', nil, limit: 10, resolve: false)
expect(service).not_to have_received(:call)
end
end
@@ -143,7 +143,7 @@ describe AccountSearchService, type: :service do
partial = Fabricate(:account, username: 'exactness')
exact = Fabricate(:account, username: 'exact', suspended: true)
- results = subject.call('exact', 10)
+ results = subject.call('exact', nil, limit: 10)
expect(results.size).to eq 1
expect(results).to eq [partial]
end
@@ -151,7 +151,7 @@ describe AccountSearchService, type: :service do
it "does not return suspended remote accounts" do
remote = Fabricate(:account, username: 'a', domain: 'remote', display_name: 'e', suspended: true)
- results = subject.call('a@example.com', 2)
+ results = subject.call('a@example.com', nil, limit: 2)
expect(results.size).to eq 0
expect(results).to eq []
end
diff --git a/spec/services/activitypub/fetch_replies_service_spec.rb b/spec/services/activitypub/fetch_replies_service_spec.rb
new file mode 100644
index 000000000..65c453341
--- /dev/null
+++ b/spec/services/activitypub/fetch_replies_service_spec.rb
@@ -0,0 +1,122 @@
+require 'rails_helper'
+
+RSpec.describe ActivityPub::FetchRepliesService, type: :service do
+ let(:actor) { Fabricate(:account, domain: 'example.com', uri: 'http://example.com/account') }
+ let(:status) { Fabricate(:status, account: actor) }
+ let(:collection_uri) { 'http://example.com/replies/1' }
+
+ let(:items) do
+ [
+ 'http://example.com/self-reply-1',
+ 'http://example.com/self-reply-2',
+ 'http://example.com/self-reply-3',
+ 'http://other.com/other-reply-1',
+ 'http://other.com/other-reply-2',
+ 'http://other.com/other-reply-3',
+ 'http://example.com/self-reply-4',
+ 'http://example.com/self-reply-5',
+ 'http://example.com/self-reply-6',
+ ]
+ end
+
+ let(:payload) do
+ {
+ '@context': 'https://www.w3.org/ns/activitystreams',
+ type: 'Collection',
+ id: collection_uri,
+ items: items,
+ }.with_indifferent_access
+ end
+
+ subject { described_class.new }
+
+ describe '#call' do
+ context 'when the payload is a Collection with inlined replies' do
+ context 'when passing the collection itself' do
+ it 'spawns workers for up to 5 replies on the same server' do
+ allow(FetchReplyWorker).to receive(:push_bulk)
+ subject.call(status, payload)
+ expect(FetchReplyWorker).to have_received(:push_bulk).with(['http://example.com/self-reply-1', 'http://example.com/self-reply-2', 'http://example.com/self-reply-3', 'http://example.com/self-reply-4', 'http://example.com/self-reply-5'])
+ end
+ end
+
+ context 'when passing the URL to the collection' do
+ before do
+ stub_request(:get, collection_uri).to_return(status: 200, body: Oj.dump(payload))
+ end
+
+ it 'spawns workers for up to 5 replies on the same server' do
+ allow(FetchReplyWorker).to receive(:push_bulk)
+ subject.call(status, collection_uri)
+ expect(FetchReplyWorker).to have_received(:push_bulk).with(['http://example.com/self-reply-1', 'http://example.com/self-reply-2', 'http://example.com/self-reply-3', 'http://example.com/self-reply-4', 'http://example.com/self-reply-5'])
+ end
+ end
+ end
+
+ context 'when the payload is an OrderedCollection with inlined replies' do
+ let(:payload) do
+ {
+ '@context': 'https://www.w3.org/ns/activitystreams',
+ type: 'OrderedCollection',
+ id: collection_uri,
+ orderedItems: items,
+ }.with_indifferent_access
+ end
+
+ context 'when passing the collection itself' do
+ it 'spawns workers for up to 5 replies on the same server' do
+ allow(FetchReplyWorker).to receive(:push_bulk)
+ subject.call(status, payload)
+ expect(FetchReplyWorker).to have_received(:push_bulk).with(['http://example.com/self-reply-1', 'http://example.com/self-reply-2', 'http://example.com/self-reply-3', 'http://example.com/self-reply-4', 'http://example.com/self-reply-5'])
+ end
+ end
+
+ context 'when passing the URL to the collection' do
+ before do
+ stub_request(:get, collection_uri).to_return(status: 200, body: Oj.dump(payload))
+ end
+
+ it 'spawns workers for up to 5 replies on the same server' do
+ allow(FetchReplyWorker).to receive(:push_bulk)
+ subject.call(status, collection_uri)
+ expect(FetchReplyWorker).to have_received(:push_bulk).with(['http://example.com/self-reply-1', 'http://example.com/self-reply-2', 'http://example.com/self-reply-3', 'http://example.com/self-reply-4', 'http://example.com/self-reply-5'])
+ end
+ end
+ end
+
+ context 'when the payload is a paginated Collection with inlined replies' do
+ let(:payload) do
+ {
+ '@context': 'https://www.w3.org/ns/activitystreams',
+ type: 'Collection',
+ id: collection_uri,
+ first: {
+ type: 'CollectionPage',
+ partOf: collection_uri,
+ items: items,
+ }
+ }.with_indifferent_access
+ end
+
+ context 'when passing the collection itself' do
+ it 'spawns workers for up to 5 replies on the same server' do
+ allow(FetchReplyWorker).to receive(:push_bulk)
+ subject.call(status, payload)
+ expect(FetchReplyWorker).to have_received(:push_bulk).with(['http://example.com/self-reply-1', 'http://example.com/self-reply-2', 'http://example.com/self-reply-3', 'http://example.com/self-reply-4', 'http://example.com/self-reply-5'])
+ end
+ end
+
+ context 'when passing the URL to the collection' do
+ before do
+ stub_request(:get, collection_uri).to_return(status: 200, body: Oj.dump(payload))
+ end
+
+ it 'spawns workers for up to 5 replies on the same server' do
+ allow(FetchReplyWorker).to receive(:push_bulk)
+ subject.call(status, collection_uri)
+ expect(FetchReplyWorker).to have_received(:push_bulk).with(['http://example.com/self-reply-1', 'http://example.com/self-reply-2', 'http://example.com/self-reply-3', 'http://example.com/self-reply-4', 'http://example.com/self-reply-5'])
+ end
+ end
+ 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_oembed_service_spec.rb b/spec/services/fetch_oembed_service_spec.rb
index 706eb3f2a..5789fb53b 100644
--- a/spec/services/fetch_oembed_service_spec.rb
+++ b/spec/services/fetch_oembed_service_spec.rb
@@ -8,6 +8,7 @@ describe FetchOEmbedService, type: :service do
before do
stub_request(:get, "https://host.test/provider.json").to_return(status: 404)
stub_request(:get, "https://host.test/provider.xml").to_return(status: 404)
+ stub_request(:get, "https://host.test/empty_provider.json").to_return(status: 200)
end
describe 'discover_provider' do
@@ -93,6 +94,23 @@ describe FetchOEmbedService, type: :service do
expect(subject.call('https://host.test/oembed.html')).to be_nil
end
end
+
+ context 'Empty JSON provider is discoverable' do
+ before do
+ stub_request(:get, 'https://host.test/oembed.html').to_return(
+ status: 200,
+ headers: { 'Content-Type': 'text/html' },
+ body: request_fixture('oembed_json_empty.html')
+ )
+ end
+
+ it 'returns new OEmbed::Provider for JSON provider' do
+ subject.call('https://host.test/oembed.html')
+ expect(subject.endpoint_url).to eq 'https://host.test/empty_provider.json'
+ expect(subject.format).to eq :json
+ end
+ end
+
end
context 'when status code is not 200' do
diff --git a/spec/services/post_status_service_spec.rb b/spec/services/post_status_service_spec.rb
index 349ad861b..facbe977f 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,20 +18,45 @@ 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 'does not immediately create a status when scheduling a status' do
+ account = Fabricate(:account)
+ media = Fabricate(:media_attachment)
+ future = Time.now.utc + 2.hours
+
+ status = subject.call(account, text: 'Hi future!', media_ids: [media.id], scheduled_at: future)
+
+ expect(status).to be_a ScheduledStatus
+ expect(status.scheduled_at).to eq future
+ expect(status.params['text']).to eq 'Hi future!'
+ expect(media.reload.status).to be_nil
+ expect(Status.where(text: 'Hi future!').exists?).to be_falsey
+ 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, 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
@@ -68,6 +93,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)
@@ -81,7 +113,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
@@ -92,7 +124,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)
@@ -104,7 +136,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)
@@ -117,7 +149,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)
@@ -128,33 +160,44 @@ 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
it 'attaches the given media to the created status' do
account = Fabricate(:account)
- media = Fabricate(:media_attachment)
+ media = Fabricate(:media_attachment, account: account)
status = subject.call(
account,
- "test status update",
- nil,
+ text: "test status update",
media_ids: [media.id],
)
expect(media.reload.status).to eq status
end
+ it 'does not attach media from another account to the created status' do
+ account = Fabricate(:account)
+ media = Fabricate(:media_attachment, account: Fabricate(:account))
+
+ status = subject.call(
+ account,
+ text: "test status update",
+ media_ids: [media.id],
+ )
+
+ expect(media.reload.status).to eq nil
+ end
+
it 'does not allow attaching more than 4 files' do
account = Fabricate(:account)
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),
@@ -175,8 +218,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),
@@ -190,12 +232,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/services/search_service_spec.rb b/spec/services/search_service_spec.rb
index 671080f1d..d064cd9b8 100644
--- a/spec/services/search_service_spec.rb
+++ b/spec/services/search_service_spec.rb
@@ -10,7 +10,7 @@ describe SearchService, type: :service do
it 'returns empty results without searching' do
allow(AccountSearchService).to receive(:new)
allow(Tag).to receive(:search_for)
- results = subject.call('', 10)
+ results = subject.call('', nil, 10)
expect(results).to eq(empty_results)
expect(AccountSearchService).not_to have_received(:new)
@@ -27,7 +27,7 @@ describe SearchService, type: :service do
it 'returns the empty results' do
service = double(call: nil)
allow(ResolveURLService).to receive(:new).and_return(service)
- results = subject.call(@query, 10)
+ results = subject.call(@query, nil, 10)
expect(service).to have_received(:call).with(@query, on_behalf_of: nil)
expect(results).to eq empty_results
@@ -40,7 +40,7 @@ describe SearchService, type: :service do
service = double(call: account)
allow(ResolveURLService).to receive(:new).and_return(service)
- results = subject.call(@query, 10)
+ results = subject.call(@query, nil, 10)
expect(service).to have_received(:call).with(@query, on_behalf_of: nil)
expect(results).to eq empty_results.merge(accounts: [account])
end
@@ -52,7 +52,7 @@ describe SearchService, type: :service do
service = double(call: status)
allow(ResolveURLService).to receive(:new).and_return(service)
- results = subject.call(@query, 10)
+ results = subject.call(@query, nil, 10)
expect(service).to have_received(:call).with(@query, on_behalf_of: nil)
expect(results).to eq empty_results.merge(statuses: [status])
end
@@ -67,8 +67,8 @@ describe SearchService, type: :service do
service = double(call: [account])
allow(AccountSearchService).to receive(:new).and_return(service)
- results = subject.call(query, 10)
- expect(service).to have_received(:call).with(query, 10, nil, resolve: false)
+ results = subject.call(query, nil, 10)
+ expect(service).to have_received(:call).with(query, nil, limit: 10, offset: 0, resolve: false)
expect(results).to eq empty_results.merge(accounts: [account])
end
end
@@ -77,17 +77,17 @@ describe SearchService, type: :service do
it 'includes the tag in the results' do
query = '#tag'
tag = Tag.new
- allow(Tag).to receive(:search_for).with('tag', 10).and_return([tag])
+ allow(Tag).to receive(:search_for).with('tag', 10, 0).and_return([tag])
- results = subject.call(query, 10)
- expect(Tag).to have_received(:search_for).with('tag', 10)
+ results = subject.call(query, nil, 10)
+ expect(Tag).to have_received(:search_for).with('tag', 10, 0)
expect(results).to eq empty_results.merge(hashtags: [tag])
end
it 'does not include tag when starts with @ character' do
query = '@username'
allow(Tag).to receive(:search_for)
- results = subject.call(query, 10)
+ results = subject.call(query, nil, 10)
expect(Tag).not_to have_received(:search_for)
expect(results).to eq empty_results
end
diff --git a/spec/services/unfollow_service_spec.rb b/spec/services/unfollow_service_spec.rb
index c5914c818..8a2881ab1 100644
--- a/spec/services/unfollow_service_spec.rb
+++ b/spec/services/unfollow_service_spec.rb
@@ -56,4 +56,22 @@ RSpec.describe UnfollowService, type: :service do
expect(a_request(:post, 'http://example.com/inbox')).to have_been_made.once
end
end
+
+ describe 'remote ActivityPub (reverse)' do
+ let(:bob) { Fabricate(:user, email: 'bob@example.com', account: Fabricate(:account, username: 'bob', protocol: :activitypub, domain: 'example.com', inbox_url: 'http://example.com/inbox')).account }
+
+ before do
+ bob.follow!(sender)
+ stub_request(:post, 'http://example.com/inbox').to_return(status: 200)
+ subject.call(bob, sender)
+ end
+
+ it 'destroys the following relation' do
+ expect(bob.following?(sender)).to be false
+ end
+
+ it 'sends a reject activity' do
+ expect(a_request(:post, 'http://example.com/inbox')).to have_been_made.once
+ end
+ end
end
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
index bc68f63cf..48e17a4f1 100644
--- a/spec/validators/email_mx_validator_spec.rb
+++ b/spec/validators/email_mx_validator_spec.rb
@@ -11,6 +11,7 @@ describe EmailMxValidator do
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(:getresources).with('example.com', Resolv::DNS::Resource::IN::AAAA).and_return([])
allow(resolver).to receive(:timeouts=).and_return(nil)
allow(Resolv::DNS).to receive(:open).and_yield(resolver)
@@ -23,7 +24,9 @@ describe EmailMxValidator do
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('example.com', Resolv::DNS::Resource::IN::AAAA).and_return([])
allow(resolver).to receive(:getresources).with('mail.example.com', Resolv::DNS::Resource::IN::A).and_return([])
+ allow(resolver).to receive(:getresources).with('mail.example.com', Resolv::DNS::Resource::IN::AAAA).and_return([])
allow(resolver).to receive(:timeouts=).and_return(nil)
allow(Resolv::DNS).to receive(:open).and_yield(resolver)
@@ -37,6 +40,21 @@ describe EmailMxValidator do
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(:getresources).with('example.com', Resolv::DNS::Resource::IN::AAAA).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 AAAA record is blacklisted' do
+ EmailDomainBlock.create!(domain: 'fd00::1')
+ 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(:getresources).with('example.com', Resolv::DNS::Resource::IN::AAAA).and_return([double(address: 'fd00::1')])
allow(resolver).to receive(:timeouts=).and_return(nil)
allow(Resolv::DNS).to receive(:open).and_yield(resolver)
@@ -50,7 +68,25 @@ describe EmailMxValidator do
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('example.com', Resolv::DNS::Resource::IN::AAAA).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(:getresources).with('mail.example.com', Resolv::DNS::Resource::IN::AAAA).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 MX IPv6 record is blacklisted' do
+ EmailDomainBlock.create!(domain: 'fd00::2')
+ 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('example.com', Resolv::DNS::Resource::IN::AAAA).and_return([])
+ allow(resolver).to receive(:getresources).with('mail.example.com', Resolv::DNS::Resource::IN::A).and_return([])
+ allow(resolver).to receive(:getresources).with('mail.example.com', Resolv::DNS::Resource::IN::AAAA).and_return([double(address: 'fd00::2')])
allow(resolver).to receive(:timeouts=).and_return(nil)
allow(Resolv::DNS).to receive(:open).and_yield(resolver)
@@ -64,7 +100,9 @@ describe EmailMxValidator do
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('example.com', Resolv::DNS::Resource::IN::AAAA).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(:getresources).with('mail.example.com', Resolv::DNS::Resource::IN::AAAA).and_return([double(address: 'fd00::2')])
allow(resolver).to receive(:timeouts=).and_return(nil)
allow(Resolv::DNS).to receive(:open).and_yield(resolver)
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/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/activitypub/fetch_replies_worker_spec.rb b/spec/workers/activitypub/fetch_replies_worker_spec.rb
new file mode 100644
index 000000000..91ef3c4b9
--- /dev/null
+++ b/spec/workers/activitypub/fetch_replies_worker_spec.rb
@@ -0,0 +1,40 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe ActivityPub::FetchRepliesWorker do
+ subject { described_class.new }
+
+ let(:account) { Fabricate(:account, uri: 'https://example.com/user/1') }
+ let(:status) { Fabricate(:status, account: account) }
+
+ let(:payload) do
+ {
+ '@context': 'https://www.w3.org/ns/activitystreams',
+ id: 'https://example.com/statuses_replies/1',
+ type: 'Collection',
+ items: [],
+ }
+ end
+
+ let(:json) { Oj.dump(payload) }
+
+ describe 'perform' do
+ it 'performs a request if the collection URI is from the same host' do
+ stub_request(:get, 'https://example.com/statuses_replies/1').to_return(status: 200, body: json)
+ subject.perform(status.id, 'https://example.com/statuses_replies/1')
+ expect(a_request(:get, 'https://example.com/statuses_replies/1')).to have_been_made.once
+ end
+
+ it 'does not perform a request if the collection URI is from a different host' do
+ stub_request(:get, 'https://other.com/statuses_replies/1').to_return(status: 200)
+ subject.perform(status.id, 'https://other.com/statuses_replies/1')
+ expect(a_request(:get, 'https://other.com/statuses_replies/1')).to_not have_been_made
+ end
+
+ it 'raises when request fails' do
+ stub_request(:get, 'https://example.com/statuses_replies/1').to_return(status: 500)
+ expect { subject.perform(status.id, 'https://example.com/statuses_replies/1') }.to raise_error Mastodon::UnexpectedResponseError
+ 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 a240baaec..9ff12a712 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,119 +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/babel-utils@^0.6.4":
- version "0.6.9"
- resolved "https://registry.yarnpkg.com/@emotion/babel-utils/-/babel-utils-0.6.9.tgz#bb074fadad65c443a575d3379488415fd194fc75"
+"@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.6.5"
- "@emotion/memoize" "^0.6.5"
- "@emotion/serialize" "^0.9.0"
- convert-source-map "^1.5.1"
- find-root "^1.1.0"
- source-map "^0.7.2"
+ "@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/hash@^0.6.2", "@emotion/hash@^0.6.5":
- version "0.6.5"
- resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.6.5.tgz#097729b84a5164f71f9acd2570ecfd1354d7b360"
+"@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/memoize@^0.6.1", "@emotion/memoize@^0.6.5":
- version "0.6.5"
- resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.6.5.tgz#f868c314b889e7c3d84868a1d1cc323fbb40ca86"
+"@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/serialize@^0.9.0":
- version "0.9.0"
- resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-0.9.0.tgz#ac5577cb98c7557c1a24a94cc101c5da6dc18322"
+"@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:
- "@emotion/hash" "^0.6.5"
- "@emotion/memoize" "^0.6.5"
- "@emotion/unitless" "^0.6.6"
- "@emotion/utils" "^0.8.1"
-
-"@emotion/stylis@^0.6.10":
- version "0.6.12"
- resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.6.12.tgz#3fb58220e0fc9e380bcabbb3edde396ddc1dfe6e"
-
-"@emotion/stylis@^0.7.0":
- version "0.7.0"
- resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.7.0.tgz#4c30e6fccc9555e42fa6fef98b3bd0788b954684"
-
-"@emotion/unitless@^0.6.2", "@emotion/unitless@^0.6.6":
- version "0.6.6"
- resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.6.6.tgz#988957ecd0a9be00ee9de27172f8c56d41595a93"
-
-"@emotion/utils@^0.8.1":
- version "0.8.1"
- resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-0.8.1.tgz#f3a81587ad8d0ef33cdad6f3b4310774fcc1053e"
+ 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"
@@ -787,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":
@@ -970,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"
@@ -1066,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"
@@ -1078,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"
@@ -1153,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"
@@ -1207,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=
@@ -1238,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"
@@ -1270,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"
@@ -1302,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=
@@ -1353,7 +1318,7 @@ babel-code-frame@^6.22.0, babel-code-frame@^6.26.0:
esutils "^2.0.2"
js-tokens "^3.0.2"
-babel-core@^6.0.0, babel-core@^6.26.0, babel-core@^6.26.3:
+babel-core@^6.0.0, babel-core@^6.26.0:
version "6.26.3"
resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207"
integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==
@@ -1383,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"
@@ -1425,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"
@@ -1442,27 +1407,9 @@ babel-messages@^6.23.0:
dependencies:
babel-runtime "^6.22.0"
-babel-plugin-emotion@^9.2.9:
- version "9.2.9"
- resolved "https://registry.yarnpkg.com/babel-plugin-emotion/-/babel-plugin-emotion-9.2.9.tgz#7b3c72fd6a333127abafe7fb693bcb421e7f5b9f"
- dependencies:
- "@babel/helper-module-imports" "^7.0.0"
- "@emotion/babel-utils" "^0.6.4"
- "@emotion/hash" "^0.6.2"
- "@emotion/memoize" "^0.6.1"
- "@emotion/stylis" "^0.7.0"
- babel-core "^6.26.3"
- babel-plugin-macros "^2.0.0"
- babel-plugin-syntax-jsx "^6.18.0"
- convert-source-map "^1.5.0"
- find-root "^1.1.0"
- mkdirp "^0.5.1"
- source-map "^0.5.7"
- touch "^1.0.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"
@@ -1486,12 +1433,13 @@ babel-plugin-lodash@^3.3.4:
lodash "^4.17.10"
require-package-name "^2.0.1"
-babel-plugin-macros@^2.0.0, babel-plugin-macros@^2.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==
+babel-plugin-macros@^2.2.2:
+ 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"
@@ -1501,28 +1449,24 @@ 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"
mkdirp "^0.5.1"
-babel-plugin-syntax-jsx@^6.18.0:
- version "6.18.0"
- resolved "http://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946"
-
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"
@@ -1545,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=
@@ -1601,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==
@@ -1641,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:
@@ -1655,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"
@@ -1705,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"
@@ -1750,15 +1681,22 @@ braces@^2.3.0, braces@^2.3.1:
split-string "^3.0.2"
to-regex "^3.0.1"
+bricks.js@^1.7.0:
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/bricks.js/-/bricks.js-1.8.0.tgz#8fdeb3c0226af251f4d5727a7df7f9ac0092b4b2"
+ integrity sha1-j96zwCJq8lH01XJ6fff5rACStLI=
+ dependencies:
+ knot.js "^1.1.5"
+
brorand@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=
browser-process-hrtime@^0.1.2:
- version "0.1.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"
@@ -1769,7 +1707,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"
@@ -1800,7 +1738,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"
@@ -1826,22 +1764,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"
@@ -1872,7 +1802,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"
@@ -1894,43 +1824,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:
@@ -1948,6 +1859,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"
@@ -1955,6 +1873,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"
@@ -1965,33 +1890,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"
@@ -2005,9 +1927,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"
@@ -2016,7 +1938,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==
@@ -2025,11 +1947,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"
@@ -2072,10 +1989,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"
@@ -2085,9 +2002,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"
@@ -2157,16 +2074,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"
@@ -2180,19 +2101,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==
@@ -2200,35 +2126,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"
@@ -2246,11 +2167,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"
@@ -2282,7 +2203,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==
@@ -2329,7 +2250,7 @@ content-type@~1.0.4:
resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
-convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.5.1:
+convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.1:
version "1.6.0"
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20"
integrity sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==
@@ -2369,9 +2290,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"
@@ -2388,11 +2309,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"
@@ -2405,21 +2327,19 @@ create-ecdh@^4.0.0:
bn.js "^4.1.0"
elliptic "^6.0.0"
-create-emotion@^9.2.6:
- version "9.2.6"
- resolved "https://registry.yarnpkg.com/create-emotion/-/create-emotion-9.2.6.tgz#f64cf1c64cf82fe7d22725d1d77498ddd2d39edb"
+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/hash" "^0.6.2"
- "@emotion/memoize" "^0.6.1"
- "@emotion/stylis" "^0.6.10"
- "@emotion/unitless" "^0.6.2"
- csstype "^2.5.2"
- stylis "^3.5.0"
- stylis-rule-sheet "^0.0.10"
+ "@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"
@@ -2430,7 +2350,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"
@@ -2440,15 +2360,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"
@@ -2457,15 +2368,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=
@@ -2485,13 +2388,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"
@@ -2509,6 +2405,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"
@@ -2541,23 +2450,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"
@@ -2570,9 +2492,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"
@@ -2583,21 +2505,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"
@@ -2610,21 +2633,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==
-
-csstype@^2.5.2:
- version "2.5.7"
- resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.5.7.tgz#bf9235d5872141eccfb2d16d82993c6b149179ff"
-
-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"
@@ -2651,12 +2663,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:
@@ -2664,7 +2676,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==
@@ -2678,14 +2690,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=
@@ -2737,14 +2756,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==
@@ -2773,19 +2785,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"
@@ -2808,12 +2807,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=
@@ -2838,7 +2832,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=
@@ -2848,7 +2842,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==
@@ -2865,7 +2859,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"
@@ -2913,9 +2907,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"
@@ -2931,9 +2927,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"
@@ -2962,7 +2958,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==
@@ -2977,10 +2973,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"
@@ -2989,13 +2985,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"
@@ -3015,15 +3011,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"
@@ -3052,13 +3048,6 @@ emojis-list@^2.0.0:
resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k=
-emotion@^9.1.2:
- version "9.2.9"
- resolved "https://registry.yarnpkg.com/emotion/-/emotion-9.2.9.tgz#c2028705acc60a138ecb69d3fc1d2056764f61a1"
- dependencies:
- babel-plugin-emotion "^9.2.9"
- create-emotion "^9.2.6"
-
encodeurl@~1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
@@ -3078,7 +3067,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==
@@ -3088,36 +3077,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"
@@ -3153,7 +3143,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==
@@ -3165,13 +3155,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"
@@ -3237,7 +3227,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==
@@ -3253,10 +3243,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"
@@ -3267,21 +3257,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"
@@ -3291,14 +3283,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"
@@ -3307,62 +3291,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"
@@ -3374,7 +3363,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==
@@ -3413,12 +3402,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"
@@ -3461,6 +3450,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"
@@ -3510,14 +3512,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"
@@ -3534,10 +3536,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"
@@ -3561,20 +3563,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"
@@ -3615,11 +3608,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"
@@ -3636,9 +3624,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"
@@ -3647,7 +3635,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=
@@ -3661,7 +3649,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=
@@ -3674,7 +3662,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==
@@ -3694,10 +3689,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"
@@ -3715,7 +3710,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==
@@ -3772,10 +3767,6 @@ find-cache-dir@^2.0.0:
make-dir "^1.0.0"
pkg-dir "^3.0.0"
-find-root@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4"
-
find-up@^1.0.0:
version "1.1.2"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
@@ -3799,20 +3790,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"
@@ -3821,10 +3807,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"
@@ -3862,22 +3848,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:
@@ -3905,15 +3882,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"
@@ -3944,25 +3912,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"
@@ -3996,13 +3945,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"
@@ -4013,16 +3955,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"
@@ -4058,7 +4002,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==
@@ -4070,33 +4014,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"
@@ -4108,44 +4040,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"
@@ -4158,38 +4074,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:
@@ -4250,7 +4145,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==
@@ -4266,22 +4161,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"
@@ -4303,16 +4193,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"
@@ -4321,6 +4213,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"
@@ -4336,6 +4233,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"
@@ -4349,35 +4261,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"
@@ -4385,19 +4287,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"
@@ -4414,15 +4316,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"
@@ -4437,11 +4330,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"
@@ -4449,7 +4337,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==
@@ -4461,12 +4349,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"
@@ -4485,10 +4373,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"
@@ -4502,6 +4390,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"
@@ -4538,18 +4434,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"
@@ -4568,7 +4452,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=
@@ -4583,30 +4467,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"
@@ -4619,7 +4483,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:
@@ -4631,14 +4495,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"
@@ -4657,7 +4521,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=
@@ -4669,7 +4533,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==
@@ -4706,6 +4570,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"
@@ -4754,7 +4623,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==
@@ -4766,6 +4635,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"
@@ -4920,7 +4801,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:
@@ -4991,10 +4872,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"
@@ -5443,15 +5333,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"
@@ -5468,7 +5358,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==
@@ -5519,9 +5409,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"
@@ -5533,11 +5423,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"
@@ -5575,12 +5460,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"
@@ -5643,6 +5535,11 @@ kleur@^2.0.1:
resolved "https://registry.yarnpkg.com/kleur/-/kleur-2.0.2.tgz#b704f4944d95e255d038f0cb05fb8a602c55a300"
integrity sha512-77XF9iTllATmG9lSlIv0qdQ2BQ/h9t0bJllHlbvsQ0zUWfU7Yi0S8L5JXzPZgkefIiajLmBJJ4BsMJmqcf7oxQ==
+knot.js@^1.1.5:
+ version "1.1.5"
+ resolved "https://registry.yarnpkg.com/knot.js/-/knot.js-1.1.5.tgz#28e72522f703f50fe98812fde224dd72728fef5d"
+ integrity sha1-KOclIvcD9Q/piBL94iTdcnKP710=
+
lcid@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835"
@@ -5697,9 +5594,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"
@@ -5711,14 +5608,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"
@@ -5736,31 +5633,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"
@@ -5781,15 +5653,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"
@@ -5801,54 +5693,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"
@@ -5863,15 +5744,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"
@@ -5880,11 +5756,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"
@@ -5897,10 +5768,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"
@@ -5908,12 +5779,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"
@@ -5937,8 +5814,9 @@ mem@^4.0.0:
p-is-promise "^1.1.0"
memoize-one@^4.0.0:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-4.0.2.tgz#3fb8db695aa14ab9c0f1644e1585a8806adc1aee"
+ 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"
@@ -5948,22 +5826,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"
@@ -5977,9 +5839,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"
@@ -6005,7 +5867,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==
@@ -6032,17 +5894,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"
@@ -6050,19 +5912,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"
@@ -6078,7 +5940,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==
@@ -6087,55 +5949,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"
@@ -6168,9 +6009,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"
@@ -6225,10 +6066,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"
@@ -6253,20 +6094,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"
@@ -6278,9 +6119,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"
@@ -6305,24 +6146,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"
@@ -6358,12 +6181,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"
@@ -6383,80 +6206,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"
@@ -6465,13 +6221,7 @@ nopt@^4.0.1:
abbrev "1"
osenv "^0.1.4"
-nopt@~1.0.10:
- version "1.0.10"
- resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee"
- dependencies:
- abbrev "1"
-
-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==
@@ -6493,15 +6243,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"
@@ -6513,7 +6268,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==
@@ -6523,10 +6278,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"
@@ -6545,11 +6300,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"
@@ -6612,13 +6362,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:
@@ -6654,15 +6414,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"
@@ -6682,7 +6442,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=
@@ -6696,15 +6456,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"
@@ -6728,7 +6488,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==
@@ -6745,13 +6505,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"
@@ -6762,11 +6515,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"
@@ -6775,7 +6528,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==
@@ -6806,9 +6559,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"
@@ -6847,9 +6600,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"
@@ -6862,7 +6615,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"
@@ -6975,7 +6728,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==
@@ -7009,9 +6762,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"
@@ -7079,7 +6832,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=
@@ -7133,9 +6886,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"
@@ -7146,139 +6899,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"
@@ -7298,70 +6974,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"
@@ -7372,111 +7158,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=
@@ -7485,38 +7196,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==
@@ -7526,28 +7239,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"
@@ -7571,19 +7275,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"
@@ -7618,16 +7309,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"
@@ -7657,7 +7341,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==
@@ -7665,7 +7349,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==
@@ -7683,23 +7367,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==
@@ -7734,22 +7419,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==
@@ -7765,19 +7445,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"
@@ -7786,10 +7466,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"
@@ -7800,9 +7480,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"
@@ -7828,17 +7508,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==
@@ -7848,34 +7528,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"
@@ -7889,9 +7570,17 @@ react-immutable-pure-component@^1.1.1:
optionalDependencies:
"@types/react" "16.4.6"
+react-infinite-scroller@^1.0.12:
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/react-infinite-scroller/-/react-infinite-scroller-1.2.4.tgz#f67eaec4940a4ce6417bebdd6e3433bfc38826e9"
+ integrity sha512-/oOa0QhZjXPqaD6sictN2edFMsd3kkMiE19Vcz5JDgHpzEJVqYcmq+V3mkwO88087kvKGe1URNksHEOt839Ubw==
+ dependencies:
+ prop-types "^15.5.8"
+
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"
@@ -7905,26 +7594,36 @@ 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==
+react-masonry-infinite@^1.2.2:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/react-masonry-infinite/-/react-masonry-infinite-1.2.2.tgz#20c1386f9ccdda9747527c8f42bc2c02dd2e7951"
+ integrity sha1-IME4b5zN2pdHUnyPQrwsAt0ueVE=
+ dependencies:
+ bricks.js "^1.7.0"
+ prop-types "^15.5.10"
+ react-infinite-scroller "^1.0.12"
+
react-motion@^0.5.2:
version "0.5.2"
resolved "https://registry.yarnpkg.com/react-motion/-/react-motion-0.5.2.tgz#0dd3a69e411316567927917c6626551ba0607316"
@@ -7953,24 +7652,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.0.8:
+ version "4.0.8"
+ resolved "https://registry.yarnpkg.com/react-redux-loading-bar/-/react-redux-loading-bar-4.0.8.tgz#e84d59d1517b79f53b0f39c8ddb40682af648c1b"
+ integrity sha512-BpR1tlYrYKFtGhxa7nAKc0dpcV33ZgXJ/jKNLpDDaxu2/cCxbkWQt9YlWT+VLw1x/7qyNYY4DH48bZdtmciSpg==
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"
@@ -8005,12 +7705,13 @@ react-router@^4.3.1:
prop-types "^15.6.1"
warning "^4.0.1"
-react-select@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/react-select/-/react-select-2.0.0.tgz#7e7ba31eff360b37ffc52b343a720f4248bd9b3b"
+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"
- emotion "^9.1.2"
+ create-emotion "^10.0.4"
memoize-one "^4.0.0"
prop-types "^15.6.0"
raf "^3.4.0"
@@ -8024,53 +7725,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:
@@ -8081,31 +7783,24 @@ react-toggle@^4.0.1:
classnames "^2.2.5"
react-transition-group@^2.2.0, react-transition-group@^2.2.1:
- 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==
+ 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"
@@ -8141,9 +7836,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"
@@ -8154,15 +7849,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"
@@ -8171,18 +7874,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"
@@ -8208,15 +7903,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"
@@ -8262,10 +7955,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"
@@ -8277,14 +7970,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"
@@ -8293,10 +7986,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"
@@ -8305,17 +7998,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"
@@ -8355,60 +8048,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"
@@ -8437,7 +8076,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:
@@ -8473,10 +8112,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"
@@ -8510,12 +8149,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"
@@ -8530,7 +8169,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==
@@ -8572,30 +8221,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"
@@ -8629,16 +8261,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"
@@ -8651,19 +8273,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==
@@ -8688,41 +8318,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"
@@ -8743,9 +8360,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"
@@ -8775,11 +8392,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"
@@ -8805,11 +8417,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"
@@ -8817,7 +8424,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"
@@ -8871,11 +8478,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:
@@ -8908,24 +8517,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"
@@ -8936,9 +8538,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"
@@ -8958,7 +8560,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==
@@ -8971,13 +8573,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"
@@ -8988,22 +8583,18 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1:
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
-source-map@^0.7.2:
- version "0.7.3"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
-
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"
@@ -9014,34 +8605,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"
@@ -9063,39 +8652,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"
@@ -9105,7 +8691,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=
@@ -9115,13 +8701,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"
@@ -9167,7 +8746,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=
@@ -9193,22 +8772,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"
@@ -9224,6 +8807,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"
@@ -9241,46 +8831,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"
-stylis-rule-sheet@^0.0.10:
- version "0.0.10"
- resolved "https://registry.yarnpkg.com/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz#44e64a2b076643f4b52e5ff71efc04d8c3c4a430"
-
-stylis@^3.5.0:
- version "3.5.3"
- resolved "https://registry.yarnpkg.com/stylis/-/stylis-3.5.3.tgz#99fdc46afba6af4deff570825994181a5e6ce546"
+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"
@@ -9293,14 +8870,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==
@@ -9310,55 +8907,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"
@@ -9368,10 +8940,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"
@@ -9384,7 +8974,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=
@@ -9402,22 +8992,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"
@@ -9426,6 +9016,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"
@@ -9483,13 +9078,15 @@ to-regex@^3.0.1, to-regex@^3.0.2:
regex-not "^1.0.2"
safe-regex "^1.1.0"
-touch@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/touch/-/touch-1.0.0.tgz#449cbe2dbae5a8c8038e30d71fa0ff464947c4de"
+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:
- nopt "~1.0.10"
+ psl "^1.1.28"
+ punycode "^2.1.1"
-tough-cookie@>=2.3.3, tough-cookie@^2.3.4, tough-cookie@~2.4.3:
+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==
@@ -9497,13 +9094,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"
@@ -9511,23 +9101,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"
@@ -9562,7 +9140,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==
@@ -9576,19 +9154,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==
@@ -9596,29 +9166,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"
@@ -9658,31 +9223,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=
@@ -9712,15 +9277,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"
@@ -9738,12 +9298,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==
@@ -9770,7 +9330,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==
@@ -9780,7 +9340,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==
@@ -9803,6 +9363,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"
@@ -9864,7 +9429,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==
@@ -9876,58 +9441,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"
@@ -9948,13 +9522,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"
@@ -9966,39 +9542,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"
@@ -10015,10 +9582,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"
@@ -10041,21 +9608,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"
@@ -10075,17 +9642,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==
@@ -10118,7 +9680,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"
@@ -10145,14 +9707,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"
@@ -10160,6 +9714,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"
@@ -10191,9 +9752,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"
@@ -10202,12 +9763,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"
@@ -10223,7 +9785,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==
@@ -10243,7 +9805,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"
@@ -10259,24 +9821,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"