-
-
+
+
- {!onCloseVideo && }
- {(!fullscreen && onOpenVideo) && }
- {onCloseVideo && }
-
+ {!onCloseVideo && }
+ {(!fullscreen && onOpenVideo) && }
+ {onCloseVideo && }
+
diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json
index 8c6080c62..f577f53d5 100644
--- a/app/javascript/mastodon/locales/ar.json
+++ b/app/javascript/mastodon/locales/ar.json
@@ -1,45 +1,43 @@
{
- "account.add_or_remove_from_list": "اضافو أو حذف مِن القوائم",
+ "account.add_or_remove_from_list": "أضيف/ي أو أحذف/ي من القائمة",
"account.badges.bot": "روبوت",
"account.block": "حظر @{name}",
"account.block_domain": "إخفاء كل شيئ قادم من إسم النطاق {domain}",
"account.blocked": "محظور",
"account.direct": "رسالة خاصة إلى @{name}",
- "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": "تم تأمين خصوصية هذا الحساب عبر قُفل. فصاحب الحساب يُراجِع يدويا طلبات المتابَعة و الاشتراك بحسابه.",
+ "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}",
"account.unmute_notifications": "إلغاء كتم إخطارات @{name}",
- "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 +45,7 @@
"bundle_modal_error.message": "لقد وقع هناك خطأ أثناء عملية تحميل هذا العنصر.",
"bundle_modal_error.retry": "إعادة المحاولة",
"column.blocks": "الحسابات المحجوبة",
- "column.community": "الخيط العام المحلي",
+ "column.community": "التَسَلْسُل الزَمني المحلي",
"column.direct": "الرسائل المباشرة",
"column.domain_blocks": "النطاقات المخفية",
"column.favourites": "المفضلة",
@@ -73,6 +71,10 @@
"compose_form.lock_disclaimer": "حسابك ليس {locked}. يمكن لأي شخص متابعتك و عرض المنشورات.",
"compose_form.lock_disclaimer.lock": "مقفل",
"compose_form.placeholder": "فيمَ تفكّر؟",
+ "compose_form.poll.add_option": "إضافة خيار",
+ "compose_form.poll.duration": "مدة استطلاع الرأي",
+ "compose_form.poll.option_placeholder": "الخيار {number}",
+ "compose_form.poll.remove_option": "إزالة هذا الخيار",
"compose_form.publish": "بوّق",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "لقد تم تحديد هذه الصورة كحساسة",
@@ -81,6 +83,7 @@
"compose_form.spoiler.unmarked": "النص غير مخفي",
"compose_form.spoiler_placeholder": "تنبيه عن المحتوى",
"confirmation_modal.cancel": "إلغاء",
+ "confirmations.block.block_and_report": "Block & Report",
"confirmations.block.confirm": "حجب",
"confirmations.block.message": "هل أنت متأكد أنك تريد حجب {name} ؟",
"confirmations.delete.confirm": "حذف",
@@ -114,6 +117,7 @@
"emoji_button.symbols": "رموز",
"emoji_button.travel": "أماكن و أسفار",
"empty_column.account_timeline": "ليس هناك تبويقات!",
+ "empty_column.account_unavailable": "الملف الشخصي غير متوفر",
"empty_column.blocks": "لم تقم بحظر أي مستخدِم بعد.",
"empty_column.community": "الخط الزمني المحلي فارغ. أكتب شيئا ما للعامة كبداية !",
"empty_column.direct": "لم تتلق أية رسالة خاصة مباشِرة بعد. سوف يتم عرض الرسائل المباشرة هنا إن قمت بإرسال واحدة أو تلقيت البعض منها.",
@@ -128,7 +132,7 @@
"empty_column.lists": "ليس عندك أية قائمة بعد. سوف تظهر قائمتك هنا إن قمت بإنشاء واحدة.",
"empty_column.mutes": "لم تقم بكتم أي مستخدم بعد.",
"empty_column.notifications": "لم تتلق أي إشعار بعدُ. تفاعل مع المستخدمين الآخرين لإنشاء محادثة.",
- "empty_column.public": "لا يوجد أي شيء هنا ! قم بنشر شيء ما للعامة، أو إتبع مستخدمين آخرين في الخوادم المثيلة الأخرى لملء خيط المحادثات العام",
+ "empty_column.public": "لا يوجد أي شيء هنا ! قم بنشر شيء ما للعامة، أو إتبع المستخدمين الآخرين المتواجدين على الخوادم الأخرى لملء خيط المحادثات",
"federation.change": "Adjust status federation",
"federation.federated.long": "Allow toot to reach other instances",
"federation.federated.short": "Federated",
@@ -147,13 +151,18 @@
"hashtag.column_header.tag_mode.all": "و {additional}",
"hashtag.column_header.tag_mode.any": "أو {additional}",
"hashtag.column_header.tag_mode.none": "بدون {additional}",
+ "hashtag.column_settings.select.no_options_message": "لم يُعثَر على أي اقتراح",
+ "hashtag.column_settings.select.placeholder": "قم بإدخال وسوم…",
"hashtag.column_settings.tag_mode.all": "كلها",
"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": "عرض الردود",
+ "intervals.full.days": "{number, plural, one {# day} other {# days}}",
+ "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
+ "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
"introduction.federation.action": "التالي",
"introduction.federation.federated.headline": "Federated",
"introduction.federation.federated.text": "كافة المنشورات التي نُشِرت إلى العامة على الخوادم الأخرى للفديفرس سوف يتم عرضها على الخيط المُوحَّد.",
@@ -209,6 +218,7 @@
"lists.account.remove": "إحذف من القائمة",
"lists.delete": "Delete list",
"lists.edit": "تعديل القائمة",
+ "lists.edit.submit": "تعديل العنوان",
"lists.new.create": "إنشاء قائمة",
"lists.new.title_placeholder": "عنوان القائمة الجديدة",
"lists.search": "إبحث في قائمة الحسابات التي تُتابِعها",
@@ -229,7 +239,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,6 +252,7 @@
"notification.favourite": "أُعجِب {name} بمنشورك",
"notification.follow": "{name} يتابعك",
"notification.mention": "{name} ذكرك",
+ "notification.poll": "A poll you have voted in has ended",
"notification.reblog": "{name} قام بترقية تبويقك",
"notifications.clear": "إمسح الإخطارات",
"notifications.clear_confirmation": "أمتأكد من أنك تود مسح جل الإخطارات الخاصة بك و المتلقاة إلى حد الآن ؟",
@@ -252,6 +263,7 @@
"notifications.column_settings.filter_bar.show": "عرض",
"notifications.column_settings.follow": "متابعُون جُدُد :",
"notifications.column_settings.mention": "الإشارات :",
+ "notifications.column_settings.poll": "نتائج استطلاع الرأي:",
"notifications.column_settings.push": "الإخطارات المدفوعة",
"notifications.column_settings.reblog": "الترقيّات:",
"notifications.column_settings.show": "إعرِضها في عمود",
@@ -261,7 +273,14 @@
"notifications.filter.favourites": "المفضلة",
"notifications.filter.follows": "يتابِع",
"notifications.filter.mentions": "الإشارات",
+ "notifications.filter.polls": "نتائج استطلاع الرأي",
"notifications.group": "{count} إشعارات",
+ "poll.closed": "انتهى",
+ "poll.refresh": "تحديث",
+ "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
+ "poll.vote": "صَوّت",
+ "poll_button.add_poll": "إضافة استطلاع للرأي",
+ "poll_button.remove_poll": "إزالة استطلاع الرأي",
"privacy.change": "إضبط خصوصية المنشور",
"privacy.direct.long": "أنشر إلى المستخدمين المشار إليهم فقط",
"privacy.direct.short": "مباشر",
@@ -281,7 +300,7 @@
"reply_indicator.cancel": "إلغاء",
"report.forward": "التحويل إلى {target}",
"report.forward_hint": "هذا الحساب ينتمي إلى خادوم آخَر. هل تودّ إرسال نسخة مجهولة مِن التقرير إلى هنالك أيضًا ؟",
- "report.hint": "سوف يتم إرسال التقرير إلى مُشرِفي مثيل خادومكم. بإمكانك الإدلاء بشرح عن سبب الإبلاغ عن الحساب أسفله :",
+ "report.hint": "سوف يتم إرسال التقرير إلى المُشرِفين على خادومكم. بإمكانكم الإدلاء بشرح عن سبب الإبلاغ عن الحساب أسفله:",
"report.placeholder": "تعليقات إضافية",
"report.submit": "إرسال",
"report.target": "إبلاغ",
@@ -296,12 +315,12 @@
"search_results.hashtags": "الوُسوم",
"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": "نسخ رابط المنشور",
"status.delete": "إحذف",
"status.detailed_status": "تفاصيل المحادثة",
"status.direct": "رسالة خاصة إلى @{name}",
@@ -344,10 +363,17 @@
"tabs_bar.local_timeline": "المحلي",
"tabs_bar.notifications": "الإخطارات",
"tabs_bar.search": "البحث",
+ "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
+ "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
+ "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
+ "time_remaining.moments": "Moments remaining",
+ "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} آخرون {people}} يتحدثون",
"ui.beforeunload": "سوف تفقد مسودتك إن تركت ماستدون.",
"upload_area.title": "إسحب ثم أفلت للرفع",
"upload_button.label": "إضافة وسائط (JPEG، PNG، GIF، WebM، MP4، MOV)",
+ "upload_error.limit": "لقد تم بلوغ الحد الأقصى المسموح به لإرسال الملفات.",
+ "upload_error.poll": "لا يمكن إدراج ملفات في استطلاعات الرأي.",
"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 4b3cdf76d..1be45cdaa 100644
--- a/app/javascript/mastodon/locales/ast.json
+++ b/app/javascript/mastodon/locales/ast.json
@@ -5,7 +5,6 @@
"account.block_domain": "Anubrir tolo de {domain}",
"account.blocked": "Blocked",
"account.direct": "Unviar un mensaxe direutu a @{name}",
- "account.disclaimer_full": "La información d'embaxo podría reflexar de mou incompletu'l perfil del usuariu.",
"account.domain_blocked": "Dominiu anubríu",
"account.edit_profile": "Editar el perfil",
"account.endorse": "Destacar nel perfil",
@@ -36,7 +35,6 @@
"account.unfollow": "Unfollow",
"account.unmute": "Unmute @{name}",
"account.unmute_notifications": "Unmute notifications from @{name}",
- "account.view_full_profile": "Ver el perfil completu",
"alert.unexpected.message": "Asocedió un fallu inesperáu.",
"alert.unexpected.title": "¡Ups!",
"boost_modal.combo": "Pues primir {combo} pa saltar esto la próxima vegada",
@@ -73,6 +71,10 @@
"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": "¿En qué pienses?",
+ "compose_form.poll.add_option": "Add a choice",
+ "compose_form.poll.duration": "Poll duration",
+ "compose_form.poll.option_placeholder": "Choice {number}",
+ "compose_form.poll.remove_option": "Remove this choice",
"compose_form.publish": "Toot",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "Media is marked as sensitive",
@@ -81,6 +83,7 @@
"compose_form.spoiler.unmarked": "El testu va anubrise",
"compose_form.spoiler_placeholder": "Escribi equí l'avertencia",
"confirmation_modal.cancel": "Encaboxar",
+ "confirmations.block.block_and_report": "Block & Report",
"confirmations.block.confirm": "Block",
"confirmations.block.message": "¿De xuru que quies bloquiar a {name}?",
"confirmations.delete.confirm": "Delete",
@@ -114,6 +117,7 @@
"emoji_button.symbols": "Símbolos",
"emoji_button.travel": "Viaxes y llugares",
"empty_column.account_timeline": "No toots here!",
+ "empty_column.account_unavailable": "Profile unavailable",
"empty_column.blocks": "Entá nun bloquiesti a dengún usuariu.",
"empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
"empty_column.direct": "Entá nun tienes dengún mensaxe direutu. Cuando unvies o recibas dalgún, va apaecer equí.",
@@ -147,6 +151,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",
@@ -154,6 +160,9 @@
"home.column_settings.basic": "Basic",
"home.column_settings.show_reblogs": "Amosar toots compartíos",
"home.column_settings.show_replies": "Amosar rempuestes",
+ "intervals.full.days": "{number, plural, one {# day} other {# days}}",
+ "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
+ "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
"introduction.federation.action": "Next",
"introduction.federation.federated.headline": "Federated",
"introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
@@ -209,6 +218,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",
@@ -242,6 +252,7 @@
"notification.favourite": "{name} favourited your status",
"notification.follow": "{name} siguióte",
"notification.mention": "{name} mentóte",
+ "notification.poll": "A poll you have voted in has ended",
"notification.reblog": "{name} compartió'l to estáu",
"notifications.clear": "Llimpiar avisos",
"notifications.clear_confirmation": "¿De xuru que quies llimpiar dafechu tolos avisos?",
@@ -252,6 +263,7 @@
"notifications.column_settings.filter_bar.show": "Show",
"notifications.column_settings.follow": "Siguidores nuevos:",
"notifications.column_settings.mention": "Menciones:",
+ "notifications.column_settings.poll": "Poll results:",
"notifications.column_settings.push": "Push notifications",
"notifications.column_settings.reblog": "Toots compartíos:",
"notifications.column_settings.show": "Amosar en columna",
@@ -261,7 +273,14 @@
"notifications.filter.favourites": "Favourites",
"notifications.filter.follows": "Follows",
"notifications.filter.mentions": "Mentions",
+ "notifications.filter.polls": "Poll results",
"notifications.group": "{count} avisos",
+ "poll.closed": "Closed",
+ "poll.refresh": "Refresh",
+ "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
+ "poll.vote": "Vote",
+ "poll_button.add_poll": "Add a poll",
+ "poll_button.remove_poll": "Remove poll",
"privacy.change": "Adjust status privacy",
"privacy.direct.long": "Post to mentioned users only",
"privacy.direct.short": "Direct",
@@ -296,12 +315,12 @@
"search_results.hashtags": "Etiquetes",
"search_results.statuses": "Toots",
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
- "standalone.public_title": "A look inside...",
"status.admin_account": "Open moderation interface for @{name}",
"status.admin_status": "Open this status in the moderation interface",
"status.block": "Bloquiar a @{name}",
"status.cancel_reblog_private": "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}",
@@ -344,10 +363,17 @@
"tabs_bar.local_timeline": "Llocal",
"tabs_bar.notifications": "Avisos",
"tabs_bar.search": "Search",
+ "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
+ "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
+ "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
+ "time_remaining.moments": "Moments remaining",
+ "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
"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_error.poll": "File upload not allowed with polls.",
"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 c7eee08fa..4574c240f 100644
--- a/app/javascript/mastodon/locales/bg.json
+++ b/app/javascript/mastodon/locales/bg.json
@@ -5,7 +5,6 @@
"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": "Редактирай профила си",
"account.endorse": "Feature on profile",
@@ -36,7 +35,6 @@
"account.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",
@@ -73,6 +71,10 @@
"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": "Какво си мислиш?",
+ "compose_form.poll.add_option": "Add a choice",
+ "compose_form.poll.duration": "Poll duration",
+ "compose_form.poll.option_placeholder": "Choice {number}",
+ "compose_form.poll.remove_option": "Remove this choice",
"compose_form.publish": "Раздумай",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "Media is marked as sensitive",
@@ -81,6 +83,7 @@
"compose_form.spoiler.unmarked": "Text is not hidden",
"compose_form.spoiler_placeholder": "Content warning",
"confirmation_modal.cancel": "Cancel",
+ "confirmations.block.block_and_report": "Block & Report",
"confirmations.block.confirm": "Block",
"confirmations.block.message": "Are you sure you want to block {name}?",
"confirmations.delete.confirm": "Delete",
@@ -114,6 +117,7 @@
"emoji_button.symbols": "Symbols",
"emoji_button.travel": "Travel & Places",
"empty_column.account_timeline": "No toots here!",
+ "empty_column.account_unavailable": "Profile unavailable",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.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.",
@@ -147,6 +151,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",
@@ -154,6 +160,9 @@
"home.column_settings.basic": "Basic",
"home.column_settings.show_reblogs": "Show boosts",
"home.column_settings.show_replies": "Show replies",
+ "intervals.full.days": "{number, plural, one {# day} other {# days}}",
+ "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
+ "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
"introduction.federation.action": "Next",
"introduction.federation.federated.headline": "Federated",
"introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
@@ -209,6 +218,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",
@@ -242,6 +252,7 @@
"notification.favourite": "{name} хареса твоята публикация",
"notification.follow": "{name} те последва",
"notification.mention": "{name} те спомена",
+ "notification.poll": "A poll you have voted in has ended",
"notification.reblog": "{name} сподели твоята публикация",
"notifications.clear": "Clear notifications",
"notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?",
@@ -252,6 +263,7 @@
"notifications.column_settings.filter_bar.show": "Show",
"notifications.column_settings.follow": "Нови последователи:",
"notifications.column_settings.mention": "Споменавания:",
+ "notifications.column_settings.poll": "Poll results:",
"notifications.column_settings.push": "Push notifications",
"notifications.column_settings.reblog": "Споделяния:",
"notifications.column_settings.show": "Покажи в колона",
@@ -261,7 +273,14 @@
"notifications.filter.favourites": "Favourites",
"notifications.filter.follows": "Follows",
"notifications.filter.mentions": "Mentions",
+ "notifications.filter.polls": "Poll results",
"notifications.group": "{count} notifications",
+ "poll.closed": "Closed",
+ "poll.refresh": "Refresh",
+ "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
+ "poll.vote": "Vote",
+ "poll_button.add_poll": "Add a poll",
+ "poll_button.remove_poll": "Remove poll",
"privacy.change": "Adjust status privacy",
"privacy.direct.long": "Post to mentioned users only",
"privacy.direct.short": "Direct",
@@ -296,12 +315,12 @@
"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": "Изтриване",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
@@ -344,10 +363,17 @@
"tabs_bar.local_timeline": "Local",
"tabs_bar.notifications": "Известия",
"tabs_bar.search": "Search",
+ "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
+ "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
+ "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
+ "time_remaining.moments": "Moments remaining",
+ "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
"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_error.poll": "File upload not allowed with polls.",
"upload_form.description": "Describe for the visually impaired",
"upload_form.focus": "Crop",
"upload_form.undo": "Отмяна",
diff --git a/app/javascript/mastodon/locales/bn.json b/app/javascript/mastodon/locales/bn.json
new file mode 100644
index 000000000..338e49f81
--- /dev/null
+++ b/app/javascript/mastodon/locales/bn.json
@@ -0,0 +1,384 @@
+{
+ "account.add_or_remove_from_list": "লিস্টে আরো যুক্ত বা মুছে ফেলুন",
+ "account.badges.bot": "রোবট",
+ "account.block": "@{name} কে বন্ধ করুন",
+ "account.block_domain": "{domain} থেকে সব সরিয়ে ফেলুন",
+ "account.blocked": "বন্ধ করা হয়েছে",
+ "account.direct": "@{name}কে সরকারি পাঠান",
+ "account.domain_blocked": "বেবিসিটটি সরানো আছে",
+ "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}",
+ "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.poll.add_option": "Add a choice",
+ "compose_form.poll.duration": "Poll duration",
+ "compose_form.poll.option_placeholder": "Choice {number}",
+ "compose_form.poll.remove_option": "Remove this choice",
+ "compose_form.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.block_and_report": "Block & Report",
+ "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.account_unavailable": "Profile unavailable",
+ "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",
+ "intervals.full.days": "{number, plural, one {# day} other {# days}}",
+ "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
+ "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
+ "introduction.federation.action": "Next",
+ "introduction.federation.federated.headline": "Federated",
+ "introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
+ "introduction.federation.home.headline": "Home",
+ "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.poll": "A poll you have voted in has ended",
+ "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.poll": "Poll results:",
+ "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.filter.polls": "Poll results",
+ "notifications.group": "{count} notifications",
+ "poll.closed": "Closed",
+ "poll.refresh": "Refresh",
+ "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
+ "poll.vote": "Vote",
+ "poll_button.add_poll": "Add a poll",
+ "poll_button.remove_poll": "Remove poll",
+ "privacy.change": "Adjust status privacy",
+ "privacy.direct.long": "Post to mentioned users only",
+ "privacy.direct.short": "Direct",
+ "privacy.private.long": "Post to followers only",
+ "privacy.private.short": "Followers-only",
+ "privacy.public.long": "Post to public timelines",
+ "privacy.public.short": "Public",
+ "privacy.unlisted.long": "Do not show in public timelines",
+ "privacy.unlisted.short": "Unlisted",
+ "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}}",
+ "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",
+ "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
+ "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
+ "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
+ "time_remaining.moments": "Moments remaining",
+ "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
+ "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
+ "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_error.poll": "File upload not allowed with polls.",
+ "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/ca.json b/app/javascript/mastodon/locales/ca.json
index c568d09fe..2a8618d3c 100644
--- a/app/javascript/mastodon/locales/ca.json
+++ b/app/javascript/mastodon/locales/ca.json
@@ -5,7 +5,6 @@
"account.block_domain": "Amaga-ho tot de {domain}",
"account.blocked": "Bloquejat",
"account.direct": "Missatge directe @{name}",
- "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": "Recomanar en el teu perfil",
@@ -36,7 +35,6 @@
"account.unfollow": "Deixa de seguir",
"account.unmute": "Treure silenci de @{name}",
"account.unmute_notifications": "Activar notificacions de @{name}",
- "account.view_full_profile": "Mostra el perfil complet",
"alert.unexpected.message": "S'ha produït un error inesperat.",
"alert.unexpected.title": "Vaja!",
"boost_modal.combo": "Pots premer {combo} per saltar-te això el proper cop",
@@ -73,6 +71,10 @@
"compose_form.lock_disclaimer": "El teu compte no està bloquejat {locked}. Tothom pot seguir-te i veure els teus missatges a seguidors.",
"compose_form.lock_disclaimer.lock": "blocat",
"compose_form.placeholder": "En què estàs pensant?",
+ "compose_form.poll.add_option": "Afegeix una opció",
+ "compose_form.poll.duration": "Durada de l'enquesta",
+ "compose_form.poll.option_placeholder": "Opció {number}",
+ "compose_form.poll.remove_option": "Elimina aquesta opció",
"compose_form.publish": "Toot",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "Mèdia marcat com a sensible",
@@ -81,6 +83,7 @@
"compose_form.spoiler.unmarked": "Text no ocult",
"compose_form.spoiler_placeholder": "Escriu l'avís aquí",
"confirmation_modal.cancel": "Cancel·la",
+ "confirmations.block.block_and_report": "Block & Report",
"confirmations.block.confirm": "Bloca",
"confirmations.block.message": "Estàs segur que vols blocar {name}?",
"confirmations.delete.confirm": "Suprimeix",
@@ -105,7 +108,7 @@
"emoji_button.food": "Menjar i beure",
"emoji_button.label": "Insereix un emoji",
"emoji_button.nature": "Natura",
- "emoji_button.not_found": "Emojos no!! (╯°□°)╯︵ ┻━┻",
+ "emoji_button.not_found": "Emojis no!! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "Objectes",
"emoji_button.people": "Gent",
"emoji_button.recent": "Usats freqüentment",
@@ -114,6 +117,7 @@
"emoji_button.symbols": "Símbols",
"emoji_button.travel": "Viatges i Llocs",
"empty_column.account_timeline": "No hi ha toots aquí!",
+ "empty_column.account_unavailable": "Profile unavailable",
"empty_column.blocks": "Encara no has bloquejat cap usuari.",
"empty_column.community": "La línia de temps local és buida. Escriu alguna cosa públicament per fer rodar la pilota!",
"empty_column.direct": "Encara no tens missatges directes. Quan enviïs o rebis un, es mostrarà aquí.",
@@ -128,7 +132,7 @@
"empty_column.lists": "Encara no tens cap llista. Quan en facis una, apareixerà aquí.",
"empty_column.mutes": "Encara no has silenciat cap usuari.",
"empty_column.notifications": "Encara no tens notificacions. Interactua amb altres per iniciar la conversa.",
- "empty_column.public": "No hi ha res aquí! Escriu alguna cosa públicament o segueix manualment usuaris d'altres instàncies per omplir-ho",
+ "empty_column.public": "No hi ha res aquí! Escriu públicament alguna cosa o manualment segueix usuaris d'altres servidors per omplir-ho",
"federation.change": "Adjust status federation",
"federation.federated.long": "Allow toot to reach other instances",
"federation.federated.short": "Federated",
@@ -147,13 +151,18 @@
"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 s'ha trobat cap suggeriment",
+ "hashtag.column_settings.select.placeholder": "Introdueix etiquetes…",
"hashtag.column_settings.tag_mode.all": "Tots aquests",
"hashtag.column_settings.tag_mode.any": "Qualsevol d’aquests",
"hashtag.column_settings.tag_mode.none": "Cap d’aquests",
- "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
+ "hashtag.column_settings.tag_toggle": "Inclou etiquetes addicionals per a aquesta columna",
"home.column_settings.basic": "Bàsic",
"home.column_settings.show_reblogs": "Mostrar impulsos",
"home.column_settings.show_replies": "Mostrar respostes",
+ "intervals.full.days": "{number, plural, one {# dia} other {# dies}}",
+ "intervals.full.hours": "{number, plural, one {# hora} other {# hores}}",
+ "intervals.full.minutes": "{number, plural, one {# minut} other {# minuts}}",
"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.",
@@ -176,14 +185,14 @@
"keyboard_shortcuts.boost": "impulsar",
"keyboard_shortcuts.column": "per centrar un estat en una de les columnes",
"keyboard_shortcuts.compose": "per centrar l'area de composició de text",
- "keyboard_shortcuts.description": "Description",
+ "keyboard_shortcuts.description": "Descripció",
"keyboard_shortcuts.direct": "per obrir la columna de missatges directes",
"keyboard_shortcuts.down": "per baixar en la llista",
"keyboard_shortcuts.enter": "ampliar estat",
"keyboard_shortcuts.favourite": "afavorir",
"keyboard_shortcuts.favourites": "per obrir la llista de favorits",
"keyboard_shortcuts.federated": "per obrir la línia de temps federada",
- "keyboard_shortcuts.heading": "Keyboard Shortcuts",
+ "keyboard_shortcuts.heading": "Dreçeres de teclat",
"keyboard_shortcuts.home": "per obrir la línia de temps Inici",
"keyboard_shortcuts.hotkey": "Tecla d'accés directe",
"keyboard_shortcuts.legend": "per a mostrar aquesta llegenda",
@@ -209,6 +218,7 @@
"lists.account.remove": "Treure de la llista",
"lists.delete": "Delete list",
"lists.edit": "Editar llista",
+ "lists.edit.submit": "Canvi de títol",
"lists.new.create": "Afegir llista",
"lists.new.title_placeholder": "Nova llista",
"lists.search": "Cercar entre les persones que segueixes",
@@ -229,7 +239,7 @@
"navigation_bar.favourites": "Favorits",
"navigation_bar.filters": "Paraules silenciades",
"navigation_bar.follow_requests": "Sol·licituds de seguiment",
- "navigation_bar.info": "Informació addicional",
+ "navigation_bar.info": "Sobre aquest servidor",
"navigation_bar.keyboard_shortcuts": "Dreceres de teclat",
"navigation_bar.lists": "Llistes",
"navigation_bar.logout": "Tancar sessió",
@@ -242,7 +252,8 @@
"notification.favourite": "{name} ha afavorit el teu estat",
"notification.follow": "{name} et segueix",
"notification.mention": "{name} t'ha esmentat",
- "notification.reblog": "{name} ha retootejat el teu estat",
+ "notification.poll": "Ha finalitzat una enquesta en la que has votat",
+ "notification.reblog": "{name} ha impulsat el teu estat",
"notifications.clear": "Netejar notificacions",
"notifications.clear_confirmation": "Estàs segur que vols esborrar permanenment totes les teves notificacions?",
"notifications.column_settings.alert": "Notificacions d'escriptori",
@@ -252,7 +263,8 @@
"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.poll": "Resultats de l’enquesta:",
+ "notifications.column_settings.push": "Notificacions push",
"notifications.column_settings.reblog": "Impulsos:",
"notifications.column_settings.show": "Mostrar en la columna",
"notifications.column_settings.sound": "Reproduïr so",
@@ -261,7 +273,14 @@
"notifications.filter.favourites": "Favorits",
"notifications.filter.follows": "Seguiments",
"notifications.filter.mentions": "Mencions",
+ "notifications.filter.polls": "Resultats de l'enquesta",
"notifications.group": "{count} notificacions",
+ "poll.closed": "Finalitzada",
+ "poll.refresh": "Actualitza",
+ "poll.total_votes": "{count, plural, one {# vot} other {# vots}}",
+ "poll.vote": "Vota",
+ "poll_button.add_poll": "Afegeix una enquesta",
+ "poll_button.remove_poll": "Elimina l'enquesta",
"privacy.change": "Ajusta l'estat de privacitat",
"privacy.direct.long": "Publicar només per als usuaris esmentats",
"privacy.direct.short": "Directe",
@@ -281,7 +300,7 @@
"reply_indicator.cancel": "Cancel·lar",
"report.forward": "Reenvia a {target}",
"report.forward_hint": "Aquest compte és d'un altre servidor. Enviar-hi també una copia anònima del informe?",
- "report.hint": "El informe s'enviarà als moderadors de la teva instància. Pots explicar perquè vols informar d'aquest compte aquí:",
+ "report.hint": "El informe s'enviarà als moderadors del teu servidor. Pots explicar perquè vols informar d'aquest compte aquí:",
"report.placeholder": "Comentaris addicionals",
"report.submit": "Enviar",
"report.target": "Informes",
@@ -296,12 +315,12 @@
"search_results.hashtags": "Etiquetes",
"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.block": "Bloqueja @{name}",
"status.cancel_reblog_private": "Desfer l'impuls",
- "status.cannot_reblog": "Aquesta publicació no pot ser retootejada",
+ "status.cannot_reblog": "Aquesta publicació no pot ser impulsada",
+ "status.copy": "Copia l'enllaç a l'estat",
"status.delete": "Esborrar",
"status.detailed_status": "Visualització detallada de la conversa",
"status.direct": "Missatge directe @{name}",
@@ -321,7 +340,7 @@
"status.read_more": "Llegir més",
"status.reblog": "Impuls",
"status.reblog_private": "Impulsar a l'audiència original",
- "status.reblogged_by": "{name} ha retootejat",
+ "status.reblogged_by": "{name} ha impulsat",
"status.reblogs.empty": "Encara ningú no ha impulsat aquest toot. Quan algú ho faci, apareixeran aquí.",
"status.redraft": "Esborrar i reescriure",
"status.reply": "Respondre",
@@ -344,10 +363,17 @@
"tabs_bar.local_timeline": "Local",
"tabs_bar.notifications": "Notificacions",
"tabs_bar.search": "Cerca",
+ "time_remaining.days": "{number, plural, one {# dia} other {# dies}} restants",
+ "time_remaining.hours": "{number, plural, one {# hora} other {# hores}} restants",
+ "time_remaining.minutes": "{number, plural, one {# minut} other {# minuts}} restants",
+ "time_remaining.moments": "Moments restants",
+ "time_remaining.seconds": "{number, plural, one {# segon} other {# segons}} restants",
"trends.count_by_accounts": "{count} {rawCount, plural, una {person} altres {people}} parlant",
"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": "S'ha superat el límit de càrrega d'arxius.",
+ "upload_error.poll": "No es permet l'enviament de fitxers amb les enquestes.",
"upload_form.description": "Descriure els problemes visuals",
"upload_form.focus": "Modificar la previsualització",
"upload_form.undo": "Esborra",
diff --git a/app/javascript/mastodon/locales/co.json b/app/javascript/mastodon/locales/co.json
index b344227b8..ee6080dc4 100644
--- a/app/javascript/mastodon/locales/co.json
+++ b/app/javascript/mastodon/locales/co.json
@@ -5,7 +5,6 @@
"account.block_domain": "Piattà tuttu da {domain}",
"account.blocked": "Bluccatu",
"account.direct": "Missaghju direttu @{name}",
- "account.disclaimer_full": "Ghjè pussibule chì l’infurmazione quì sottu ùn rifletta micca u prufile sanu di l’utilizatore.",
"account.domain_blocked": "Duminiu piattatu",
"account.edit_profile": "Mudificà u prufile",
"account.endorse": "Fà figurà nant'à u prufilu",
@@ -36,7 +35,6 @@
"account.unfollow": "Ùn siguità più",
"account.unmute": "Ùn piattà più @{name}",
"account.unmute_notifications": "Ùn piattà più nutificazione da @{name}",
- "account.view_full_profile": "Vede tuttu u prufile",
"alert.unexpected.message": "Un prublemu inaspettatu hè accadutu.",
"alert.unexpected.title": "Uups!",
"boost_modal.combo": "Pudete appughjà nant'à {combo} per saltà quessa a prussima volta",
@@ -73,6 +71,10 @@
"compose_form.lock_disclaimer": "U vostru contu ùn hè micca {locked}. Tuttu u mondu pò seguitavi è vede i vostri statuti privati.",
"compose_form.lock_disclaimer.lock": "privatu",
"compose_form.placeholder": "À chè pensate?",
+ "compose_form.poll.add_option": "Aghjustà una scelta",
+ "compose_form.poll.duration": "Durata di u scandagliu",
+ "compose_form.poll.option_placeholder": "Scelta {number}",
+ "compose_form.poll.remove_option": "Toglie sta scelta",
"compose_form.publish": "Toot",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "Media indicatu cum'è sensibile",
@@ -81,6 +83,7 @@
"compose_form.spoiler.unmarked": "Testu micca piattatu",
"compose_form.spoiler_placeholder": "Scrive u vostr'avertimentu quì",
"confirmation_modal.cancel": "Annullà",
+ "confirmations.block.block_and_report": "Bluccà è signalà",
"confirmations.block.confirm": "Bluccà",
"confirmations.block.message": "Site sicuru·a che vulete bluccà @{name}?",
"confirmations.delete.confirm": "Toglie",
@@ -114,6 +117,7 @@
"emoji_button.symbols": "Simbuli",
"emoji_button.travel": "Lochi è Viaghju",
"empty_column.account_timeline": "Nisun statutu quì!",
+ "empty_column.account_unavailable": "Prufile micca dispunibule",
"empty_column.blocks": "Per avà ùn avete bluccatu manc'un utilizatore.",
"empty_column.community": "Ùn c'hè nunda indè a linea lucale. Scrivete puru qualcosa!",
"empty_column.direct": "Ùn avete ancu nisun missaghju direttu. S'è voi mandate o ricevete unu, u vidarete quì.",
@@ -128,7 +132,7 @@
"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",
"federation.change": "Adjust status federation",
"federation.federated.long": "Allow toot to reach other instances",
"federation.federated.short": "Federated",
@@ -138,7 +142,7 @@
"follow_request.reject": "Righjittà",
"getting_started.developers": "Sviluppatori",
"getting_started.directory": "Annuariu di i prufili",
- "getting_started.documentation": "Documentation",
+ "getting_started.documentation": "Ducumentazione",
"getting_started.heading": "Per principià",
"getting_started.invite": "Invità ghjente",
"getting_started.open_source_notice": "Mastodon ghjè un lugiziale liberu. Pudete cuntribuisce à u codice o a traduzione, o palisà un bug, nant'à GitHub: {github}.",
@@ -147,6 +151,8 @@
"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": "Nisuna sugestione trova",
+ "hashtag.column_settings.select.placeholder": "Entrà l'hashtag…",
"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",
@@ -154,6 +160,9 @@
"home.column_settings.basic": "Bàsichi",
"home.column_settings.show_reblogs": "Vede e spartere",
"home.column_settings.show_replies": "Vede e risposte",
+ "intervals.full.days": "{number, plural, one {# ghjornu} other {# ghjorni}}",
+ "intervals.full.hours": "{number, plural, one {# ora} other {# ore}}",
+ "intervals.full.minutes": "{number, plural, one {# minuta} other {# minute}}",
"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.",
@@ -209,6 +218,7 @@
"lists.account.remove": "Toglie di a lista",
"lists.delete": "Supprime a lista",
"lists.edit": "Mudificà a lista",
+ "lists.edit.submit": "Cambià u titulu",
"lists.new.create": "Aghjustà una lista",
"lists.new.title_placeholder": "Titulu di a lista",
"lists.search": "Circà indè i vostr'abbunamenti",
@@ -229,12 +239,12 @@
"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",
"navigation_bar.mutes": "Utilizatori piattati",
- "navigation_bar.personal": "Personal",
+ "navigation_bar.personal": "Persunale",
"navigation_bar.pins": "Statuti puntarulati",
"navigation_bar.preferences": "Preferenze",
"navigation_bar.public_timeline": "Linea pubblica glubale",
@@ -242,6 +252,7 @@
"notification.favourite": "{name} hà aghjuntu u vostru statutu à i so favuriti",
"notification.follow": "{name} v'hà seguitatu",
"notification.mention": "{name} v'hà mintuvatu",
+ "notification.poll": "Un scandagliu induve avete vutatu hè finitu",
"notification.reblog": "{name} hà spartutu u vostru statutu",
"notifications.clear": "Purgà e nutificazione",
"notifications.clear_confirmation": "Site sicuru·a che vulete toglie tutte ste nutificazione?",
@@ -252,6 +263,7 @@
"notifications.column_settings.filter_bar.show": "Mustrà",
"notifications.column_settings.follow": "Abbunati novi:",
"notifications.column_settings.mention": "Minzione:",
+ "notifications.column_settings.poll": "Risultati:",
"notifications.column_settings.push": "Nutificazione Push",
"notifications.column_settings.reblog": "Spartere:",
"notifications.column_settings.show": "Mustrà indè a colonna",
@@ -261,7 +273,14 @@
"notifications.filter.favourites": "Favuriti",
"notifications.filter.follows": "Abbunamenti",
"notifications.filter.mentions": "Minzione",
+ "notifications.filter.polls": "Risultati di u scandagliu",
"notifications.group": "{count} nutificazione",
+ "poll.closed": "Chjosu",
+ "poll.refresh": "Attualizà",
+ "poll.total_votes": "{count, plural, one {# votu} other {# voti}}",
+ "poll.vote": "Vutà",
+ "poll_button.add_poll": "Aghjustà un scandagliu",
+ "poll_button.remove_poll": "Toglie u scandagliu",
"privacy.change": "Mudificà a cunfidenzialità di u statutu",
"privacy.direct.long": "Mandà solu à quelli chì so mintuvati",
"privacy.direct.short": "Direttu",
@@ -281,7 +300,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",
@@ -296,12 +315,12 @@
"search_results.hashtags": "Hashtag",
"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}",
@@ -344,10 +363,17 @@
"tabs_bar.local_timeline": "Lucale",
"tabs_bar.notifications": "Nutificazione",
"tabs_bar.search": "Cercà",
+ "time_remaining.days": "{number, plural, one {# ghjornu ferma} other {# ghjorni fermanu}}",
+ "time_remaining.hours": "{number, plural, one {# ora ferma} other {# ore fermanu}}",
+ "time_remaining.minutes": "{number, plural, one {# minuta ferma} other {# minute fermanu}} left",
+ "time_remaining.moments": "Ci fermanu qualchi mumentu",
+ "time_remaining.seconds": "{number, plural, one {# siconda ferma} other {# siconde fermanu}}",
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} parlanu",
"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_error.poll": "Ùn si pò micca caricà fugliali cù i scandagli.",
"upload_form.description": "Discrive per i malvistosi",
"upload_form.focus": "Cambià a vista",
"upload_form.undo": "Sguassà",
diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json
index e5e86f052..f5618916c 100644
--- a/app/javascript/mastodon/locales/cs.json
+++ b/app/javascript/mastodon/locales/cs.json
@@ -4,13 +4,12 @@
"account.block": "Zablokovat uživatele @{name}",
"account.block_domain": "Skrýt vše z {domain}",
"account.blocked": "Blokován/a",
- "account.direct": "Přímá zpráva pro uživatele @{name}",
- "account.disclaimer_full": "Níže uvedené informace nemusejí zcela odrážet profil uživatele.",
+ "account.direct": "Poslat přímou zprávu uživateli @{name}",
"account.domain_blocked": "Doména skryta",
"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": "Sledovaní",
"account.follows.empty": "Tento uživatel ještě nikoho nesleduje.",
@@ -21,22 +20,21 @@
"account.media": "Média",
"account.mention": "Zmínit uživatele @{name}",
"account.moved_to": "{name} se přesunul/a na:",
- "account.mute": "Ignorovat uživatele @{name}",
+ "account.mute": "Skrýt uživatele @{name}",
"account.mute_notifications": "Skrýt oznámení od uživatele @{name}",
- "account.muted": "Ztišen/a",
+ "account.muted": "Skryt/a",
"account.posts": "Tooty",
"account.posts_with_replies": "Tooty a odpovědi",
"account.report": "Nahlásit uživatele @{name}",
- "account.requested": "Požadavek čeká na schválení. Kliknutím zrušíte požadavek o sledování",
+ "account.requested": "Čekám na schválení. Kliknutím zrušíte požadavek o sledování",
"account.share": "Sdílet profil uživatele @{name}",
"account.show_reblogs": "Zobrazit boosty od uživatele @{name}",
"account.unblock": "Odblokovat uživatele @{name}",
"account.unblock_domain": "Odkrýt doménu {domain}",
"account.unendorse": "Nepředstavit na profilu",
"account.unfollow": "Přestat sledovat",
- "account.unmute": "Přestat ignorovat uživatele @{name}",
- "account.unmute_notifications": "Odtišit oznámení od uživatele @{name}",
- "account.view_full_profile": "Zobrazit celý profil",
+ "account.unmute": "Odkrýt uživatele @{name}",
+ "account.unmute_notifications": "Odkrýt oznámení od uživatele @{name}",
"alert.unexpected.message": "Objevila se neočekávaná chyba.",
"alert.unexpected.title": "Jejda!",
"boost_modal.combo": "Příště můžete pro přeskočení kliknout na {combo}",
@@ -54,14 +52,14 @@
"column.follow_requests": "Požadavky o sledování",
"column.home": "Domů",
"column.lists": "Seznamy",
- "column.mutes": "Ignorovaní uživatelé",
+ "column.mutes": "Skrytí uživatelé",
"column.notifications": "Oznámení",
"column.pins": "Připnuté tooty",
"column.public": "Federovaná časová osa",
"column_back_button.label": "Zpět",
"column_header.hide_settings": "Skrýt nastavení",
- "column_header.moveLeft_settings": "Přesunout sloupec doleva",
- "column_header.moveRight_settings": "Přesunout sloupec doprava",
+ "column_header.moveLeft_settings": "Posunout sloupec doleva",
+ "column_header.moveRight_settings": "Posunout sloupec doprava",
"column_header.pin": "Připnout",
"column_header.show_settings": "Zobrazit nastavení",
"column_header.unpin": "Odepnout",
@@ -70,34 +68,39 @@
"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.placeholder": "Co máte na mysli?",
+ "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 se vám honí hlavou?",
+ "compose_form.poll.add_option": "Přidat volbu",
+ "compose_form.poll.duration": "Délka ankety",
+ "compose_form.poll.option_placeholder": "Volba {number}",
+ "compose_form.poll.remove_option": "Odstranit tuto volbu",
"compose_form.publish": "Tootnout",
"compose_form.publish_loud": "{publish}!",
- "compose_form.sensitive.marked": "Mediální obsah je označen jako citlivý",
- "compose_form.sensitive.unmarked": "Mediální obsah není označen jako citlivý",
+ "compose_form.sensitive.marked": "Média jsou označena jako citlivá",
+ "compose_form.sensitive.unmarked": "Média nejsou označena jako citlivá",
"compose_form.spoiler.marked": "Text je skrytý za varováním",
"compose_form.spoiler.unmarked": "Text není skrytý",
"compose_form.spoiler_placeholder": "Sem napište vaše varování",
"confirmation_modal.cancel": "Zrušit",
+ "confirmations.block.block_and_report": "Blokovat a nahlásit",
"confirmations.block.confirm": "Blokovat",
"confirmations.block.message": "Jste si jistý/á, že chcete zablokovat uživatele {name}?",
"confirmations.delete.confirm": "Smazat",
- "confirmations.delete.message": "Jste si jistý/á, že chcete smazat tento příspěvek?",
+ "confirmations.delete.message": "Jste si jistý/á, že chcete smazat tento toot?",
"confirmations.delete_list.confirm": "Smazat",
- "confirmations.delete_list.message": "Jste si jistý/á, že chcete tento seznam navždy vymazat?",
+ "confirmations.delete_list.message": "Jste si jistý/á, že chcete tento seznam navždy smazat?",
"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.mute.confirm": "Ignorovat",
- "confirmations.mute.message": "Jste si jistý/á, že chcete ignorovat uživatele {name}?",
- "confirmations.redraft.confirm": "Vymazat a přepsat",
- "confirmations.redraft.message": "Jste si jistý/á, že chcete vymazat a přepsat tento příspěvek? Oblíbení a boosty budou ztraceny a odpovědi na původní příspěvek budou opuštěny.",
+ "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 skrýt 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": "Skrýt",
+ "confirmations.mute.message": "Jste si jistý/á, že chcete skrýt uživatele {name}?",
+ "confirmations.redraft.confirm": "Smazat a přepsat",
+ "confirmations.redraft.message": "Jste si jistý/á, že chcete smazat a přepsat tento toot? Oblíbení a boosty budou ztraceny a odpovědi na původní příspěvek budou opuštěny.",
"confirmations.reply.confirm": "Odpovědět",
"confirmations.reply.message": "Odpovězením nyní přepíšete zprávu, kterou aktuálně píšete. Jste si jistý/á, že chcete pokračovat?",
"confirmations.unfollow.confirm": "Přestat sledovat",
"confirmations.unfollow.message": "jste si jistý/á, že chcete přestat sledovat uživatele {name}?",
- "embed.instructions": "Pro přidání příspěvku na vaši webovou stránku zkopírujte níže uvedený kód.",
+ "embed.instructions": "Pro přidání tootu na vaši webovou stránku zkopírujte níže uvedený kód.",
"embed.preview": "Takhle to bude vypadat:",
"emoji_button.activity": "Aktivita",
"emoji_button.custom": "Vlastní",
@@ -105,15 +108,16 @@
"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é",
- "emoji_button.search": "Hledat...",
+ "emoji_button.recent": "Často používaná",
+ "emoji_button.search": "Hledat…",
"emoji_button.search_results": "Výsledky hledání",
"emoji_button.symbols": "Symboly",
"emoji_button.travel": "Cestování a místa",
"empty_column.account_timeline": "Tady nejsou žádné tooty!",
+ "empty_column.account_unavailable": "Profil nedostupný",
"empty_column.blocks": "Ještě jste nezablokoval/a žádného uživatele.",
"empty_column.community": "Místní časová osa je prázdná. Napište něco veřejně a rozhýbejte to tu!",
"empty_column.direct": "Ještě nemáte žádné přímé zprávy. Pokud nějakou pošlete nebo dostanete, zobrazí se zde.",
@@ -124,11 +128,11 @@
"empty_column.hashtag": "Pod tímto hashtagem ještě nic není.",
"empty_column.home": "Vaše domovská časová osa je prázdná! Začněte navštívením {public} nebo použijte hledání a seznamte se s dalšími uživateli.",
"empty_column.home.public_timeline": "veřejné časové osy",
- "empty_column.list": "V tomto seznamu ještě nic není. Pokud budou členové tohoto seznamu psát nové příspěvky, objeví se zde.",
+ "empty_column.list": "V tomto seznamu ještě nic není. Pokud budou členové tohoto seznamu psát nové tooty, objeví se zde.",
"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.mutes": "Ještě jste neskryl/a žá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",
"federation.change": "Adjust status federation",
"federation.federated.long": "Allow toot to reach other instances",
"federation.federated.short": "Federated",
@@ -147,6 +151,8 @@
"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": "Žádné návrhy nenalezeny",
+ "hashtag.column_settings.select.placeholder": "Zadejte hashtagy…",
"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",
@@ -154,42 +160,45 @@
"home.column_settings.basic": "Základní",
"home.column_settings.show_reblogs": "Zobrazit boosty",
"home.column_settings.show_replies": "Zobrazit odpovědi",
+ "intervals.full.days": "{number, plural, one {# den} few {# dny} many {# dne} other {# dní}}",
+ "intervals.full.hours": "{number, plural, one {# hodina} few {# hodiny} many {# hodiny} other {# hodin}}",
+ "intervals.full.minutes": "{number, plural, one {# minuta} few {# minuty} many {# minuty} other {# minut}}",
"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.federated.text": "Veřejné příspěvky z jiných serverů ve fedivesmíru 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.federation.local.text": "Veřejné příspěvky od lidí ze stejného serveru jako vy se zobrazí na místní časové ose.",
"introduction.interactions.action": "Dokončit tutoriál!",
"introduction.interactions.favourite.headline": "Oblíbení",
"introduction.interactions.favourite.text": "Oblíbením si můžete uložit toot na později a dát jeho autorovi vědět, že se vám líbí.",
"introduction.interactions.reblog.headline": "Boost",
- "introduction.interactions.reblog.text": "Boostnutím můžete sdílet tooty jiných lidí s vašimi sledovately.",
+ "introduction.interactions.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.",
+ "introduction.welcome.text": "Vítejte ve fedivesmíru! 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í",
- "keyboard_shortcuts.column": "k zaměření na příspěvek v jednom ze sloupců",
+ "keyboard_shortcuts.column": "k zaměření na toot v jednom ze sloupců",
"keyboard_shortcuts.compose": "k zaměření na psací prostor",
"keyboard_shortcuts.description": "Popis",
"keyboard_shortcuts.direct": "k otevření sloupce s přímými zprávami",
"keyboard_shortcuts.down": "k posunutí dolů v seznamu",
- "keyboard_shortcuts.enter": "k otevření příspěvku",
+ "keyboard_shortcuts.enter": "k otevření tootu",
"keyboard_shortcuts.favourite": "k oblíbení",
"keyboard_shortcuts.favourites": "k otevření seznamu oblíbených",
"keyboard_shortcuts.federated": "k otevření federované časové osy",
"keyboard_shortcuts.heading": "Klávesové zkratky",
"keyboard_shortcuts.home": "k otevření domovské časové osy",
- "keyboard_shortcuts.hotkey": "Horká klávesa",
+ "keyboard_shortcuts.hotkey": "Klávesová zkratka",
"keyboard_shortcuts.legend": "k zobrazení této legendy",
"keyboard_shortcuts.local": "k otevření místní časové osy",
"keyboard_shortcuts.mention": "ke zmínění autora",
- "keyboard_shortcuts.muted": "k otevření seznamu ignorovaných uživatelů",
+ "keyboard_shortcuts.muted": "k otevření seznamu skrytých uživatelů",
"keyboard_shortcuts.my_profile": "k otevření vašeho profilu",
"keyboard_shortcuts.notifications": "k otevření sloupce s oznámeními",
"keyboard_shortcuts.pinned": "k otevření seznamu připnutých tootů",
@@ -200,7 +209,7 @@
"keyboard_shortcuts.start": "k otevření sloupce „začínáme“",
"keyboard_shortcuts.toggle_hidden": "k zobrazení/skrytí textu za varováním o obsahu",
"keyboard_shortcuts.toot": "k napsání úplně nového tootu",
- "keyboard_shortcuts.unfocus": "ke zrušení soustředění na psací prostor/hledání",
+ "keyboard_shortcuts.unfocus": "ke zrušení zaměření na psací prostor/hledání",
"keyboard_shortcuts.up": "k posunutí nahoru v seznamu",
"lightbox.close": "Zavřít",
"lightbox.next": "Další",
@@ -209,11 +218,12 @@
"lists.account.remove": "Odebrat ze seznamu",
"lists.delete": "Smazat seznam",
"lists.edit": "Upravit seznam",
+ "lists.edit.submit": "Změnit název",
"lists.new.create": "Přidat seznam",
"lists.new.title_placeholder": "Název nového seznamu",
"lists.search": "Hledejte mezi lidmi, které sledujete",
"lists.subheading": "Vaše seznamy",
- "loading_indicator.label": "Načítám...",
+ "loading_indicator.label": "Načítám…",
"media_gallery.toggle_visible": "Přepínat viditelnost",
"missing_indicator.label": "Nenalezeno",
"missing_indicator.sublabel": "Tento zdroj se nepodařilo najít",
@@ -229,29 +239,31 @@
"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.mutes": "Ignorovaní uživatelé",
+ "navigation_bar.logout": "Odhlásit",
+ "navigation_bar.mutes": "Skrytí uživatelé",
"navigation_bar.personal": "Osobní",
"navigation_bar.pins": "Připnuté tooty",
"navigation_bar.preferences": "Předvolby",
"navigation_bar.public_timeline": "Federovaná časová osa",
"navigation_bar.security": "Zabezpečení",
- "notification.favourite": "{name} si oblíbil/a váš příspěvek",
+ "notification.favourite": "{name} si oblíbil/a váš toot",
"notification.follow": "{name} vás začal/a sledovat",
"notification.mention": "{name} vás zmínil/a",
- "notification.reblog": "{name} boostnul/a váš příspěvek",
+ "notification.poll": "Anketa, ve které jste hlasoval/a, skončila",
+ "notification.reblog": "{name} boostnul/a váš toot",
"notifications.clear": "Vymazat oznámení",
"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.favourite": "Oblíbení:",
"notifications.column_settings.filter_bar.advanced": "Zobrazit všechny kategorie",
"notifications.column_settings.filter_bar.category": "Panel rychlého filtrování",
"notifications.column_settings.filter_bar.show": "Zobrazit",
- "notifications.column_settings.follow": "Noví sledovatelé:",
+ "notifications.column_settings.follow": "Noví sledující:",
"notifications.column_settings.mention": "Zmínky:",
+ "notifications.column_settings.poll": "Výsledky anket:",
"notifications.column_settings.push": "Push oznámení",
"notifications.column_settings.reblog": "Boosty:",
"notifications.column_settings.show": "Zobrazit ve sloupci",
@@ -261,12 +273,19 @@
"notifications.filter.favourites": "Oblíbení",
"notifications.filter.follows": "Sledování",
"notifications.filter.mentions": "Zmínky",
+ "notifications.filter.polls": "Výsledky anket",
"notifications.group": "{count} oznámení",
- "privacy.change": "Změnit soukromí příspěvku",
+ "poll.closed": "Uzavřena",
+ "poll.refresh": "Obnovit",
+ "poll.total_votes": "{count, plural, one {# hlas} few {# hlasy} many {# hlasu} other {# hlasů}}",
+ "poll.vote": "Hlasovat",
+ "poll_button.add_poll": "Přidat anketu",
+ "poll_button.remove_poll": "Odstranit anketu",
+ "privacy.change": "Změnit soukromí tootu",
"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",
@@ -281,31 +300,31 @@
"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}",
"search.placeholder": "Hledat",
"search_popout.search_format": "Pokročilé hledání",
- "search_popout.tips.full_text": "Jednoduchý textový výpis příspěvků, které jste napsal/a, oblíbil/a si, boostnul/a, nebo v nich byl/a zmíněn/a, včetně odpovídajících přezdívek, zobrazovaných jmen a hashtagů.",
+ "search_popout.tips.full_text": "Jednoduchý text navrátí tooty, které jste napsal/a, oblíbil/a si, boostnul/a, nebo v nich byl/a zmíněn/a, a také odpovídající přezdívky, zobrazovaná jména a hashtagy.",
"search_popout.tips.hashtag": "hashtag",
- "search_popout.tips.status": "příspěvek",
- "search_popout.tips.text": "Jednoduchý textový výpis odpovídajících zobrazovaných jmen, přezdívek a hashtagů",
+ "search_popout.tips.status": "toot",
+ "search_popout.tips.text": "Jednoduchý text navrátí odpovídající zobrazovaná jména, přezdívky a hashtagy",
"search_popout.tips.user": "uživatel",
"search_results.accounts": "Lidé",
"search_results.hashtags": "Hashtagy",
"search_results.statuses": "Tooty",
"search_results.total": "{count, number} {count, plural, one {výsledek} 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.admin_account": "Otevřít moderátorské rozhraní pro uživatele @{name}",
+ "status.admin_status": "Otevřít tento toot v moderátorské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 tootu",
"status.delete": "Smazat",
"status.detailed_status": "Detailní zobrazení konverzace",
"status.direct": "Poslat přímou zprávu uživateli @{name}",
- "status.embed": "Vložit",
+ "status.embed": "Vložit na web",
"status.favourite": "Oblíbit",
"status.filtered": "Filtrováno",
"status.load_more": "Zobrazit více",
@@ -313,9 +332,9 @@
"status.media_hidden": "Média skryta",
"status.mention": "Zmínit uživatele @{name}",
"status.more": "Více",
- "status.mute": "Ignorovat uživatele @{name}",
- "status.mute_conversation": "Ignorovat konverzaci",
- "status.open": "Rozbalit tento příspěvek",
+ "status.mute": "Skrýt uživatele @{name}",
+ "status.mute_conversation": "Skrýt konverzaci",
+ "status.open": "Otevřít tento toot",
"status.pin": "Připnout na profil",
"status.pinned": "Připnutý toot",
"status.read_more": "Číst více",
@@ -323,7 +342,7 @@
"status.reblog_private": "Boostnout původnímu publiku",
"status.reblogged_by": "{name} boostnul/a",
"status.reblogs.empty": "Tento toot ještě nikdo neboostnul. Pokud to někdo udělá, zobrazí se zde.",
- "status.redraft": "Vymazat a přepsat",
+ "status.redraft": "Smazat a přepsat",
"status.reply": "Odpovědět",
"status.replyAll": "Odpovědět na vlákno",
"status.report": "Nahlásit uživatele @{name}",
@@ -335,23 +354,30 @@
"status.show_more": "Zobrazit více",
"status.show_more_all": "Zobrazit více pro všechny",
"status.show_thread": "Zobrazit vlákno",
- "status.unmute_conversation": "Přestat ignorovat konverzaci",
+ "status.unmute_conversation": "Odkrýt konverzaci",
"status.unpin": "Odepnout z profilu",
"suggestions.dismiss": "Odmítnout návrh",
- "suggestions.header": "Mohlo by vás zajímat…",
+ "suggestions.header": "Mohli by vás zajímat…",
"tabs_bar.federated_timeline": "Federovaná",
"tabs_bar.home": "Domů",
"tabs_bar.local_timeline": "Místní",
"tabs_bar.notifications": "Oznámení",
"tabs_bar.search": "Hledat",
+ "time_remaining.days": "{number, plural, one {Zbývá # den} few {Zbývají # dny} many {Zbývá # dne} other {Zbývá # dní}}",
+ "time_remaining.hours": "{number, plural, one {Zbývá # hodina} few {Zbývají # hodiny} many {Zbývá # hodiny} other {Zbývá # hodin}}",
+ "time_remaining.minutes": "{number, plural, one {Zbývá # minuta} few {Zbývají # minuty} many {Zbývá # minuty} other {Zbývá # minut}}",
+ "time_remaining.moments": "Zbývá několik sekund",
+ "time_remaining.seconds": "{number, plural, one {Zbývá # sekunda} few {Zbývají # sekundy} many {Zbývá # sekundy} other {Zbývá # sekund}}",
"trends.count_by_accounts": "{count} {rawCount, plural, one {člověk} few {lidé} many {lidí} other {lidí}} hovoří",
"ui.beforeunload": "Váš koncept se ztratí, pokud Mastodon opustíte.",
"upload_area.title": "Přetažením nahrajete",
"upload_button.label": "Přidat média (JPEG, PNG, GIF, WebM, MP4, MOV)",
+ "upload_error.limit": "Byl překročen limit nahraných souborů.",
+ "upload_error.poll": "Nahrávání souborů není povoleno u anket.",
"upload_form.description": "Popis pro zrakově postižené",
"upload_form.focus": "Změnit náhled",
"upload_form.undo": "Smazat",
- "upload_progress.label": "Nahrávám...",
+ "upload_progress.label": "Nahrávám…",
"video.close": "Zavřít video",
"video.exit_fullscreen": "Ukončit celou obrazovku",
"video.expand": "Otevřít video",
diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json
index caa037d57..47a147799 100644
--- a/app/javascript/mastodon/locales/cy.json
+++ b/app/javascript/mastodon/locales/cy.json
@@ -1,11 +1,10 @@
{
- "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}",
"account.blocked": "Blociwyd",
"account.direct": "Neges breifat @{name}",
- "account.disclaimer_full": "Gall y wybodaeth isod adlewyrchu darlun anghyflawn o broffil defnyddiwr.",
"account.domain_blocked": "Parth wedi ei guddio",
"account.edit_profile": "Golygu proffil",
"account.endorse": "Arddangos ar fy mhroffil",
@@ -17,7 +16,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:",
@@ -36,7 +35,6 @@
"account.unfollow": "Dad-ddilyn",
"account.unmute": "Dad-dawelu @{name}",
"account.unmute_notifications": "Dad-dawelu hysbysiadau o @{name}",
- "account.view_full_profile": "Gweld proffil llawn",
"alert.unexpected.message": "Digwyddodd gwall annisgwyl.",
"alert.unexpected.title": "Wps!",
"boost_modal.combo": "Mae modd gwasgu {combo} er mwyn sgipio hyn tro nesa",
@@ -73,6 +71,10 @@
"compose_form.lock_disclaimer": "Nid yw eich cyfri wedi'i {locked}. Gall unrhyw un eich dilyn i weld eich tŵtiau dilynwyr-yn-unig.",
"compose_form.lock_disclaimer.lock": "wedi ei gloi",
"compose_form.placeholder": "Beth sydd ar eich meddwl?",
+ "compose_form.poll.add_option": "Add a choice",
+ "compose_form.poll.duration": "Poll duration",
+ "compose_form.poll.option_placeholder": "Choice {number}",
+ "compose_form.poll.remove_option": "Remove this choice",
"compose_form.publish": "Tŵt",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "Cyfryngau wedi'u marcio'n sensitif",
@@ -81,6 +83,7 @@
"compose_form.spoiler.unmarked": "Nid yw'r testun wedi ei guddio",
"compose_form.spoiler_placeholder": "Ysgrifenwch eich rhybudd yma",
"confirmation_modal.cancel": "Canslo",
+ "confirmations.block.block_and_report": "Block & Report",
"confirmations.block.confirm": "Blocio",
"confirmations.block.message": "Ydych chi'n sicr eich bod eisiau blocio {name}?",
"confirmations.delete.confirm": "Dileu",
@@ -114,6 +117,7 @@
"emoji_button.symbols": "Symbolau",
"emoji_button.travel": "Teithio & Llefydd",
"empty_column.account_timeline": "No toots here!",
+ "empty_column.account_unavailable": "Profile unavailable",
"empty_column.blocks": "Nid ydych wedi blocio unrhyw ddefnyddwyr eto.",
"empty_column.community": "Mae'r ffrwd lleol yn wag. Ysgrifenwch rhywbeth yn gyhoeddus i gael dechrau arni!",
"empty_column.direct": "Nid oes gennych unrhyw negeseuon preifat eto. Pan y byddwch yn anfon neu derbyn un, mi fydd yn ymddangos yma.",
@@ -137,7 +141,7 @@
"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",
@@ -147,6 +151,8 @@
"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",
@@ -154,6 +160,9 @@
"home.column_settings.basic": "Syml",
"home.column_settings.show_reblogs": "Dangos bŵstiau",
"home.column_settings.show_replies": "Dangos ymatebion",
+ "intervals.full.days": "{number, plural, one {# day} other {# days}}",
+ "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
+ "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
"introduction.federation.action": "Nesaf",
"introduction.federation.federated.headline": "Ffederasiwn",
"introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
@@ -161,15 +170,15 @@
"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.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": "Hwb",
"introduction.interactions.reblog.text": "You can share other people's toots with your followers by boosting them.",
"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",
@@ -209,6 +218,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",
@@ -242,16 +252,18 @@
"notification.favourite": "hoffodd {name} eich tŵt",
"notification.follow": "dilynodd {name} chi",
"notification.mention": "Soniodd {name} amdanoch chi",
+ "notification.poll": "A poll you have voted in has ended",
"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.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.poll": "Poll results:",
"notifications.column_settings.push": "Hysbysiadau push",
"notifications.column_settings.reblog": "Hybiadau:",
"notifications.column_settings.show": "Dangos yn y golofn",
@@ -260,8 +272,15 @@
"notifications.filter.boosts": "Hybiadau",
"notifications.filter.favourites": "Ffefrynnau",
"notifications.filter.follows": "Yn dilyn",
- "notifications.filter.mentions": "Mentions",
+ "notifications.filter.mentions": "Crybwylliadau",
+ "notifications.filter.polls": "Poll results",
"notifications.group": "{count} o hysbysiadau",
+ "poll.closed": "Closed",
+ "poll.refresh": "Refresh",
+ "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
+ "poll.vote": "Vote",
+ "poll_button.add_poll": "Add a poll",
+ "poll_button.remove_poll": "Remove poll",
"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",
@@ -295,13 +314,13 @@
"search_results.accounts": "Pobl",
"search_results.hashtags": "Hanshnodau",
"search_results.statuses": "Tŵtiau",
- "search_results.total": "{count, number} {count, plural, one {result} other {results}}",
- "standalone.public_title": "Golwg tu fewn...",
+ "search_results.total": "{count, number} {count, plural, one {result} arall {results}}",
"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}",
@@ -337,17 +356,24 @@
"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…",
+ "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",
"tabs_bar.search": "Chwilio",
+ "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
+ "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
+ "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
+ "time_remaining.moments": "Moments remaining",
+ "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} yn siarad",
"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_error.poll": "File upload not allowed with polls.",
"upload_form.description": "Disgrifio i'r rheini a nam ar ei golwg",
"upload_form.focus": "Newid rhagolwg",
"upload_form.undo": "Dileu",
diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json
index cb3b4c37f..e7317666c 100644
--- a/app/javascript/mastodon/locales/da.json
+++ b/app/javascript/mastodon/locales/da.json
@@ -5,7 +5,6 @@
"account.block_domain": "Skjul alt fra {domain}",
"account.blocked": "Blokeret",
"account.direct": "Send en direkte besked til @{name}",
- "account.disclaimer_full": "Nedenstående oplysninger reflekterer ikke nødvendigvis brugerens profil fuldstændigt.",
"account.domain_blocked": "Domænet er blevet skjult",
"account.edit_profile": "Rediger profil",
"account.endorse": "Fremhæv på profil",
@@ -36,7 +35,6 @@
"account.unfollow": "Følg ikke længere",
"account.unmute": "Fjern dæmpningen af @{name}",
"account.unmute_notifications": "Fjern dæmpningen af notifikationer fra @{name}",
- "account.view_full_profile": "Se fuld profil",
"alert.unexpected.message": "Der opstod en uventet fejl.",
"alert.unexpected.title": "Ups!",
"boost_modal.combo": "Du kan trykke {combo} for at springe dette over næste gang",
@@ -73,6 +71,10 @@
"compose_form.lock_disclaimer": "Din konto er ikke {locked}. Alle kan følge dig for at se dine følger-kun indlæg.",
"compose_form.lock_disclaimer.lock": "låst",
"compose_form.placeholder": "Hvad har du på hjertet?",
+ "compose_form.poll.add_option": "Add a choice",
+ "compose_form.poll.duration": "Poll duration",
+ "compose_form.poll.option_placeholder": "Choice {number}",
+ "compose_form.poll.remove_option": "Remove this choice",
"compose_form.publish": "Trut",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "Medie er markeret som værende følsomt",
@@ -81,6 +83,7 @@
"compose_form.spoiler.unmarked": "Teksten er ikke skjult",
"compose_form.spoiler_placeholder": "Skriv din advarsel her",
"confirmation_modal.cancel": "Annuller",
+ "confirmations.block.block_and_report": "Block & Report",
"confirmations.block.confirm": "Bloker",
"confirmations.block.message": "Er du sikker på, du vil blokere {name}?",
"confirmations.delete.confirm": "Slet",
@@ -113,7 +116,8 @@
"emoji_button.search_results": "Søgeresultater",
"emoji_button.symbols": "Symboler",
"emoji_button.travel": "Rejser & steder",
- "empty_column.account_timeline": "No toots here!",
+ "empty_column.account_timeline": "Ingen bidrag her!",
+ "empty_column.account_unavailable": "Profile unavailable",
"empty_column.blocks": "Du har ikke blokeret nogen endnu.",
"empty_column.community": "Den lokale tidslinje er tom. Skriv noget offentligt for at starte lavinen!",
"empty_column.direct": "Du har endnu ingen direkte beskeder. Når du sender eller modtager en, vil den vises her.",
@@ -128,7 +132,7 @@
"empty_column.lists": "Du har endnu ingen lister. Når du opretter en, vil den blive vist her.",
"empty_column.mutes": "Du har endnu ikke dæmpet nogen som helst bruger.",
"empty_column.notifications": "Du har endnu ingen notifikationer. Tag ud og bland dig med folkemængden for at starte samtalen.",
- "empty_column.public": "Der er ikke noget at se her! Skriv noget offentligt eller start ud med manuelt at følge brugere fra andre instanser for st udfylde tomrummet",
+ "empty_column.public": "Der er ikke noget at se her! Skriv noget offentligt eller start ud med manuelt at følge brugere fra andre server for at udfylde tomrummet",
"federation.change": "Adjust status federation",
"federation.federated.long": "Allow toot to reach other instances",
"federation.federated.short": "Federated",
@@ -144,9 +148,11 @@
"getting_started.open_source_notice": "Mastodon er et open source software. Du kan bidrage eller rapporterer fejl på GitHub {github}.",
"getting_started.security": "Sikkerhed",
"getting_started.terms": "Vilkår",
- "hashtag.column_header.tag_mode.all": "and {additional}",
- "hashtag.column_header.tag_mode.any": "or {additional}",
- "hashtag.column_header.tag_mode.none": "without {additional}",
+ "hashtag.column_header.tag_mode.all": "og {additional}",
+ "hashtag.column_header.tag_mode.any": "eller {additional}",
+ "hashtag.column_header.tag_mode.none": "uden {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",
@@ -154,22 +160,25 @@
"home.column_settings.basic": "Grundlæggende",
"home.column_settings.show_reblogs": "Vis fremhævelser",
"home.column_settings.show_replies": "Vis svar",
+ "intervals.full.days": "{number, plural, one {# day} other {# days}}",
+ "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
+ "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
"introduction.federation.action": "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.federated.text": "Offentlige bidrag fra andre servere af fediversen vil komme til syne i den 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": "Slut tutorial!",
+ "introduction.interactions.favourite.headline": "Favorisere",
"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.interactions.reply.headline": "Svar",
+ "introduction.interactions.reply.text": "Du kan svare andres og din egen bidrag, hvilke vil kæde dem sammen i en konversation.",
+ "introduction.welcome.action": "Læd os gå!",
+ "introduction.welcome.headline": "Første skridt",
"introduction.welcome.text": "Welcome to the fediverse! In a few moments, you'll be able to broadcast messages and talk to your friends across a wide variety of servers. But this server, {domain}, is special—it hosts your profile, so remember its name.",
"keyboard_shortcuts.back": "for at navigere dig tilbage",
"keyboard_shortcuts.blocked": "for at åbne listen over blokerede brugere",
@@ -209,6 +218,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",
@@ -242,6 +252,7 @@
"notification.favourite": "{name} favoriserede din status",
"notification.follow": "{name} fulgte dig",
"notification.mention": "{name} nævnte dig",
+ "notification.poll": "A poll you have voted in has ended",
"notification.reblog": "{name} fremhævede din status",
"notifications.clear": "Ryd notifikationer",
"notifications.clear_confirmation": "Er du sikker på, du vil rydde alle dine notifikationer permanent?",
@@ -252,6 +263,7 @@
"notifications.column_settings.filter_bar.show": "Show",
"notifications.column_settings.follow": "Nye følgere:",
"notifications.column_settings.mention": "Omtale:",
+ "notifications.column_settings.poll": "Poll results:",
"notifications.column_settings.push": "Push notifikationer",
"notifications.column_settings.reblog": "Fremhævelser:",
"notifications.column_settings.show": "Vis i kolonne",
@@ -261,7 +273,14 @@
"notifications.filter.favourites": "Favoritter",
"notifications.filter.follows": "Følger",
"notifications.filter.mentions": "Mentions",
+ "notifications.filter.polls": "Poll results",
"notifications.group": "{count} notifikationer",
+ "poll.closed": "Closed",
+ "poll.refresh": "Refresh",
+ "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
+ "poll.vote": "Vote",
+ "poll_button.add_poll": "Add a poll",
+ "poll_button.remove_poll": "Remove poll",
"privacy.change": "Ændre status privatliv",
"privacy.direct.long": "Post til kun de nævnte brugere",
"privacy.direct.short": "Direkte",
@@ -296,12 +315,12 @@
"search_results.hashtags": "Emnetags",
"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}",
@@ -344,10 +363,17 @@
"tabs_bar.local_timeline": "Lokal",
"tabs_bar.notifications": "Notifikationer",
"tabs_bar.search": "Søg",
+ "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
+ "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
+ "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
+ "time_remaining.moments": "Moments remaining",
+ "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} snakker",
"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_error.poll": "File upload not allowed with polls.",
"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 7e5a3b559..b7ec6293b 100644
--- a/app/javascript/mastodon/locales/de.json
+++ b/app/javascript/mastodon/locales/de.json
@@ -5,7 +5,6 @@
"account.block_domain": "Alles von {domain} verstecken",
"account.blocked": "Blockiert",
"account.direct": "Direktnachricht an @{name}",
- "account.disclaimer_full": "Das Profil wird möglicherweise unvollständig wiedergegeben.",
"account.domain_blocked": "Domain versteckt",
"account.edit_profile": "Profil bearbeiten",
"account.endorse": "Auf Profil hervorheben",
@@ -36,7 +35,6 @@
"account.unfollow": "Entfolgen",
"account.unmute": "@{name} nicht mehr stummschalten",
"account.unmute_notifications": "Benachrichtigungen von @{name} einschalten",
- "account.view_full_profile": "Vollständiges Profil anzeigen",
"alert.unexpected.message": "Ein unerwarteter Fehler ist aufgetreten.",
"alert.unexpected.title": "Hoppla!",
"boost_modal.combo": "Du kannst {combo} drücken, um dies beim nächsten Mal zu überspringen",
@@ -73,6 +71,10 @@
"compose_form.lock_disclaimer": "Dein Profil ist nicht {locked}. Wer dir folgen will, kann das jederzeit tun und dann auch deine privaten Beiträge sehen.",
"compose_form.lock_disclaimer.lock": "gesperrt",
"compose_form.placeholder": "Was gibt's Neues?",
+ "compose_form.poll.add_option": "Eine Auswahl hinzufügen",
+ "compose_form.poll.duration": "Umfragedauer",
+ "compose_form.poll.option_placeholder": "Auswahl {number}",
+ "compose_form.poll.remove_option": "Auswahl entfernen",
"compose_form.publish": "Tröt",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "Medien sind als heikel markiert",
@@ -81,6 +83,7 @@
"compose_form.spoiler.unmarked": "Text ist nicht versteckt",
"compose_form.spoiler_placeholder": "Inhaltswarnung",
"confirmation_modal.cancel": "Abbrechen",
+ "confirmations.block.block_and_report": "Block & Report",
"confirmations.block.confirm": "Blockieren",
"confirmations.block.message": "Bist du dir sicher, dass du {name} blockieren möchtest?",
"confirmations.delete.confirm": "Löschen",
@@ -114,6 +117,7 @@
"emoji_button.symbols": "Symbole",
"emoji_button.travel": "Reisen und Orte",
"empty_column.account_timeline": "Keine Beiträge!",
+ "empty_column.account_unavailable": "Konto nicht verfügbar",
"empty_column.blocks": "Du hast keine Profile blockiert.",
"empty_column.community": "Die lokale Zeitleiste ist leer. Schreibe einen öffentlichen Beitrag, um den Ball ins Rollen zu bringen!",
"empty_column.direct": "Du hast noch keine Direktnachrichten erhalten. Wenn du eine sendest oder empfängst, wird sie hier zu sehen sein.",
@@ -128,7 +132,7 @@
"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",
"federation.change": "Adjust status federation",
"federation.federated.long": "Allow toot to reach other instances",
"federation.federated.short": "Federated",
@@ -147,28 +151,33 @@
"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": "Keine Vorschläge gefunden",
+ "hashtag.column_settings.select.placeholder": "Hashtags eintragen…",
"hashtag.column_settings.tag_mode.all": "All diese",
"hashtag.column_settings.tag_mode.any": "Eine von diesen",
"hashtag.column_settings.tag_mode.none": "Keine von diesen",
- "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
+ "hashtag.column_settings.tag_toggle": "Zusätzliche Tags für diese Spalte einfügen",
"home.column_settings.basic": "Einfach",
"home.column_settings.show_reblogs": "Geteilte Beiträge anzeigen",
"home.column_settings.show_replies": "Antworten anzeigen",
+ "intervals.full.days": "{number, plural, one {# Tag} other {# Tage}}",
+ "intervals.full.hours": "{number, plural, one {# Stunde} other {# Stunden}}",
+ "intervals.full.minutes": "{number, plural, one {# Minute} other {# Minuten}}",
"introduction.federation.action": "Weiter",
- "introduction.federation.federated.headline": "Federated",
- "introduction.federation.federated.text": "Öffentliche Beiträge von anderen Servern im Fediverse werden in der föderierten Zeitleiste erscheinen.",
+ "introduction.federation.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": "Beiträge von Leuten, denen du folgst werden in deiner Startseite erscheinen. Du kannst jedem auf irgendeinen Server folgen!",
- "introduction.federation.local.headline": "Local",
- "introduction.federation.local.text": "Öffentliche Beiträge von Leuten auf demselben Server wie du werden in der lokalen Zeitleiste erscheinen.",
+ "introduction.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 einen Beitrag für später speichern und dem Autor wissen lassen, dass du ihn magst, indem du ihn favorisierst.",
+ "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 von anderen Leuten an deine Follower 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 von anderen Leuten antworten und die Beiträge werden dann in eine Konversation zusammengebunden.",
- "introduction.welcome.action": "Lasst uns loslegen!",
+ "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",
@@ -209,6 +218,7 @@
"lists.account.remove": "Von der Liste entfernen",
"lists.delete": "Delete list",
"lists.edit": "Liste bearbeiten",
+ "lists.edit.submit": "Titel ändern",
"lists.new.create": "Liste hinzufügen",
"lists.new.title_placeholder": "Neuer Titel der Liste",
"lists.search": "Suche nach Leuten denen du folgst",
@@ -229,7 +239,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,6 +252,7 @@
"notification.favourite": "{name} hat deinen Beitrag favorisiert",
"notification.follow": "{name} folgt dir",
"notification.mention": "{name} hat dich erwähnt",
+ "notification.poll": "Eine Umfrage in der du abgestimmt hast ist vorbei",
"notification.reblog": "{name} hat deinen Beitrag geteilt",
"notifications.clear": "Mitteilungen löschen",
"notifications.clear_confirmation": "Bist du dir sicher, dass du alle Mitteilungen löschen möchtest?",
@@ -252,6 +263,7 @@
"notifications.column_settings.filter_bar.show": "Anzeigen",
"notifications.column_settings.follow": "Neue Folgende:",
"notifications.column_settings.mention": "Erwähnungen:",
+ "notifications.column_settings.poll": "Ergebnisse der Umfrage:",
"notifications.column_settings.push": "Push-Benachrichtigungen",
"notifications.column_settings.reblog": "Geteilte Beiträge:",
"notifications.column_settings.show": "In der Spalte anzeigen",
@@ -261,7 +273,14 @@
"notifications.filter.favourites": "Favoriten",
"notifications.filter.follows": "Folgende",
"notifications.filter.mentions": "Erwähnungen",
+ "notifications.filter.polls": "Ergebnisse der Umfrage",
"notifications.group": "{count} Benachrichtigungen",
+ "poll.closed": "Geschlossen",
+ "poll.refresh": "Aktualisieren",
+ "poll.total_votes": "{count, plural, one {# Stimme} other {# Stimmen}}",
+ "poll.vote": "Abstimmen",
+ "poll_button.add_poll": "Eine Umfrage erstellen",
+ "poll_button.remove_poll": "Umfrage entfernen",
"privacy.change": "Sichtbarkeit des Beitrags anpassen",
"privacy.direct.long": "Beitrag nur an erwähnte Profile",
"privacy.direct.short": "Direkt",
@@ -281,7 +300,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",
@@ -296,12 +315,12 @@
"search_results.hashtags": "Hashtags",
"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}",
@@ -344,10 +363,17 @@
"tabs_bar.local_timeline": "Lokal",
"tabs_bar.notifications": "Mitteilungen",
"tabs_bar.search": "Suchen",
+ "time_remaining.days": "{number, plural, one {# Tag} other {# Tage}} verbleibend",
+ "time_remaining.hours": "{number, plural, one {# Stunde} other {# Stunden}} verbleibend",
+ "time_remaining.minutes": "{number, plural, one {# Minute} other {# Minuten}} verbleibend",
+ "time_remaining.moments": "Momente verbleibend",
+ "time_remaining.seconds": "{number, plural, one {# Sekunde} other {# Sekunden}} verbleibend",
"trends.count_by_accounts": "{count} {rawCount, plural, eine {Person} other {Personen}} reden darüber",
"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_error.poll": "Dateiuploads sind in Kombination mit Umfragen nicht erlaubt.",
"upload_form.description": "Für Menschen mit Sehbehinderung beschreiben",
"upload_form.focus": "Thumbnail bearbeiten",
"upload_form.undo": "Löschen",
diff --git a/app/javascript/mastodon/locales/defaultMessages.json b/app/javascript/mastodon/locales/defaultMessages.json
index 22aa27866..7b32cac57 100644
--- a/app/javascript/mastodon/locales/defaultMessages.json
+++ b/app/javascript/mastodon/locales/defaultMessages.json
@@ -12,6 +12,19 @@
],
"path": "app/javascript/mastodon/actions/alerts.json"
},
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "File upload limit exceeded.",
+ "id": "upload_error.limit"
+ },
+ {
+ "defaultMessage": "File upload not allowed with polls.",
+ "id": "upload_error.poll"
+ }
+ ],
+ "path": "app/javascript/mastodon/actions/compose.json"
+ },
{
"descriptors": [
{
@@ -188,6 +201,27 @@
],
"path": "app/javascript/mastodon/components/missing_indicator.json"
},
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "Closed",
+ "id": "poll.closed"
+ },
+ {
+ "defaultMessage": "Vote",
+ "id": "poll.vote"
+ },
+ {
+ "defaultMessage": "Refresh",
+ "id": "poll.refresh"
+ },
+ {
+ "defaultMessage": "{count, plural, one {# vote} other {# votes}}",
+ "id": "poll.total_votes"
+ }
+ ],
+ "path": "app/javascript/mastodon/components/poll.json"
+ },
{
"descriptors": [
{
@@ -209,6 +243,26 @@
{
"defaultMessage": "{number}d",
"id": "relative_time.days"
+ },
+ {
+ "defaultMessage": "Moments remaining",
+ "id": "time_remaining.moments"
+ },
+ {
+ "defaultMessage": "{number, plural, one {# second} other {# seconds}} left",
+ "id": "time_remaining.seconds"
+ },
+ {
+ "defaultMessage": "{number, plural, one {# minute} other {# minutes}} left",
+ "id": "time_remaining.minutes"
+ },
+ {
+ "defaultMessage": "{number, plural, one {# hour} other {# hours}} left",
+ "id": "time_remaining.hours"
+ },
+ {
+ "defaultMessage": "{number, plural, one {# day} other {# days}} left",
+ "id": "time_remaining.days"
}
],
"path": "app/javascript/mastodon/components/relative_timestamp.json"
@@ -314,6 +368,10 @@
{
"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"
@@ -425,6 +483,10 @@
"defaultMessage": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
"id": "confirmations.reply.message"
},
+ {
+ "defaultMessage": "Block & Report",
+ "id": "confirmations.block.block_and_report"
+ },
{
"defaultMessage": "Are you sure you want to block {name}?",
"id": "confirmations.block.message"
@@ -472,6 +534,10 @@
"defaultMessage": "Hide entire domain",
"id": "confirmations.domain_block.confirm"
},
+ {
+ "defaultMessage": "Block & Report",
+ "id": "confirmations.block.block_and_report"
+ },
{
"defaultMessage": "Are you sure you want to unfollow {name}?",
"id": "confirmations.unfollow.message"
@@ -489,6 +555,10 @@
},
{
"descriptors": [
+ {
+ "defaultMessage": "Profile unavailable",
+ "id": "empty_column.account_unavailable"
+ },
{
"defaultMessage": "No toots here!",
"id": "empty_column.account_timeline"
@@ -499,24 +569,40 @@
{
"descriptors": [
{
- "defaultMessage": "Mention @{name}",
- "id": "account.mention"
+ "defaultMessage": "Unfollow",
+ "id": "account.unfollow"
},
{
- "defaultMessage": "Direct message @{name}",
- "id": "account.direct"
+ "defaultMessage": "Follow",
+ "id": "account.follow"
},
{
- "defaultMessage": "Edit profile",
- "id": "account.edit_profile"
+ "defaultMessage": "Awaiting approval. Click to cancel follow request",
+ "id": "account.requested"
},
{
"defaultMessage": "Unblock @{name}",
"id": "account.unblock"
},
{
- "defaultMessage": "Unfollow",
- "id": "account.unfollow"
+ "defaultMessage": "Edit profile",
+ "id": "account.edit_profile"
+ },
+ {
+ "defaultMessage": "Ownership of this link was checked on {date}",
+ "id": "account.link_verified_on"
+ },
+ {
+ "defaultMessage": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
+ "id": "account.locked_info"
+ },
+ {
+ "defaultMessage": "Mention @{name}",
+ "id": "account.mention"
+ },
+ {
+ "defaultMessage": "Direct message @{name}",
+ "id": "account.direct"
},
{
"defaultMessage": "Unmute @{name}",
@@ -530,10 +616,6 @@
"defaultMessage": "Mute @{name}",
"id": "account.mute"
},
- {
- "defaultMessage": "Follow",
- "id": "account.follow"
- },
{
"defaultMessage": "Report @{name}",
"id": "account.report"
@@ -610,59 +692,6 @@
"defaultMessage": "Open moderation interface for @{name}",
"id": "status.admin_account"
},
- {
- "defaultMessage": "Information below may reflect the user's profile incompletely.",
- "id": "account.disclaimer_full"
- },
- {
- "defaultMessage": "View full profile",
- "id": "account.view_full_profile"
- },
- {
- "defaultMessage": "Toots",
- "id": "account.posts"
- },
- {
- "defaultMessage": "Follows",
- "id": "account.follows"
- },
- {
- "defaultMessage": "Followers",
- "id": "account.followers"
- }
- ],
- "path": "app/javascript/mastodon/features/account/components/action_bar.json"
- },
- {
- "descriptors": [
- {
- "defaultMessage": "Unfollow",
- "id": "account.unfollow"
- },
- {
- "defaultMessage": "Follow",
- "id": "account.follow"
- },
- {
- "defaultMessage": "Awaiting approval. Click to cancel follow request",
- "id": "account.requested"
- },
- {
- "defaultMessage": "Unblock @{name}",
- "id": "account.unblock"
- },
- {
- "defaultMessage": "Edit profile",
- "id": "account.edit_profile"
- },
- {
- "defaultMessage": "Ownership of this link was checked on {date}",
- "id": "account.link_verified_on"
- },
- {
- "defaultMessage": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
- "id": "account.locked_info"
- },
{
"defaultMessage": "Follows you",
"id": "account.follows_you"
@@ -682,6 +711,18 @@
{
"defaultMessage": "Bot",
"id": "account.badges.bot"
+ },
+ {
+ "defaultMessage": "Toots",
+ "id": "account.posts"
+ },
+ {
+ "defaultMessage": "Follows",
+ "id": "account.follows"
+ },
+ {
+ "defaultMessage": "Followers",
+ "id": "account.followers"
}
],
"path": "app/javascript/mastodon/features/account/components/header.json"
@@ -882,6 +923,52 @@
],
"path": "app/javascript/mastodon/features/compose/components/navigation_bar.json"
},
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "Add a poll",
+ "id": "poll_button.add_poll"
+ },
+ {
+ "defaultMessage": "Remove poll",
+ "id": "poll_button.remove_poll"
+ }
+ ],
+ "path": "app/javascript/mastodon/features/compose/components/poll_button.json"
+ },
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "Choice {number}",
+ "id": "compose_form.poll.option_placeholder"
+ },
+ {
+ "defaultMessage": "Add a choice",
+ "id": "compose_form.poll.add_option"
+ },
+ {
+ "defaultMessage": "Remove this choice",
+ "id": "compose_form.poll.remove_option"
+ },
+ {
+ "defaultMessage": "Poll duration",
+ "id": "compose_form.poll.duration"
+ },
+ {
+ "defaultMessage": "{number, plural, one {# minute} other {# minutes}}",
+ "id": "intervals.full.minutes"
+ },
+ {
+ "defaultMessage": "{number, plural, one {# hour} other {# hours}}",
+ "id": "intervals.full.hours"
+ },
+ {
+ "defaultMessage": "{number, plural, one {# day} other {# days}}",
+ "id": "intervals.full.days"
+ }
+ ],
+ "path": "app/javascript/mastodon/features/compose/components/poll_form.json"
+ },
{
"descriptors": [
{
@@ -1197,6 +1284,10 @@
},
{
"descriptors": [
+ {
+ "defaultMessage": "Profile unavailable",
+ "id": "empty_column.account_unavailable"
+ },
{
"defaultMessage": "No one follows this user yet.",
"id": "account.followers.empty"
@@ -1206,6 +1297,10 @@
},
{
"descriptors": [
+ {
+ "defaultMessage": "Profile unavailable",
+ "id": "empty_column.account_unavailable"
+ },
{
"defaultMessage": "This user doesn't follow anyone yet.",
"id": "account.follows.empty"
@@ -1304,7 +1399,7 @@
"id": "getting_started.security"
},
{
- "defaultMessage": "About this instance",
+ "defaultMessage": "About this server",
"id": "navigation_bar.info"
},
{
@@ -1336,6 +1431,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"
@@ -1477,7 +1580,7 @@
"id": "introduction.interactions.favourite.text"
},
{
- "defaultMessage": "Finish tutorial!",
+ "defaultMessage": "Finish toot-orial!",
"id": "introduction.interactions.action"
}
],
@@ -1638,6 +1741,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": [
{
@@ -1769,6 +1881,10 @@
{
"defaultMessage": "Boosts:",
"id": "notifications.column_settings.reblog"
+ },
+ {
+ "defaultMessage": "Poll results:",
+ "id": "notifications.column_settings.poll"
}
],
"path": "app/javascript/mastodon/features/notifications/components/column_settings.json"
@@ -1787,6 +1903,10 @@
"defaultMessage": "Boosts",
"id": "notifications.filter.boosts"
},
+ {
+ "defaultMessage": "Poll results",
+ "id": "notifications.filter.polls"
+ },
{
"defaultMessage": "Follows",
"id": "notifications.filter.follows"
@@ -1811,6 +1931,10 @@
{
"defaultMessage": "{name} boosted your status",
"id": "notification.reblog"
+ },
+ {
+ "defaultMessage": "A poll you have voted in has ended",
+ "id": "notification.poll"
}
],
"path": "app/javascript/mastodon/features/notifications/components/notification.json"
@@ -1857,7 +1981,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"
}
],
@@ -1872,24 +1996,6 @@
],
"path": "app/javascript/mastodon/features/reblogs/index.json"
},
- {
- "descriptors": [
- {
- "defaultMessage": "A look inside...",
- "id": "standalone.public_title"
- }
- ],
- "path": "app/javascript/mastodon/features/standalone/community_timeline/index.json"
- },
- {
- "descriptors": [
- {
- "defaultMessage": "A look inside...",
- "id": "standalone.public_title"
- }
- ],
- "path": "app/javascript/mastodon/features/standalone/public_timeline/index.json"
- },
{
"descriptors": [
{
@@ -1975,6 +2081,10 @@
{
"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"
@@ -2018,6 +2128,10 @@
"defaultMessage": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
"id": "confirmations.reply.message"
},
+ {
+ "defaultMessage": "Block & Report",
+ "id": "confirmations.block.block_and_report"
+ },
{
"defaultMessage": "Are you sure you want to block {name}?",
"id": "confirmations.block.message"
@@ -2067,6 +2181,10 @@
"defaultMessage": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
"id": "confirmations.reply.message"
},
+ {
+ "defaultMessage": "Block & Report",
+ "id": "confirmations.block.block_and_report"
+ },
{
"defaultMessage": "Are you sure you want to block {name}?",
"id": "confirmations.block.message"
@@ -2213,7 +2331,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 e0c472cf5..e0d0c539e 100644
--- a/app/javascript/mastodon/locales/el.json
+++ b/app/javascript/mastodon/locales/el.json
@@ -5,9 +5,8 @@
"account.block_domain": "Απόκρυψε τα πάντα από το {domain}",
"account.blocked": "Αποκλεισμένος/η",
"account.direct": "Προσωπικό μήνυμα προς @{name}",
- "account.disclaimer_full": "Οι παρακάτω πληροφορίες μπορει να μην αντανακλούν το προφίλ του χρήστη επαρκως.",
"account.domain_blocked": "Κρυμμένος τομέας",
- "account.edit_profile": "Επεξεργάσου το προφίλ",
+ "account.edit_profile": "Επεξεργασία προφίλ",
"account.endorse": "Προβολή στο προφίλ",
"account.follow": "Ακολούθησε",
"account.followers": "Ακόλουθοι",
@@ -36,7 +35,6 @@
"account.unfollow": "Διακοπή παρακολούθησης",
"account.unmute": "Διακοπή αποσιώπησης του/της @{name}",
"account.unmute_notifications": "Διακοπή αποσιώπησης ειδοποιήσεων του/της @{name}",
- "account.view_full_profile": "Δες το πλήρες προφίλ",
"alert.unexpected.message": "Προέκυψε απροσδόκητο σφάλμα.",
"alert.unexpected.title": "Εεπ!",
"boost_modal.combo": "Μπορείς να πατήσεις {combo} για να το προσπεράσεις αυτό την επόμενη φορά",
@@ -73,6 +71,10 @@
"compose_form.lock_disclaimer": "Ο λογαριασμός σου δεν είναι {locked}. Οποιοσδήποτε μπορεί να σε ακολουθήσει για να δει τις δημοσιεύσεις σας προς τους ακολούθους σας.",
"compose_form.lock_disclaimer.lock": "κλειδωμένος",
"compose_form.placeholder": "Τι σκέφτεσαι;",
+ "compose_form.poll.add_option": "Προσθήκη επιλογής",
+ "compose_form.poll.duration": "Διάρκεια δημοσκόπησης",
+ "compose_form.poll.option_placeholder": "Επιλογή {number}",
+ "compose_form.poll.remove_option": "Αφαίρεση επιλογής",
"compose_form.publish": "Τουτ",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "Το πολυμέσο έχει σημειωθεί ως ευαίσθητο",
@@ -81,6 +83,7 @@
"compose_form.spoiler.unmarked": "Μη κρυμμένο κείμενο",
"compose_form.spoiler_placeholder": "Γράψε την προειδοποίησή σου εδώ",
"confirmation_modal.cancel": "Άκυρο",
+ "confirmations.block.block_and_report": "Block & Report",
"confirmations.block.confirm": "Απόκλεισε",
"confirmations.block.message": "Σίγουρα θες να αποκλείσεις τον/την {name};",
"confirmations.delete.confirm": "Διέγραψε",
@@ -114,6 +117,7 @@
"emoji_button.symbols": "Σύμβολα",
"emoji_button.travel": "Ταξίδια & Τοποθεσίες",
"empty_column.account_timeline": "Δεν έχει τουτ εδώ!",
+ "empty_column.account_unavailable": "Μη διαθέσιμο προφίλ",
"empty_column.blocks": "Δεν έχεις αποκλείσει κανέναν χρήστη ακόμα.",
"empty_column.community": "Η τοπική ροή είναι κενή. Γράψε κάτι δημόσιο παραμύθι ν' αρχινίσει!",
"empty_column.direct": "Δεν έχεις προσωπικά μηνύματα ακόμα. Όταν στείλεις ή λάβεις κανένα, θα εμφανιστεί εδώ.",
@@ -128,7 +132,7 @@
"empty_column.lists": "Δεν έχεις καμία λίστα ακόμα. Μόλις φτιάξεις μια, θα εμφανιστεί εδώ.",
"empty_column.mutes": "Δεν έχεις αποσιωπήσει κανένα χρήστη ακόμα.",
"empty_column.notifications": "Δεν έχεις ειδοποιήσεις ακόμα. Αλληλεπίδρασε με άλλους χρήστες για να ξεκινήσεις την κουβέντα.",
- "empty_column.public": "Δεν υπάρχει τίποτα εδώ! Γράψε κάτι δημόσιο, ή ακολούθησε χειροκίνητα χρήστες από άλλα instances για να τη γεμίσεις",
+ "empty_column.public": "Δεν υπάρχει τίποτα εδώ! Γράψε κάτι δημόσιο, ή ακολούθησε χειροκίνητα χρήστες από άλλους κόμβους για να τη γεμίσεις",
"federation.change": "Adjust status federation",
"federation.federated.long": "Allow toot to reach other instances",
"federation.federated.short": "Federated",
@@ -147,19 +151,24 @@
"hashtag.column_header.tag_mode.all": "και {additional}",
"hashtag.column_header.tag_mode.any": "ή {additional}",
"hashtag.column_header.tag_mode.none": "χωρίς {additional}",
+ "hashtag.column_settings.select.no_options_message": "Δεν βρέθηκαν προτάσεις",
+ "hashtag.column_settings.select.placeholder": "Γράψε μερικές ταμπέλες…",
"hashtag.column_settings.tag_mode.all": "Όλα αυτα",
"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": "Εμφάνιση απαντήσεων",
+ "intervals.full.days": "{number, plural, one {# μέρα} other {# μέρες}}",
+ "intervals.full.hours": "{number, plural, one {# ώρα} other {# ώρες}}",
+ "intervals.full.minutes": "{number, plural, one {# λεπτό} other {# λεπτά}}",
"introduction.federation.action": "Επόμενο",
- "introduction.federation.federated.headline": "Federated",
+ "introduction.federation.federated.headline": "Ομοσπονδιακή",
"introduction.federation.federated.text": "Οι δημόσιες αναρτήσεις από άλλους κόμβους του fediverse θα εμφανίζονται στην ομοσπονδιακή ροή.",
- "introduction.federation.home.headline": "Home",
+ "introduction.federation.home.headline": "Αρχική",
"introduction.federation.home.text": "Οι αναρτήσεις όσων ακολουθείς θα εμφανίζονται στην αρχική ροή. Μπορείς να ακολουθήσεις όποιον θέλεις σε οποιονδήποτε κόμβο!",
- "introduction.federation.local.headline": "Local",
+ "introduction.federation.local.headline": "Τοπική",
"introduction.federation.local.text": "Οι δημόσιες αναρτήσεις από άτομα στον ίδιο κόμβο με εσένα θα εμφανίζονται στην τοπική ροή.",
"introduction.interactions.action": "Τέλος μαθήματος!",
"introduction.interactions.favourite.headline": "Αγαπημένο",
@@ -170,7 +179,7 @@
"introduction.interactions.reply.text": "Μπορείς να απαντήσεις στα τουτ άλλων αλλά ακόμα και στα δικά σου, δένοντας τα όλα μαζί σε μια συζήτηση.",
"introduction.welcome.action": "Ας ξεκινήσουμε!",
"introduction.welcome.headline": "Πρώτα βήματα",
- "introduction.welcome.text": "Καλώς ήρθες στο fediverse! Σε πολύ λίγο θα μπορείς να στέλνεις δημοσιεύσεις και να μιλάς με τους φίλους σου σε πολλούς, διαφορετικούς κόμβους. Ο κόμβος {domain} όμως είναι ξεχωριστός — φιλοξενεί τον λογαριασμό σου, για αυτό μα θυμάσαι το όνομά του.",
+ "introduction.welcome.text": "Καλώς ήρθες στο fediverse! Σε πολύ λίγο θα μπορείς να στέλνεις δημοσιεύσεις και να μιλάς με τους φίλους σου σε πολλούς, διαφορετικούς κόμβους. Ο κόμβος {domain} όμως είναι ξεχωριστός — φιλοξενεί τον λογαριασμό σου, για αυτό να θυμάσαι το όνομά του.",
"keyboard_shortcuts.back": "επιστροφή",
"keyboard_shortcuts.blocked": "άνοιγμα λίστας αποκλεισμένων χρηστών",
"keyboard_shortcuts.boost": "προώθηση",
@@ -209,6 +218,7 @@
"lists.account.remove": "Βγάλε από τη λίστα",
"lists.delete": "Διαγραφή λίστας",
"lists.edit": "Επεξεργασία λίστας",
+ "lists.edit.submit": "Αλλαγή τίτλου",
"lists.new.create": "Προσθήκη λίστας",
"lists.new.title_placeholder": "Τίτλος νέας λίστα",
"lists.search": "Αναζήτησε μεταξύ των ανθρώπων που ακουλουθείς",
@@ -242,6 +252,7 @@
"notification.favourite": "Ο/Η {name} σημείωσε ως αγαπημένη την κατάστασή σου",
"notification.follow": "Ο/Η {name} σε ακολούθησε",
"notification.mention": "Ο/Η {name} σε ανέφερε",
+ "notification.poll": "Έλαβε τέλος μια από τις ψηφοφορίες που συμμετείχες",
"notification.reblog": "Ο/Η {name} προώθησε την κατάστασή σου",
"notifications.clear": "Καθαρισμός ειδοποιήσεων",
"notifications.clear_confirmation": "Σίγουρα θέλεις να καθαρίσεις όλες τις ειδοποιήσεις σου;",
@@ -252,6 +263,7 @@
"notifications.column_settings.filter_bar.show": "Εμφάνιση",
"notifications.column_settings.follow": "Νέοι ακόλουθοι:",
"notifications.column_settings.mention": "Αναφορές:",
+ "notifications.column_settings.poll": "Αποτελέσματα ψηφοφορίας:",
"notifications.column_settings.push": "Άμεσες ειδοποιήσεις",
"notifications.column_settings.reblog": "Προωθήσεις:",
"notifications.column_settings.show": "Εμφάνισε σε στήλη",
@@ -261,7 +273,14 @@
"notifications.filter.favourites": "Αγαπημένα",
"notifications.filter.follows": "Ακόλουθοι",
"notifications.filter.mentions": "Αναφορές",
+ "notifications.filter.polls": "Αποτελέσματα ψηφοφορίας",
"notifications.group": "{count} ειδοποιήσεις",
+ "poll.closed": "Κλειστή",
+ "poll.refresh": "Ανανέωση",
+ "poll.total_votes": "{count, plural, one {# ψήφος} other {# ψήφοι}}",
+ "poll.vote": "Ψήφισε",
+ "poll_button.add_poll": "Προσθήκη δημοσκόπησης",
+ "poll_button.remove_poll": "Αφαίρεση δημοσκόπησης",
"privacy.change": "Προσαρμογή ιδιωτικότητας δημοσίευσης",
"privacy.direct.long": "Δημοσίευση μόνο σε όσους και όσες αναφέρονται",
"privacy.direct.short": "Προσωπικά",
@@ -281,7 +300,7 @@
"reply_indicator.cancel": "Άκυρο",
"report.forward": "Προώθηση προς {target}",
"report.forward_hint": "Ο λογαριασμός είναι από διαφορετικό διακομιστή. Να σταλεί ανώνυμο αντίγραφο της καταγγελίας κι εκεί;",
- "report.hint": "Η καταγγελία θα σταλεί στους διαχειριστές του κόμβου σου. Μπορείς να περιγράψεις γιατί καταγγέλεις το λογαριασμό παρακάτω:",
+ "report.hint": "Η καταγγελία θα σταλεί στους διαχειριστές του κόμβου σου. Μπορείς να περιγράψεις γιατί καταγγέλεις αυτόν το λογαριασμό παρακάτω:",
"report.placeholder": "Επιπλέον σχόλια",
"report.submit": "Υποβολή",
"report.target": "Καταγγελία {target}",
@@ -295,13 +314,13 @@
"search_results.accounts": "Άνθρωποι",
"search_results.hashtags": "Ταμπέλες",
"search_results.statuses": "Τουτ",
- "search_results.total": "{count, number} {count, plural, ένα {result} υπόλοιπα {results}}",
- "standalone.public_title": "Μια πρώτη γεύση...",
- "status.admin_account": "Open moderation interface for @{name}",
- "status.admin_status": "Open this status in the moderation interface",
+ "search_results.total": "{count, number} {count, plural, zero {αποτελέσματα} one {αποτέλεσμα} other {αποτελέσματα}}",
+ "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}",
@@ -344,10 +363,17 @@
"tabs_bar.local_timeline": "Τοπικά",
"tabs_bar.notifications": "Ειδοποιήσεις",
"tabs_bar.search": "Αναζήτηση",
+ "time_remaining.days": "απομένουν {number, plural, one {# ημέρα} other {# ημέρες}}",
+ "time_remaining.hours": "απομένουν {number, plural, one {# ώρα} other {# ώρες}}",
+ "time_remaining.minutes": "απομένουν {number, plural, one {# λεπτό} other {# λεπτά}}",
+ "time_remaining.moments": "Απομένουν στιγμές",
+ "time_remaining.seconds": "απομένουν {number, plural, one {# δευτερόλεπτο} other {# δευτερόλεπτα}}",
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} μιλάνε",
"ui.beforeunload": "Το προσχέδιό σου θα χαθεί αν φύγεις από το Mastodon.",
"upload_area.title": "Drag & drop για να ανεβάσεις",
"upload_button.label": "Πρόσθεσε πολυμέσα (JPEG, PNG, GIF, WebM, MP4, MOV)",
+ "upload_error.limit": "Υπέρβαση ορίου μεγέθους ανεβασμένων αρχείων.",
+ "upload_error.poll": "Στις δημοσκοπήσεις δεν επιτρέπεται η μεταφόρτωση αρχείου.",
"upload_form.description": "Περιέγραψε για όσους & όσες έχουν προβλήματα όρασης",
"upload_form.focus": "Αλλαγή προεπισκόπησης",
"upload_form.undo": "Διαγραφή",
diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json
index 2b57f369f..aa4a69aa4 100644
--- a/app/javascript/mastodon/locales/en.json
+++ b/app/javascript/mastodon/locales/en.json
@@ -5,7 +5,6 @@
"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",
@@ -36,7 +35,6 @@
"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",
@@ -73,6 +71,10 @@
"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's on your mind?",
+ "compose_form.poll.add_option": "Add a choice",
+ "compose_form.poll.duration": "Poll duration",
+ "compose_form.poll.option_placeholder": "Choice {number}",
+ "compose_form.poll.remove_option": "Remove this choice",
"compose_form.publish": "Toot",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "Media is marked as sensitive",
@@ -81,6 +83,7 @@
"compose_form.spoiler.unmarked": "Text is not hidden",
"compose_form.spoiler_placeholder": "Write your warning here",
"confirmation_modal.cancel": "Cancel",
+ "confirmations.block.block_and_report": "Block & Report",
"confirmations.block.confirm": "Block",
"confirmations.block.message": "Are you sure you want to block {name}?",
"confirmations.delete.confirm": "Delete",
@@ -114,6 +117,7 @@
"emoji_button.symbols": "Symbols",
"emoji_button.travel": "Travel & Places",
"empty_column.account_timeline": "No toots here!",
+ "empty_column.account_unavailable": "Profile unavailable",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.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.",
@@ -128,7 +132,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",
"federation.change": "Adjust status federation",
"federation.federated.long": "Allow toot to reach other instances",
"federation.federated.short": "Federated",
@@ -147,6 +151,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",
@@ -154,6 +160,9 @@
"home.column_settings.basic": "Basic",
"home.column_settings.show_reblogs": "Show boosts",
"home.column_settings.show_replies": "Show replies",
+ "intervals.full.days": "{number, plural, one {# day} other {# days}}",
+ "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
+ "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
"introduction.federation.action": "Next",
"introduction.federation.federated.headline": "Federated",
"introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
@@ -209,6 +218,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",
@@ -229,7 +239,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",
@@ -242,6 +252,7 @@
"notification.favourite": "{name} favourited your status",
"notification.follow": "{name} followed you",
"notification.mention": "{name} mentioned you",
+ "notification.poll": "A poll you have voted in has ended",
"notification.reblog": "{name} boosted your status",
"notifications.clear": "Clear notifications",
"notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?",
@@ -252,6 +263,7 @@
"notifications.column_settings.filter_bar.show": "Show",
"notifications.column_settings.follow": "New followers:",
"notifications.column_settings.mention": "Mentions:",
+ "notifications.column_settings.poll": "Poll results:",
"notifications.column_settings.push": "Push notifications",
"notifications.column_settings.reblog": "Boosts:",
"notifications.column_settings.show": "Show in column",
@@ -261,7 +273,14 @@
"notifications.filter.favourites": "Favourites",
"notifications.filter.follows": "Follows",
"notifications.filter.mentions": "Mentions",
+ "notifications.filter.polls": "Poll results",
"notifications.group": "{count} notifications",
+ "poll.closed": "Closed",
+ "poll.refresh": "Refresh",
+ "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
+ "poll.vote": "Vote",
+ "poll_button.add_poll": "Add a poll",
+ "poll_button.remove_poll": "Remove poll",
"privacy.change": "Adjust status privacy",
"privacy.direct.long": "Post to mentioned users only",
"privacy.direct.short": "Direct",
@@ -281,7 +300,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}",
@@ -296,12 +315,12 @@
"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}",
@@ -344,10 +363,17 @@
"tabs_bar.local_timeline": "Local",
"tabs_bar.notifications": "Notifications",
"tabs_bar.search": "Search",
+ "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
+ "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
+ "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
+ "time_remaining.moments": "Moments remaining",
+ "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
"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_error.poll": "File upload not allowed with polls.",
"upload_form.description": "Describe for the visually impaired",
"upload_form.focus": "Change preview",
"upload_form.undo": "Delete",
diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json
index 28ec37ca2..973d0d57a 100644
--- a/app/javascript/mastodon/locales/eo.json
+++ b/app/javascript/mastodon/locales/eo.json
@@ -5,7 +5,6 @@
"account.block_domain": "Kaŝi ĉion de {domain}",
"account.blocked": "Blokita",
"account.direct": "Rekte mesaĝi @{name}",
- "account.disclaimer_full": "Subaj informoj povas reflekti la profilon de la uzanto nekomplete.",
"account.domain_blocked": "Domajno kaŝita",
"account.edit_profile": "Redakti profilon",
"account.endorse": "Montri en profilo",
@@ -36,7 +35,6 @@
"account.unfollow": "Ne plu sekvi",
"account.unmute": "Malsilentigi @{name}",
"account.unmute_notifications": "Malsilentigi sciigojn de @{name}",
- "account.view_full_profile": "Vidi plenan profilon",
"alert.unexpected.message": "Neatendita eraro okazis.",
"alert.unexpected.title": "Ups!",
"boost_modal.combo": "Vi povas premi {combo} por preterpasi sekvafoje",
@@ -73,6 +71,10 @@
"compose_form.lock_disclaimer": "Via konta ne estas {locked}. Iu ajn povas sekvi vin por vidi viajn mesaĝojn, kiuj estas nur por sekvantoj.",
"compose_form.lock_disclaimer.lock": "ŝlosita",
"compose_form.placeholder": "Pri kio vi pensas?",
+ "compose_form.poll.add_option": "Aldoni elekto",
+ "compose_form.poll.duration": "Balotenketo daŭro",
+ "compose_form.poll.option_placeholder": "elekto {number}",
+ "compose_form.poll.remove_option": "Forigi ĉi tiu elekton",
"compose_form.publish": "Hup",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "Aŭdovidaĵo markita tikla",
@@ -81,6 +83,7 @@
"compose_form.spoiler.unmarked": "Teksto ne kaŝita",
"compose_form.spoiler_placeholder": "Skribu vian averton ĉi tie",
"confirmation_modal.cancel": "Nuligi",
+ "confirmations.block.block_and_report": "Bloki & Signali",
"confirmations.block.confirm": "Bloki",
"confirmations.block.message": "Ĉu vi certas, ke vi volas bloki {name}?",
"confirmations.delete.confirm": "Forigi",
@@ -114,6 +117,7 @@
"emoji_button.symbols": "Simboloj",
"emoji_button.travel": "Vojaĝoj kaj lokoj",
"empty_column.account_timeline": "Neniu mesaĝo ĉi tie!",
+ "empty_column.account_unavailable": "Profile unavailable",
"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.",
@@ -128,7 +132,7 @@
"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",
"federation.change": "Adjust status federation",
"federation.federated.long": "Allow toot to reach other instances",
"federation.federated.short": "Federated",
@@ -137,7 +141,7 @@
"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",
@@ -147,30 +151,35 @@
"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": "Neniu sugesto trovita",
+ "hashtag.column_settings.select.placeholder": "Enmeti kradvortojn…",
"hashtag.column_settings.tag_mode.all": "Ĉiuj",
"hashtag.column_settings.tag_mode.any": "Iu ajn",
"hashtag.column_settings.tag_mode.none": "Neniu",
- "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
+ "hashtag.column_settings.tag_toggle": "Inkluzivi pluajn etikedojn por ĉi tiu kolumno",
"home.column_settings.basic": "Bazaj agordoj",
"home.column_settings.show_reblogs": "Montri diskonigojn",
"home.column_settings.show_replies": "Montri respondojn",
+ "intervals.full.days": "{number, plural, one {# tago} other {# tagoj}}",
+ "intervals.full.hours": "{number, plural, one {# horo} other {# horoj}}",
+ "intervals.full.minutes": "{number, plural, one {# minuto} other {# minutoj}}",
"introduction.federation.action": "Sekva",
- "introduction.federation.federated.headline": "Federated",
- "introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
- "introduction.federation.home.headline": "Home",
- "introduction.federation.home.text": "Posts from people you follow will appear in your home feed. You can follow anyone on any server!",
- "introduction.federation.local.headline": "Local",
- "introduction.federation.local.text": "Public posts from people on the same server as you will appear in the local timeline.",
- "introduction.interactions.action": "Finish tutorial!",
- "introduction.interactions.favourite.headline": "Favourite",
- "introduction.interactions.favourite.text": "You can save a toot for later, and let the author know that you liked it, by favouriting it.",
- "introduction.interactions.reblog.headline": "Boost",
- "introduction.interactions.reblog.text": "You can share other people's toots with your followers by boosting them.",
- "introduction.interactions.reply.headline": "Reply",
- "introduction.interactions.reply.text": "You can reply to other people's and your own toots, which will chain them together in a conversation.",
- "introduction.welcome.action": "Let's go!",
- "introduction.welcome.headline": "First steps",
- "introduction.welcome.text": "Welcome to the fediverse! In a few moments, you'll be able to broadcast messages and talk to your friends across a wide variety of servers. But this server, {domain}, is special—it hosts your profile, so remember its name.",
+ "introduction.federation.federated.headline": "Federacio",
+ "introduction.federation.federated.text": "Publikaj mesaĝoj el aliaj serviloj de la Fediverse aperos en la fratara tempolinio.",
+ "introduction.federation.home.headline": "Heimo",
+ "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": "Loka",
+ "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",
@@ -209,6 +218,7 @@
"lists.account.remove": "Forigi de la listo",
"lists.delete": "Forigi la liston",
"lists.edit": "Redakti la liston",
+ "lists.edit.submit": "Ŝanĝi titolon",
"lists.new.create": "Aldoni liston",
"lists.new.title_placeholder": "Titolo de la nova listo",
"lists.search": "Serĉi inter la homoj, kiujn vi sekvas",
@@ -229,7 +239,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,26 +252,35 @@
"notification.favourite": "{name} stelumis vian mesaĝon",
"notification.follow": "{name} eksekvis vin",
"notification.mention": "{name} menciis vin",
+ "notification.poll": "Balotenketo ke vi balotis estas finita",
"notification.reblog": "{name} diskonigis vian mesaĝon",
"notifications.clear": "Forviŝi sciigojn",
"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.poll": "Balotenketo rezulto:",
"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.filter.polls": "Balotenketoj rezultoj",
"notifications.group": "{count} sciigoj",
+ "poll.closed": "Finita",
+ "poll.refresh": "Aktualigi",
+ "poll.total_votes": "{count, plural, one {# voĉdono} other {# voĉdonoj}}",
+ "poll.vote": "Voĉdoni",
+ "poll_button.add_poll": "Aldoni balotenketon",
+ "poll_button.remove_poll": "Forigi balotenketon",
"privacy.change": "Agordi mesaĝan privatecon",
"privacy.direct.long": "Afiŝi nur al menciitaj uzantoj",
"privacy.direct.short": "Rekta",
@@ -281,7 +300,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}",
@@ -296,12 +315,12 @@
"search_results.hashtags": "Kradvortoj",
"search_results.statuses": "Mesaĝoj",
"search_results.total": "{count, number} {count, plural, one {rezulto} other {rezultoj}}",
- "standalone.public_title": "Enrigardo…",
- "status.admin_account": "Open moderation interface for @{name}",
- "status.admin_status": "Open this status in the moderation interface",
+ "status.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}",
@@ -344,12 +363,19 @@
"tabs_bar.local_timeline": "Loka tempolinio",
"tabs_bar.notifications": "Sciigoj",
"tabs_bar.search": "Serĉi",
- "trends.count_by_accounts": "{count} {rawCount, pluraj, unu {person} alia(j) {people}} parolas",
+ "time_remaining.days": "{number, plural, one {# tago} other {# tagoj}} restanta",
+ "time_remaining.hours": "{number, plural, one {# horo} other {# horoj}} restanta",
+ "time_remaining.minutes": "{number, plural, one {# minuto} other {# minutoj}} restanta",
+ "time_remaining.moments": "Momento restanta",
+ "time_remaining.seconds": "{number, plural, one {# sekundo} other {# sekundoj}} restanta",
+ "trends.count_by_accounts": "{count} {rawCount, plural, one {persono} other {personoj}} parolas",
"ui.beforeunload": "Via malneto perdiĝos se vi eliras de Mastodon.",
"upload_area.title": "Altreni kaj lasi por alŝuti",
"upload_button.label": "Aldoni aŭdovidaĵon (JPEG, PNG, GIF, WebM, MP4, MOV)",
+ "upload_error.limit": "Limo de dosiera alŝutado transpasita.",
+ "upload_error.poll": "Alŝuto de dosiero ne permisita kun balotenketo",
"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 5d24f92fd..8ced8676b 100644
--- a/app/javascript/mastodon/locales/es.json
+++ b/app/javascript/mastodon/locales/es.json
@@ -5,7 +5,6 @@
"account.block_domain": "Ocultar todo de {domain}",
"account.blocked": "Bloqueado",
"account.direct": "Direct Message @{name}",
- "account.disclaimer_full": "La siguiente información del usuario puede estar incompleta.",
"account.domain_blocked": "Dominio oculto",
"account.edit_profile": "Editar perfil",
"account.endorse": "Mostrar en perfil",
@@ -36,7 +35,6 @@
"account.unfollow": "Dejar de seguir",
"account.unmute": "Dejar de silenciar a @{name}",
"account.unmute_notifications": "Dejar de silenciar las notificaciones de @{name}",
- "account.view_full_profile": "Ver perfil completo",
"alert.unexpected.message": "Hubo un error inesperado.",
"alert.unexpected.title": "Oops!",
"boost_modal.combo": "Puedes presionar {combo} para saltear este aviso la próxima vez",
@@ -73,6 +71,10 @@
"compose_form.lock_disclaimer": "Tu cuenta no está bloqueada. Todos pueden seguirte para ver tus toots solo para seguidores.",
"compose_form.lock_disclaimer.lock": "bloqueado",
"compose_form.placeholder": "¿En qué estás pensando?",
+ "compose_form.poll.add_option": "Add a choice",
+ "compose_form.poll.duration": "Poll duration",
+ "compose_form.poll.option_placeholder": "Choice {number}",
+ "compose_form.poll.remove_option": "Remove this choice",
"compose_form.publish": "Tootear",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "Material marcado como sensible",
@@ -81,6 +83,7 @@
"compose_form.spoiler.unmarked": "Texto no oculto",
"compose_form.spoiler_placeholder": "Advertencia de contenido",
"confirmation_modal.cancel": "Cancelar",
+ "confirmations.block.block_and_report": "Block & Report",
"confirmations.block.confirm": "Bloquear",
"confirmations.block.message": "¿Estás seguro de que quieres bloquear a {name}?",
"confirmations.delete.confirm": "Eliminar",
@@ -114,6 +117,7 @@
"emoji_button.symbols": "Símbolos",
"emoji_button.travel": "Viajes y lugares",
"empty_column.account_timeline": "No toots here!",
+ "empty_column.account_unavailable": "Profile unavailable",
"empty_column.blocks": "Aún no has bloqueado a ningún usuario.",
"empty_column.community": "La línea de tiempo local está vacía. ¡Escribe algo para empezar la fiesta!",
"empty_column.direct": "Aún no tienes ningún mensaje directo. Cuando envíes o recibas uno, se mostrará aquí.",
@@ -147,6 +151,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",
@@ -154,6 +160,9 @@
"home.column_settings.basic": "Básico",
"home.column_settings.show_reblogs": "Mostrar retoots",
"home.column_settings.show_replies": "Mostrar respuestas",
+ "intervals.full.days": "{number, plural, one {# day} other {# days}}",
+ "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
+ "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
"introduction.federation.action": "Next",
"introduction.federation.federated.headline": "Federated",
"introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
@@ -209,6 +218,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",
@@ -242,6 +252,7 @@
"notification.favourite": "{name} marcó tu estado como favorito",
"notification.follow": "{name} te empezó a seguir",
"notification.mention": "{name} te ha mencionado",
+ "notification.poll": "A poll you have voted in has ended",
"notification.reblog": "{name} ha retooteado tu estado",
"notifications.clear": "Limpiar notificaciones",
"notifications.clear_confirmation": "¿Seguro que quieres limpiar permanentemente todas tus notificaciones?",
@@ -252,6 +263,7 @@
"notifications.column_settings.filter_bar.show": "Show",
"notifications.column_settings.follow": "Nuevos seguidores:",
"notifications.column_settings.mention": "Menciones:",
+ "notifications.column_settings.poll": "Poll results:",
"notifications.column_settings.push": "Notificaciones push",
"notifications.column_settings.reblog": "Retoots:",
"notifications.column_settings.show": "Mostrar en columna",
@@ -261,7 +273,14 @@
"notifications.filter.favourites": "Favourites",
"notifications.filter.follows": "Follows",
"notifications.filter.mentions": "Mentions",
+ "notifications.filter.polls": "Poll results",
"notifications.group": "{count} notificaciones",
+ "poll.closed": "Closed",
+ "poll.refresh": "Refresh",
+ "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
+ "poll.vote": "Vote",
+ "poll_button.add_poll": "Add a poll",
+ "poll_button.remove_poll": "Remove poll",
"privacy.change": "Ajustar privacidad",
"privacy.direct.long": "Sólo mostrar a los usuarios mencionados",
"privacy.direct.short": "Directo",
@@ -296,12 +315,12 @@
"search_results.hashtags": "Etiquetas",
"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}",
@@ -344,10 +363,17 @@
"tabs_bar.local_timeline": "Local",
"tabs_bar.notifications": "Notificaciones",
"tabs_bar.search": "Buscar",
+ "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
+ "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
+ "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
+ "time_remaining.moments": "Moments remaining",
+ "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
"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_error.poll": "File upload not allowed with polls.",
"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 9a4d01f94..ff9b08c07 100644
--- a/app/javascript/mastodon/locales/eu.json
+++ b/app/javascript/mastodon/locales/eu.json
@@ -5,7 +5,6 @@
"account.block_domain": "Ezkutatu {domain} domeinuko guztia",
"account.blocked": "Blokeatuta",
"account.direct": "Mezu zuzena @{name}(r)i",
- "account.disclaimer_full": "Baliteke beheko informazioak erabiltzailearen profilaren zati bat baino ez erakustea.",
"account.domain_blocked": "Ezkutatutako domeinua",
"account.edit_profile": "Aldatu profila",
"account.endorse": "Nabarmendu profilean",
@@ -36,7 +35,6 @@
"account.unfollow": "Jarraitzeari utzi",
"account.unmute": "Desmututu @{name}",
"account.unmute_notifications": "Desmututu @{name}(r)en jakinarazpenak",
- "account.view_full_profile": "Ikusi profil osoa",
"alert.unexpected.message": "Ustekabeko errore bat gertatu da.",
"alert.unexpected.title": "Ene!",
"boost_modal.combo": "{combo} sakatu dezakezu hurrengoan hau saltatzeko",
@@ -73,6 +71,10 @@
"compose_form.lock_disclaimer": "Zure kontua ez dago {locked}. Edonork jarraitu zaitzake zure jarraitzaileentzako soilik diren mezuak ikusteko.",
"compose_form.lock_disclaimer.lock": "giltzapetuta",
"compose_form.placeholder": "Zer duzu buruan?",
+ "compose_form.poll.add_option": "Add a choice",
+ "compose_form.poll.duration": "Poll duration",
+ "compose_form.poll.option_placeholder": "Choice {number}",
+ "compose_form.poll.remove_option": "Remove this choice",
"compose_form.publish": "Toot",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "Multimedia edukia hunkigarri gisa markatu da",
@@ -81,6 +83,7 @@
"compose_form.spoiler.unmarked": "Testua ez dago ezkutatuta",
"compose_form.spoiler_placeholder": "Idatzi zure abisua hemen",
"confirmation_modal.cancel": "Utzi",
+ "confirmations.block.block_and_report": "Block & Report",
"confirmations.block.confirm": "Block",
"confirmations.block.message": "Ziur {name} blokeatu nahi duzula?",
"confirmations.delete.confirm": "Ezabatu",
@@ -114,6 +117,7 @@
"emoji_button.symbols": "Sinboloak",
"emoji_button.travel": "Bidaiak eta tokiak",
"empty_column.account_timeline": "Ez dago toot-ik hemen!",
+ "empty_column.account_unavailable": "Profile unavailable",
"empty_column.blocks": "Ez duzu erabiltzailerik blokeatu oraindik.",
"empty_column.community": "Denbora-lerro lokala hutsik dago. Idatzi zerbait publikoki pilota biraka jartzeko!",
"empty_column.direct": "Ez duzu mezu zuzenik oraindik. Baten bat bidali edo jasotzen duzunean, hemen agertuko da.",
@@ -128,7 +132,7 @@
"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",
"federation.change": "Adjust status federation",
"federation.federated.long": "Allow toot to reach other instances",
"federation.federated.short": "Federated",
@@ -147,6 +151,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",
@@ -154,6 +160,9 @@
"home.column_settings.basic": "Oinarrizkoa",
"home.column_settings.show_reblogs": "Erakutsi bultzadak",
"home.column_settings.show_replies": "Erakutsi erantzunak",
+ "intervals.full.days": "{number, plural, one {# day} other {# days}}",
+ "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
+ "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
"introduction.federation.action": "Hurrengoa",
"introduction.federation.federated.headline": "Federated",
"introduction.federation.federated.text": "Fedibertsoko beste zerbitzarietako bidalketa publikoak federatutako denbora-lerroan agertuko dira.",
@@ -209,6 +218,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",
@@ -229,7 +239,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,6 +252,7 @@
"notification.favourite": "{name}(e)k zure mezua gogoko du",
"notification.follow": "{name}(e)k jarraitzen zaitu",
"notification.mention": "{name}(e)k aipatu zaitu",
+ "notification.poll": "A poll you have voted in has ended",
"notification.reblog": "{name}(e)k bultzada eman dio zure mezuari",
"notifications.clear": "Garbitu jakinarazpenak",
"notifications.clear_confirmation": "Ziur zure jakinarazpen guztiak behin betirako garbitu nahi dituzula?",
@@ -252,6 +263,7 @@
"notifications.column_settings.filter_bar.show": "Erakutsi",
"notifications.column_settings.follow": "Jarraitzaile berriak:",
"notifications.column_settings.mention": "Aipamenak:",
+ "notifications.column_settings.poll": "Poll results:",
"notifications.column_settings.push": "Push jakinarazpenak",
"notifications.column_settings.reblog": "Bultzadak:",
"notifications.column_settings.show": "Erakutsi zutabean",
@@ -261,7 +273,14 @@
"notifications.filter.favourites": "Gogokoak",
"notifications.filter.follows": "Jarraipenak",
"notifications.filter.mentions": "Aipamenak",
+ "notifications.filter.polls": "Poll results",
"notifications.group": "{count} jakinarazpen",
+ "poll.closed": "Closed",
+ "poll.refresh": "Refresh",
+ "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
+ "poll.vote": "Vote",
+ "poll_button.add_poll": "Add a poll",
+ "poll_button.remove_poll": "Remove poll",
"privacy.change": "Doitu mezuaren pribatutasuna",
"privacy.direct.long": "Bidali aipatutako erabiltzaileei besterik ez",
"privacy.direct.short": "Zuzena",
@@ -281,7 +300,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",
@@ -296,12 +315,12 @@
"search_results.hashtags": "Traolak",
"search_results.statuses": "Toot-ak",
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
- "standalone.public_title": "Begiradatxo bat...",
- "status.admin_account": "Open moderation interface for @{name}",
- "status.admin_status": "Open this status in the moderation interface",
+ "status.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",
@@ -344,10 +363,17 @@
"tabs_bar.local_timeline": "Lokala",
"tabs_bar.notifications": "Jakinarazpenak",
"tabs_bar.search": "Bilatu",
+ "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
+ "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
+ "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
+ "time_remaining.moments": "Moments remaining",
+ "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} hitz egiten",
"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_error.poll": "File upload not allowed with polls.",
"upload_form.description": "Deskribatu ikusmen arazoak dituztenentzat",
"upload_form.focus": "Aldatu aurrebista",
"upload_form.undo": "Ezabatu",
diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json
index 20403838e..7a5adcb1d 100644
--- a/app/javascript/mastodon/locales/fa.json
+++ b/app/javascript/mastodon/locales/fa.json
@@ -1,11 +1,10 @@
{
- "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}",
"account.blocked": "مسدودشده",
"account.direct": "پیغام خصوصی به @{name}",
- "account.disclaimer_full": "اطلاعات زیر ممکن است نمایهٔ این کاربر را به تمامی نشان ندهد.",
"account.domain_blocked": "دامین پنهانشده",
"account.edit_profile": "ویرایش نمایه",
"account.endorse": "نمایش در نمایه",
@@ -17,7 +16,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} منتقل شده است به:",
@@ -36,7 +35,6 @@
"account.unfollow": "پایان پیگیری",
"account.unmute": "باصدا کردن @{name}",
"account.unmute_notifications": "باصداکردن اعلانها از طرف @{name}",
- "account.view_full_profile": "نمایش نمایهٔ کامل",
"alert.unexpected.message": "خطای پیشبینینشدهای رخ داد.",
"alert.unexpected.title": "ای وای!",
"boost_modal.combo": "دکمهٔ {combo} را بزنید تا دیگر این را نبینید",
@@ -73,6 +71,10 @@
"compose_form.lock_disclaimer": "حساب شما {locked} نیست. هر کسی میتواند پیگیر شما شود و نوشتههای ویژهٔ پیگیران شما را ببیند.",
"compose_form.lock_disclaimer.lock": "قفل",
"compose_form.placeholder": "تازه چه خبر؟",
+ "compose_form.poll.add_option": "افزودن گزینه",
+ "compose_form.poll.duration": "مدت نظرسنجی",
+ "compose_form.poll.option_placeholder": "گزینهٔ {number}",
+ "compose_form.poll.remove_option": "حذف این گزینه",
"compose_form.publish": "بوق",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "این تصویر به عنوان حساس علامتگذاری شده",
@@ -81,6 +83,7 @@
"compose_form.spoiler.unmarked": "نوشته پنهان نیست",
"compose_form.spoiler_placeholder": "هشدار محتوا",
"confirmation_modal.cancel": "بیخیال",
+ "confirmations.block.block_and_report": "مسدودسازی و گزارش",
"confirmations.block.confirm": "مسدود کن",
"confirmations.block.message": "آیا واقعاً میخواهید {name} را مسدود کنید؟",
"confirmations.delete.confirm": "پاک کن",
@@ -113,7 +116,8 @@
"emoji_button.search_results": "نتایج جستجو",
"emoji_button.symbols": "نمادها",
"emoji_button.travel": "سفر و مکان",
- "empty_column.account_timeline": "No toots here!",
+ "empty_column.account_timeline": "هیچ بوقی اینجا نیست!",
+ "empty_column.account_unavailable": "نمایهٔ ناموجود",
"empty_column.blocks": "شما هنوز هیچ کسی را مسدود نکردهاید.",
"empty_column.community": "فهرست نوشتههای محلی خالی است. چیزی بنویسید تا چرخش بچرخد!",
"empty_column.direct": "شما هیچ پیغام مستقیمی ندارید. اگر چنین پیغامی بگیرید یا بفرستید اینجا نمایش خواهد یافت.",
@@ -128,7 +132,7 @@
"empty_column.lists": "شما هنوز هیچ فهرستی ندارید. اگر فهرستی بسازید، اینجا نمایش خواهد یافت.",
"empty_column.mutes": "شما هنوز هیچ کاربری را بیصدا نکردهاید.",
"empty_column.notifications": "هنوز هیچ اعلانی ندارید. به نوشتههای دیگران واکنش نشان دهید تا گفتگو آغاز شود.",
- "empty_column.public": "اینجا هنوز چیزی نیست! خودتان چیزی بنویسید یا کاربران دیگر را پی بگیرید تا اینجا پر شود",
+ "empty_column.public": "اینجا هنوز چیزی نیست! خودتان چیزی بنویسید یا کاربران سرورهای دیگر را پی بگیرید تا اینجا پر شود",
"federation.change": "Adjust status federation",
"federation.federated.long": "Allow toot to reach other instances",
"federation.federated.short": "Federated",
@@ -137,40 +141,45 @@
"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": "هیچ پیشنهادی پیدا نشد",
+ "hashtag.column_settings.select.placeholder": "برچسبها را وارد کنید…",
+ "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.",
+ "intervals.full.days": "{number, plural, one {# روز} other {# روز}}",
+ "intervals.full.hours": "{number, plural, one {# ساعت} other {# ساعت}}",
+ "intervals.full.minutes": "{number, plural, one {# دقیقه} other {# دقیقه}}",
+ "introduction.federation.action": "بعدی",
+ "introduction.federation.federated.headline": "فهرست همهٔ سرورها",
+ "introduction.federation.federated.text": "نوشتههای عمومی سرورهای دیگر در این فهرست نمایش مییابند.",
+ "introduction.federation.home.headline": "خانه",
+ "introduction.federation.home.text": "نوشتههای کسانی که شما آنها را پی میگیرید اینجا نمایش مییابند. شما میتوانید هر کسی را از هر سروری پی بگیرید!",
+ "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": "برای بازبوقیدن",
@@ -209,6 +218,7 @@
"lists.account.remove": "پاککردن از فهرست",
"lists.delete": "حذف فهرست",
"lists.edit": "ویرایش فهرست",
+ "lists.edit.submit": "تغییر عنوان",
"lists.new.create": "افزودن فهرست",
"lists.new.title_placeholder": "نام فهرست تازه",
"lists.search": "بین کسانی که پی میگیرید بگردید",
@@ -229,7 +239,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,26 +252,35 @@
"notification.favourite": "{name} نوشتهٔ شما را پسندید",
"notification.follow": "{name} پیگیر شما شد",
"notification.mention": "{name} از شما نام برد",
+ "notification.poll": "نظرسنجیای که در آن رأی دادید به پایان رسیده است",
"notification.reblog": "{name} نوشتهٔ شما را بازبوقید",
"notifications.clear": "پاککردن اعلانها",
"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.poll": "نتایج نظرسنجی:",
"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.filter.polls": "نتایج نظرسنجی",
"notifications.group": "{count} اعلان",
+ "poll.closed": "پایانیافته",
+ "poll.refresh": "بهروزرسانی",
+ "poll.total_votes": "{count, plural, one {# رأی} other {# رأی}}",
+ "poll.vote": "رأی",
+ "poll_button.add_poll": "افزودن نظرسنجی",
+ "poll_button.remove_poll": "حذف نظرسنجی",
"privacy.change": "تنظیم حریم خصوصی نوشتهها",
"privacy.direct.long": "تنها به کاربران نامبردهشده نشان بده",
"privacy.direct.short": "مستقیم",
@@ -296,12 +315,12 @@
"search_results.hashtags": "هشتگها",
"search_results.statuses": "بوقها",
"search_results.total": "{count, number} {count, plural, one {نتیجه} other {نتیجه}}",
- "standalone.public_title": "نگاهی به کاربران این سرور...",
- "status.admin_account": "Open moderation interface for @{name}",
- "status.admin_status": "Open this status in the moderation interface",
+ "status.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}",
@@ -334,22 +353,29 @@
"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": "محلی",
"tabs_bar.notifications": "اعلانها",
"tabs_bar.search": "جستجو",
+ "time_remaining.days": "{number, plural, one {# روز} other {# روز}} باقی مانده",
+ "time_remaining.hours": "{number, plural, one {# ساعت} other {# ساعت}} باقی مانده",
+ "time_remaining.minutes": "{number, plural, one {# دقیقه} other {# دقیقه}} باقی مانده",
+ "time_remaining.moments": "زمان باقیمانده",
+ "time_remaining.seconds": "{number, plural, one {# ثانیه} other {# ثانیه}} باقی مانده",
"trends.count_by_accounts": "{count} {rawCount, plural, one {نفر نوشته است} other {نفر نوشتهاند}}",
"ui.beforeunload": "اگر از ماستدون خارج شوید پیشنویس شما پاک خواهد شد.",
"upload_area.title": "برای بارگذاری به اینجا بکشید",
"upload_button.label": "افزودن عکس و ویدیو (JPEG, PNG, GIF, WebM, MP4, MOV)",
+ "upload_error.limit": "از حد مجاز باگذاری فراتر رفتید.",
+ "upload_error.poll": "باگذاری پرونده در نظرسنجیها ممکن نیست.",
"upload_form.description": "نوشتهٔ توضیحی برای کمبینایان و نابینایان",
- "upload_form.focus": "بریدن لبهها",
+ "upload_form.focus": "تغییر پیشنمایش",
"upload_form.undo": "حذف",
"upload_progress.label": "بارگذاری...",
"video.close": "بستن ویدیو",
diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json
index a49728cfe..76fe6f3f2 100644
--- a/app/javascript/mastodon/locales/fi.json
+++ b/app/javascript/mastodon/locales/fi.json
@@ -1,11 +1,10 @@
{
- "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}",
"account.blocked": "Estetty",
"account.direct": "Viesti käyttäjälle @{name}",
- "account.disclaimer_full": "Alla olevat käyttäjän profiilitiedot saattavat olla epätäydellisiä.",
"account.domain_blocked": "Verkko-osoite piilotettu",
"account.edit_profile": "Muokkaa",
"account.endorse": "Suosittele profiilissasi",
@@ -17,7 +16,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:",
@@ -36,7 +35,6 @@
"account.unfollow": "Lakkaa seuraamasta",
"account.unmute": "Poista käyttäjän @{name} mykistys",
"account.unmute_notifications": "Poista mykistys käyttäjän @{name} ilmoituksilta",
- "account.view_full_profile": "Näytä koko profiili",
"alert.unexpected.message": "Tapahtui odottamaton virhe.",
"alert.unexpected.title": "Hups!",
"boost_modal.combo": "Ensi kerralla voit ohittaa tämän painamalla {combo}",
@@ -73,6 +71,10 @@
"compose_form.lock_disclaimer": "Tilisi ei ole {locked}. Kuka tahansa voi seurata tiliäsi ja nähdä vain seuraajille rajaamasi julkaisut.",
"compose_form.lock_disclaimer.lock": "lukittu",
"compose_form.placeholder": "Mitä mietit?",
+ "compose_form.poll.add_option": "Add a choice",
+ "compose_form.poll.duration": "Poll duration",
+ "compose_form.poll.option_placeholder": "Choice {number}",
+ "compose_form.poll.remove_option": "Remove this choice",
"compose_form.publish": "Tuuttaa",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "Media on merkitty arkaluontoiseksi",
@@ -81,6 +83,7 @@
"compose_form.spoiler.unmarked": "Teksti ei ole piilotettu",
"compose_form.spoiler_placeholder": "Sisältövaroitus",
"confirmation_modal.cancel": "Peruuta",
+ "confirmations.block.block_and_report": "Block & Report",
"confirmations.block.confirm": "Estä",
"confirmations.block.message": "Haluatko varmasti estää käyttäjän {name}?",
"confirmations.delete.confirm": "Poista",
@@ -113,7 +116,8 @@
"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.account_unavailable": "Profile unavailable",
"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,7 +132,7 @@
"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ä",
"federation.change": "Adjust status federation",
"federation.federated.long": "Allow toot to reach other instances",
"federation.federated.short": "Federated",
@@ -137,24 +141,29 @@
"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",
+ "intervals.full.days": "{number, plural, one {# day} other {# days}}",
+ "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
+ "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
+ "introduction.federation.action": "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",
@@ -209,6 +218,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ä",
@@ -242,6 +252,7 @@
"notification.favourite": "{name} tykkäsi tilastasi",
"notification.follow": "{name} seurasi sinua",
"notification.mention": "{name} mainitsi sinut",
+ "notification.poll": "A poll you have voted in has ended",
"notification.reblog": "{name} buustasi tilaasi",
"notifications.clear": "Tyhjennä ilmoitukset",
"notifications.clear_confirmation": "Haluatko varmasti poistaa kaikki ilmoitukset pysyvästi?",
@@ -252,6 +263,7 @@
"notifications.column_settings.filter_bar.show": "Show",
"notifications.column_settings.follow": "Uudet seuraajat:",
"notifications.column_settings.mention": "Maininnat:",
+ "notifications.column_settings.poll": "Poll results:",
"notifications.column_settings.push": "Push-ilmoitukset",
"notifications.column_settings.reblog": "Buustit:",
"notifications.column_settings.show": "Näytä sarakkeessa",
@@ -261,7 +273,14 @@
"notifications.filter.favourites": "Favourites",
"notifications.filter.follows": "Follows",
"notifications.filter.mentions": "Mentions",
+ "notifications.filter.polls": "Poll results",
"notifications.group": "{count} notifications",
+ "poll.closed": "Closed",
+ "poll.refresh": "Refresh",
+ "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
+ "poll.vote": "Vote",
+ "poll_button.add_poll": "Add a poll",
+ "poll_button.remove_poll": "Remove poll",
"privacy.change": "Säädä tuuttauksen näkyvyyttä",
"privacy.direct.long": "Julkaise vain mainituille käyttäjille",
"privacy.direct.short": "Suora viesti",
@@ -296,12 +315,12 @@
"search_results.hashtags": "Hashtagit",
"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}",
@@ -344,10 +363,17 @@
"tabs_bar.local_timeline": "Paikallinen",
"tabs_bar.notifications": "Ilmoitukset",
"tabs_bar.search": "Hae",
+ "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
+ "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
+ "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
+ "time_remaining.moments": "Moments remaining",
+ "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
"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_error.poll": "File upload not allowed with polls.",
"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 649d495ed..d2e9b3da6 100644
--- a/app/javascript/mastodon/locales/fr.json
+++ b/app/javascript/mastodon/locales/fr.json
@@ -5,39 +5,37 @@
"account.block_domain": "Tout masquer venant de {domain}",
"account.blocked": "Bloqué",
"account.direct": "Envoyer un message direct à @{name}",
- "account.disclaimer_full": "Les données ci-dessous peuvent ne pas refléter ce profil dans sa totalité.",
"account.domain_blocked": "Domaine caché",
"account.edit_profile": "Modifier le profil",
"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.",
@@ -73,6 +71,10 @@
"compose_form.lock_disclaimer": "Votre compte n’est pas {locked}. Tout le monde peut vous suivre et voir vos pouets privés.",
"compose_form.lock_disclaimer.lock": "verrouillé",
"compose_form.placeholder": "Qu’avez-vous en tête ?",
+ "compose_form.poll.add_option": "Ajouter un choix",
+ "compose_form.poll.duration": "Durée du sondage",
+ "compose_form.poll.option_placeholder": "Choix {number}",
+ "compose_form.poll.remove_option": "Supprimer ce choix",
"compose_form.publish": "Pouet",
"compose_form.publish_loud": "{publish} !",
"compose_form.sensitive.marked": "Média marqué comme sensible",
@@ -81,12 +83,13 @@
"compose_form.spoiler.unmarked": "Le texte n’est pas caché",
"compose_form.spoiler_placeholder": "Écrivez ici votre avertissement",
"confirmation_modal.cancel": "Annuler",
+ "confirmations.block.block_and_report": "Block & Report",
"confirmations.block.confirm": "Bloquer",
"confirmations.block.message": "Confirmez-vous le blocage de {name} ?",
"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 +117,8 @@
"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.account_unavailable": "Profil non disponible",
+ "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,7 +130,7 @@
"empty_column.home.public_timeline": "le fil public",
"empty_column.list": "Il n’y a rien dans cette liste pour l’instant. Dès que des personnes de cette liste publieront de nouveaux statuts, ils apparaîtront ici.",
"empty_column.lists": "Vous n’avez pas encore de liste. Lorsque vous en créerez une, elle apparaîtra ici.",
- "empty_column.mutes": "Vous n’avez pas encore 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",
"federation.change": "Adjust status federation",
@@ -136,7 +140,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "Accepter",
"follow_request.reject": "Rejeter",
- "getting_started.developers": "Développeurs",
+ "getting_started.developers": "Développeur·euse·s",
"getting_started.directory": "Annuaire des profils",
"getting_started.documentation": "Documentation",
"getting_started.heading": "Pour commencer",
@@ -147,40 +151,45 @@
"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": "Aucune suggestion trouvée",
+ "hashtag.column_settings.select.placeholder": "Ajouter des hashtags…",
"hashtag.column_settings.tag_mode.all": "Tous ces éléments",
"hashtag.column_settings.tag_mode.any": "Au moins un de ces éléments",
"hashtag.column_settings.tag_mode.none": "Aucun de ces éléments",
- "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
+ "hashtag.column_settings.tag_toggle": "Inclure des tags additionnels dans cette colonne",
"home.column_settings.basic": "Basique",
"home.column_settings.show_reblogs": "Afficher les partages",
"home.column_settings.show_replies": "Afficher les réponses",
+ "intervals.full.days": "{number, plural, one {# jour} other {# jours}}",
+ "intervals.full.hours": "{number, plural, one {# heure} other {# heures}}",
+ "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
"introduction.federation.action": "Suivant",
- "introduction.federation.federated.headline": "Federated",
+ "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": "Home",
+ "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": "Local",
+ "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 à l'auteur que vous l'avez aimé, en le favorisant.",
+ "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 suiveurs en les repartageant.",
+ "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": "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",
+ "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",
@@ -189,7 +198,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",
@@ -200,7 +209,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",
@@ -209,6 +218,7 @@
"lists.account.remove": "Supprimer de la liste",
"lists.delete": "Effacer la liste",
"lists.edit": "Éditer la liste",
+ "lists.edit.submit": "Changer le titre",
"lists.new.create": "Ajouter une liste",
"lists.new.title_placeholder": "Titre de la nouvelle liste",
"lists.search": "Rechercher parmi les gens que vous suivez",
@@ -230,28 +240,30 @@
"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.poll": "Un sondage auquel vous avez participé vient de se terminer",
"notification.reblog": "{name} a partagé votre statut :",
"notifications.clear": "Nettoyer les notifications",
"notifications.clear_confirmation": "Voulez-vous vraiment supprimer toutes vos notifications ?",
"notifications.column_settings.alert": "Notifications locales",
"notifications.column_settings.favourite": "Favoris :",
"notifications.column_settings.filter_bar.advanced": "Afficher toutes les catégories",
- "notifications.column_settings.filter_bar.category": "Barre de recherche rapide",
+ "notifications.column_settings.filter_bar.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.poll": "Résultats du sondage :",
"notifications.column_settings.push": "Notifications",
"notifications.column_settings.reblog": "Partages :",
"notifications.column_settings.show": "Afficher dans la colonne",
@@ -259,9 +271,16 @@
"notifications.filter.all": "Tout",
"notifications.filter.boosts": "Repartages",
"notifications.filter.favourites": "Favoris",
- "notifications.filter.follows": "Suiveurs",
+ "notifications.filter.follows": "Abonné·e·s",
"notifications.filter.mentions": "Mentions",
+ "notifications.filter.polls": "Résultats des sondages",
"notifications.group": "{count} notifications",
+ "poll.closed": "Fermé",
+ "poll.refresh": "Actualiser",
+ "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
+ "poll.vote": "Voter",
+ "poll_button.add_poll": "Ajouter un sondage",
+ "poll_button.remove_poll": "Supprimer le sondage",
"privacy.change": "Ajuster la confidentialité du message",
"privacy.direct.long": "N’envoyer qu’aux personnes mentionnées",
"privacy.direct.short": "Direct",
@@ -281,7 +300,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",
@@ -296,12 +315,12 @@
"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.admin_account": "Ouvrir l'interface de modération pour @{name}",
"status.admin_status": "Ouvrir ce statut dans l'interface de modération",
- "status.block": "Block @{name}",
+ "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}",
@@ -311,7 +330,7 @@
"status.load_more": "Charger plus",
"status.local_only": "This post is only visible by other users of your instance",
"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",
@@ -334,20 +353,27 @@
"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",
"tabs_bar.notifications": "Notifications",
"tabs_bar.search": "Chercher",
+ "time_remaining.days": "{number, plural, one {# day} other {# days}} restants",
+ "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} restantes",
+ "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} restantes",
+ "time_remaining.moments": "Encore quelques instants",
+ "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} restantes",
"trends.count_by_accounts": "{count} {rawCount, plural, one {personne} other {personnes}} discutent",
"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_error.poll": "L'envoi de fichiers n'est pas autorisé avec les sondages.",
"upload_form.description": "Décrire pour les malvoyant·e·s",
"upload_form.focus": "Modifier l’aperçu",
"upload_form.undo": "Supprimer",
diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json
index 453043a0f..c787f2cbb 100644
--- a/app/javascript/mastodon/locales/gl.json
+++ b/app/javascript/mastodon/locales/gl.json
@@ -5,7 +5,6 @@
"account.block_domain": "Ocultar calquer contido de {domain}",
"account.blocked": "Bloqueada",
"account.direct": "Mensaxe directa @{name}",
- "account.disclaimer_full": "A información inferior podería mostrar un perfil incompleto da usuaria.",
"account.domain_blocked": "Dominio agochado",
"account.edit_profile": "Editar perfil",
"account.endorse": "Mostrado no perfil",
@@ -36,7 +35,6 @@
"account.unfollow": "Non seguir",
"account.unmute": "Non acalar @{name}",
"account.unmute_notifications": "Desbloquear as notificacións de @{name}",
- "account.view_full_profile": "Ver o perfil completo",
"alert.unexpected.message": "Aconteceu un fallo non agardado.",
"alert.unexpected.title": "Vaia!",
"boost_modal.combo": "Pulse {combo} para saltar esto a próxima vez",
@@ -73,6 +71,10 @@
"compose_form.lock_disclaimer": "A súa conta non está {locked}. Calquera pode seguila para ver as súas mensaxes só-para-seguidoras.",
"compose_form.lock_disclaimer.lock": "bloqueado",
"compose_form.placeholder": "Qué contas?",
+ "compose_form.poll.add_option": "Add a choice",
+ "compose_form.poll.duration": "Poll duration",
+ "compose_form.poll.option_placeholder": "Choice {number}",
+ "compose_form.poll.remove_option": "Remove this choice",
"compose_form.publish": "Toot",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "Medios marcados como sensibles",
@@ -81,6 +83,7 @@
"compose_form.spoiler.unmarked": "O texto non está agochado",
"compose_form.spoiler_placeholder": "Escriba o aviso aquí",
"confirmation_modal.cancel": "Cancelar",
+ "confirmations.block.block_and_report": "Block & Report",
"confirmations.block.confirm": "Bloquear",
"confirmations.block.message": "Está segura de querer bloquear a {name}?",
"confirmations.delete.confirm": "Borrar",
@@ -114,6 +117,7 @@
"emoji_button.symbols": "Símbolos",
"emoji_button.travel": "Viaxes e Lugares",
"empty_column.account_timeline": "Sen toots por aquí!",
+ "empty_column.account_unavailable": "Perfil non dispoñible",
"empty_column.blocks": "Non bloqueou ningunha usuaria polo de agora.",
"empty_column.community": "A liña temporal local está baldeira. Escriba algo de xeito público para que rule!",
"empty_column.direct": "Aínda non ten mensaxes directas. Cando envíe ou reciba unha, aparecerá aquí.",
@@ -128,7 +132,7 @@
"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",
"federation.change": "Adjust status federation",
"federation.federated.long": "Allow toot to reach other instances",
"federation.federated.short": "Federated",
@@ -147,13 +151,18 @@
"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",
- "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
+ "hashtag.column_settings.tag_toggle": "Incluír etiquetas adicionais para esta columna",
"home.column_settings.basic": "Básico",
"home.column_settings.show_reblogs": "Mostrar repeticións",
"home.column_settings.show_replies": "Mostrar respostas",
+ "intervals.full.days": "{number, plural, one {# day} other {# days}}",
+ "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
+ "intervals.full.minutes": "{number, plural, one {# minuto} other {# minutos}}",
"introduction.federation.action": "Seguinte",
"introduction.federation.federated.headline": "Federated",
"introduction.federation.federated.text": "Publicacións públicas desde outros servidores do fediverso aparecerán na liña temporal federada.",
@@ -165,7 +174,7 @@
"introduction.interactions.favourite.headline": "Favorito",
"introduction.interactions.favourite.text": "Pode gardar un toot para máis tarde, e facerlle saber a autora que lle gustou, dándolle a Favorito.",
"introduction.interactions.reblog.headline": "Promocionar",
- "introduction.interactions.reblog.text": "Pode compartir os toots de outra xente coas súas seguirodas promocionándoos.",
+ "introduction.interactions.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!",
@@ -209,6 +218,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",
@@ -229,7 +239,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,6 +252,7 @@
"notification.favourite": "{name} marcou como favorito o seu estado",
"notification.follow": "{name} está a seguila",
"notification.mention": "{name} mencionoute",
+ "notification.poll": "Unha sondaxe na que votou xa rematou",
"notification.reblog": "{name} promoveu o seu estado",
"notifications.clear": "Limpar notificacións",
"notifications.clear_confirmation": "Estás seguro de que queres limpar permanentemente todas as túas notificacións?",
@@ -252,6 +263,7 @@
"notifications.column_settings.filter_bar.show": "Mostrar",
"notifications.column_settings.follow": "Novos seguidores:",
"notifications.column_settings.mention": "Mencións:",
+ "notifications.column_settings.poll": "Resultados da sondaxe:",
"notifications.column_settings.push": "Enviar notificacións",
"notifications.column_settings.reblog": "Promocións:",
"notifications.column_settings.show": "Mostrar en columna",
@@ -261,7 +273,14 @@
"notifications.filter.favourites": "Favoritos",
"notifications.filter.follows": "Seguimentos",
"notifications.filter.mentions": "Mencións",
+ "notifications.filter.polls": "Resultados da sondaxe",
"notifications.group": "{count} notificacións",
+ "poll.closed": "Closed",
+ "poll.refresh": "Refresh",
+ "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
+ "poll.vote": "Votar",
+ "poll_button.add_poll": "Add a poll",
+ "poll_button.remove_poll": "Remove poll",
"privacy.change": "Axustar a intimidade do estado",
"privacy.direct.long": "Enviar exclusivamente as usuarias mencionadas",
"privacy.direct.short": "Directa",
@@ -281,7 +300,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}",
@@ -296,12 +315,12 @@
"search_results.hashtags": "Etiquetas",
"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}",
@@ -344,10 +363,17 @@
"tabs_bar.local_timeline": "Local",
"tabs_bar.notifications": "Notificacións",
"tabs_bar.search": "Buscar",
+ "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
+ "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
+ "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
+ "time_remaining.moments": "Moments remaining",
+ "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} outras {people}} conversando",
"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_error.poll": "File upload not allowed with polls.",
"upload_form.description": "Describa para deficientes visuais",
"upload_form.focus": "Cambiar vista previa",
"upload_form.undo": "Eliminar",
diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json
index 6108997bc..9c3254c72 100644
--- a/app/javascript/mastodon/locales/he.json
+++ b/app/javascript/mastodon/locales/he.json
@@ -5,7 +5,6 @@
"account.block_domain": "להסתיר הכל מהקהילה {domain}",
"account.blocked": "Blocked",
"account.direct": "Direct Message @{name}",
- "account.disclaimer_full": "המידע להלן עשוי להיות לא עדכני או לא שלם.",
"account.domain_blocked": "Domain hidden",
"account.edit_profile": "עריכת פרופיל",
"account.endorse": "Feature on profile",
@@ -36,7 +35,6 @@
"account.unfollow": "הפסקת מעקב",
"account.unmute": "הפסקת השתקת @{name}",
"account.unmute_notifications": "להפסיק הסתרת הודעות מעם @{name}",
- "account.view_full_profile": "הצגת פרופיל מלא",
"alert.unexpected.message": "אירעה שגיאה בלתי צפויה.",
"alert.unexpected.title": "אופס!",
"boost_modal.combo": "ניתן להקיש {combo} כדי לדלג בפעם הבאה",
@@ -73,6 +71,10 @@
"compose_form.lock_disclaimer": "חשבונך אינו {locked}. כל אחד יוכל לעקוב אחריך כדי לקרוא את הודעותיך המיועדות לעוקבים בלבד.",
"compose_form.lock_disclaimer.lock": "נעול",
"compose_form.placeholder": "מה עובר לך בראש?",
+ "compose_form.poll.add_option": "Add a choice",
+ "compose_form.poll.duration": "Poll duration",
+ "compose_form.poll.option_placeholder": "Choice {number}",
+ "compose_form.poll.remove_option": "Remove this choice",
"compose_form.publish": "ללחוש",
"compose_form.publish_loud": "לחצרץ!",
"compose_form.sensitive.marked": "Media is marked as sensitive",
@@ -81,6 +83,7 @@
"compose_form.spoiler.unmarked": "Text is not hidden",
"compose_form.spoiler_placeholder": "אזהרת תוכן",
"confirmation_modal.cancel": "ביטול",
+ "confirmations.block.block_and_report": "Block & Report",
"confirmations.block.confirm": "לחסום",
"confirmations.block.message": "לחסום את {name}?",
"confirmations.delete.confirm": "למחוק",
@@ -114,6 +117,7 @@
"emoji_button.symbols": "סמלים",
"emoji_button.travel": "טיולים ואתרים",
"empty_column.account_timeline": "No toots here!",
+ "empty_column.account_unavailable": "Profile unavailable",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "טור הסביבה ריק. יש לפרסם משהו כדי שדברים יתרחילו להתגלגל!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
@@ -147,6 +151,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",
@@ -154,6 +160,9 @@
"home.column_settings.basic": "למתחילים",
"home.column_settings.show_reblogs": "הצגת הדהודים",
"home.column_settings.show_replies": "הצגת תגובות",
+ "intervals.full.days": "{number, plural, one {# day} other {# days}}",
+ "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
+ "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
"introduction.federation.action": "Next",
"introduction.federation.federated.headline": "Federated",
"introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
@@ -209,6 +218,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",
@@ -242,6 +252,7 @@
"notification.favourite": "חצרוצך חובב על ידי {name}",
"notification.follow": "{name} במעקב אחרייך",
"notification.mention": "אוזכרת על ידי {name}",
+ "notification.poll": "A poll you have voted in has ended",
"notification.reblog": "חצרוצך הודהד על ידי {name}",
"notifications.clear": "הסרת התראות",
"notifications.clear_confirmation": "להסיר את כל ההתראות? בטוח?",
@@ -252,6 +263,7 @@
"notifications.column_settings.filter_bar.show": "Show",
"notifications.column_settings.follow": "עוקבים חדשים:",
"notifications.column_settings.mention": "פניות:",
+ "notifications.column_settings.poll": "Poll results:",
"notifications.column_settings.push": "הודעות בדחיפה",
"notifications.column_settings.reblog": "הדהודים:",
"notifications.column_settings.show": "הצגה בטור",
@@ -261,7 +273,14 @@
"notifications.filter.favourites": "Favourites",
"notifications.filter.follows": "Follows",
"notifications.filter.mentions": "Mentions",
+ "notifications.filter.polls": "Poll results",
"notifications.group": "{count} notifications",
+ "poll.closed": "Closed",
+ "poll.refresh": "Refresh",
+ "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
+ "poll.vote": "Vote",
+ "poll_button.add_poll": "Add a poll",
+ "poll_button.remove_poll": "Remove poll",
"privacy.change": "שינוי פרטיות ההודעה",
"privacy.direct.long": "הצג רק למי שהודעה זו פונה אליו",
"privacy.direct.short": "הודעה ישירה",
@@ -296,12 +315,12 @@
"search_results.hashtags": "Hashtags",
"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}",
@@ -344,10 +363,17 @@
"tabs_bar.local_timeline": "ציר זמן מקומי",
"tabs_bar.notifications": "התראות",
"tabs_bar.search": "Search",
+ "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
+ "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
+ "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
+ "time_remaining.moments": "Moments remaining",
+ "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
"ui.beforeunload": "הטיוטא תאבד אם תעזבו את מסטודון.",
"upload_area.title": "ניתן להעלות על ידי Drag & drop",
"upload_button.label": "הוספת מדיה",
+ "upload_error.limit": "File upload limit exceeded.",
+ "upload_error.poll": "File upload not allowed with polls.",
"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 7e589c4cc..df5cb5a56 100644
--- a/app/javascript/mastodon/locales/hr.json
+++ b/app/javascript/mastodon/locales/hr.json
@@ -5,7 +5,6 @@
"account.block_domain": "Sakrij sve sa {domain}",
"account.blocked": "Blocked",
"account.direct": "Direct Message @{name}",
- "account.disclaimer_full": "Ovaj korisnik je sa druge instance. Ovaj broj bi mogao biti veći.",
"account.domain_blocked": "Domain hidden",
"account.edit_profile": "Uredi profil",
"account.endorse": "Feature on profile",
@@ -36,7 +35,6 @@
"account.unfollow": "Prestani slijediti",
"account.unmute": "Poništi utišavanje @{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": "Možeš pritisnuti {combo} kako bi ovo preskočio sljedeći put",
@@ -73,6 +71,10 @@
"compose_form.lock_disclaimer": "Tvoj račun nije {locked}. Svatko te može slijediti kako bi vidio postove namijenjene samo tvojim sljedbenicima.",
"compose_form.lock_disclaimer.lock": "zaključan",
"compose_form.placeholder": "Što ti je na umu?",
+ "compose_form.poll.add_option": "Add a choice",
+ "compose_form.poll.duration": "Poll duration",
+ "compose_form.poll.option_placeholder": "Choice {number}",
+ "compose_form.poll.remove_option": "Remove this choice",
"compose_form.publish": "Toot",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "Media is marked as sensitive",
@@ -81,6 +83,7 @@
"compose_form.spoiler.unmarked": "Text is not hidden",
"compose_form.spoiler_placeholder": "Upozorenje o sadržaju",
"confirmation_modal.cancel": "Otkaži",
+ "confirmations.block.block_and_report": "Block & Report",
"confirmations.block.confirm": "Blokiraj",
"confirmations.block.message": "Želiš li sigurno blokirati {name}?",
"confirmations.delete.confirm": "Obriši",
@@ -114,6 +117,7 @@
"emoji_button.symbols": "Simboli",
"emoji_button.travel": "Putovanja & Mjesta",
"empty_column.account_timeline": "No toots here!",
+ "empty_column.account_unavailable": "Profile unavailable",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "Lokalni timeline je prazan. Napiši nešto javno kako bi pokrenuo stvari!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
@@ -147,6 +151,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",
@@ -154,6 +160,9 @@
"home.column_settings.basic": "Osnovno",
"home.column_settings.show_reblogs": "Pokaži boostove",
"home.column_settings.show_replies": "Pokaži odgovore",
+ "intervals.full.days": "{number, plural, one {# day} other {# days}}",
+ "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
+ "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
"introduction.federation.action": "Next",
"introduction.federation.federated.headline": "Federated",
"introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
@@ -209,6 +218,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",
@@ -242,6 +252,7 @@
"notification.favourite": "{name} je lajkao tvoj status",
"notification.follow": "{name} te sada slijedi",
"notification.mention": "{name} te je spomenuo",
+ "notification.poll": "A poll you have voted in has ended",
"notification.reblog": "{name} je podigao tvoj status",
"notifications.clear": "Očisti notifikacije",
"notifications.clear_confirmation": "Želiš li zaista obrisati sve svoje notifikacije?",
@@ -252,6 +263,7 @@
"notifications.column_settings.filter_bar.show": "Show",
"notifications.column_settings.follow": "Novi sljedbenici:",
"notifications.column_settings.mention": "Spominjanja:",
+ "notifications.column_settings.poll": "Poll results:",
"notifications.column_settings.push": "Push notifications",
"notifications.column_settings.reblog": "Boostovi:",
"notifications.column_settings.show": "Prikaži u stupcu",
@@ -261,7 +273,14 @@
"notifications.filter.favourites": "Favourites",
"notifications.filter.follows": "Follows",
"notifications.filter.mentions": "Mentions",
+ "notifications.filter.polls": "Poll results",
"notifications.group": "{count} notifications",
+ "poll.closed": "Closed",
+ "poll.refresh": "Refresh",
+ "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
+ "poll.vote": "Vote",
+ "poll_button.add_poll": "Add a poll",
+ "poll_button.remove_poll": "Remove poll",
"privacy.change": "Podesi status privatnosti",
"privacy.direct.long": "Prikaži samo spomenutim korisnicima",
"privacy.direct.short": "Direktno",
@@ -296,12 +315,12 @@
"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": "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}",
@@ -344,10 +363,17 @@
"tabs_bar.local_timeline": "Lokalno",
"tabs_bar.notifications": "Notifikacije",
"tabs_bar.search": "Search",
+ "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
+ "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
+ "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
+ "time_remaining.moments": "Moments remaining",
+ "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
"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_error.poll": "File upload not allowed with polls.",
"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 fe761d394..c7812cb7f 100644
--- a/app/javascript/mastodon/locales/hu.json
+++ b/app/javascript/mastodon/locales/hu.json
@@ -5,7 +5,6 @@
"account.block_domain": "Minden elrejtése innen: {domain}",
"account.blocked": "Blocked",
"account.direct": "Direct Message @{name}",
- "account.disclaimer_full": "Az alul található információk hiányosan mutathatják be a felhasználót.",
"account.domain_blocked": "Domain hidden",
"account.edit_profile": "Profil szerkesztése",
"account.endorse": "Feature on profile",
@@ -36,7 +35,6 @@
"account.unfollow": "Követés abbahagyása",
"account.unmute": "@{name} kinémítása",
"account.unmute_notifications": "@{name} értesítéseinek kinémítása",
- "account.view_full_profile": "Teljes profil megtekintése",
"alert.unexpected.message": "An unexpected error occurred.",
"alert.unexpected.title": "Oops!",
"boost_modal.combo": "Megnyomhatod {combo}, hogy átugord következő alkalommal",
@@ -73,6 +71,10 @@
"compose_form.lock_disclaimer": "Az ön fiókja nincs {locked}. Bárki követni tud, hogy megtekintse a kizárt követőknek szánt üzeneteid.",
"compose_form.lock_disclaimer.lock": "lezárva",
"compose_form.placeholder": "Mire gondolsz?",
+ "compose_form.poll.add_option": "Add a choice",
+ "compose_form.poll.duration": "Poll duration",
+ "compose_form.poll.option_placeholder": "Choice {number}",
+ "compose_form.poll.remove_option": "Remove this choice",
"compose_form.publish": "Tülk",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "Media is marked as sensitive",
@@ -81,6 +83,7 @@
"compose_form.spoiler.unmarked": "Text is not hidden",
"compose_form.spoiler_placeholder": "Figyelmeztetését írja ide",
"confirmation_modal.cancel": "Bezár",
+ "confirmations.block.block_and_report": "Block & Report",
"confirmations.block.confirm": "Letilt",
"confirmations.block.message": "Biztos benne, hogy le szeretné tiltani {name}?",
"confirmations.delete.confirm": "Töröl",
@@ -114,6 +117,7 @@
"emoji_button.symbols": "Szimbólumok",
"emoji_button.travel": "Utazás és Helyek",
"empty_column.account_timeline": "No toots here!",
+ "empty_column.account_unavailable": "Profile unavailable",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "A helyi idővonal üres. Írj egy publikus stástuszt, hogy elindítsd a labdát!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
@@ -147,6 +151,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",
@@ -154,6 +160,9 @@
"home.column_settings.basic": "Alap",
"home.column_settings.show_reblogs": "Ismétlések mutatása",
"home.column_settings.show_replies": "Válaszok mutatása",
+ "intervals.full.days": "{number, plural, one {# day} other {# days}}",
+ "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
+ "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
"introduction.federation.action": "Next",
"introduction.federation.federated.headline": "Federated",
"introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
@@ -209,6 +218,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",
@@ -242,6 +252,7 @@
"notification.favourite": "{name} kedvencnek jelölte az állapotod",
"notification.follow": "{name} követ téged",
"notification.mention": "{name} megemlített",
+ "notification.poll": "A poll you have voted in has ended",
"notification.reblog": "{name} rebloggolta az állapotod",
"notifications.clear": "Értesítések törlése",
"notifications.clear_confirmation": "Biztos benne, hogy véglegesen törölni akarja az összes értesítését?",
@@ -252,6 +263,7 @@
"notifications.column_settings.filter_bar.show": "Show",
"notifications.column_settings.follow": "Új követők:",
"notifications.column_settings.mention": "Megemítéseim:",
+ "notifications.column_settings.poll": "Poll results:",
"notifications.column_settings.push": "Push értesítések",
"notifications.column_settings.reblog": "Rebloggolások:",
"notifications.column_settings.show": "Oszlopban mutatás",
@@ -261,7 +273,14 @@
"notifications.filter.favourites": "Favourites",
"notifications.filter.follows": "Follows",
"notifications.filter.mentions": "Mentions",
+ "notifications.filter.polls": "Poll results",
"notifications.group": "{count} notifications",
+ "poll.closed": "Closed",
+ "poll.refresh": "Refresh",
+ "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
+ "poll.vote": "Vote",
+ "poll_button.add_poll": "Add a poll",
+ "poll_button.remove_poll": "Remove poll",
"privacy.change": "Státusz láthatóságának módosítása",
"privacy.direct.long": "Posztolás csak az említett felhasználóknak",
"privacy.direct.short": "Egyenesen",
@@ -296,12 +315,12 @@
"search_results.hashtags": "Hashtags",
"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}",
@@ -344,10 +363,17 @@
"tabs_bar.local_timeline": "Local",
"tabs_bar.notifications": "Értesítések",
"tabs_bar.search": "Search",
+ "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
+ "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
+ "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
+ "time_remaining.moments": "Moments remaining",
+ "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
"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_error.poll": "File upload not allowed with polls.",
"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 868b8bce1..ae87400c0 100644
--- a/app/javascript/mastodon/locales/hy.json
+++ b/app/javascript/mastodon/locales/hy.json
@@ -5,7 +5,6 @@
"account.block_domain": "Թաքցնել ամենը հետեւյալ տիրույթից՝ {domain}",
"account.blocked": "Blocked",
"account.direct": "Direct Message @{name}",
- "account.disclaimer_full": "Ներքոհիշյալը կարող է ոչ ամբողջությամբ արտացոլել օգտատիրոջ էջի տվյալները։",
"account.domain_blocked": "Domain hidden",
"account.edit_profile": "Խմբագրել անձնական էջը",
"account.endorse": "Feature on profile",
@@ -36,7 +35,6 @@
"account.unfollow": "Չհետեւել",
"account.unmute": "Ապալռեցնել @{name}֊ին",
"account.unmute_notifications": "Միացնել ծանուցումները @{name}֊ից",
- "account.view_full_profile": "Դիտել ամբողջական տարբերակը։",
"alert.unexpected.message": "An unexpected error occurred.",
"alert.unexpected.title": "Oops!",
"boost_modal.combo": "Կարող ես սեղմել {combo}՝ սա հաջորդ անգամ բաց թողնելու համար",
@@ -73,6 +71,10 @@
"compose_form.lock_disclaimer": "Քո հաշիվը {locked} չէ։ Յուրաքանչյուր ոք կարող է հետեւել քեզ եւ տեսնել միայն հետեւողների համար նախատեսված գրառումները։",
"compose_form.lock_disclaimer.lock": "փակ",
"compose_form.placeholder": "Ի՞նչ կա մտքիդ",
+ "compose_form.poll.add_option": "Add a choice",
+ "compose_form.poll.duration": "Poll duration",
+ "compose_form.poll.option_placeholder": "Choice {number}",
+ "compose_form.poll.remove_option": "Remove this choice",
"compose_form.publish": "Թթել",
"compose_form.publish_loud": "Թթե՜լ",
"compose_form.sensitive.marked": "Media is marked as sensitive",
@@ -81,6 +83,7 @@
"compose_form.spoiler.unmarked": "Text is not hidden",
"compose_form.spoiler_placeholder": "Գրիր նախազգուշացումդ այստեղ",
"confirmation_modal.cancel": "Չեղարկել",
+ "confirmations.block.block_and_report": "Block & Report",
"confirmations.block.confirm": "Արգելափակել",
"confirmations.block.message": "Վստա՞հ ես, որ ուզում ես արգելափակել {name}֊ին։",
"confirmations.delete.confirm": "Ջնջել",
@@ -114,6 +117,7 @@
"emoji_button.symbols": "Նշաններ",
"emoji_button.travel": "Ուղեւորություն եւ տեղանքներ",
"empty_column.account_timeline": "No toots here!",
+ "empty_column.account_unavailable": "Profile unavailable",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "Տեղական հոսքը դատա՛րկ է։ Հրապարակային մի բան գրիր շարժիչը խոդ տալու համար։",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
@@ -147,6 +151,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",
@@ -154,6 +160,9 @@
"home.column_settings.basic": "Հիմնական",
"home.column_settings.show_reblogs": "Ցուցադրել տարածածները",
"home.column_settings.show_replies": "Ցուցադրել պատասխանները",
+ "intervals.full.days": "{number, plural, one {# day} other {# days}}",
+ "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
+ "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
"introduction.federation.action": "Next",
"introduction.federation.federated.headline": "Federated",
"introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
@@ -209,6 +218,7 @@
"lists.account.remove": "Հանել ցանկից",
"lists.delete": "Ջնջել ցանկը",
"lists.edit": "Փոփոխել ցանկը",
+ "lists.edit.submit": "Change title",
"lists.new.create": "Ավելացնել ցանկ",
"lists.new.title_placeholder": "Նոր ցանկի վերնագիր",
"lists.search": "Փնտրել քո հետեւած մարդկանց մեջ",
@@ -242,6 +252,7 @@
"notification.favourite": "{name} հավանեց թութդ",
"notification.follow": "{name} սկսեց հետեւել քեզ",
"notification.mention": "{name} նշեց քեզ",
+ "notification.poll": "A poll you have voted in has ended",
"notification.reblog": "{name} տարածեց թութդ",
"notifications.clear": "Մաքրել ծանուցումները",
"notifications.clear_confirmation": "Վստա՞հ ես, որ ուզում ես մշտապես մաքրել քո բոլոր ծանուցումները։",
@@ -252,6 +263,7 @@
"notifications.column_settings.filter_bar.show": "Show",
"notifications.column_settings.follow": "Նոր հետեւողներ՝",
"notifications.column_settings.mention": "Նշումներ՝",
+ "notifications.column_settings.poll": "Poll results:",
"notifications.column_settings.push": "Հրելու ծանուցումներ",
"notifications.column_settings.reblog": "Տարածածներից՝",
"notifications.column_settings.show": "Ցուցադրել սյունում",
@@ -261,7 +273,14 @@
"notifications.filter.favourites": "Favourites",
"notifications.filter.follows": "Follows",
"notifications.filter.mentions": "Mentions",
+ "notifications.filter.polls": "Poll results",
"notifications.group": "{count} notifications",
+ "poll.closed": "Closed",
+ "poll.refresh": "Refresh",
+ "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
+ "poll.vote": "Vote",
+ "poll_button.add_poll": "Add a poll",
+ "poll_button.remove_poll": "Remove poll",
"privacy.change": "Կարգավորել թթի գաղտնիությունը",
"privacy.direct.long": "Թթել միայն նշված օգտատերերի համար",
"privacy.direct.short": "Հասցեագրված",
@@ -296,12 +315,12 @@
"search_results.hashtags": "Hashtags",
"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}",
@@ -344,10 +363,17 @@
"tabs_bar.local_timeline": "Տեղական",
"tabs_bar.notifications": "Ծանուցումներ",
"tabs_bar.search": "Search",
+ "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
+ "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
+ "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
+ "time_remaining.moments": "Moments remaining",
+ "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
"ui.beforeunload": "Քո սեւագիրը կկորի, եթե լքես Մաստոդոնը։",
"upload_area.title": "Քաշիր ու նետիր՝ վերբեռնելու համար",
"upload_button.label": "Ավելացնել մեդիա",
+ "upload_error.limit": "File upload limit exceeded.",
+ "upload_error.poll": "File upload not allowed with polls.",
"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 c2b4c8d6a..af3fb72c2 100644
--- a/app/javascript/mastodon/locales/id.json
+++ b/app/javascript/mastodon/locales/id.json
@@ -5,7 +5,6 @@
"account.block_domain": "Sembunyikan segalanya dari {domain}",
"account.blocked": "Terblokir",
"account.direct": "Direct Message @{name}",
- "account.disclaimer_full": "Informasi di bawah mungkin tidak mencerminkan profil user secara lengkap.",
"account.domain_blocked": "Domain disembunyikan",
"account.edit_profile": "Ubah profil",
"account.endorse": "Feature on profile",
@@ -36,7 +35,6 @@
"account.unfollow": "Berhenti mengikuti",
"account.unmute": "Berhenti membisukan @{name}",
"account.unmute_notifications": "Munculkan notifikasi dari @{name}",
- "account.view_full_profile": "Lihat profil lengkap",
"alert.unexpected.message": "An unexpected error occurred.",
"alert.unexpected.title": "Oops!",
"boost_modal.combo": "Anda dapat menekan {combo} untuk melewati ini",
@@ -73,6 +71,10 @@
"compose_form.lock_disclaimer": "Akun anda tidak {locked}. Semua orang dapat mengikuti anda untuk melihat postingan khusus untuk pengikut anda.",
"compose_form.lock_disclaimer.lock": "terkunci",
"compose_form.placeholder": "Apa yang ada di pikiran anda?",
+ "compose_form.poll.add_option": "Add a choice",
+ "compose_form.poll.duration": "Poll duration",
+ "compose_form.poll.option_placeholder": "Choice {number}",
+ "compose_form.poll.remove_option": "Remove this choice",
"compose_form.publish": "Toot",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "Sumber ini telah ditandai sebagai sumber sensitif.",
@@ -81,6 +83,7 @@
"compose_form.spoiler.unmarked": "Teks tidak tersembunyi",
"compose_form.spoiler_placeholder": "Peringatan konten",
"confirmation_modal.cancel": "Batal",
+ "confirmations.block.block_and_report": "Block & Report",
"confirmations.block.confirm": "Blokir",
"confirmations.block.message": "Apa anda yakin ingin memblokir {name}?",
"confirmations.delete.confirm": "Hapus",
@@ -114,6 +117,7 @@
"emoji_button.symbols": "Simbol",
"emoji_button.travel": "Tempat Wisata",
"empty_column.account_timeline": "No toots here!",
+ "empty_column.account_unavailable": "Profile unavailable",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "Linimasa lokal masih kosong. Tulis sesuatu secara publik dan buat roda berputar!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
@@ -147,6 +151,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",
@@ -154,6 +160,9 @@
"home.column_settings.basic": "Dasar",
"home.column_settings.show_reblogs": "Tampilkan boost",
"home.column_settings.show_replies": "Tampilkan balasan",
+ "intervals.full.days": "{number, plural, one {# day} other {# days}}",
+ "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
+ "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
"introduction.federation.action": "Next",
"introduction.federation.federated.headline": "Federated",
"introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
@@ -209,6 +218,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",
@@ -242,6 +252,7 @@
"notification.favourite": "{name} menyukai status anda",
"notification.follow": "{name} mengikuti anda",
"notification.mention": "{name} mentioned you",
+ "notification.poll": "A poll you have voted in has ended",
"notification.reblog": "{name} mem-boost status anda",
"notifications.clear": "Hapus notifikasi",
"notifications.clear_confirmation": "Apa anda yakin hendak menghapus semua notifikasi anda?",
@@ -252,6 +263,7 @@
"notifications.column_settings.filter_bar.show": "Show",
"notifications.column_settings.follow": "Pengikut baru:",
"notifications.column_settings.mention": "Balasan:",
+ "notifications.column_settings.poll": "Poll results:",
"notifications.column_settings.push": "Push notifications",
"notifications.column_settings.reblog": "Boost:",
"notifications.column_settings.show": "Tampilkan dalam kolom",
@@ -261,7 +273,14 @@
"notifications.filter.favourites": "Favourites",
"notifications.filter.follows": "Follows",
"notifications.filter.mentions": "Mentions",
+ "notifications.filter.polls": "Poll results",
"notifications.group": "{count} notifications",
+ "poll.closed": "Closed",
+ "poll.refresh": "Refresh",
+ "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
+ "poll.vote": "Vote",
+ "poll_button.add_poll": "Add a poll",
+ "poll_button.remove_poll": "Remove poll",
"privacy.change": "Tentukan privasi status",
"privacy.direct.long": "Kirim hanya ke pengguna yang disebut",
"privacy.direct.short": "Langsung",
@@ -296,12 +315,12 @@
"search_results.hashtags": "Hashtags",
"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}",
@@ -344,10 +363,17 @@
"tabs_bar.local_timeline": "Lokal",
"tabs_bar.notifications": "Notifikasi",
"tabs_bar.search": "Search",
+ "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
+ "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
+ "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
+ "time_remaining.moments": "Moments remaining",
+ "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
"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_error.poll": "File upload not allowed with polls.",
"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 c0c45cadc..d24470d00 100644
--- a/app/javascript/mastodon/locales/io.json
+++ b/app/javascript/mastodon/locales/io.json
@@ -5,7 +5,6 @@
"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": "Modifikar profilo",
"account.endorse": "Feature on profile",
@@ -36,7 +35,6 @@
"account.unfollow": "Ne plus sequar",
"account.unmute": "Ne plus celar @{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": "Tu povas presar sur {combo} por omisar co en la venonta foyo",
@@ -73,6 +71,10 @@
"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": "Quo esas en tua spirito?",
+ "compose_form.poll.add_option": "Add a choice",
+ "compose_form.poll.duration": "Poll duration",
+ "compose_form.poll.option_placeholder": "Choice {number}",
+ "compose_form.poll.remove_option": "Remove this choice",
"compose_form.publish": "Siflar",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "Media is marked as sensitive",
@@ -81,6 +83,7 @@
"compose_form.spoiler.unmarked": "Text is not hidden",
"compose_form.spoiler_placeholder": "Averto di kontenajo",
"confirmation_modal.cancel": "Cancel",
+ "confirmations.block.block_and_report": "Block & Report",
"confirmations.block.confirm": "Block",
"confirmations.block.message": "Are you sure you want to block {name}?",
"confirmations.delete.confirm": "Delete",
@@ -114,6 +117,7 @@
"emoji_button.symbols": "Symbols",
"emoji_button.travel": "Travel & Places",
"empty_column.account_timeline": "No toots here!",
+ "empty_column.account_unavailable": "Profile unavailable",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "La lokala tempolineo esas vakua. Skribez ulo publike por iniciar la agiveso!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
@@ -147,6 +151,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",
@@ -154,6 +160,9 @@
"home.column_settings.basic": "Simpla",
"home.column_settings.show_reblogs": "Montrar repeti",
"home.column_settings.show_replies": "Montrar respondi",
+ "intervals.full.days": "{number, plural, one {# day} other {# days}}",
+ "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
+ "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
"introduction.federation.action": "Next",
"introduction.federation.federated.headline": "Federated",
"introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
@@ -209,6 +218,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",
@@ -242,6 +252,7 @@
"notification.favourite": "{name} favorizis tua mesajo",
"notification.follow": "{name} sequeskis tu",
"notification.mention": "{name} mencionis tu",
+ "notification.poll": "A poll you have voted in has ended",
"notification.reblog": "{name} repetis tua mesajo",
"notifications.clear": "Efacar savigi",
"notifications.clear_confirmation": "Ka tu esas certa, ke tu volas efacar omna tua savigi?",
@@ -252,6 +263,7 @@
"notifications.column_settings.filter_bar.show": "Show",
"notifications.column_settings.follow": "Nova sequanti:",
"notifications.column_settings.mention": "Mencioni:",
+ "notifications.column_settings.poll": "Poll results:",
"notifications.column_settings.push": "Push notifications",
"notifications.column_settings.reblog": "Repeti:",
"notifications.column_settings.show": "Montrar en kolumno",
@@ -261,7 +273,14 @@
"notifications.filter.favourites": "Favourites",
"notifications.filter.follows": "Follows",
"notifications.filter.mentions": "Mentions",
+ "notifications.filter.polls": "Poll results",
"notifications.group": "{count} notifications",
+ "poll.closed": "Closed",
+ "poll.refresh": "Refresh",
+ "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
+ "poll.vote": "Vote",
+ "poll_button.add_poll": "Add a poll",
+ "poll_button.remove_poll": "Remove poll",
"privacy.change": "Aranjar privateso di mesaji",
"privacy.direct.long": "Sendar nur a mencionata uzeri",
"privacy.direct.short": "Direte",
@@ -296,12 +315,12 @@
"search_results.hashtags": "Hashtags",
"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}",
@@ -344,10 +363,17 @@
"tabs_bar.local_timeline": "Lokala",
"tabs_bar.notifications": "Savigi",
"tabs_bar.search": "Search",
+ "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
+ "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
+ "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
+ "time_remaining.moments": "Moments remaining",
+ "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
"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_error.poll": "File upload not allowed with polls.",
"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 177a87120..633331fad 100644
--- a/app/javascript/mastodon/locales/it.json
+++ b/app/javascript/mastodon/locales/it.json
@@ -5,7 +5,6 @@
"account.block_domain": "Nascondi tutto da {domain}",
"account.blocked": "Bloccato",
"account.direct": "Invia messaggio diretto a @{name}",
- "account.disclaimer_full": "Il profilo dell'utente mostrato qui sotto potrebbe essere incompleto.",
"account.domain_blocked": "Dominio nascosto",
"account.edit_profile": "Modifica profilo",
"account.endorse": "Metti in evidenza sul profilo",
@@ -36,7 +35,6 @@
"account.unfollow": "Non seguire",
"account.unmute": "Non silenziare @{name}",
"account.unmute_notifications": "Non silenziare più le notifiche da @{name}",
- "account.view_full_profile": "Vedi profilo completo",
"alert.unexpected.message": "Si è verificato un errore inatteso.",
"alert.unexpected.title": "Oops!",
"boost_modal.combo": "Puoi premere {combo} per saltare questo passaggio la prossima volta",
@@ -73,6 +71,10 @@
"compose_form.lock_disclaimer": "Il tuo account non è {bloccato}. Chiunque può decidere di seguirti per vedere i tuoi post per soli seguaci.",
"compose_form.lock_disclaimer.lock": "bloccato",
"compose_form.placeholder": "A cosa stai pensando?",
+ "compose_form.poll.add_option": "Add a choice",
+ "compose_form.poll.duration": "Poll duration",
+ "compose_form.poll.option_placeholder": "Choice {number}",
+ "compose_form.poll.remove_option": "Remove this choice",
"compose_form.publish": "Toot",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "Questo media è contrassegnato come sensibile",
@@ -81,6 +83,7 @@
"compose_form.spoiler.unmarked": "Il testo non è nascosto",
"compose_form.spoiler_placeholder": "Content warning",
"confirmation_modal.cancel": "Annulla",
+ "confirmations.block.block_and_report": "Block & Report",
"confirmations.block.confirm": "Blocca",
"confirmations.block.message": "Sei sicuro di voler bloccare {name}?",
"confirmations.delete.confirm": "Cancella",
@@ -114,6 +117,7 @@
"emoji_button.symbols": "Simboli",
"emoji_button.travel": "Viaggi e luoghi",
"empty_column.account_timeline": "Non ci sono toot qui!",
+ "empty_column.account_unavailable": "Profile unavailable",
"empty_column.blocks": "Non hai ancora bloccato nessun utente.",
"empty_column.community": "La timeline locale è vuota. Condividi qualcosa pubblicamente per dare inizio alla festa!",
"empty_column.direct": "Non hai ancora nessun messaggio diretto. Quando ne manderai o riceverai qualcuno, apparirà qui.",
@@ -147,6 +151,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": "Nessun suggerimento trovato",
+ "hashtag.column_settings.select.placeholder": "Inserisci hashtag…",
"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",
@@ -154,6 +160,9 @@
"home.column_settings.basic": "Semplice",
"home.column_settings.show_reblogs": "Mostra post condivisi",
"home.column_settings.show_replies": "Mostra risposte",
+ "intervals.full.days": "{number, plural, one {# day} other {# days}}",
+ "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
+ "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
"introduction.federation.action": "Avanti",
"introduction.federation.federated.headline": "Federated",
"introduction.federation.federated.text": "I post pubblici provenienti da altri server del fediverse saranno mostrati nella timeline federata.",
@@ -209,6 +218,7 @@
"lists.account.remove": "Togli dalla lista",
"lists.delete": "Delete list",
"lists.edit": "Modifica lista",
+ "lists.edit.submit": "Cambia titolo",
"lists.new.create": "Aggiungi lista",
"lists.new.title_placeholder": "Titolo della nuova lista",
"lists.search": "Cerca tra le persone che segui",
@@ -229,7 +239,7 @@
"navigation_bar.favourites": "Apprezzati",
"navigation_bar.filters": "Parole silenziate",
"navigation_bar.follow_requests": "Richieste di amicizia",
- "navigation_bar.info": "Informazioni estese",
+ "navigation_bar.info": "Informazioni su questo server",
"navigation_bar.keyboard_shortcuts": "Tasti di scelta rapida",
"navigation_bar.lists": "Liste",
"navigation_bar.logout": "Esci",
@@ -242,6 +252,7 @@
"notification.favourite": "{name} ha apprezzato il tuo post",
"notification.follow": "{name} ha iniziato a seguirti",
"notification.mention": "{name} ti ha menzionato",
+ "notification.poll": "A poll you have voted in has ended",
"notification.reblog": "{name} ha condiviso il tuo post",
"notifications.clear": "Cancella notifiche",
"notifications.clear_confirmation": "Vuoi davvero cancellare tutte le notifiche?",
@@ -252,6 +263,7 @@
"notifications.column_settings.filter_bar.show": "Mostra",
"notifications.column_settings.follow": "Nuovi seguaci:",
"notifications.column_settings.mention": "Menzioni:",
+ "notifications.column_settings.poll": "Poll results:",
"notifications.column_settings.push": "Notifiche push",
"notifications.column_settings.reblog": "Post condivisi:",
"notifications.column_settings.show": "Mostra in colonna",
@@ -261,7 +273,14 @@
"notifications.filter.favourites": "Apprezzati",
"notifications.filter.follows": "Seguaci",
"notifications.filter.mentions": "Menzioni",
+ "notifications.filter.polls": "Poll results",
"notifications.group": "{count} notifiche",
+ "poll.closed": "Chiuso",
+ "poll.refresh": "Aggiorna",
+ "poll.total_votes": "{count, plural, one {# voto} other {# voti}}",
+ "poll.vote": "Vota",
+ "poll_button.add_poll": "Add a poll",
+ "poll_button.remove_poll": "Remove poll",
"privacy.change": "Modifica privacy del post",
"privacy.direct.long": "Invia solo a utenti menzionati",
"privacy.direct.short": "Diretto",
@@ -281,7 +300,7 @@
"reply_indicator.cancel": "Annulla",
"report.forward": "Inoltra a {target}",
"report.forward_hint": "Questo account appartiene a un altro server. Mandare anche là una copia anonima del rapporto?",
- "report.hint": "La segnalazione sarà inviata ai moderatori della tua istanza. Di seguito, puoi fornire il motivo per il quale stai segnalando questo account:",
+ "report.hint": "La segnalazione sarà inviata ai moderatori del tuo server. Di seguito, puoi fornire il motivo per il quale stai segnalando questo account:",
"report.placeholder": "Commenti aggiuntivi",
"report.submit": "Invia",
"report.target": "Invio la segnalazione {target}",
@@ -296,12 +315,12 @@
"search_results.hashtags": "Hashtag",
"search_results.statuses": "Toot",
"search_results.total": "{count} {count, plural, one {risultato} other {risultati}}",
- "standalone.public_title": "Un'occhiata all'interno...",
- "status.admin_account": "Open moderation interface for @{name}",
- "status.admin_status": "Open this status in the moderation interface",
- "status.block": "Block @{name}",
+ "status.admin_account": "Apri interfaccia di moderazione per @{name}",
+ "status.admin_status": "Apri questo status nell'interfaccia di moderazione",
+ "status.block": "Blocca @{name}",
"status.cancel_reblog_private": "Annulla condivisione",
"status.cannot_reblog": "Questo post non può essere condiviso",
+ "status.copy": "Copia link allo status",
"status.delete": "Elimina",
"status.detailed_status": "Vista conversazione dettagliata",
"status.direct": "Messaggio diretto @{name}",
@@ -344,10 +363,17 @@
"tabs_bar.local_timeline": "Locale",
"tabs_bar.notifications": "Notifiche",
"tabs_bar.search": "Cerca",
+ "time_remaining.days": "{number, plural, one {# giorno} other {# giorni}} left",
+ "time_remaining.hours": "{number, plural, one {# ora} other {# ore}} left",
+ "time_remaining.minutes": "{number, plural, one {# minuto} other {# minuti}} left",
+ "time_remaining.moments": "Restano pochi istanti",
+ "time_remaining.seconds": "{number, plural, one {# secondo} other {# secondi}} left",
"trends.count_by_accounts": "{count} {rawCount, plural, one {persona ne sta} other {persone ne stanno}} parlando",
"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": "Limite al caricamento di file superato.",
+ "upload_error.poll": "File upload not allowed with polls.",
"upload_form.description": "Descrizione per utenti con disabilità visive",
"upload_form.focus": "Modifica anteprima",
"upload_form.undo": "Cancella",
diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json
index 8ca6507e3..1fdc9882e 100644
--- a/app/javascript/mastodon/locales/ja.json
+++ b/app/javascript/mastodon/locales/ja.json
@@ -1,13 +1,12 @@
{
- "account.add_or_remove_from_list": "リストに追加または外す",
+ "account.add_or_remove_from_list": "リストから追加または外す",
"account.badges.bot": "Bot",
"account.block": "@{name}さんをブロック",
"account.block_domain": "{domain}全体を非表示",
"account.blocked": "ブロック済み",
"account.direct": "@{name}さんにダイレクトメッセージ",
- "account.disclaimer_full": "以下の情報は不正確な可能性があります。",
"account.domain_blocked": "ドメイン非表示中",
- "account.edit_profile": "プロフィールを編集",
+ "account.edit_profile": "プロフィール編集",
"account.endorse": "プロフィールで紹介する",
"account.follow": "フォロー",
"account.followers": "フォロワー",
@@ -17,7 +16,7 @@
"account.follows_you": "フォローされています",
"account.hide_reblogs": "@{name}さんからのブーストを非表示",
"account.link_verified_on": "このリンクの所有権は{date}に確認されました",
- "account.locked_info": "このアカウントは承認制アカウントです。相手が確認するまでフォローは完了しません。",
+ "account.locked_info": "このアカウントは承認制アカウントです。相手が承認するまでフォローは完了しません。",
"account.media": "メディア",
"account.mention": "@{name}さんにトゥート",
"account.moved_to": "{name}さんは引っ越しました:",
@@ -31,12 +30,11 @@
"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}さんのミュートを解除",
"account.unmute_notifications": "@{name}さんからの通知を受け取るようにする",
- "account.view_full_profile": "全ての情報を見る",
"alert.unexpected.message": "不明なエラーが発生しました。",
"alert.unexpected.title": "エラー!",
"boost_modal.combo": "次からは{combo}を押せばスキップできます",
@@ -69,10 +67,14 @@
"community.column_settings.media_only": "メディアのみ表示",
"compose_form.direct_message_warning": "このトゥートはメンションされた人にのみ送信されます。",
"compose_form.direct_message_warning_learn_more": "もっと詳しく",
- "compose_form.hashtag_warning": "このトゥートは未収載なのでハッシュタグの一覧に表示されません。公開トゥートだけがハッシュタグで検索できます。",
+ "compose_form.hashtag_warning": "このトゥートは公開設定ではないのでハッシュタグの一覧に表示されません。公開トゥートだけがハッシュタグで検索できます。",
"compose_form.lock_disclaimer": "あなたのアカウントは{locked}になっていません。誰でもあなたをフォローすることができ、フォロワー限定の投稿を見ることができます。",
"compose_form.lock_disclaimer.lock": "承認制",
"compose_form.placeholder": "今なにしてる?",
+ "compose_form.poll.add_option": "追加",
+ "compose_form.poll.duration": "アンケート期間",
+ "compose_form.poll.option_placeholder": "項目 {number}",
+ "compose_form.poll.remove_option": "この項目を削除",
"compose_form.publish": "トゥート",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "メディアに閲覧注意が設定されています",
@@ -81,6 +83,7 @@
"compose_form.spoiler.unmarked": "閲覧注意が設定されていません",
"compose_form.spoiler_placeholder": "ここに警告を書いてください",
"confirmation_modal.cancel": "キャンセル",
+ "confirmations.block.block_and_report": "ブロックし通報",
"confirmations.block.confirm": "ブロック",
"confirmations.block.message": "本当に{name}さんをブロックしますか?",
"confirmations.delete.confirm": "削除",
@@ -114,6 +117,7 @@
"emoji_button.symbols": "記号",
"emoji_button.travel": "旅行と場所",
"empty_column.account_timeline": "トゥートがありません!",
+ "empty_column.account_unavailable": "プロフィールは利用できません",
"empty_column.blocks": "まだ誰もブロックしていません。",
"empty_column.community": "ローカルタイムラインはまだ使われていません。何か書いてみましょう!",
"empty_column.direct": "ダイレクトメッセージはまだありません。ダイレクトメッセージをやりとりすると、ここに表示されます。",
@@ -128,7 +132,7 @@
"empty_column.lists": "まだリストがありません。リストを作るとここに表示されます。",
"empty_column.mutes": "まだ誰もミュートしていません。",
"empty_column.notifications": "まだ通知がありません。他の人とふれ合って会話を始めましょう。",
- "empty_column.public": "ここにはまだ何もありません! 公開で何かを投稿したり、他のインスタンスのユーザーをフォローしたりしていっぱいにしましょう",
+ "empty_column.public": "ここにはまだ何もありません! 公開で何かを投稿したり、他のサーバーのユーザーをフォローしたりしていっぱいにしましょう",
"federation.change": "Adjust status federation",
"federation.federated.long": "Allow toot to reach other instances",
"federation.federated.short": "Federated",
@@ -147,6 +151,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": "提案はありません",
+ "hashtag.column_settings.select.placeholder": "ハッシュタグを入力してください…",
"hashtag.column_settings.tag_mode.all": "すべてを含む",
"hashtag.column_settings.tag_mode.any": "いずれかを含む",
"hashtag.column_settings.tag_mode.none": "これらを除く",
@@ -154,6 +160,9 @@
"home.column_settings.basic": "基本設定",
"home.column_settings.show_reblogs": "ブースト表示",
"home.column_settings.show_replies": "返信表示",
+ "intervals.full.days": "{number}日",
+ "intervals.full.hours": "{number}時間",
+ "intervals.full.minutes": "{number}分",
"introduction.federation.action": "次へ",
"introduction.federation.federated.headline": "連合タイムライン",
"introduction.federation.federated.text": "Fediverseの他のサーバーからの公開投稿は連合タイムラインに表示されます。",
@@ -170,7 +179,7 @@
"introduction.interactions.reply.text": "自身や人々のトゥートに返信することで、一連の会話に繋げることができます。",
"introduction.welcome.action": "はじめる!",
"introduction.welcome.headline": "はじめに",
- "introduction.welcome.text": "Fediverseの世界へようこそ!あと少しでメッセージを配信したり、さまざまなサーバーを越えた友達と話せるようになります。ところでここ{domain}は特別なサーバーです…あなたのプロフィールを持つ主体のサーバーですので、名前を覚えておきましょう。",
+ "introduction.welcome.text": "Fediverseの世界へようこそ!あと少しでメッセージを配信したり、さまざまなサーバーを越えた友達と話せるようになります。ところで、ここ{domain}は特別なサーバーです…あなたのプロフィールを持つ主体のサーバーですので、名前を覚えておきましょう。",
"keyboard_shortcuts.back": "戻る",
"keyboard_shortcuts.blocked": "ブロックしたユーザーのリストを開く",
"keyboard_shortcuts.boost": "ブースト",
@@ -209,6 +218,7 @@
"lists.account.remove": "リストから外す",
"lists.delete": "リストを削除",
"lists.edit": "リストを編集",
+ "lists.edit.submit": "タイトルを変更",
"lists.new.create": "リストを作成",
"lists.new.title_placeholder": "新規リスト名",
"lists.search": "フォローしている人の中から検索",
@@ -229,7 +239,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,6 +252,7 @@
"notification.favourite": "{name}さんがあなたのトゥートをお気に入りに登録しました",
"notification.follow": "{name}さんにフォローされました",
"notification.mention": "{name}さんがあなたに返信しました",
+ "notification.poll": "アンケートが終了しました",
"notification.reblog": "{name}さんがあなたのトゥートをブーストしました",
"notifications.clear": "通知を消去",
"notifications.clear_confirmation": "本当に通知を消去しますか?",
@@ -252,6 +263,7 @@
"notifications.column_settings.filter_bar.show": "表示",
"notifications.column_settings.follow": "新しいフォロワー:",
"notifications.column_settings.mention": "返信:",
+ "notifications.column_settings.poll": "アンケート結果:",
"notifications.column_settings.push": "プッシュ通知",
"notifications.column_settings.reblog": "ブースト:",
"notifications.column_settings.show": "カラムに表示",
@@ -261,7 +273,14 @@
"notifications.filter.favourites": "お気に入り",
"notifications.filter.follows": "フォロー",
"notifications.filter.mentions": "返信",
+ "notifications.filter.polls": "アンケート結果",
"notifications.group": "{count} 件の通知",
+ "poll.closed": "終了",
+ "poll.refresh": "更新",
+ "poll.total_votes": "{count}票",
+ "poll.vote": "投票",
+ "poll_button.add_poll": "アンケートを追加",
+ "poll_button.remove_poll": "アンケートを削除",
"privacy.change": "公開範囲を変更",
"privacy.direct.long": "メンションしたユーザーだけに公開",
"privacy.direct.short": "ダイレクト",
@@ -280,8 +299,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}さんを通報する",
@@ -296,12 +315,12 @@
"search_results.hashtags": "ハッシュタグ",
"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}さんにダイレクトメッセージ",
@@ -336,7 +355,7 @@
"status.show_more_all": "全て見る",
"status.show_thread": "スレッドを表示",
"status.unmute_conversation": "会話のミュートを解除",
- "status.unpin": "プロフィールの固定表示を解除",
+ "status.unpin": "プロフィールへの固定を解除",
"suggestions.dismiss": "隠す",
"suggestions.header": "興味あるかもしれません…",
"tabs_bar.federated_timeline": "連合",
@@ -344,12 +363,19 @@
"tabs_bar.local_timeline": "ローカル",
"tabs_bar.notifications": "通知",
"tabs_bar.search": "検索",
- "trends.count_by_accounts": "{count} {rawCount, plural, one {人} other {人}} がトゥート",
+ "time_remaining.days": "残り{number}日",
+ "time_remaining.hours": "残り{number}時間",
+ "time_remaining.minutes": "残り{number}分",
+ "time_remaining.moments": "まもなく終了",
+ "time_remaining.seconds": "残り{number}秒",
+ "trends.count_by_accounts": "{count}人がトゥート",
"ui.beforeunload": "Mastodonから離れると送信前の投稿は失われます。",
"upload_area.title": "ドラッグ&ドロップでアップロード",
"upload_button.label": "メディアを追加 (JPEG, PNG, GIF, WebM, MP4, MOV)",
+ "upload_error.limit": "アップロードできる上限を超えています。",
+ "upload_error.poll": "アンケートではファイルをアップロードできません。",
"upload_form.description": "視覚障害者のための説明",
- "upload_form.focus": "焦点",
+ "upload_form.focus": "プレビューを変更",
"upload_form.undo": "削除",
"upload_progress.label": "アップロード中...",
"video.close": "動画を閉じる",
diff --git a/app/javascript/mastodon/locales/ka.json b/app/javascript/mastodon/locales/ka.json
index 871cdcbc5..663997b84 100644
--- a/app/javascript/mastodon/locales/ka.json
+++ b/app/javascript/mastodon/locales/ka.json
@@ -5,7 +5,6 @@
"account.block_domain": "დაიმალოს ყველაფერი დომენიდან {domain}",
"account.blocked": "დაიბლოკა",
"account.direct": "პირდაპირი წერილი @{name}-ს",
- "account.disclaimer_full": "ქვემოთ მოცემულმა ინფორმაციამ შეიძლება სრულად არ ასახოს მომხმარებლის პროფილი.",
"account.domain_blocked": "დომენი დამალულია",
"account.edit_profile": "პროფილის ცვლილება",
"account.endorse": "გამორჩევა პროფილზე",
@@ -36,7 +35,6 @@
"account.unfollow": "ნუღარ მიჰყვები",
"account.unmute": "ნუღარ აჩუმებ @{name}-ს",
"account.unmute_notifications": "ნუღარ აჩუმებ შეტყობინებებს @{name}-სგან",
- "account.view_full_profile": "სრული პროფილის ჩვენება",
"alert.unexpected.message": "წარმოიშვა მოულოდნელი შეცდომა.",
"alert.unexpected.title": "უპს!",
"boost_modal.combo": "შეგიძლიათ დააჭიროთ {combo}-ს რათა შემდეგ ჯერზე გამოტოვოთ ეს",
@@ -73,6 +71,10 @@
"compose_form.lock_disclaimer": "თქვენი ანგარიში არაა {locked}. ნებისმიერს შეიძლია გამოგყვეთ, რომ იხილოს თქვენი მიმდევრებზე გათვლილი პოსტები.",
"compose_form.lock_disclaimer.lock": "ჩაკეტილი",
"compose_form.placeholder": "რაზე ფიქრობ?",
+ "compose_form.poll.add_option": "Add a choice",
+ "compose_form.poll.duration": "Poll duration",
+ "compose_form.poll.option_placeholder": "Choice {number}",
+ "compose_form.poll.remove_option": "Remove this choice",
"compose_form.publish": "ტუტი",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "მედია მონიშნულია მგრძნობიარედ",
@@ -81,6 +83,7 @@
"compose_form.spoiler.unmarked": "ტექსტი არაა დამალული",
"compose_form.spoiler_placeholder": "თქვენი გაფრთხილება დაწერეთ აქ",
"confirmation_modal.cancel": "უარყოფა",
+ "confirmations.block.block_and_report": "Block & Report",
"confirmations.block.confirm": "ბლოკი",
"confirmations.block.message": "დარწმუნებული ხართ, გსურთ დაბლოკოთ {name}?",
"confirmations.delete.confirm": "გაუქმება",
@@ -114,6 +117,7 @@
"emoji_button.symbols": "სიმბოლოები",
"emoji_button.travel": "მოგზაურობა და ადგილები",
"empty_column.account_timeline": "No toots here!",
+ "empty_column.account_unavailable": "Profile unavailable",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "ლოკალური თაიმლაინი ცარიელია. დაწერეთ რაიმე ღიად ან ქენით რაიმე სხვა!",
"empty_column.direct": "ჯერ პირდაპირი წერილები არ გაქვთ. როდესაც მიიღებთ ან გააგზავნით, გამოჩნდება აქ.",
@@ -147,6 +151,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",
@@ -154,6 +160,9 @@
"home.column_settings.basic": "ძირითადი",
"home.column_settings.show_reblogs": "ბუსტების ჩვენება",
"home.column_settings.show_replies": "პასუხების ჩვენება",
+ "intervals.full.days": "{number, plural, one {# day} other {# days}}",
+ "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
+ "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
"introduction.federation.action": "Next",
"introduction.federation.federated.headline": "Federated",
"introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
@@ -209,6 +218,7 @@
"lists.account.remove": "სიიდან ამოშლა",
"lists.delete": "სიის წაშლა",
"lists.edit": "სიის შეცვლა",
+ "lists.edit.submit": "Change title",
"lists.new.create": "სიის დამატება",
"lists.new.title_placeholder": "ახალი სიის სათაური",
"lists.search": "ძებნა ადამიანებს შორის რომელთაც მიჰყვებით",
@@ -242,6 +252,7 @@
"notification.favourite": "{name}-მა თქვენი სტატუსი აქცია ფავორიტად",
"notification.follow": "{name} გამოგყვათ",
"notification.mention": "{name}-მა გასახელათ",
+ "notification.poll": "A poll you have voted in has ended",
"notification.reblog": "{name}-მა დაბუსტა თქვენი სტატუსი",
"notifications.clear": "შეტყობინებების გასუფთავება",
"notifications.clear_confirmation": "დარწმუნებული ხართ, გსურთ სამუდამოდ წაშალოთ ყველა თქვენი შეტყობინება?",
@@ -252,6 +263,7 @@
"notifications.column_settings.filter_bar.show": "Show",
"notifications.column_settings.follow": "ახალი მიმდევრები:",
"notifications.column_settings.mention": "ხსენებები:",
+ "notifications.column_settings.poll": "Poll results:",
"notifications.column_settings.push": "ფუშ შეტყობინებები",
"notifications.column_settings.reblog": "ბუსტები:",
"notifications.column_settings.show": "გამოჩნდეს სვეტში",
@@ -261,7 +273,14 @@
"notifications.filter.favourites": "Favourites",
"notifications.filter.follows": "Follows",
"notifications.filter.mentions": "Mentions",
+ "notifications.filter.polls": "Poll results",
"notifications.group": "{count} შეტყობინება",
+ "poll.closed": "Closed",
+ "poll.refresh": "Refresh",
+ "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
+ "poll.vote": "Vote",
+ "poll_button.add_poll": "Add a poll",
+ "poll_button.remove_poll": "Remove poll",
"privacy.change": "სტატუსის კონფიდენციალურობის მითითება",
"privacy.direct.long": "დაიპოსტოს მხოლოდ დასახელებულ მომხმარებლებთან",
"privacy.direct.short": "პირდაპირი",
@@ -296,12 +315,12 @@
"search_results.hashtags": "ჰეშტეგები",
"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}-ს",
@@ -344,10 +363,17 @@
"tabs_bar.local_timeline": "ლოკალური",
"tabs_bar.notifications": "შეტყობინებები",
"tabs_bar.search": "ძებნა",
+ "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
+ "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
+ "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
+ "time_remaining.moments": "Moments remaining",
+ "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} საუბრობს",
"ui.beforeunload": "თქვენი დრაფტი გაუქმდება თუ დატოვებთ მასტოდონს.",
"upload_area.title": "გადმოწიეთ და ჩააგდეთ ასატვირთათ",
"upload_button.label": "მედიის დამატება",
+ "upload_error.limit": "File upload limit exceeded.",
+ "upload_error.poll": "File upload not allowed with polls.",
"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..ee7bf5d6e
--- /dev/null
+++ b/app/javascript/mastodon/locales/kk.json
@@ -0,0 +1,384 @@
+{
+ "account.add_or_remove_from_list": "Тізімге қосу немесе жою",
+ "account.badges.bot": "Бот",
+ "account.block": "Бұғаттау @{name}",
+ "account.block_domain": "Домендегі барлығын бұғатта {domain}",
+ "account.blocked": "Бұғатталды",
+ "account.direct": "Жеке хат @{name}",
+ "account.domain_blocked": "Домен жабық",
+ "account.edit_profile": "Профильді өңдеу",
+ "account.endorse": "Профильде рекомендеу",
+ "account.follow": "Жазылу",
+ "account.followers": "Оқырмандар",
+ "account.followers.empty": "Әлі ешкім жазылмаған.",
+ "account.follows": "Жазылғандары",
+ "account.follows.empty": "Ешкімге жазылмапты.",
+ "account.follows_you": "Сізге жазылыпты",
+ "account.hide_reblogs": "@{name} атты қолданушының әрекеттерін жасыру",
+ "account.link_verified_on": "Сілтеме меншігі расталған күн {date}",
+ "account.locked_info": "Бұл қолданушы өзі туралы мәліметтерді жасырған. Тек жазылғандар ғана көре алады.",
+ "account.media": "Медиа",
+ "account.mention": "Аталым @{name}",
+ "account.moved_to": "{name} көшіп кетті:",
+ "account.mute": "Үнсіз қылу @{name}",
+ "account.mute_notifications": "@{name} туралы ескертпелерді жасыру",
+ "account.muted": "Үнсіз",
+ "account.posts": "Жазбалар",
+ "account.posts_with_replies": "Жазбалар мен жауаптар",
+ "account.report": "Шағымдану @{name}",
+ "account.requested": "Растауын күтіңіз. Жазылудан бас тарту үшін басыңыз",
+ "account.share": "@{name} профилін бөлісу\"",
+ "account.show_reblogs": "@{name} бөліскендерін көрсету",
+ "account.unblock": "Бұғаттан шығару @{name}",
+ "account.unblock_domain": "Бұғаттан шығару {domain}",
+ "account.unendorse": "Профильде рекомендемеу",
+ "account.unfollow": "Оқымау",
+ "account.unmute": "@{name} ескертпелерін қосу",
+ "account.unmute_notifications": "@{name} ескертпелерін көрсету",
+ "alert.unexpected.message": "Бір нәрсе дұрыс болмады.",
+ "alert.unexpected.title": "Өй!",
+ "boost_modal.combo": "Келесіде өткізіп жіберу үшін басыңыз {combo}",
+ "bundle_column_error.body": "Бұл компонентті жүктеген кезде бір қате пайда болды.",
+ "bundle_column_error.retry": "Қайтадан көріңіз",
+ "bundle_column_error.title": "Желі қатесі",
+ "bundle_modal_error.close": "Жабу",
+ "bundle_modal_error.message": "Бұл компонентті жүктеген кезде бір қате пайда болды.",
+ "bundle_modal_error.retry": "Қайтадан көріңіз",
+ "column.blocks": "Бұғатталғандар",
+ "column.community": "Жергілікті желі",
+ "column.direct": "Жеке хаттар",
+ "column.domain_blocks": "Жасырылған домендер",
+ "column.favourites": "Таңдаулылар",
+ "column.follow_requests": "Жазылу сұранымдары",
+ "column.home": "Басты бет",
+ "column.lists": "Тізімдер",
+ "column.mutes": "Үнсіз қолданушылар",
+ "column.notifications": "Ескертпелер",
+ "column.pins": "Жабыстырылған жазбалар",
+ "column.public": "Жаһандық желі",
+ "column_back_button.label": "Артқа",
+ "column_header.hide_settings": "Баптауларды жасыр",
+ "column_header.moveLeft_settings": "Бағананы солға жылжыту",
+ "column_header.moveRight_settings": "Бағананы оңға жылжыту",
+ "column_header.pin": "Жабыстыру",
+ "column_header.show_settings": "Баптауларды көрсет",
+ "column_header.unpin": "Алып тастау",
+ "column_subheading.settings": "Баптаулар",
+ "community.column_settings.media_only": "Тек медиа",
+ "compose_form.direct_message_warning": "Тек аталған қолданушыларға.",
+ "compose_form.direct_message_warning_learn_more": "Көбірек білу",
+ "compose_form.hashtag_warning": "Бұл пост іздеуде хэштегпен шықпайды, өйткені ол бәріне ашық емес. Тек ашық жазбаларды ғана хэштег арқылы іздеп табуға болады.",
+ "compose_form.lock_disclaimer": "Аккаунтыңыз {locked} емес. Кез келген адам жазылып, сізді оқи алады.",
+ "compose_form.lock_disclaimer.lock": "жабық",
+ "compose_form.placeholder": "Не бөліскіңіз келеді?",
+ "compose_form.poll.add_option": "Жауап қос",
+ "compose_form.poll.duration": "Сауалнама мерзімі",
+ "compose_form.poll.option_placeholder": "Жауап {number}",
+ "compose_form.poll.remove_option": "Бұл жауапты өшір",
+ "compose_form.publish": "Түрт",
+ "compose_form.publish_loud": "{publish}!",
+ "compose_form.sensitive.marked": "Медиа нәзік деп белгіленген",
+ "compose_form.sensitive.unmarked": "Медиа нәзік деп белгіленбеген",
+ "compose_form.spoiler.marked": "Мәтін ескертумен жасырылған",
+ "compose_form.spoiler.unmarked": "Мәтін жасырылмаған",
+ "compose_form.spoiler_placeholder": "Ескертуіңізді осында жазыңыз",
+ "confirmation_modal.cancel": "Қайтып алу",
+ "confirmations.block.block_and_report": "Block & Report",
+ "confirmations.block.confirm": "Бұғаттау",
+ "confirmations.block.message": "{name} атты қолданушыны бұғаттайтыныңызға сенімдісіз бе?",
+ "confirmations.delete.confirm": "Өшіру",
+ "confirmations.delete.message": "Бұл жазбаны өшіресіз бе?",
+ "confirmations.delete_list.confirm": "Өшіру",
+ "confirmations.delete_list.message": "Бұл тізімді жоясыз ба шынымен?",
+ "confirmations.domain_block.confirm": "Бұл доменді бұғатта",
+ "confirmations.domain_block.message": "Бұл домендегі {domain} жазбаларды шынымен бұғаттайсыз ба? Кейде үнсіз қылып тастау да жеткілікті.",
+ "confirmations.mute.confirm": "Үнсіз қылу",
+ "confirmations.mute.message": "{name} атты қолданушы үнсіз болсын ба?",
+ "confirmations.redraft.confirm": "Өшіруді құптау",
+ "confirmations.redraft.message": "Бұл жазбаны өшіріп, нобайларға жібереміз бе? Барлық жауаптар мен лайктарды жоғалтасыз.",
+ "confirmations.reply.confirm": "Жауап",
+ "confirmations.reply.message": "Жауабыңыз жазып жатқан жазбаңыздың үстіне кетеді. Жалғастырамыз ба?",
+ "confirmations.unfollow.confirm": "Оқымау",
+ "confirmations.unfollow.message": "\"{name} атты қолданушыға енді жазылғыңыз келмей ме?",
+ "embed.instructions": "Төмендегі кодты көшіріп алу арқылы жазбаны басқа сайттарға да орналастыра аласыз.",
+ "embed.preview": "Былай көрінетін болады:",
+ "emoji_button.activity": "Белсенділік",
+ "emoji_button.custom": "Жеке",
+ "emoji_button.flags": "Тулар",
+ "emoji_button.food": "Тамақ",
+ "emoji_button.label": "Эмодзи қосу",
+ "emoji_button.nature": "Табиғат",
+ "emoji_button.not_found": "Эмодзи жоқ!! (╯°□°)╯︵ ┻━┻",
+ "emoji_button.objects": "Заттар",
+ "emoji_button.people": "Адамдар",
+ "emoji_button.recent": "Соңғы",
+ "emoji_button.search": "Іздеу...",
+ "emoji_button.search_results": "Іздеу нәтижелері",
+ "emoji_button.symbols": "Таңбалар",
+ "emoji_button.travel": "Саяхат",
+ "empty_column.account_timeline": "Жазба жоқ ешқандай!",
+ "empty_column.account_unavailable": "Profile unavailable",
+ "empty_column.blocks": "Ешкімді бұғаттамағансыз.",
+ "empty_column.community": "Жергілікті желі бос. Сіз бастап жазыңыз!",
+ "empty_column.direct": "Әзірше дым хат жоқ. Өзіңіз жазып көріңіз алдымен.",
+ "empty_column.domain_blocks": "Бұғатталған домен жоқ.",
+ "empty_column.favourited_statuses": "Ешқандай жазба 'Таңдаулылар' тізіміне қосылмапты. Қосылғаннан кейін осында жинала бастайды.",
+ "empty_column.favourites": "Бұл постты әлі ешкім 'Таңдаулылар' тізіміне қоспапты. Біреу бастағаннан кейін осында көрінетін болады.",
+ "empty_column.follow_requests": "Әлі ешқандай жазылуға сұранымдар келмеді. Жаңа сұранымдар осында көрінетін болады.",
+ "empty_column.hashtag": "Бұндай хэштегпен әлі ешкім жазбапты.",
+ "empty_column.home": "Әлі ешкімге жазылмапсыз. Бәлкім {public} жазбаларын қарап немесе іздеуді қолданып көрерсіз.",
+ "empty_column.home.public_timeline": "ашық желі",
+ "empty_column.list": "Бұл тізімде ештеңе жоқ.",
+ "empty_column.lists": "Әзірше ешқандай тізіміңіз жоқ. Біреуін құрғаннан кейін осы жерде көрінетін болады.",
+ "empty_column.mutes": "Әзірше ешқандай үнсізге қойылған қолданушы жоқ.",
+ "empty_column.notifications": "Әзірше ешқандай ескертпе жоқ. Басқалармен араласуды бастаңыз және пікірталастарға қатысыңыз.",
+ "empty_column.public": "Ештеңе жоқ бұл жерде! Өзіңіз бастап жазып көріңіз немесе басқаларға жазылыңыз",
+ "follow_request.authorize": "Авторизация",
+ "follow_request.reject": "Қабылдамау",
+ "getting_started.developers": "Жасаушылар тобы",
+ "getting_started.directory": "Профильдер каталогы",
+ "getting_started.documentation": "Құжаттама",
+ "getting_started.heading": "Желіде",
+ "getting_started.invite": "Адам шақыру",
+ "getting_started.open_source_notice": "Mastodon - ашық кодты құрылым. Түзету енгізу немесе ұсыныстарды GitHub арқылы жасаңыз {github}.",
+ "getting_started.security": "Қауіпсіздік",
+ "getting_started.terms": "Қызмет көрсету шарттары",
+ "hashtag.column_header.tag_mode.all": "және {additional}",
+ "hashtag.column_header.tag_mode.any": "немесе {additional}",
+ "hashtag.column_header.tag_mode.none": "{additional} болмай",
+ "hashtag.column_settings.select.no_options_message": "Ұсыныстар табылмады",
+ "hashtag.column_settings.select.placeholder": "Хэштег жазыңыз…",
+ "hashtag.column_settings.tag_mode.all": "Осының барлығын",
+ "hashtag.column_settings.tag_mode.any": "Осылардың біреуін",
+ "hashtag.column_settings.tag_mode.none": "Бұлардың ешқайсысын",
+ "hashtag.column_settings.tag_toggle": "Осы бағанға қосымша тегтерді қосыңыз",
+ "home.column_settings.basic": "Негізгі",
+ "home.column_settings.show_reblogs": "Бөлісулерді көрсету",
+ "home.column_settings.show_replies": "Жауаптарды көрсету",
+ "intervals.full.days": "{number, plural, one {# күн} other {# күн}}",
+ "intervals.full.hours": "{number, plural, one {# сағат} other {# сағат}}",
+ "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
+ "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": "жазба бөлісу",
+ "keyboard_shortcuts.column": "бағандардағы жазбаны оқу",
+ "keyboard_shortcuts.compose": "пост жазу",
+ "keyboard_shortcuts.description": "Сипаттама",
+ "keyboard_shortcuts.direct": "жеке хаттар бағаны",
+ "keyboard_shortcuts.down": "тізімде төмен түсу",
+ "keyboard_shortcuts.enter": "жазбаны ашу",
+ "keyboard_shortcuts.favourite": "таңдаулыға қосу",
+ "keyboard_shortcuts.favourites": "таңдаулылар тізімін ашу",
+ "keyboard_shortcuts.federated": "жаңандық желіні ашу",
+ "keyboard_shortcuts.heading": "Қысқа кодтар тақтасы",
+ "keyboard_shortcuts.home": "жергілікті жазбаларды қарау",
+ "keyboard_shortcuts.hotkey": "Ыстық пернелер",
+ "keyboard_shortcuts.legend": "осы мазмұнды көрсету",
+ "keyboard_shortcuts.local": "жергілікті желіні ашу",
+ "keyboard_shortcuts.mention": "авторды атап өту",
+ "keyboard_shortcuts.muted": "үнсіздер тізімін ашу",
+ "keyboard_shortcuts.my_profile": "профиліңізді ашу",
+ "keyboard_shortcuts.notifications": "ескертпелер бағанын ашу",
+ "keyboard_shortcuts.pinned": "жабыстырылған жазбаларды көру",
+ "keyboard_shortcuts.profile": "автор профилін қарау",
+ "keyboard_shortcuts.reply": "жауап жазу",
+ "keyboard_shortcuts.requests": "жазылу сұранымдарын қарау",
+ "keyboard_shortcuts.search": "іздеу",
+ "keyboard_shortcuts.start": "бастапқы бағанға бару",
+ "keyboard_shortcuts.toggle_hidden": "жабық мәтінді CW ашу/жабу",
+ "keyboard_shortcuts.toot": "жаңа жазба бастау",
+ "keyboard_shortcuts.unfocus": "жазба қалдыру алаңынан шығу",
+ "keyboard_shortcuts.up": "тізімде жоғары шығу",
+ "lightbox.close": "Жабу",
+ "lightbox.next": "Келесі",
+ "lightbox.previous": "Алдыңғы",
+ "lists.account.add": "Тізімге қосу",
+ "lists.account.remove": "Тізімнен шығару",
+ "lists.delete": "Тізімді өшіру",
+ "lists.edit": "Тізімді өңдеу",
+ "lists.edit.submit": "Тақырыбын өзгерту",
+ "lists.new.create": "Тізім құру",
+ "lists.new.title_placeholder": "Жаңа тізім аты",
+ "lists.search": "Сіз іздеген адамдар арасында іздеу",
+ "lists.subheading": "Тізімдеріңіз",
+ "loading_indicator.label": "Жүктеу...",
+ "media_gallery.toggle_visible": "Көрінуді қосу",
+ "missing_indicator.label": "Табылмады",
+ "missing_indicator.sublabel": "Бұл ресурс табылмады",
+ "mute_modal.hide_notifications": "Бұл қолданушы ескертпелерін жасырамыз ба?",
+ "navigation_bar.apps": "Мобиль қосымшалар",
+ "navigation_bar.blocks": "Бұғатталғандар",
+ "navigation_bar.community_timeline": "Жергілікті желі",
+ "navigation_bar.compose": "Жаңа жазба бастау",
+ "navigation_bar.direct": "Жеке хаттар",
+ "navigation_bar.discover": "шарлау",
+ "navigation_bar.domain_blocks": "Жабық домендер",
+ "navigation_bar.edit_profile": "Профиль түзету",
+ "navigation_bar.favourites": "Таңдаулылар",
+ "navigation_bar.filters": "Үнсіз сөздер",
+ "navigation_bar.follow_requests": "Жазылуға сұранғандар",
+ "navigation_bar.info": "Сервер туралы",
+ "navigation_bar.keyboard_shortcuts": "Ыстық пернелер",
+ "navigation_bar.lists": "Тізімдер",
+ "navigation_bar.logout": "Шығу",
+ "navigation_bar.mutes": "Үнсіз қолданушылар",
+ "navigation_bar.personal": "Жеке",
+ "navigation_bar.pins": "Жабыстырылғандар",
+ "navigation_bar.preferences": "Басымдықтар",
+ "navigation_bar.public_timeline": "Жаһандық желі",
+ "navigation_bar.security": "Қауіпсіздік",
+ "notification.favourite": "{name} жазбаңызды таңдаулыға қосты",
+ "notification.follow": "{name} сізге жазылды",
+ "notification.mention": "{name} сізді атап өтті",
+ "notification.poll": "Бұл сауалнаманың мерзімі аяқталыпты",
+ "notification.reblog": "{name} жазбаңызды бөлісті",
+ "notifications.clear": "Ескертпелерді тазарт",
+ "notifications.clear_confirmation": "Шынымен барлық ескертпелерді өшіресіз бе?",
+ "notifications.column_settings.alert": "Үстел ескертпелері",
+ "notifications.column_settings.favourite": "Таңдаулылар:",
+ "notifications.column_settings.filter_bar.advanced": "Барлық категорияны көрсет",
+ "notifications.column_settings.filter_bar.category": "Жедел сүзгі",
+ "notifications.column_settings.filter_bar.show": "Көрсету",
+ "notifications.column_settings.follow": "Жаңа оқырмандар:",
+ "notifications.column_settings.mention": "Аталымдар:",
+ "notifications.column_settings.poll": "Нәтижелері:",
+ "notifications.column_settings.push": "Push ескертпелер",
+ "notifications.column_settings.reblog": "Бөлісулер:",
+ "notifications.column_settings.show": "Бағанда көрсет",
+ "notifications.column_settings.sound": "Дыбысын қос",
+ "notifications.filter.all": "Барлығы",
+ "notifications.filter.boosts": "Бөлісулер",
+ "notifications.filter.favourites": "Таңдаулылар",
+ "notifications.filter.follows": "Жазылулар",
+ "notifications.filter.mentions": "Аталымдар",
+ "notifications.filter.polls": "Сауалнама нәтижелері",
+ "notifications.group": "{count} ескертпе",
+ "poll.closed": "Жабық",
+ "poll.refresh": "Жаңарту",
+ "poll.total_votes": "{count, plural, one {# дауыс} other {# дауыс}}",
+ "poll.vote": "Дауыс беру",
+ "poll_button.add_poll": "Сауалнама қосу",
+ "poll_button.remove_poll": "Сауалнаманы өшіру",
+ "privacy.change": "Құпиялылықты реттеу",
+ "privacy.direct.long": "Аталған адамдарға ғана көрінетін жазба",
+ "privacy.direct.short": "Тікелей",
+ "privacy.private.long": "Тек оқырмандарға арналған жазба",
+ "privacy.private.short": "Оқырмандарға ғана",
+ "privacy.public.long": "Ашық желіге жібер",
+ "privacy.public.short": "Ашық",
+ "privacy.unlisted.long": "Do not show in public timelines",
+ "privacy.unlisted.short": "Тізімсіз",
+ "regeneration_indicator.label": "Жүктеу…",
+ "regeneration_indicator.sublabel": "Жергілікті желі құрылуда!",
+ "relative_time.days": "{number}күн",
+ "relative_time.hours": "{number}сағ",
+ "relative_time.just_now": "жаңа",
+ "relative_time.minutes": "{number}мин",
+ "relative_time.seconds": "{number}s",
+ "reply_indicator.cancel": "Қайтып алу",
+ "report.forward": "Жіберу {target}",
+ "report.forward_hint": "Бұл аккаунт басқа серверден. Аноним шағым жібересіз бе?",
+ "report.hint": "Шағым сіздің модераторларға жіберіледі. Шағымның себептерін мына жерге жазуыңызға болады:",
+ "report.placeholder": "Қосымша пікірлер",
+ "report.submit": "Жіберу",
+ "report.target": "Шағымдану {target}",
+ "search.placeholder": "Іздеу",
+ "search_popout.search_format": "Кеңейтілген іздеу форматы",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, bоosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "хэштег",
+ "search_popout.tips.status": "статус",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames аnd hashtags",
+ "search_popout.tips.user": "қолданушы",
+ "search_results.accounts": "Адамдар",
+ "search_results.hashtags": "Хэштегтер",
+ "search_results.statuses": "Жазбалар",
+ "search_results.total": "{count, number} {count, plural, one {result} other {results}}",
+ "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}",
+ "status.embed": "Embеd",
+ "status.favourite": "Таңдаулы",
+ "status.filtered": "Фильтрленген",
+ "status.load_more": "Тағы әкел",
+ "status.media_hidden": "Жабық медиа",
+ "status.mention": "Аталым @{name}",
+ "status.more": "Тағы",
+ "status.mute": "Үнсіз @{name}",
+ "status.mute_conversation": "Пікірталасты үнсіз қылу",
+ "status.open": "Жазбаны ашу",
+ "status.pin": "Профильде жабыстыру",
+ "status.pinned": "Жабыстырылған жазба",
+ "status.read_more": "Әрі қарай",
+ "status.reblog": "Бөлісу",
+ "status.reblog_private": "Негізгі аудиторияға бөлісу",
+ "status.reblogged_by": "{name} бөлісті",
+ "status.reblogs.empty": "Бұл жазбаны әлі ешкім бөліспеді. Біреу бөліскен кезде осында көрінеді.",
+ "status.redraft": "Өшіру & қайта қарастыру",
+ "status.reply": "Жауап",
+ "status.replyAll": "Тақырыпқа жауап",
+ "status.report": "Шағым @{name}",
+ "status.sensitive_toggle": "Қарау үшін басыңыз",
+ "status.sensitive_warning": "Нәзік контент",
+ "status.share": "Бөлісу",
+ "status.show_less": "Аздап көрсет",
+ "status.show_less_all": "Бәрін аздап көрсет",
+ "status.show_more": "Толығырақ",
+ "status.show_more_all": "Бәрін толығымен",
+ "status.show_thread": "Желіні көрсет",
+ "status.unmute_conversation": "Пікірталасты үнсіз қылмау",
+ "status.unpin": "Профильден алып тастау",
+ "suggestions.dismiss": "Өткізіп жіберу",
+ "suggestions.header": "Қызығуыңыз мүмкін…",
+ "tabs_bar.federated_timeline": "Жаһандық",
+ "tabs_bar.home": "Басты бет",
+ "tabs_bar.local_timeline": "Жергілікті",
+ "tabs_bar.notifications": "Ескертпелер",
+ "tabs_bar.search": "Іздеу",
+ "time_remaining.days": "{number, plural, one {# күн} other {# күн}}",
+ "time_remaining.hours": "{number, plural, one {# сағат} other {# сағат}}",
+ "time_remaining.minutes": "{number, plural, one {# минут} other {# минут}}",
+ "time_remaining.moments": "Қалған уақыт",
+ "time_remaining.seconds": "{number, plural, one {# секунд} other {# секунд}}",
+ "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} жазған екен",
+ "ui.beforeunload": "Mastodon желісінен шықсаңыз, нобайыңыз сақталмайды.",
+ "upload_area.title": "Жүктеу үшін сүйреп әкеліңіз",
+ "upload_button.label": "Медиа қосу (JPEG, PNG, GIF, WebM, MP4, MOV)",
+ "upload_error.limit": "Файл жүктеу лимитінен асып кеттіңіз.",
+ "upload_error.poll": "Сауалнамамен бірге файл жүктеуге болмайды.",
+ "upload_form.description": "Көру қабілеті нашар адамдар үшін сипаттаңыз",
+ "upload_form.focus": "Превьюді өзгерту",
+ "upload_form.undo": "Өшіру",
+ "upload_progress.label": "Жүктеп жатыр...",
+ "video.close": "Видеоны жабу",
+ "video.exit_fullscreen": "Толық экраннан шық",
+ "video.expand": "Видеоны аш",
+ "video.fullscreen": "Толық экран",
+ "video.hide": "Видеоны жасыр",
+ "video.mute": "Дыбысын бас",
+ "video.pause": "Пауза",
+ "video.play": "Қосу",
+ "video.unmute": "Дауысын аш"
+}
diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json
index ff30adde4..d6514d904 100644
--- a/app/javascript/mastodon/locales/ko.json
+++ b/app/javascript/mastodon/locales/ko.json
@@ -5,7 +5,6 @@
"account.block_domain": "{domain} 전체를 숨김",
"account.blocked": "차단 됨",
"account.direct": "@{name}으로부터의 다이렉트 메시지",
- "account.disclaimer_full": "여기 있는 정보는 유저의 프로파일을 정확히 반영하지 못 할 수도 있습니다.",
"account.domain_blocked": "도메인 숨겨짐",
"account.edit_profile": "프로필 편집",
"account.endorse": "프로필에 나타내기",
@@ -36,7 +35,6 @@
"account.unfollow": "팔로우 해제",
"account.unmute": "뮤트 해제",
"account.unmute_notifications": "@{name}의 알림 뮤트 해제",
- "account.view_full_profile": "전체 프로필 보기",
"alert.unexpected.message": "예측하지 못한 에러가 발생했습니다.",
"alert.unexpected.title": "앗!",
"boost_modal.combo": "{combo}를 누르면 다음부터 이 과정을 건너뛸 수 있습니다",
@@ -73,6 +71,10 @@
"compose_form.lock_disclaimer": "이 계정은 {locked}로 설정 되어 있지 않습니다. 누구나 이 계정을 팔로우 할 수 있으며, 팔로워 공개의 포스팅을 볼 수 있습니다.",
"compose_form.lock_disclaimer.lock": "비공개",
"compose_form.placeholder": "지금 무엇을 하고 있나요?",
+ "compose_form.poll.add_option": "항목 추가",
+ "compose_form.poll.duration": "투표 기간",
+ "compose_form.poll.option_placeholder": "{number}번 항목",
+ "compose_form.poll.remove_option": "이 항목 삭제",
"compose_form.publish": "툿",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "미디어가 열람주의로 설정되어 있습니다",
@@ -81,6 +83,7 @@
"compose_form.spoiler.unmarked": "열람주의가 설정 되어 있지 않습니다",
"compose_form.spoiler_placeholder": "경고",
"confirmation_modal.cancel": "취소",
+ "confirmations.block.block_and_report": "차단하고 신고하기",
"confirmations.block.confirm": "차단",
"confirmations.block.message": "정말로 {name}를 차단하시겠습니까?",
"confirmations.delete.confirm": "삭제",
@@ -114,6 +117,7 @@
"emoji_button.symbols": "기호",
"emoji_button.travel": "여행과 장소",
"empty_column.account_timeline": "여긴 툿이 없어요!",
+ "empty_column.account_unavailable": "프로필 사용 불가",
"empty_column.blocks": "아직 아무도 차단하지 않았습니다.",
"empty_column.community": "로컬 타임라인에 아무 것도 없습니다. 아무거나 적어 보세요!",
"empty_column.direct": "아직 다이렉트 메시지가 없습니다. 다이렉트 메시지를 보내거나 받은 경우, 여기에 표시 됩니다.",
@@ -128,7 +132,7 @@
"empty_column.lists": "아직 리스트가 없습니다. 리스트를 만들면 여기에 나타납니다.",
"empty_column.mutes": "아직 아무도 뮤트하지 않았습니다.",
"empty_column.notifications": "아직 알림이 없습니다. 다른 사람과 대화를 시작해 보세요.",
- "empty_column.public": "여기엔 아직 아무 것도 없습니다! 공개적으로 무언가 포스팅하거나, 다른 인스턴스의 유저를 팔로우 해서 채워보세요",
+ "empty_column.public": "여기엔 아직 아무 것도 없습니다! 공개적으로 무언가 포스팅하거나, 다른 서버의 유저를 팔로우 해서 채워보세요",
"federation.change": "Adjust status federation",
"federation.federated.long": "Allow toot to reach other instances",
"federation.federated.short": "Federated",
@@ -147,19 +151,24 @@
"hashtag.column_header.tag_mode.all": "그리고 {additional}",
"hashtag.column_header.tag_mode.any": "또는 {additional}",
"hashtag.column_header.tag_mode.none": "({additional}를 제외)",
+ "hashtag.column_settings.select.no_options_message": "추천 할 내용이 없습니다",
+ "hashtag.column_settings.select.placeholder": "해시태그를 입력하세요…",
"hashtag.column_settings.tag_mode.all": "모두",
"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": "답글 표시",
+ "intervals.full.days": "{number} 일",
+ "intervals.full.hours": "{number} 시간",
+ "intervals.full.minutes": "{number} 분",
"introduction.federation.action": "다음",
- "introduction.federation.federated.headline": "Federated",
+ "introduction.federation.federated.headline": "연합",
"introduction.federation.federated.text": "페디버스의 다른 서버의 공개 게시물이 연합 타임라인에 나타납니다.",
- "introduction.federation.home.headline": "Home",
+ "introduction.federation.home.headline": "홈",
"introduction.federation.home.text": "당신이 팔로우 하고 있는 사람의 게시물이 홈 타임라인에 나타납니다. 어느 서버에 있는 사람이라도 팔로우가 가능합니다!",
- "introduction.federation.local.headline": "Local",
+ "introduction.federation.local.headline": "로컬",
"introduction.federation.local.text": "같은 서버에 있는 공개 게시물은 로컬 타임라인에 나타납니다.",
"introduction.interactions.action": "튜토리얼 마치기!",
"introduction.interactions.favourite.headline": "즐겨찾기",
@@ -209,6 +218,7 @@
"lists.account.remove": "리스트에서 제거",
"lists.delete": "리스트 삭제",
"lists.edit": "리스트 편집",
+ "lists.edit.submit": "제목 수정",
"lists.new.create": "리스트 추가",
"lists.new.title_placeholder": "새 리스트의 이름",
"lists.search": "팔로우 중인 사람들 중에서 찾기",
@@ -229,7 +239,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,6 +252,7 @@
"notification.favourite": "{name}님이 즐겨찾기 했습니다",
"notification.follow": "{name}님이 나를 팔로우 했습니다",
"notification.mention": "{name}님이 답글을 보냈습니다",
+ "notification.poll": "당신이 참여 한 투표가 종료되었습니다",
"notification.reblog": "{name}님이 부스트 했습니다",
"notifications.clear": "알림 지우기",
"notifications.clear_confirmation": "정말로 알림을 삭제하시겠습니까?",
@@ -252,6 +263,7 @@
"notifications.column_settings.filter_bar.show": "표시",
"notifications.column_settings.follow": "새 팔로워:",
"notifications.column_settings.mention": "답글:",
+ "notifications.column_settings.poll": "투표 결과:",
"notifications.column_settings.push": "푸시 알림",
"notifications.column_settings.reblog": "부스트:",
"notifications.column_settings.show": "컬럼에 표시",
@@ -261,7 +273,14 @@
"notifications.filter.favourites": "즐겨찾기",
"notifications.filter.follows": "팔로우",
"notifications.filter.mentions": "멘션",
+ "notifications.filter.polls": "투표 결과",
"notifications.group": "{count} 개의 알림",
+ "poll.closed": "마감됨",
+ "poll.refresh": "새로고침",
+ "poll.total_votes": "{count} 명 참여",
+ "poll.vote": "투표",
+ "poll_button.add_poll": "투표 추가",
+ "poll_button.remove_poll": "투표 삭제",
"privacy.change": "포스트의 프라이버시 설정을 변경",
"privacy.direct.long": "멘션한 사용자에게만 공개",
"privacy.direct.short": "다이렉트",
@@ -296,12 +315,12 @@
"search_results.hashtags": "해시태그",
"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}에게 다이렉트 메시지",
@@ -344,10 +363,17 @@
"tabs_bar.local_timeline": "로컬",
"tabs_bar.notifications": "알림",
"tabs_bar.search": "검색",
- "trends.count_by_accounts": "{count} {rawCount, plural, one {명} other {명}} 의 사람들이 말하고 있습니다",
+ "time_remaining.days": "{number} 일 남음",
+ "time_remaining.hours": "{number} 시간 남음",
+ "time_remaining.minutes": "{number} 분 남음",
+ "time_remaining.moments": "남은 시간",
+ "time_remaining.seconds": "{number} 초 남음",
+ "trends.count_by_accounts": "{count} 명의 사람들이 말하고 있습니다",
"ui.beforeunload": "지금 나가면 저장되지 않은 항목을 잃게 됩니다.",
"upload_area.title": "드래그 & 드롭으로 업로드",
"upload_button.label": "미디어 추가 (JPEG, PNG, GIF, WebM, MP4, MOV)",
+ "upload_error.limit": "파일 업로드 제한에 도달했습니다.",
+ "upload_error.poll": "파일 업로드는 투표와 함께 첨부할 수 없습니다.",
"upload_form.description": "시각장애인을 위한 설명",
"upload_form.focus": "미리보기 변경",
"upload_form.undo": "삭제",
diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json
index 70df09970..fc14c64a5 100644
--- a/app/javascript/mastodon/locales/lv.json
+++ b/app/javascript/mastodon/locales/lv.json
@@ -1,141 +1,145 @@
{
- "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",
+ "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.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}",
+ "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.poll.add_option": "Add a choice",
+ "compose_form.poll.duration": "Poll duration",
+ "compose_form.poll.option_placeholder": "Choice {number}",
+ "compose_form.poll.remove_option": "Remove this choice",
+ "compose_form.publish": "Publicēt",
"compose_form.publish_loud": "{publish}!",
- "compose_form.sensitive.marked": "Media is marked as sensitive",
- "compose_form.sensitive.unmarked": "Media is not marked as sensitive",
- "compose_form.spoiler.marked": "Text is hidden behind warning",
- "compose_form.spoiler.unmarked": "Text is not hidden",
- "compose_form.spoiler_placeholder": "Write your warning here",
- "confirmation_modal.cancel": "Cancel",
- "confirmations.block.confirm": "Block",
- "confirmations.block.message": "Are you sure you want to block {name}?",
- "confirmations.delete.confirm": "Delete",
- "confirmations.delete.message": "Are you sure you want to delete this status?",
- "confirmations.delete_list.confirm": "Delete",
- "confirmations.delete_list.message": "Are you sure you want to permanently delete this list?",
- "confirmations.domain_block.confirm": "Hide entire domain",
- "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.",
- "confirmations.mute.confirm": "Mute",
- "confirmations.mute.message": "Are you sure you want to mute {name}?",
- "confirmations.redraft.confirm": "Delete & redraft",
- "confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.",
- "confirmations.reply.confirm": "Reply",
- "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
- "confirmations.unfollow.confirm": "Unfollow",
- "confirmations.unfollow.message": "Are you sure you want to unfollow {name}?",
- "embed.instructions": "Embed this status on your website by copying the code below.",
- "embed.preview": "Here is what it will look like:",
- "emoji_button.activity": "Activity",
- "emoji_button.custom": "Custom",
- "emoji_button.flags": "Flags",
- "emoji_button.food": "Food & Drink",
- "emoji_button.label": "Insert emoji",
- "emoji_button.nature": "Nature",
- "emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
- "emoji_button.objects": "Objects",
- "emoji_button.people": "People",
- "emoji_button.recent": "Frequently used",
- "emoji_button.search": "Search...",
- "emoji_button.search_results": "Search results",
- "emoji_button.symbols": "Symbols",
- "emoji_button.travel": "Travel & Places",
- "empty_column.account_timeline": "No toots here!",
- "empty_column.blocks": "You haven't blocked any users yet.",
- "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
- "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
- "empty_column.domain_blocks": "There are no hidden domains yet.",
- "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
- "empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
- "empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
- "empty_column.hashtag": "There is nothing in this hashtag yet.",
- "empty_column.home": "Your home timeline is empty! Visit {public} or use search to get started and meet other users.",
- "empty_column.home.public_timeline": "the public timeline",
- "empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.",
- "empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
- "empty_column.mutes": "You haven't muted any users yet.",
- "empty_column.notifications": "You don't have any notifications yet. Interact with others to start the conversation.",
- "empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other instances to fill it up",
+ "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.block_and_report": "Block & Report",
+ "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.account_unavailable": "Profile unavailable",
+ "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",
"federation.change": "Adjust status federation",
"federation.federated.long": "Allow toot to reach other instances",
"federation.federated.short": "Federated",
"federation.local_only.long": "Restrict this toot only to my instance",
"federation.local_only.short": "Local-only",
- "follow_request.authorize": "Authorize",
- "follow_request.reject": "Reject",
+ "follow_request.authorize": "Autorizēt",
+ "follow_request.reject": "Noraidīt",
"getting_started.developers": "Developers",
"getting_started.directory": "Profile directory",
"getting_started.documentation": "Documentation",
@@ -147,6 +151,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",
@@ -154,6 +160,9 @@
"home.column_settings.basic": "Basic",
"home.column_settings.show_reblogs": "Show boosts",
"home.column_settings.show_replies": "Show replies",
+ "intervals.full.days": "{number, plural, one {# day} other {# days}}",
+ "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
+ "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
"introduction.federation.action": "Next",
"introduction.federation.federated.headline": "Federated",
"introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
@@ -209,6 +218,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",
@@ -242,6 +252,7 @@
"notification.favourite": "{name} favourited your status",
"notification.follow": "{name} followed you",
"notification.mention": "{name} mentioned you",
+ "notification.poll": "A poll you have voted in has ended",
"notification.reblog": "{name} boosted your status",
"notifications.clear": "Clear notifications",
"notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?",
@@ -252,6 +263,7 @@
"notifications.column_settings.filter_bar.show": "Show",
"notifications.column_settings.follow": "New followers:",
"notifications.column_settings.mention": "Mentions:",
+ "notifications.column_settings.poll": "Poll results:",
"notifications.column_settings.push": "Push notifications",
"notifications.column_settings.reblog": "Boosts:",
"notifications.column_settings.show": "Show in column",
@@ -261,7 +273,14 @@
"notifications.filter.favourites": "Favourites",
"notifications.filter.follows": "Follows",
"notifications.filter.mentions": "Mentions",
+ "notifications.filter.polls": "Poll results",
"notifications.group": "{count} notifications",
+ "poll.closed": "Closed",
+ "poll.refresh": "Refresh",
+ "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
+ "poll.vote": "Vote",
+ "poll_button.add_poll": "Add a poll",
+ "poll_button.remove_poll": "Remove poll",
"privacy.change": "Adjust status privacy",
"privacy.direct.long": "Post to mentioned users only",
"privacy.direct.short": "Direct",
@@ -296,12 +315,12 @@
"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}",
@@ -344,10 +363,17 @@
"tabs_bar.local_timeline": "Local",
"tabs_bar.notifications": "Notifications",
"tabs_bar.search": "Search",
+ "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
+ "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
+ "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
+ "time_remaining.moments": "Moments remaining",
+ "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
"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_error.poll": "File upload not allowed with polls.",
"upload_form.description": "Describe for the visually impaired",
"upload_form.focus": "Crop",
"upload_form.undo": "Delete",
diff --git a/app/javascript/mastodon/locales/ms.json b/app/javascript/mastodon/locales/ms.json
index 70df09970..301768013 100644
--- a/app/javascript/mastodon/locales/ms.json
+++ b/app/javascript/mastodon/locales/ms.json
@@ -5,7 +5,6 @@
"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",
@@ -36,7 +35,6 @@
"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",
@@ -73,6 +71,10 @@
"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.poll.add_option": "Add a choice",
+ "compose_form.poll.duration": "Poll duration",
+ "compose_form.poll.option_placeholder": "Choice {number}",
+ "compose_form.poll.remove_option": "Remove this choice",
"compose_form.publish": "Toot",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "Media is marked as sensitive",
@@ -81,6 +83,7 @@
"compose_form.spoiler.unmarked": "Text is not hidden",
"compose_form.spoiler_placeholder": "Write your warning here",
"confirmation_modal.cancel": "Cancel",
+ "confirmations.block.block_and_report": "Block & Report",
"confirmations.block.confirm": "Block",
"confirmations.block.message": "Are you sure you want to block {name}?",
"confirmations.delete.confirm": "Delete",
@@ -114,6 +117,7 @@
"emoji_button.symbols": "Symbols",
"emoji_button.travel": "Travel & Places",
"empty_column.account_timeline": "No toots here!",
+ "empty_column.account_unavailable": "Profile unavailable",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.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.",
@@ -147,6 +151,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",
@@ -154,6 +160,9 @@
"home.column_settings.basic": "Basic",
"home.column_settings.show_reblogs": "Show boosts",
"home.column_settings.show_replies": "Show replies",
+ "intervals.full.days": "{number, plural, one {# day} other {# days}}",
+ "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
+ "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
"introduction.federation.action": "Next",
"introduction.federation.federated.headline": "Federated",
"introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
@@ -209,6 +218,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",
@@ -242,6 +252,7 @@
"notification.favourite": "{name} favourited your status",
"notification.follow": "{name} followed you",
"notification.mention": "{name} mentioned you",
+ "notification.poll": "A poll you have voted in has ended",
"notification.reblog": "{name} boosted your status",
"notifications.clear": "Clear notifications",
"notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?",
@@ -252,6 +263,7 @@
"notifications.column_settings.filter_bar.show": "Show",
"notifications.column_settings.follow": "New followers:",
"notifications.column_settings.mention": "Mentions:",
+ "notifications.column_settings.poll": "Poll results:",
"notifications.column_settings.push": "Push notifications",
"notifications.column_settings.reblog": "Boosts:",
"notifications.column_settings.show": "Show in column",
@@ -261,7 +273,14 @@
"notifications.filter.favourites": "Favourites",
"notifications.filter.follows": "Follows",
"notifications.filter.mentions": "Mentions",
+ "notifications.filter.polls": "Poll results",
"notifications.group": "{count} notifications",
+ "poll.closed": "Closed",
+ "poll.refresh": "Refresh",
+ "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
+ "poll.vote": "Vote",
+ "poll_button.add_poll": "Add a poll",
+ "poll_button.remove_poll": "Remove poll",
"privacy.change": "Adjust status privacy",
"privacy.direct.long": "Post to mentioned users only",
"privacy.direct.short": "Direct",
@@ -296,12 +315,12 @@
"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}",
@@ -344,10 +363,17 @@
"tabs_bar.local_timeline": "Local",
"tabs_bar.notifications": "Notifications",
"tabs_bar.search": "Search",
+ "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
+ "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
+ "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
+ "time_remaining.moments": "Moments remaining",
+ "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
"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_error.poll": "File upload not allowed with polls.",
"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 7087df8e4..8d4d6abe3 100644
--- a/app/javascript/mastodon/locales/nl.json
+++ b/app/javascript/mastodon/locales/nl.json
@@ -5,7 +5,6 @@
"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.domain_blocked": "Domein verborgen",
"account.edit_profile": "Profiel bewerken",
"account.endorse": "Op profiel weergeven",
@@ -36,7 +35,6 @@
"account.unfollow": "Ontvolgen",
"account.unmute": "@{name} niet langer negeren",
"account.unmute_notifications": "@{name} meldingen niet langer negeren",
- "account.view_full_profile": "Volledig profiel tonen",
"alert.unexpected.message": "Er deed zich een onverwachte fout voor",
"alert.unexpected.title": "Oeps!",
"boost_modal.combo": "Je kunt {combo} klikken om dit de volgende keer over te slaan",
@@ -73,6 +71,10 @@
"compose_form.lock_disclaimer": "Jouw account is niet {locked}. Iedereen kan jou volgen en kan de toots zien die je alleen aan jouw volgers hebt gericht.",
"compose_form.lock_disclaimer.lock": "besloten",
"compose_form.placeholder": "Wat wil je kwijt?",
+ "compose_form.poll.add_option": "Keuze toevoegen",
+ "compose_form.poll.duration": "Duur van de poll",
+ "compose_form.poll.option_placeholder": "Keuze {number}",
+ "compose_form.poll.remove_option": "Deze keuze verwijderen",
"compose_form.publish": "Toot",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "Media is als gevoelig gemarkeerd",
@@ -81,6 +83,7 @@
"compose_form.spoiler.unmarked": "Tekst is niet verborgen",
"compose_form.spoiler_placeholder": "Waarschuwingstekst",
"confirmation_modal.cancel": "Annuleren",
+ "confirmations.block.block_and_report": "Blokkeren en rapporteren",
"confirmations.block.confirm": "Blokkeren",
"confirmations.block.message": "Weet je het zeker dat je {name} wilt blokkeren?",
"confirmations.delete.confirm": "Verwijderen",
@@ -94,7 +97,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.",
@@ -114,10 +117,11 @@
"emoji_button.symbols": "Symbolen",
"emoji_button.travel": "Reizen en plekken",
"empty_column.account_timeline": "Hier zijn geen toots!",
+ "empty_column.account_unavailable": "Profiel is niet beschikbaar",
"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.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.",
@@ -147,6 +151,8 @@
"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": "Geen voorstellen gevonden",
+ "hashtag.column_settings.select.placeholder": "Vul hashtags in…",
"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",
@@ -154,6 +160,9 @@
"home.column_settings.basic": "Algemeen",
"home.column_settings.show_reblogs": "Boosts tonen",
"home.column_settings.show_replies": "Reacties tonen",
+ "intervals.full.days": "{number, plural, one {# dag} other {# dagen}}",
+ "intervals.full.hours": "{number, plural, one {# uur} other {# uur}}",
+ "intervals.full.minutes": "{number, plural, one {# minuut} other {# minuten}}",
"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.",
@@ -209,6 +218,7 @@
"lists.account.remove": "Uit lijst verwijderen",
"lists.delete": "Lijst verwijderen",
"lists.edit": "Lijst bewerken",
+ "lists.edit.submit": "Titel veranderen",
"lists.new.create": "Lijst toevoegen",
"lists.new.title_placeholder": "Naam nieuwe lijst",
"lists.search": "Zoek naar mensen die je volgt",
@@ -224,7 +234,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",
@@ -242,6 +252,7 @@
"notification.favourite": "{name} voegde jouw toot als favoriet toe",
"notification.follow": "{name} volgt jou nu",
"notification.mention": "{name} vermeldde jou",
+ "notification.poll": "Een poll waaraan jij hebt meegedaan is beëindigd",
"notification.reblog": "{name} boostte jouw toot",
"notifications.clear": "Meldingen verwijderen",
"notifications.clear_confirmation": "Weet je het zeker dat je al jouw meldingen wilt verwijderen?",
@@ -252,6 +263,7 @@
"notifications.column_settings.filter_bar.show": "Tonen",
"notifications.column_settings.follow": "Nieuwe volgers:",
"notifications.column_settings.mention": "Vermeldingen:",
+ "notifications.column_settings.poll": "Pollresultaten:",
"notifications.column_settings.push": "Pushmeldingen",
"notifications.column_settings.reblog": "Boosts:",
"notifications.column_settings.show": "In kolom tonen",
@@ -261,7 +273,14 @@
"notifications.filter.favourites": "Favorieten",
"notifications.filter.follows": "Die jij volgt",
"notifications.filter.mentions": "Vermeldingen",
+ "notifications.filter.polls": "Pollresultaten",
"notifications.group": "{count} meldingen",
+ "poll.closed": "Gesloten",
+ "poll.refresh": "Vernieuwen",
+ "poll.total_votes": "{count, plural, one {# stem} other {# stemmen}}",
+ "poll.vote": "Stemmen",
+ "poll_button.add_poll": "Poll toevoegen",
+ "poll_button.remove_poll": "Poll verwijderen",
"privacy.change": "Zichtbaarheid toot aanpassen",
"privacy.direct.long": "Alleen aan vermelde gebruikers tonen",
"privacy.direct.short": "Direct",
@@ -296,12 +315,12 @@
"search_results.hashtags": "Hashtags",
"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}",
@@ -344,10 +363,17 @@
"tabs_bar.local_timeline": "Lokaal",
"tabs_bar.notifications": "Meldingen",
"tabs_bar.search": "Zoeken",
+ "time_remaining.days": "{number, plural, one {# dag} other {# dagen}} left",
+ "time_remaining.hours": "{number, plural, one {# uur} other {# uur}} left",
+ "time_remaining.minutes": "{number, plural, one {# minuut} other {# minuten}} left",
+ "time_remaining.moments": "Nog enkele ogenblikken resterend",
+ "time_remaining.seconds": "{number, plural, one {# seconde} other {# seconden}} left",
"trends.count_by_accounts": "{count} {rawCount, plural, one {persoon praat} other {mensen praten}} hierover",
"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_error.poll": "Het uploaden van bestanden is in polls niet toegestaan.",
"upload_form.description": "Omschrijf dit voor mensen met een visuele beperking",
"upload_form.focus": "Voorvertoning aanpassen",
"upload_form.undo": "Verwijderen",
diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json
index 61c03c87d..4af65f2a3 100644
--- a/app/javascript/mastodon/locales/no.json
+++ b/app/javascript/mastodon/locales/no.json
@@ -5,7 +5,6 @@
"account.block_domain": "Skjul alt fra {domain}",
"account.blocked": "Blocked",
"account.direct": "Direct Message @{name}",
- "account.disclaimer_full": "Informasjonen nedenfor kan gi et ufullstendig bilde av brukerens profil.",
"account.domain_blocked": "Domain hidden",
"account.edit_profile": "Rediger profil",
"account.endorse": "Feature on profile",
@@ -36,7 +35,6 @@
"account.unfollow": "Avfølg",
"account.unmute": "Avdemp @{name}",
"account.unmute_notifications": "Vis varsler fra @{name}",
- "account.view_full_profile": "Vis hele profilen",
"alert.unexpected.message": "An unexpected error occurred.",
"alert.unexpected.title": "Oops!",
"boost_modal.combo": "You kan trykke {combo} for å hoppe over dette neste gang",
@@ -73,6 +71,10 @@
"compose_form.lock_disclaimer": "Din konto er ikke {locked}. Hvem som helst kan følge deg og se dine private poster.",
"compose_form.lock_disclaimer.lock": "låst",
"compose_form.placeholder": "Hva har du på hjertet?",
+ "compose_form.poll.add_option": "Add a choice",
+ "compose_form.poll.duration": "Poll duration",
+ "compose_form.poll.option_placeholder": "Choice {number}",
+ "compose_form.poll.remove_option": "Remove this choice",
"compose_form.publish": "Tut",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "Media is marked as sensitive",
@@ -81,6 +83,7 @@
"compose_form.spoiler.unmarked": "Text is not hidden",
"compose_form.spoiler_placeholder": "Innholdsadvarsel",
"confirmation_modal.cancel": "Avbryt",
+ "confirmations.block.block_and_report": "Block & Report",
"confirmations.block.confirm": "Blokkèr",
"confirmations.block.message": "Er du sikker på at du vil blokkere {name}?",
"confirmations.delete.confirm": "Slett",
@@ -114,6 +117,7 @@
"emoji_button.symbols": "Symboler",
"emoji_button.travel": "Reise & steder",
"empty_column.account_timeline": "No toots here!",
+ "empty_column.account_unavailable": "Profile unavailable",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "Den lokale tidslinjen er tom. Skriv noe offentlig for å få snøballen til å rulle!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
@@ -147,6 +151,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",
@@ -154,6 +160,9 @@
"home.column_settings.basic": "Enkel",
"home.column_settings.show_reblogs": "Vis fremhevinger",
"home.column_settings.show_replies": "Vis svar",
+ "intervals.full.days": "{number, plural, one {# day} other {# days}}",
+ "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
+ "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
"introduction.federation.action": "Next",
"introduction.federation.federated.headline": "Federated",
"introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
@@ -209,6 +218,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",
@@ -242,6 +252,7 @@
"notification.favourite": "{name} likte din status",
"notification.follow": "{name} fulgte deg",
"notification.mention": "{name} nevnte deg",
+ "notification.poll": "A poll you have voted in has ended",
"notification.reblog": "{name} fremhevde din status",
"notifications.clear": "Fjern varsler",
"notifications.clear_confirmation": "Er du sikker på at du vil fjerne alle dine varsler permanent?",
@@ -252,6 +263,7 @@
"notifications.column_settings.filter_bar.show": "Show",
"notifications.column_settings.follow": "Nye følgere:",
"notifications.column_settings.mention": "Nevnt:",
+ "notifications.column_settings.poll": "Poll results:",
"notifications.column_settings.push": "Push varsler",
"notifications.column_settings.reblog": "Fremhevet:",
"notifications.column_settings.show": "Vis i kolonne",
@@ -261,7 +273,14 @@
"notifications.filter.favourites": "Favourites",
"notifications.filter.follows": "Follows",
"notifications.filter.mentions": "Mentions",
+ "notifications.filter.polls": "Poll results",
"notifications.group": "{count} notifications",
+ "poll.closed": "Closed",
+ "poll.refresh": "Refresh",
+ "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
+ "poll.vote": "Vote",
+ "poll_button.add_poll": "Add a poll",
+ "poll_button.remove_poll": "Remove poll",
"privacy.change": "Justér synlighet",
"privacy.direct.long": "Post kun til nevnte brukere",
"privacy.direct.short": "Direkte",
@@ -296,12 +315,12 @@
"search_results.hashtags": "Hashtags",
"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}",
@@ -344,10 +363,17 @@
"tabs_bar.local_timeline": "Lokal",
"tabs_bar.notifications": "Varslinger",
"tabs_bar.search": "Search",
+ "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
+ "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
+ "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
+ "time_remaining.moments": "Moments remaining",
+ "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
"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_error.poll": "File upload not allowed with polls.",
"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 d8bbc50fa..98471100b 100644
--- a/app/javascript/mastodon/locales/oc.json
+++ b/app/javascript/mastodon/locales/oc.json
@@ -5,7 +5,6 @@
"account.block_domain": "Tot amagar del domeni {domain}",
"account.blocked": "Blocat",
"account.direct": "Escriure un MP a @{name}",
- "account.disclaimer_full": "Aquelas informacions de perfil pòdon èsser incomplètas.",
"account.domain_blocked": "Domeni amagat",
"account.edit_profile": "Modificar lo perfil",
"account.endorse": "Mostrar pel perfil",
@@ -36,7 +35,6 @@
"account.unfollow": "Quitar de sègre",
"account.unmute": "Quitar de rescondre @{name}",
"account.unmute_notifications": "Mostrar las notificacions de @{name}",
- "account.view_full_profile": "Veire lo perfil complèt",
"alert.unexpected.message": "Una error s’es producha.",
"alert.unexpected.title": "Ops !",
"boost_modal.combo": "Podètz botar {combo} per passar aquò lo còp que ven",
@@ -73,6 +71,10 @@
"compose_form.lock_disclaimer": "Vòstre compte es pas {locked}. Tot lo monde pòt vos sègre e veire los estatuts reservats als seguidors.",
"compose_form.lock_disclaimer.lock": "clavat",
"compose_form.placeholder": "A de qué pensatz ?",
+ "compose_form.poll.add_option": "Ajustar una causida",
+ "compose_form.poll.duration": "Durada del sondatge",
+ "compose_form.poll.option_placeholder": "Opcion {number}",
+ "compose_form.poll.remove_option": "Levar aquesta opcion",
"compose_form.publish": "Tut",
"compose_form.publish_loud": "{publish} !",
"compose_form.sensitive.marked": "Lo mèdia es marcat coma sensible",
@@ -81,6 +83,7 @@
"compose_form.spoiler.unmarked": "Lo tèxte es pas rescondut",
"compose_form.spoiler_placeholder": "Escrivètz l’avertiment aquí",
"confirmation_modal.cancel": "Anullar",
+ "confirmations.block.block_and_report": "Blocar e senhalar",
"confirmations.block.confirm": "Blocar",
"confirmations.block.message": "Volètz vertadièrament blocar {name} ?",
"confirmations.delete.confirm": "Escafar",
@@ -114,6 +117,7 @@
"emoji_button.symbols": "Simbòls",
"emoji_button.travel": "Viatges & lòcs",
"empty_column.account_timeline": "Cap de tuts aquí !",
+ "empty_column.account_unavailable": "Perfil pas disponible",
"empty_column.blocks": "Avètz pas blocat degun pel moment.",
"empty_column.community": "Lo flux public local es void. Escrivètz quicòm per lo garnir !",
"empty_column.direct": "Avètz pas encara cap de messatges. Quand ne mandatz un o que ne recebètz un, serà mostrat aquí.",
@@ -128,7 +132,7 @@
"empty_column.lists": "Encara avètz pas cap de lista. Quand ne creetz una, apareisserà aquí.",
"empty_column.mutes": "Encara avètz pas mes en silenci degun.",
"empty_column.notifications": "Avètz pas encara de notificacions. Respondètz a qualqu’un per començar una conversacion.",
- "empty_column.public": "I a pas res aquí ! Escrivètz quicòm de public, o seguètz de personas d’autras instàncias per garnir lo flux public",
+ "empty_column.public": "I a pas res aquí ! Escrivètz quicòm de public, o seguètz de personas d’autres servidors per garnir lo flux public",
"federation.change": "Adjust status federation",
"federation.federated.long": "Allow toot to reach other instances",
"federation.federated.short": "Federated",
@@ -147,6 +151,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": "Cap de suggestion pas trobada",
+ "hashtag.column_settings.select.placeholder": "Picatz d’etiquetas…",
"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",
@@ -154,6 +160,9 @@
"home.column_settings.basic": "Basic",
"home.column_settings.show_reblogs": "Mostrar los partatges",
"home.column_settings.show_replies": "Mostrar las responsas",
+ "intervals.full.days": "{number, plural, one {# jorn} other {# jorns}}",
+ "intervals.full.hours": "{number, plural, one {# ora} other {# oras}}",
+ "intervals.full.minutes": "{number, plural, one {# minuta} other {# minutas}}",
"introduction.federation.action": "Seguent",
"introduction.federation.federated.headline": "Federat",
"introduction.federation.federated.text": "Los tuts publics d’autres servidors del fediverse apareisseràn dins lo flux d’actualitats.",
@@ -209,6 +218,7 @@
"lists.account.remove": "Levar de la lista",
"lists.delete": "Suprimir la lista",
"lists.edit": "Modificar la lista",
+ "lists.edit.submit": "Cambiar lo títol",
"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",
@@ -229,7 +239,7 @@
"navigation_bar.favourites": "Favorits",
"navigation_bar.filters": "Mots ignorats",
"navigation_bar.follow_requests": "Demandas d’abonament",
- "navigation_bar.info": "Mai informacions",
+ "navigation_bar.info": "Tocant aqueste servidor",
"navigation_bar.keyboard_shortcuts": "Acorchis clavièr",
"navigation_bar.lists": "Listas",
"navigation_bar.logout": "Desconnexion",
@@ -242,6 +252,7 @@
"notification.favourite": "{name} a ajustat a sos favorits",
"notification.follow": "{name} vos sèc",
"notification.mention": "{name} vos a mencionat",
+ "notification.poll": "Avètz participat a un sondatge que ven de s’acabar",
"notification.reblog": "{name} a partejat vòstre estatut",
"notifications.clear": "Escafar",
"notifications.clear_confirmation": "Volètz vertadièrament escafar totas vòstras las notificacions ?",
@@ -252,16 +263,24 @@
"notifications.column_settings.filter_bar.show": "Mostrar",
"notifications.column_settings.follow": "Nòus seguidors :",
"notifications.column_settings.mention": "Mencions :",
+ "notifications.column_settings.poll": "Resultats del sondatge :",
"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",
"notifications.filter.mentions": "Mencions",
+ "notifications.filter.polls": "Resultats del sondatge",
"notifications.group": "{count} notificacions",
+ "poll.closed": "Tampat",
+ "poll.refresh": "Actualizar",
+ "poll.total_votes": "{count, plural, one {# vòte} other {# vòtes}}",
+ "poll.vote": "Votar",
+ "poll_button.add_poll": "Ajustar un sondatge",
+ "poll_button.remove_poll": "Levar lo sondatge",
"privacy.change": "Ajustar la confidencialitat del messatge",
"privacy.direct.long": "Mostrar pas qu’a las personas mencionadas",
"privacy.direct.short": "Dirècte",
@@ -281,7 +300,7 @@
"reply_indicator.cancel": "Anullar",
"report.forward": "Far sègre a {target}",
"report.forward_hint": "Lo compte ven d’un autre servidor. Volètz mandar una còpia anonima del rapòrt enlai tanben ?",
- "report.hint": "Lo moderator de l’instància aurà lo rapòrt. Podètz fornir una explicacion de vòstre senhalament aquí dejós :",
+ "report.hint": "Lo moderator del servidor aurà lo rapòrt. Podètz fornir una explicacion de vòstre senhalament aquí dejós :",
"report.placeholder": "Comentaris addicionals",
"report.submit": "Mandar",
"report.target": "Senhalar {target}",
@@ -296,12 +315,12 @@
"search_results.hashtags": "Etiquetas",
"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": "Copiar lo ligam de l’estatut",
"status.delete": "Escafar",
"status.detailed_status": "Vista detalhada de la convèrsa",
"status.direct": "Messatge per @{name}",
@@ -344,10 +363,17 @@
"tabs_bar.local_timeline": "Flux public local",
"tabs_bar.notifications": "Notificacions",
"tabs_bar.search": "Recèrcas",
+ "time_remaining.days": "demòra{number, plural, one { # jorn} other {n # jorns}}",
+ "time_remaining.hours": "demòra{number, plural, one { # ora} other {n # oras}}",
+ "time_remaining.minutes": "demòra{number, plural, one { # minuta} other {n # minutas}}",
+ "time_remaining.moments": "Moments restants",
+ "time_remaining.seconds": "demòra{number, plural, one { # segonda} other {n # segondas}}",
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} ne charra other {people}} ne charran",
"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": "Talha maximum pels mandadís subrepassada.",
+ "upload_error.poll": "Lo mandadís de fichièr es pas autorizat pels sondatges.",
"upload_form.description": "Descripcion pels mal vesents",
"upload_form.focus": "Modificar l’apercebut",
"upload_form.undo": "Suprimir",
diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json
index 1bbc60282..f45bf2186 100644
--- a/app/javascript/mastodon/locales/pl.json
+++ b/app/javascript/mastodon/locales/pl.json
@@ -5,7 +5,6 @@
"account.block_domain": "Blokuj wszystko z {domain}",
"account.blocked": "Zablokowany(-a)",
"account.direct": "Wyślij wiadomość bezpośrednią do @{name}",
- "account.disclaimer_full": "Poniższe informacje mogą nie odwzorowywać bezbłędnie profilu użytkownika.",
"account.domain_blocked": "Ukryto domenę",
"account.edit_profile": "Edytuj profil",
"account.endorse": "Polecaj na profilu",
@@ -36,7 +35,6 @@
"account.unfollow": "Przestań śledzić",
"account.unmute": "Cofnij wyciszenie @{name}",
"account.unmute_notifications": "Cofnij wyciszenie powiadomień od @{name}",
- "account.view_full_profile": "Wyświetl pełny profil",
"alert.unexpected.message": "Wystąpił nieoczekiwany błąd.",
"alert.unexpected.title": "O nie!",
"boost_modal.combo": "Naciśnij {combo}, aby pominąć to następnym razem",
@@ -73,6 +71,10 @@
"compose_form.lock_disclaimer": "Twoje konto nie jest {locked}. Każdy, kto Cię śledzi, może wyświetlać Twoje wpisy przeznaczone tylko dla śledzących.",
"compose_form.lock_disclaimer.lock": "zablokowane",
"compose_form.placeholder": "Co Ci chodzi po głowie?",
+ "compose_form.poll.add_option": "Dodaj opcję",
+ "compose_form.poll.duration": "Czas trwania głosowania",
+ "compose_form.poll.option_placeholder": "Opcja {number}",
+ "compose_form.poll.remove_option": "Usuń tę opcję",
"compose_form.publish": "Wyślij",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "Zawartość multimedia jest oznaczona jako wrażliwa",
@@ -81,6 +83,7 @@
"compose_form.spoiler.unmarked": "Tekst nie jest ukryty",
"compose_form.spoiler_placeholder": "Wprowadź swoje ostrzeżenie o zawartości",
"confirmation_modal.cancel": "Anuluj",
+ "confirmations.block.block_and_report": "Block & Report",
"confirmations.block.confirm": "Zablokuj",
"confirmations.block.message": "Czy na pewno chcesz zablokować {name}?",
"confirmations.delete.confirm": "Usuń",
@@ -114,6 +117,7 @@
"emoji_button.symbols": "Symbole",
"emoji_button.travel": "Podróże i miejsca",
"empty_column.account_timeline": "Brak wpisów tutaj!",
+ "empty_column.account_unavailable": "Profile unavailable",
"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.",
@@ -128,7 +132,7 @@
"empty_column.lists": "Nie masz żadnych list. Kiedy utworzysz jedną, pojawi się tutaj.",
"empty_column.mutes": "Nie wyciszyłeś(-aś) jeszcze żadnego użytkownika.",
"empty_column.notifications": "Nie masz żadnych powiadomień. Rozpocznij interakcje z innymi użytkownikami.",
- "empty_column.public": "Tu nic nie ma! Napisz coś publicznie, lub dodaj ludzi z innych instancji, aby to wyświetlić",
+ "empty_column.public": "Tu nic nie ma! Napisz coś publicznie, lub dodaj ludzi z innych serwerów, aby to wyświetlić",
"federation.change": "Adjust status federation",
"federation.federated.long": "Allow toot to reach other instances",
"federation.federated.short": "Federated",
@@ -147,6 +151,8 @@
"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": "Nie odnaleziono sugestii",
+ "hashtag.column_settings.select.placeholder": "Wprowadź hashtagi…",
"hashtag.column_settings.tag_mode.all": "Wszystkie",
"hashtag.column_settings.tag_mode.any": "Dowolne",
"hashtag.column_settings.tag_mode.none": "Żadne",
@@ -154,6 +160,9 @@
"home.column_settings.basic": "Podstawowe",
"home.column_settings.show_reblogs": "Pokazuj podbicia",
"home.column_settings.show_replies": "Pokazuj odpowiedzi",
+ "intervals.full.days": "{number, plural, one {# dzień} few {# dni} many {# dni} other {# dni}}",
+ "intervals.full.hours": "{number, plural, one {# godzina} few {# godziny} many {# godzin} other {# godzin}}",
+ "intervals.full.minutes": "{number, plural, one {# minuta} few {# minuty} many {# minut} other {# minut}}",
"introduction.federation.action": "Dalej",
"introduction.federation.federated.headline": "Oś czasu federacji",
"introduction.federation.federated.text": "Publiczne wpisy osób z tego całego Fediwersum pojawiają się na lokalnej osi czasu.",
@@ -209,6 +218,7 @@
"lists.account.remove": "Usunąć z listy",
"lists.delete": "Usuń listę",
"lists.edit": "Edytuj listę",
+ "lists.edit.submit": "Zmień tytuł",
"lists.new.create": "Utwórz listę",
"lists.new.title_placeholder": "Wprowadź tytuł listy",
"lists.search": "Szukaj wśród osób które śledzisz",
@@ -242,6 +252,7 @@
"notification.favourite": "{name} dodał(a) Twój wpis do ulubionych",
"notification.follow": "{name} zaczął(-ęła) Cię śledzić",
"notification.mention": "{name} wspomniał(a) o tobie",
+ "notification.poll": "Głosowanie w którym brałeś(-aś) udział zakończyła się",
"notification.reblog": "{name} podbił(a) Twój wpis",
"notifications.clear": "Wyczyść powiadomienia",
"notifications.clear_confirmation": "Czy na pewno chcesz bezpowrotnie usunąć wszystkie powiadomienia?",
@@ -252,6 +263,7 @@
"notifications.column_settings.filter_bar.show": "Pokaż",
"notifications.column_settings.follow": "Nowi śledzący:",
"notifications.column_settings.mention": "Wspomnienia:",
+ "notifications.column_settings.poll": "Wyniki głosowania:",
"notifications.column_settings.push": "Powiadomienia push",
"notifications.column_settings.reblog": "Podbicia:",
"notifications.column_settings.show": "Pokaż w kolumnie",
@@ -261,7 +273,14 @@
"notifications.filter.favourites": "Ulubione",
"notifications.filter.follows": "Śledzenia",
"notifications.filter.mentions": "Wspomienia",
+ "notifications.filter.polls": "Poll results",
"notifications.group": "{count, number} {count, plural, one {powiadomienie} few {powiadomienia} many {powiadomień} more {powiadomień}}",
+ "poll.closed": "Zamknięte",
+ "poll.refresh": "Odśwież",
+ "poll.total_votes": "{count, plural, one {# głos} few {# głosy} many {# głosów} other {# głosów}}",
+ "poll.vote": "Zagłosuj",
+ "poll_button.add_poll": "Dodaj głosowanie",
+ "poll_button.remove_poll": "Usuń głosowanie",
"privacy.change": "Dostosuj widoczność wpisów",
"privacy.direct.long": "Widoczny tylko dla wspomnianych",
"privacy.direct.short": "Bezpośrednio",
@@ -281,7 +300,7 @@
"reply_indicator.cancel": "Anuluj",
"report.forward": "Przekaż na {target}",
"report.forward_hint": "To konto znajduje się na innej instancji. Czy chcesz wysłać anonimową kopię zgłoszenia rnież na nią?",
- "report.hint": "Zgłoszenie zostanie wysłane moderatorom Twojej instancji. Poniżej możesz też umieścić wyjaśnienie dlaczego zgłaszasz to konto:",
+ "report.hint": "Zgłoszenie zostanie wysłane moderatorom Twojego serwera. Poniżej możesz też umieścić wyjaśnienie dlaczego zgłaszasz to konto:",
"report.placeholder": "Dodatkowe komentarze",
"report.submit": "Wyślij",
"report.target": "Zgłaszanie {target}",
@@ -296,12 +315,12 @@
"search_results.hashtags": "Hashtagi",
"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": "Skopiuj odnośnik do wpisu",
"status.delete": "Usuń",
"status.detailed_status": "Szczegółowy widok konwersacji",
"status.direct": "Wyślij wiadomość bezpośrednią do @{name}",
@@ -344,14 +363,21 @@
"tabs_bar.local_timeline": "Lokalne",
"tabs_bar.notifications": "Powiadomienia",
"tabs_bar.search": "Szukaj",
+ "time_remaining.days": "{number, plural, one {Pozostał # dzień} few {Pozostały # dni} many {Pozostało # dni} other {Pozostało # dni}}",
+ "time_remaining.hours": "{number, plural, one {Pozostała # godzina} few {Pozostały # godziny} many {Pozostało # godzin} other {Pozostało # godzin}}",
+ "time_remaining.minutes": "{number, plural, one {Pozostała # minuta} few {Pozostały # minuty} many {Pozostało # minut} other {Pozostało # minut}}",
+ "time_remaining.moments": "Pozostała chwila",
+ "time_remaining.seconds": "{number, plural, one {Pozostała # sekunda} few {Pozostały # sekundy} many {Pozostało # sekund} other {Pozostało # sekund}}",
"trends.count_by_accounts": "{count} {rawCount, plural, one {osoba rozmawia} few {osoby rozmawiają} other {osób rozmawia}} o tym",
"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_error.poll": "File upload not allowed with polls.",
"upload_form.description": "Wprowadź opis dla niewidomych i niedowidzących",
"upload_form.focus": "Dopasuj podgląd",
"upload_form.undo": "Usuń",
- "upload_progress.label": "Wysyłanie...",
+ "upload_progress.label": "Wysyłanie…",
"video.close": "Zamknij film",
"video.exit_fullscreen": "Opuść tryb pełnoekranowy",
"video.expand": "Rozszerz film",
diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json
index d441ad049..9c3c9a8fb 100644
--- a/app/javascript/mastodon/locales/pt-BR.json
+++ b/app/javascript/mastodon/locales/pt-BR.json
@@ -5,7 +5,6 @@
"account.block_domain": "Esconder tudo de {domain}",
"account.blocked": "Bloqueado",
"account.direct": "Direct Message @{name}",
- "account.disclaimer_full": "As informações abaixo podem refletir o perfil do usuário de maneira incompleta.",
"account.domain_blocked": "Domínio escondido",
"account.edit_profile": "Editar perfil",
"account.endorse": "Destacar no perfil",
@@ -36,7 +35,6 @@
"account.unfollow": "Deixar de seguir",
"account.unmute": "Não silenciar @{name}",
"account.unmute_notifications": "Retirar silêncio das notificações vindas de @{name}",
- "account.view_full_profile": "Ver perfil completo",
"alert.unexpected.message": "Um erro inesperado ocorreu.",
"alert.unexpected.title": "Oops!",
"boost_modal.combo": "Você pode pressionar {combo} para ignorar este diálogo na próxima vez",
@@ -73,6 +71,10 @@
"compose_form.lock_disclaimer": "A sua conta não está {locked}. Qualquer pessoa pode te seguir e visualizar postagens direcionadas a apenas seguidores.",
"compose_form.lock_disclaimer.lock": "trancada",
"compose_form.placeholder": "No que você está pensando?",
+ "compose_form.poll.add_option": "Adicionar uma opção",
+ "compose_form.poll.duration": "Duração da enquete",
+ "compose_form.poll.option_placeholder": "Opção {number}",
+ "compose_form.poll.remove_option": "Remover essa opção",
"compose_form.publish": "Publicar",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "Mídia está marcada como sensível",
@@ -81,6 +83,7 @@
"compose_form.spoiler.unmarked": "O texto não está escondido",
"compose_form.spoiler_placeholder": "Aviso de conteúdo",
"confirmation_modal.cancel": "Cancelar",
+ "confirmations.block.block_and_report": "Bloquear e denunciar",
"confirmations.block.confirm": "Bloquear",
"confirmations.block.message": "Você tem certeza de que quer bloquear {name}?",
"confirmations.delete.confirm": "Excluir",
@@ -114,6 +117,7 @@
"emoji_button.symbols": "Símbolos",
"emoji_button.travel": "Viagens & Lugares",
"empty_column.account_timeline": "Não há toots aqui!",
+ "empty_column.account_unavailable": "Profile unavailable",
"empty_column.blocks": "Você ainda não bloqueou nenhum usuário.",
"empty_column.community": "A timeline local está vazia. Escreva algo publicamente para começar!",
"empty_column.direct": "Você não tem nenhuma mensagem direta ainda. Quando você enviar ou receber uma, as mensagens aparecerão por aqui.",
@@ -147,13 +151,18 @@
"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": "Nenhuma sugestão encontrada",
+ "hashtag.column_settings.select.placeholder": "Adicione as hashtags…",
"hashtag.column_settings.tag_mode.all": "Todas essas",
"hashtag.column_settings.tag_mode.any": "Qualquer uma dessas",
"hashtag.column_settings.tag_mode.none": "Nenhuma dessas",
- "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
+ "hashtag.column_settings.tag_toggle": "Incluir outras hashtags nessa coluna",
"home.column_settings.basic": "Básico",
"home.column_settings.show_reblogs": "Mostrar compartilhamentos",
"home.column_settings.show_replies": "Mostrar as respostas",
+ "intervals.full.days": "{number, plural, one {# dia} other {# dias}}",
+ "intervals.full.hours": "{number, plural, one {# hora} other {# horas}}",
+ "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
"introduction.federation.action": "Próximo",
"introduction.federation.federated.headline": "Federated",
"introduction.federation.federated.text": "Posts públicos de outros servidores do fediverso vão aparecer na timeline global.",
@@ -209,6 +218,7 @@
"lists.account.remove": "Remover da lista",
"lists.delete": "Delete list",
"lists.edit": "Editar lista",
+ "lists.edit.submit": "Mudar o título",
"lists.new.create": "Adicionar lista",
"lists.new.title_placeholder": "Novo título da lista",
"lists.search": "Procurar entre as pessoas que você segue",
@@ -242,6 +252,7 @@
"notification.favourite": "{name} adicionou a sua postagem aos favoritos",
"notification.follow": "{name} te seguiu",
"notification.mention": "{name} te mencionou",
+ "notification.poll": "Uma enquete em que você votou chegou ao fim",
"notification.reblog": "{name} compartilhou a sua postagem",
"notifications.clear": "Limpar notificações",
"notifications.clear_confirmation": "Você tem certeza de que quer limpar todas as suas notificações permanentemente?",
@@ -252,6 +263,7 @@
"notifications.column_settings.filter_bar.show": "Mostrar",
"notifications.column_settings.follow": "Novos seguidores:",
"notifications.column_settings.mention": "Menções:",
+ "notifications.column_settings.poll": "Resultados da enquete:",
"notifications.column_settings.push": "Enviar notificações",
"notifications.column_settings.reblog": "Compartilhamento:",
"notifications.column_settings.show": "Mostrar nas colunas",
@@ -261,7 +273,14 @@
"notifications.filter.favourites": "Favoritos",
"notifications.filter.follows": "Seguidores",
"notifications.filter.mentions": "Menções",
+ "notifications.filter.polls": "Resultados da enquete",
"notifications.group": "{count} notificações",
+ "poll.closed": "Fechada",
+ "poll.refresh": "Atualizar",
+ "poll.total_votes": "{count, plural, one {# voto} other {# votos}}",
+ "poll.vote": "Votar",
+ "poll_button.add_poll": "Adicionar uma enquete",
+ "poll_button.remove_poll": "Remover enquete",
"privacy.change": "Ajustar a privacidade da mensagem",
"privacy.direct.long": "Apenas para usuários mencionados",
"privacy.direct.short": "Direta",
@@ -296,12 +315,12 @@
"search_results.hashtags": "Hashtags",
"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": "Copiar o link para o status",
"status.delete": "Excluir",
"status.detailed_status": "Visão detalhada da conversa",
"status.direct": "Enviar mensagem direta a @{name}",
@@ -344,10 +363,17 @@
"tabs_bar.local_timeline": "Local",
"tabs_bar.notifications": "Notificações",
"tabs_bar.search": "Buscar",
+ "time_remaining.days": "{number, plural, one {# dia restante} other {# dias restantes}}",
+ "time_remaining.hours": "{number, plural, one {# hora restante} other {# horas restantes}}",
+ "time_remaining.minutes": "{number, plural, one {# minuto restante} other {# minutos restantes}}",
+ "time_remaining.moments": "Momentos restantes",
+ "time_remaining.seconds": "{number, plural, one {# segundo restante} other {# segundos restantes}}",
"trends.count_by_accounts": "{count} {rawCount, plural, one {pessoa} other {pessoas}} falando sobre",
"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": "Limite de envio de arquivos excedido.",
+ "upload_error.poll": "Envio de arquivos não é permitido com enquetes.",
"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 55e8b61b6..f9a094cd6 100644
--- a/app/javascript/mastodon/locales/pt.json
+++ b/app/javascript/mastodon/locales/pt.json
@@ -1,44 +1,42 @@
{
- "account.add_or_remove_from_list": "Add or Remove from lists",
- "account.badges.bot": "Bot",
+ "account.add_or_remove_from_list": "Adicionar ou remover das listas",
+ "account.badges.bot": "Robô",
"account.block": "Bloquear @{name}",
"account.block_domain": "Esconder tudo do domínio {domain}",
- "account.blocked": "Blocked",
- "account.direct": "Direct Message @{name}",
- "account.disclaimer_full": "As informações abaixo podem refletir o perfil do usuário de forma incompleta.",
- "account.domain_blocked": "Domain hidden",
+ "account.blocked": "Bloqueado",
+ "account.direct": "Mensagem directa @{name}",
+ "account.domain_blocked": "Domínio escondido",
"account.edit_profile": "Editar perfil",
- "account.endorse": "Feature on profile",
+ "account.endorse": "Atributo no perfil",
"account.follow": "Seguir",
"account.followers": "Seguidores",
- "account.followers.empty": "No one follows this user yet.",
+ "account.followers.empty": "Ainda ninguém segue este utilizador.",
"account.follows": "Segue",
- "account.follows.empty": "This user doesn't follow anyone yet.",
+ "account.follows.empty": "Este utilizador ainda não segue alguém.",
"account.follows_you": "É teu seguidor",
"account.hide_reblogs": "Esconder partilhas de @{name}",
- "account.link_verified_on": "Ownership of this link was checked on {date}",
- "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
+ "account.link_verified_on": "A posse deste link foi verificada em {date}",
+ "account.locked_info": "O estatuto de privacidade desta conta é fechado. O dono revê manualmente que a pode seguir.",
"account.media": "Media",
"account.mention": "Mencionar @{name}",
"account.moved_to": "{name} mudou a sua conta para:",
"account.mute": "Silenciar @{name}",
"account.mute_notifications": "Silenciar notificações de @{name}",
- "account.muted": "Muted",
- "account.posts": "Posts",
- "account.posts_with_replies": "Toots with replies",
+ "account.muted": "Silenciada",
+ "account.posts": "Publicações",
+ "account.posts_with_replies": "Publicações e respostas",
"account.report": "Denunciar @{name}",
- "account.requested": "A aguardar aprovação",
+ "account.requested": "A aguardar aprovação. Clique para cancelar o pedido de seguimento",
"account.share": "Partilhar o perfil @{name}",
"account.show_reblogs": "Mostrar partilhas de @{name}",
- "account.unblock": "Não bloquear @{name}",
+ "account.unblock": "Desbloquear @{name}",
"account.unblock_domain": "Mostrar {domain}",
- "account.unendorse": "Don't feature on profile",
+ "account.unendorse": "Não mostrar no perfil",
"account.unfollow": "Deixar de seguir",
"account.unmute": "Não silenciar @{name}",
"account.unmute_notifications": "Deixar de silenciar @{name}",
- "account.view_full_profile": "Ver perfil completo",
- "alert.unexpected.message": "An unexpected error occurred.",
- "alert.unexpected.title": "Oops!",
+ "alert.unexpected.message": "Ocorreu um erro inesperado.",
+ "alert.unexpected.title": "Bolas!",
"boost_modal.combo": "Pode clicar {combo} para não voltar a ver",
"bundle_column_error.body": "Algo de errado aconteceu enquanto este componente era carregado.",
"bundle_column_error.retry": "Tente de novo",
@@ -47,17 +45,17 @@
"bundle_modal_error.message": "Algo de errado aconteceu enquanto este componente era carregado.",
"bundle_modal_error.retry": "Tente de novo",
"column.blocks": "Utilizadores Bloqueados",
- "column.community": "Local",
- "column.direct": "Direct messages",
- "column.domain_blocks": "Hidden domains",
+ "column.community": "Cronologia local",
+ "column.direct": "Mensagens directas",
+ "column.domain_blocks": "Domínios escondidos",
"column.favourites": "Favoritos",
"column.follow_requests": "Seguidores Pendentes",
"column.home": "Início",
"column.lists": "Listas",
"column.mutes": "Utilizadores silenciados",
"column.notifications": "Notificações",
- "column.pins": "Posts fixos",
- "column.public": "Global",
+ "column.pins": "Publicações fixas",
+ "column.public": "Cronologia federativa",
"column_back_button.label": "Voltar",
"column_header.hide_settings": "Esconder preferências",
"column_header.moveLeft_settings": "Mover coluna para a esquerda",
@@ -66,41 +64,46 @@
"column_header.show_settings": "Mostrar preferências",
"column_header.unpin": "Desafixar",
"column_subheading.settings": "Preferências",
- "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": "Somente media",
+ "compose_form.direct_message_warning": "Esta publicação só será enviada para os utilizadores mencionados.",
+ "compose_form.direct_message_warning_learn_more": "Aprender mais",
"compose_form.hashtag_warning": "Esta pulbicacção não será listada em nenhuma hashtag por ser não listada. Somente publicações públicas podem ser pesquisadas por hashtag.",
"compose_form.lock_disclaimer": "A tua conta não está {locked}. Qualquer pessoa pode seguir-te e ver as publicações direcionadas apenas a seguidores.",
- "compose_form.lock_disclaimer.lock": "bloqueada",
+ "compose_form.lock_disclaimer.lock": "fechada",
"compose_form.placeholder": "Em que estás a pensar?",
+ "compose_form.poll.add_option": "Add a choice",
+ "compose_form.poll.duration": "Poll duration",
+ "compose_form.poll.option_placeholder": "Choice {number}",
+ "compose_form.poll.remove_option": "Remove this choice",
"compose_form.publish": "Publicar",
- "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": "Aviso de conteúdo",
+ "compose_form.publish_loud": "{publicar}!",
+ "compose_form.sensitive.marked": "Media marcado como sensível",
+ "compose_form.sensitive.unmarked": "Media não está marcado como sensível",
+ "compose_form.spoiler.marked": "Texto escondido atrás de aviso",
+ "compose_form.spoiler.unmarked": "O texto não está escondido",
+ "compose_form.spoiler_placeholder": "Escreve o teu aviso aqui",
"confirmation_modal.cancel": "Cancelar",
- "confirmations.block.confirm": "Block",
+ "confirmations.block.block_and_report": "Block & Report",
+ "confirmations.block.confirm": "Bloquear",
"confirmations.block.message": "De certeza que queres bloquear {name}?",
"confirmations.delete.confirm": "Eliminar",
"confirmations.delete.message": "De certeza que queres eliminar esta publicação?",
- "confirmations.delete_list.confirm": "Delete",
+ "confirmations.delete_list.confirm": "Apagar",
"confirmations.delete_list.message": "Tens a certeza de que desejas apagar permanentemente esta lista?",
"confirmations.domain_block.confirm": "Esconder tudo deste domínio",
- "confirmations.domain_block.message": "De certeza que queres bloquear por completo o domínio {domain}? Na maioria dos casos, silenciar ou bloquear alguns utilizadores é o suficiente e o recomendado.",
+ "confirmations.domain_block.message": "De certeza que queres bloquear completamente o domínio {domain}? Na maioria dos casos, silenciar ou bloquear alguns utilizadores é o suficiente e o recomendado. Não irás ver conteúdo daquele domínio em cronologia alguma, nem nas tuas notificações. Os teus seguidores daquele domínio serão removidos.",
"confirmations.mute.confirm": "Silenciar",
"confirmations.mute.message": "De certeza que queres silenciar {name}?",
- "confirmations.redraft.confirm": "Delete & redraft",
- "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.redraft.confirm": "Apagar & redigir",
+ "confirmations.redraft.message": "Tens a certeza que queres apagar e redigir esta publicação? Os favoritos e as partilhas perder-se-ão e as respostas à publicação original ficarão órfãs.",
+ "confirmations.reply.confirm": "Responder",
+ "confirmations.reply.message": "Responder agora irá reescrever a mensagem que estás a compor actualmente. Tens a certeza que queres continuar?",
"confirmations.unfollow.confirm": "Deixar de seguir",
"confirmations.unfollow.message": "De certeza que queres deixar de seguir {name}?",
- "embed.instructions": "Publicar este post num outro site copiando o código abaixo.",
+ "embed.instructions": "Publica esta publicação no teu site copiando o código abaixo.",
"embed.preview": "Podes ver aqui como irá ficar:",
"emoji_button.activity": "Actividade",
- "emoji_button.custom": "Especiais",
+ "emoji_button.custom": "Personalizar",
"emoji_button.flags": "Bandeiras",
"emoji_button.food": "Comida & Bebida",
"emoji_button.label": "Inserir Emoji",
@@ -113,22 +116,23 @@
"emoji_button.search_results": "Resultados da pesquisa",
"emoji_button.symbols": "Símbolos",
"emoji_button.travel": "Viagens & Lugares",
- "empty_column.account_timeline": "No toots here!",
- "empty_column.blocks": "You haven't blocked any users yet.",
+ "empty_column.account_timeline": "Sem publicações!",
+ "empty_column.account_unavailable": "Profile unavailable",
+ "empty_column.blocks": "Ainda não bloqueaste qualquer utilizador.",
"empty_column.community": "Ainda não existe conteúdo local para mostrar!",
- "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
- "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.direct": "Ainda não tens qualquer mensagem directa. Quando enviares ou receberes alguma, ela irá aparecer aqui.",
+ "empty_column.domain_blocks": "Ainda não há qualquer domínio escondido.",
+ "empty_column.favourited_statuses": "Ainda não tens quaisquer publicações favoritas. Quando tiveres alguma, ela irá aparecer aqui.",
+ "empty_column.favourites": "Ainda ninguém favorizou esta publicação. Quando alguém o fizer, ela irá aparecer aqui.",
+ "empty_column.follow_requests": "Ainda não tens pedido de seguimento algum. Quando receberes algum, ele irá aparecer aqui.",
"empty_column.hashtag": "Não foram encontradas publicações com essa hashtag.",
"empty_column.home": "Ainda não segues qualquer utilizador. Visita {public} ou utiliza a pesquisa para procurar outros utilizadores.",
- "empty_column.home.public_timeline": "global",
+ "empty_column.home.public_timeline": "Cronologia pública",
"empty_column.list": "Ainda não existem publicações nesta lista. Quando membros desta lista fizerem novas publicações, elas aparecerão aqui.",
- "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": "Ainda não tens qualquer lista. Quando criares uma, ela irá aparecer aqui.",
+ "empty_column.mutes": "Ainda não silenciaste qualquer utilizador.",
"empty_column.notifications": "Não tens notificações. Interage com outros utilizadores para iniciar uma conversa.",
- "empty_column.public": "Não há nada aqui! Escreve algo publicamente ou segue outros utilizadores para ver aqui os conteúdos públicos",
+ "empty_column.public": "Não há nada aqui! Escreve algo publicamente ou segue outros utilizadores para veres aqui os conteúdos públicos",
"federation.change": "Ajustar federação do toot",
"federation.federated.long": "Permitir que o toot chegue a outras instâncias",
"federation.federated.short": "Federado",
@@ -136,69 +140,74 @@
"federation.local_only.short": "Somente local",
"follow_request.authorize": "Autorizar",
"follow_request.reject": "Rejeitar",
- "getting_started.developers": "Developers",
- "getting_started.directory": "Profile directory",
+ "getting_started.developers": "Responsáveis pelo desenvolvimento",
+ "getting_started.directory": "Directório de perfil",
"getting_started.documentation": "Documentation",
"getting_started.heading": "Primeiros passos",
- "getting_started.invite": "Invite people",
+ "getting_started.invite": "Convidar pessoas",
"getting_started.open_source_notice": "Mastodon é software de fonte aberta. Podes contribuir ou repostar problemas no GitHub do projecto: {github}.",
- "getting_started.security": "Security",
- "getting_started.terms": "Terms of service",
- "hashtag.column_header.tag_mode.all": "and {additional}",
- "hashtag.column_header.tag_mode.any": "or {additional}",
- "hashtag.column_header.tag_mode.none": "without {additional}",
- "hashtag.column_settings.tag_mode.all": "All of these",
- "hashtag.column_settings.tag_mode.any": "Any of these",
- "hashtag.column_settings.tag_mode.none": "None of these",
- "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
+ "getting_started.security": "Segurança",
+ "getting_started.terms": "Termos de serviço",
+ "hashtag.column_header.tag_mode.all": "e {additional}",
+ "hashtag.column_header.tag_mode.any": "ou {additional}",
+ "hashtag.column_header.tag_mode.none": "sem {additional}",
+ "hashtag.column_settings.select.no_options_message": "Não foram encontradas sugestões",
+ "hashtag.column_settings.select.placeholder": "Introduzir as hashtags…",
+ "hashtag.column_settings.tag_mode.all": "Todos estes",
+ "hashtag.column_settings.tag_mode.any": "Qualquer destes",
+ "hashtag.column_settings.tag_mode.none": "Nenhum destes",
+ "hashtag.column_settings.tag_toggle": "Incluir etiquetas adicionais para esta coluna",
"home.column_settings.basic": "Básico",
"home.column_settings.show_reblogs": "Mostrar as partilhas",
"home.column_settings.show_replies": "Mostrar as respostas",
- "introduction.federation.action": "Next",
+ "intervals.full.days": "{number, plural, one {# day} other {# days}}",
+ "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
+ "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
+ "introduction.federation.action": "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": "Publicações públicas de outros servidores do fediverse aparecerão na cronologia federativa.",
"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": "As publicações das pessoas que tu segues aparecerão na tua coluna inicial. Tu podes seguir qualquer pessoa em 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": "Publicações públicas de pessoas que tu segues no teu servidor aparecerão na coluna local.",
+ "introduction.interactions.action": "Terminar o tutorial!",
+ "introduction.interactions.favourite.headline": "Favorito",
+ "introduction.interactions.favourite.text": "Tu podes guardar um toot para depois e deixar o autor saber que gostaste dele, favoritando-o.",
+ "introduction.interactions.reblog.headline": "Partilhar",
+ "introduction.interactions.reblog.text": "Podes partilhar os toots de outras pessoas com os teus seguidores partilhando-os.",
+ "introduction.interactions.reply.headline": "Responder",
+ "introduction.interactions.reply.text": "Tu podes responder a toots de outras pessoas e aos teus, o que os irá juntar numa conversa.",
+ "introduction.welcome.action": "Vamos!",
+ "introduction.welcome.headline": "Primeiros passos",
+ "introduction.welcome.text": "Bem-vindo ao fediverse! Em pouco tempo poderás enviar mensagens e falar com os teus amigos numa grande variedade de servidores. Mas este servidor, {domain}, é especial—ele alberga o teu perfil. Por isso, lembra-te do seu nome.",
"keyboard_shortcuts.back": "para voltar",
- "keyboard_shortcuts.blocked": "to open blocked users list",
+ "keyboard_shortcuts.blocked": "para abrir a lista de utilizadores bloqueados",
"keyboard_shortcuts.boost": "para partilhar",
"keyboard_shortcuts.column": "para focar uma publicação numa das colunas",
"keyboard_shortcuts.compose": "para focar na área de publicação",
"keyboard_shortcuts.description": "Descrição",
- "keyboard_shortcuts.direct": "to open direct messages column",
+ "keyboard_shortcuts.direct": "para abrir a coluna das mensagens directas",
"keyboard_shortcuts.down": "para mover para baixo na lista",
"keyboard_shortcuts.enter": "para expandir uma publicação",
"keyboard_shortcuts.favourite": "para adicionar aos favoritos",
- "keyboard_shortcuts.favourites": "to open favourites list",
- "keyboard_shortcuts.federated": "to open federated timeline",
+ "keyboard_shortcuts.favourites": "para abrir a lista dos favoritos",
+ "keyboard_shortcuts.federated": "para abrir a cronologia federativa",
"keyboard_shortcuts.heading": "Atalhos do teclado",
- "keyboard_shortcuts.home": "to open home timeline",
+ "keyboard_shortcuts.home": "para abrir a cronologia inicial",
"keyboard_shortcuts.hotkey": "Atalho",
"keyboard_shortcuts.legend": "para mostrar esta legenda",
- "keyboard_shortcuts.local": "to open local timeline",
+ "keyboard_shortcuts.local": "para abrir a cronologia local",
"keyboard_shortcuts.mention": "para mencionar o autor",
- "keyboard_shortcuts.muted": "to open muted users list",
- "keyboard_shortcuts.my_profile": "to open your profile",
- "keyboard_shortcuts.notifications": "to open notifications column",
- "keyboard_shortcuts.pinned": "to open pinned toots list",
- "keyboard_shortcuts.profile": "to open author's profile",
+ "keyboard_shortcuts.muted": "para abrir a lista dos utilizadores silenciados",
+ "keyboard_shortcuts.my_profile": "para abrir o teu perfil",
+ "keyboard_shortcuts.notifications": "para abrir a coluna das notificações",
+ "keyboard_shortcuts.pinned": "para abrir a lista dos toots fixados",
+ "keyboard_shortcuts.profile": "para abrir o perfil do autor",
"keyboard_shortcuts.reply": "para responder",
- "keyboard_shortcuts.requests": "to open follow requests list",
+ "keyboard_shortcuts.requests": "para abrir a lista dos pedidos de seguimento",
"keyboard_shortcuts.search": "para focar na pesquisa",
- "keyboard_shortcuts.start": "to open \"get started\" column",
- "keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW",
+ "keyboard_shortcuts.start": "para abrir a coluna dos \"primeiros passos\"",
+ "keyboard_shortcuts.toggle_hidden": "para mostrar/esconder texto atrás de CW",
"keyboard_shortcuts.toot": "para compor um novo post",
"keyboard_shortcuts.unfocus": "para remover o foco da área de publicação/pesquisa",
"keyboard_shortcuts.up": "para mover para cima na lista",
@@ -209,6 +218,7 @@
"lists.account.remove": "Remover da lista",
"lists.delete": "Delete list",
"lists.edit": "Editar lista",
+ "lists.edit.submit": "Mudar o título",
"lists.new.create": "Adicionar lista",
"lists.new.title_placeholder": "Novo título da lista",
"lists.search": "Pesquisa entre as pessoas que segues",
@@ -218,18 +228,18 @@
"missing_indicator.label": "Não encontrado",
"missing_indicator.sublabel": "Este recurso não foi encontrado",
"mute_modal.hide_notifications": "Esconder notificações deste utilizador?",
- "navigation_bar.apps": "Mobile apps",
+ "navigation_bar.apps": "Aplicações móveis",
"navigation_bar.blocks": "Utilizadores bloqueados",
"navigation_bar.community_timeline": "Local",
- "navigation_bar.compose": "Compose new toot",
- "navigation_bar.direct": "Direct messages",
- "navigation_bar.discover": "Discover",
- "navigation_bar.domain_blocks": "Hidden domains",
+ "navigation_bar.compose": "Escrever novo toot",
+ "navigation_bar.direct": "Mensagens directas",
+ "navigation_bar.discover": "Descobrir",
+ "navigation_bar.domain_blocks": "Domínios escondidos",
"navigation_bar.edit_profile": "Editar perfil",
"navigation_bar.favourites": "Favoritos",
- "navigation_bar.filters": "Muted words",
+ "navigation_bar.filters": "Palavras silenciadas",
"navigation_bar.follow_requests": "Seguidores pendentes",
- "navigation_bar.info": "Mais informações",
+ "navigation_bar.info": "Sobre este servidor",
"navigation_bar.keyboard_shortcuts": "Atalhos de teclado",
"navigation_bar.lists": "Listas",
"navigation_bar.logout": "Sair",
@@ -238,30 +248,39 @@
"navigation_bar.pins": "Posts fixos",
"navigation_bar.preferences": "Preferências",
"navigation_bar.public_timeline": "Global",
- "navigation_bar.security": "Security",
+ "navigation_bar.security": "Segurança",
"notification.favourite": "{name} adicionou o teu post aos favoritos",
"notification.follow": "{name} seguiu-te",
"notification.mention": "{name} mencionou-te",
+ "notification.poll": "A poll you have voted in has ended",
"notification.reblog": "{name} partilhou o teu post",
"notifications.clear": "Limpar notificações",
"notifications.clear_confirmation": "Queres mesmo limpar todas as notificações?",
"notifications.column_settings.alert": "Notificações no computador",
"notifications.column_settings.favourite": "Favoritos:",
- "notifications.column_settings.filter_bar.advanced": "Display all categories",
- "notifications.column_settings.filter_bar.category": "Quick filter bar",
- "notifications.column_settings.filter_bar.show": "Show",
+ "notifications.column_settings.filter_bar.advanced": "Mostrar todas as categorias",
+ "notifications.column_settings.filter_bar.category": "Barra de filtros rápidos",
+ "notifications.column_settings.filter_bar.show": "Mostrar",
"notifications.column_settings.follow": "Novos seguidores:",
"notifications.column_settings.mention": "Menções:",
+ "notifications.column_settings.poll": "Poll results:",
"notifications.column_settings.push": "Notificações Push",
"notifications.column_settings.reblog": "Partilhas:",
"notifications.column_settings.show": "Mostrar nas colunas",
"notifications.column_settings.sound": "Reproduzir som",
- "notifications.filter.all": "All",
- "notifications.filter.boosts": "Boosts",
- "notifications.filter.favourites": "Favourites",
- "notifications.filter.follows": "Follows",
- "notifications.filter.mentions": "Mentions",
- "notifications.group": "{count} notifications",
+ "notifications.filter.all": "Todas",
+ "notifications.filter.boosts": "Partilhas",
+ "notifications.filter.favourites": "Favoritas",
+ "notifications.filter.follows": "Seguimento",
+ "notifications.filter.mentions": "Referências",
+ "notifications.filter.polls": "Poll results",
+ "notifications.group": "{count} notificações",
+ "poll.closed": "Fechado",
+ "poll.refresh": "Recarregar",
+ "poll.total_votes": "{contar, plural, um {# vote} outro {# votes}}",
+ "poll.vote": "Votar",
+ "poll_button.add_poll": "Add a poll",
+ "poll_button.remove_poll": "Remove poll",
"privacy.change": "Ajustar a privacidade da mensagem",
"privacy.direct.long": "Apenas para utilizadores mencionados",
"privacy.direct.short": "Directo",
@@ -279,35 +298,35 @@
"relative_time.minutes": "{number}m",
"relative_time.seconds": "{number}s",
"reply_indicator.cancel": "Cancelar",
- "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.forward": "Reenviar para {target}",
+ "report.forward_hint": "A conta é de outro servidor. Enviar uma cópia anónima do relatório para lá também?",
+ "report.hint": "O relatório será enviado para os moderadores do teu servidor. Podes fornecer, em baixo, uma explicação do motivo pelo qual estás a relatar esta conta:",
"report.placeholder": "Comentários adicionais",
"report.submit": "Enviar",
"report.target": "Denunciar",
"search.placeholder": "Pesquisar",
"search_popout.search_format": "Formato avançado de pesquisa",
- "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.full_text": "Texto simples devolve publicações que tu escreveste, favoritaste, partilhaste ou em que foste mencionado, tal como nomes de utilizador correspondentes, alcunhas e hashtags.",
"search_popout.tips.hashtag": "hashtag",
- "search_popout.tips.status": "status",
+ "search_popout.tips.status": "estado",
"search_popout.tips.text": "O texto simples retorna a correspondência de nomes, utilizadores e hashtags",
"search_popout.tips.user": "utilizador",
- "search_results.accounts": "People",
+ "search_results.accounts": "Pessoas",
"search_results.hashtags": "Hashtags",
- "search_results.statuses": "Toots",
+ "search_results.statuses": "Publicações",
"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.admin_account": "Abrir a interface de moderação para @{name}",
+ "status.admin_status": "Abrir esta publicação na interface de moderação",
"status.block": "Block @{name}",
- "status.cancel_reblog_private": "Unboost",
+ "status.cancel_reblog_private": "Não partilhar",
"status.cannot_reblog": "Este post não pode ser partilhado",
+ "status.copy": "Copiar o link para a publicação",
"status.delete": "Eliminar",
- "status.detailed_status": "Detailed conversation view",
- "status.direct": "Direct message @{name}",
+ "status.detailed_status": "Vista de conversação detalhada",
+ "status.direct": "Mensagem directa @{name}",
"status.embed": "Incorporar",
"status.favourite": "Adicionar aos favoritos",
- "status.filtered": "Filtered",
+ "status.filtered": "Filtrada",
"status.load_more": "Carregar mais",
"status.local_only": "Esse post só é visível para outros usuários da sua instância",
"status.media_hidden": "Media escondida",
@@ -317,13 +336,13 @@
"status.mute_conversation": "Silenciar conversa",
"status.open": "Expandir",
"status.pin": "Fixar no perfil",
- "status.pinned": "Pinned toot",
- "status.read_more": "Read more",
+ "status.pinned": "Publicação fixa",
+ "status.read_more": "Ler mais",
"status.reblog": "Partilhar",
- "status.reblog_private": "Boost to original audience",
+ "status.reblog_private": "Partilhar com a audiência original",
"status.reblogged_by": "{name} partilhou",
- "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
- "status.redraft": "Delete & re-draft",
+ "status.reblogs.empty": "Ainda ninguém partilhou esta publicação. Quando alguém o fizer, ela irá aparecer aqui.",
+ "status.redraft": "Apagar & reescrever",
"status.reply": "Responder",
"status.replyAll": "Responder à conversa",
"status.report": "Denunciar @{name}",
@@ -331,27 +350,34 @@
"status.sensitive_warning": "Conteúdo sensível",
"status.share": "Compartilhar",
"status.show_less": "Mostrar menos",
- "status.show_less_all": "Show less for all",
+ "status.show_less_all": "Mostrar menos para todas",
"status.show_more": "Mostrar mais",
- "status.show_more_all": "Show more for all",
- "status.show_thread": "Show thread",
+ "status.show_more_all": "Mostrar mais para todas",
+ "status.show_thread": "Mostrar conversa",
"status.unmute_conversation": "Deixar de silenciar esta conversa",
"status.unpin": "Não fixar no perfil",
- "suggestions.dismiss": "Dismiss suggestion",
- "suggestions.header": "You might be interested in…",
+ "suggestions.dismiss": "Dispensar a sugestão",
+ "suggestions.header": "Tu podes estar interessado em…",
"tabs_bar.federated_timeline": "Global",
"tabs_bar.home": "Home",
"tabs_bar.local_timeline": "Local",
"tabs_bar.notifications": "Notificações",
- "tabs_bar.search": "Search",
- "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
+ "tabs_bar.search": "Pesquisar",
+ "time_remaining.days": "{número, plural, um {# day} outro {# days}} faltam",
+ "time_remaining.hours": "{número, plural, um {# hour} outro {# hours}} faltam",
+ "time_remaining.minutes": "{número, plural, um {# minute} outro {# minutes}} faltam",
+ "time_remaining.moments": "Momentos em falta",
+ "time_remaining.seconds": "{número, plural, um {# second} outro {# seconds}} faltam",
+ "trends.count_by_accounts": "{count} {rawCount, plural, uma {person} outra {people}} a falar",
"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": "Limite máximo do ficheiro a carregar excedido.",
+ "upload_error.poll": "File upload not allowed with polls.",
"upload_form.description": "Descrição da imagem para pessoas com dificuldades visuais",
- "upload_form.focus": "Crop",
- "upload_form.undo": "Anular",
- "upload_progress.label": "A gravar...",
+ "upload_form.focus": "Alterar previsualização",
+ "upload_form.undo": "Apagar",
+ "upload_progress.label": "A enviar...",
"video.close": "Fechar vídeo",
"video.exit_fullscreen": "Sair de full screen",
"video.expand": "Expandir vídeo",
diff --git a/app/javascript/mastodon/locales/ro.json b/app/javascript/mastodon/locales/ro.json
index de7984a82..15b7b9128 100644
--- a/app/javascript/mastodon/locales/ro.json
+++ b/app/javascript/mastodon/locales/ro.json
@@ -5,7 +5,6 @@
"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 utilizatorului incomplet.",
"account.domain_blocked": "Domeniu ascuns",
"account.edit_profile": "Editează profilul",
"account.endorse": "Redistribuie pe profil",
@@ -36,7 +35,6 @@
"account.unfollow": "Nu mai urmări",
"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 omite asta data viitoare",
@@ -73,6 +71,10 @@
"compose_form.lock_disclaimer": "Contul tău nu este {locked}. Oricine te poate urmări fără aprobarea ta și vedea toate postările tale.",
"compose_form.lock_disclaimer.lock": "privat",
"compose_form.placeholder": "La ce te gândești?",
+ "compose_form.poll.add_option": "Add a choice",
+ "compose_form.poll.duration": "Poll duration",
+ "compose_form.poll.option_placeholder": "Choice {number}",
+ "compose_form.poll.remove_option": "Remove this choice",
"compose_form.publish": "Postează",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "Conținutul media este marcat ca sensibil",
@@ -81,6 +83,7 @@
"compose_form.spoiler.unmarked": "Textul nu este ascuns",
"compose_form.spoiler_placeholder": "Scrie averitzarea aici",
"confirmation_modal.cancel": "Anulează",
+ "confirmations.block.block_and_report": "Block & Report",
"confirmations.block.confirm": "Blochează",
"confirmations.block.message": "Ești sigur că vrei să blochezi {name}?",
"confirmations.delete.confirm": "Șterge",
@@ -114,6 +117,7 @@
"emoji_button.symbols": "Simboluri",
"emoji_button.travel": "Călătorii si Locuri",
"empty_column.account_timeline": "Nici o postare aici!",
+ "empty_column.account_unavailable": "Profile unavailable",
"empty_column.blocks": "Nu ai blocat nici un utilizator incă.",
"empty_column.community": "Fluxul local este gol. Scrie ceva public pentru a împinge bila la vale!",
"empty_column.direct": "Nu ai nici un mesaj direct incă. Când trimiți sau primești unul, va fi afișat aici.",
@@ -147,6 +151,8 @@
"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",
@@ -154,6 +160,9 @@
"home.column_settings.basic": "De bază",
"home.column_settings.show_reblogs": "Arată redistribuirile",
"home.column_settings.show_replies": "Arată răspunsurile",
+ "intervals.full.days": "{number, plural, one {# day} other {# days}}",
+ "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
+ "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
"introduction.federation.action": "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.",
@@ -209,6 +218,7 @@
"lists.account.remove": "Elimină din 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,6 +252,7 @@
"notification.favourite": "{name} a adăugat statusul tău la favorite",
"notification.follow": "{name} te urmărește",
"notification.mention": "{name} te-a menționat",
+ "notification.poll": "A poll you have voted in has ended",
"notification.reblog": "{name} a redistribuit postarea ta",
"notifications.clear": "Șterge notificările",
"notifications.clear_confirmation": "Ești sigur că vrei să ștergi toate notificările?",
@@ -252,6 +263,7 @@
"notifications.column_settings.filter_bar.show": "Arată",
"notifications.column_settings.follow": "Noi urmăritori:",
"notifications.column_settings.mention": "Mențiuni:",
+ "notifications.column_settings.poll": "Poll results:",
"notifications.column_settings.push": "Notificări push",
"notifications.column_settings.reblog": "Redistribuite:",
"notifications.column_settings.show": "Arată în coloană",
@@ -261,7 +273,14 @@
"notifications.filter.favourites": "Favorite",
"notifications.filter.follows": "Urmărește",
"notifications.filter.mentions": "Menționări",
+ "notifications.filter.polls": "Poll results",
"notifications.group": "{count} notificări",
+ "poll.closed": "Closed",
+ "poll.refresh": "Refresh",
+ "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
+ "poll.vote": "Vote",
+ "poll_button.add_poll": "Add a poll",
+ "poll_button.remove_poll": "Remove poll",
"privacy.change": "Cine vede asta",
"privacy.direct.long": "Postează doar pentru utilizatorii menționați",
"privacy.direct.short": "Direct",
@@ -296,12 +315,12 @@
"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...",
"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}",
@@ -344,10 +363,17 @@
"tabs_bar.local_timeline": "Local",
"tabs_bar.notifications": "Notificări",
"tabs_bar.search": "Căutare",
+ "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
+ "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
+ "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
+ "time_remaining.moments": "Moments remaining",
+ "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} vorbesc",
"ui.beforeunload": "Postarea se va pierde dacă părăsești pagina.",
"upload_area.title": "Trage și eliberează pentru a încărca",
"upload_button.label": "Adaugă media (JPEG, PNG, GIF, WebM, MP4, MOV)",
+ "upload_error.limit": "File upload limit exceeded.",
+ "upload_error.poll": "File upload not allowed with polls.",
"upload_form.description": "Adaugă o descriere pentru persoanele cu deficiențe de vedere",
"upload_form.focus": "Schimbă previzualizarea",
"upload_form.undo": "Șterge",
diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json
index 734ad7c2c..cdc3ba233 100644
--- a/app/javascript/mastodon/locales/ru.json
+++ b/app/javascript/mastodon/locales/ru.json
@@ -1,11 +1,10 @@
{
- "account.add_or_remove_from_list": "Add or Remove from lists",
+ "account.add_or_remove_from_list": "Добавить или удалить из списков",
"account.badges.bot": "Бот",
"account.block": "Блокировать",
"account.block_domain": "Блокировать все с {domain}",
"account.blocked": "Заблокирован(а)",
"account.direct": "Написать @{name}",
- "account.disclaimer_full": "Нижеуказанная информация может не полностью отражать профиль пользователя.",
"account.domain_blocked": "Домен скрыт",
"account.edit_profile": "Изменить профиль",
"account.endorse": "Рекомендовать в профиле",
@@ -16,8 +15,8 @@
"account.follows.empty": "Этот пользователь ни на кого не подписан.",
"account.follows_you": "Подписан(а) на Вас",
"account.hide_reblogs": "Скрыть продвижения от @{name}",
- "account.link_verified_on": "Ownership of this link was checked on {date}",
- "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
+ "account.link_verified_on": "Владение этой ссылкой было проверено {date}",
+ "account.locked_info": "Это закрытый аккаунт. Его владелец вручную одобряет подписчиков.",
"account.media": "Медиа",
"account.mention": "Упомянуть",
"account.moved_to": "Ищите {name} здесь:",
@@ -36,7 +35,6 @@
"account.unfollow": "Отписаться",
"account.unmute": "Снять глушение",
"account.unmute_notifications": "Показывать уведомления от @{name}",
- "account.view_full_profile": "Показать полный профиль",
"alert.unexpected.message": "Что-то пошло не так.",
"alert.unexpected.title": "Ой!",
"boost_modal.combo": "Нажмите {combo}, чтобы пропустить это в следующий раз",
@@ -73,6 +71,10 @@
"compose_form.lock_disclaimer": "Ваш аккаунт не {locked}. Любой человек может подписаться на Вас и просматривать посты для подписчиков.",
"compose_form.lock_disclaimer.lock": "закрыт",
"compose_form.placeholder": "О чем Вы думаете?",
+ "compose_form.poll.add_option": "Добавить",
+ "compose_form.poll.duration": "Длительность опроса",
+ "compose_form.poll.option_placeholder": "Вариант {number}",
+ "compose_form.poll.remove_option": "Удалить этот вариант",
"compose_form.publish": "Трубить",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "Медиафайлы не отмечены как чувствительные",
@@ -81,6 +83,7 @@
"compose_form.spoiler.unmarked": "Текст не скрыт",
"compose_form.spoiler_placeholder": "Текст предупреждения",
"confirmation_modal.cancel": "Отмена",
+ "confirmations.block.block_and_report": "Заблокировать и пожаловаться",
"confirmations.block.confirm": "Заблокировать",
"confirmations.block.message": "Вы уверены, что хотите заблокировать {name}?",
"confirmations.delete.confirm": "Удалить",
@@ -93,8 +96,8 @@
"confirmations.mute.message": "Вы уверены, что хотите заглушить {name}?",
"confirmations.redraft.confirm": "Удалить и исправить",
"confirmations.redraft.message": "Вы уверены, что хотите удалить этот статус и превратить в черновик? Вы потеряете все ответы, продвижения и отметки 'нравится' к нему.",
- "confirmations.reply.confirm": "Reply",
- "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
+ "confirmations.reply.confirm": "Ответить",
+ "confirmations.reply.message": "При ответе текст набираемого сообщения будет перезаписан. Продолжить?",
"confirmations.unfollow.confirm": "Отписаться",
"confirmations.unfollow.message": "Вы уверены, что хотите отписаться от {name}?",
"embed.instructions": "Встройте этот статус на Вашем сайте, скопировав код внизу.",
@@ -113,7 +116,9 @@
"emoji_button.search_results": "Результаты поиска",
"emoji_button.symbols": "Символы",
"emoji_button.travel": "Путешествия",
- "empty_column.account_timeline": "No toots here!",
+ "empty_column.account_timeline": "Статусов нет!",
+ "empty_column.account_unavailable": "Профиль недоступен",
+ "empty_column.account_timeline_blocked": "Вы заблокированы",
"empty_column.blocks": "Вы ещё никого не заблокировали.",
"empty_column.community": "Локальная лента пуста. Напишите что-нибудь, чтобы разогреть народ!",
"empty_column.direct": "У Вас пока нет личных сообщений. Когда Вы начнёте их отправлять или получать, они появятся здесь.",
@@ -137,40 +142,45 @@
"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": "Mastodon - сервис с открытым исходным кодом. Вы можете помочь проекту или сообщить о проблемах на GitHub по адресу {github}.",
"getting_started.security": "Безопасность",
"getting_started.terms": "Условия использования",
- "hashtag.column_header.tag_mode.all": "and {additional}",
- "hashtag.column_header.tag_mode.any": "or {additional}",
- "hashtag.column_header.tag_mode.none": "without {additional}",
- "hashtag.column_settings.tag_mode.all": "All of these",
- "hashtag.column_settings.tag_mode.any": "Any of these",
- "hashtag.column_settings.tag_mode.none": "None of these",
- "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
+ "hashtag.column_header.tag_mode.all": "и {additional}",
+ "hashtag.column_header.tag_mode.any": "или {additional}",
+ "hashtag.column_header.tag_mode.none": "без {additional}",
+ "hashtag.column_settings.select.no_options_message": "Предложений не найдено",
+ "hashtag.column_settings.select.placeholder": "Введите хэштеги…",
+ "hashtag.column_settings.tag_mode.all": "Все из списка",
+ "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.",
+ "intervals.full.days": "{number, plural, one {# день} few {# дня} many {# дней} other {# дней}}",
+ "intervals.full.hours": "{number, plural, one {# час} few {# часа} many {# часов} other {# часов}}",
+ "intervals.full.minutes": "{number, plural, one {# минута} few {# минуты} many {# минут} other {# минут}}",
+ "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": "продвинуть пост",
@@ -209,6 +219,7 @@
"lists.account.remove": "Убрать из списка",
"lists.delete": "Удалить список",
"lists.edit": "Изменить список",
+ "lists.edit.submit": "Изменить название",
"lists.new.create": "Новый список",
"lists.new.title_placeholder": "Заголовок списка",
"lists.search": "Искать из ваших подписок",
@@ -218,7 +229,7 @@
"missing_indicator.label": "Не найдено",
"missing_indicator.sublabel": "Запрашиваемый ресурс не найден",
"mute_modal.hide_notifications": "Убрать уведомления от этого пользователя?",
- "navigation_bar.apps": "Mobile apps",
+ "navigation_bar.apps": "Мобильные приложения",
"navigation_bar.blocks": "Список блокировки",
"navigation_bar.community_timeline": "Локальная лента",
"navigation_bar.compose": "Создать новый статус",
@@ -242,26 +253,35 @@
"notification.favourite": "{name} понравился Ваш статус",
"notification.follow": "{name} подписался(-лась) на Вас",
"notification.mention": "{name} упомянул(а) Вас",
+ "notification.poll": "Опрос, в котором вы приняли участие, завершился",
"notification.reblog": "{name} продвинул(а) Ваш статус",
"notifications.clear": "Очистить уведомления",
"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.poll": "Результаты опроса:",
"notifications.column_settings.push": "Push-уведомления",
"notifications.column_settings.reblog": "Продвижения:",
"notifications.column_settings.show": "Показывать в колонке",
"notifications.column_settings.sound": "Проигрывать звук",
- "notifications.filter.all": "All",
- "notifications.filter.boosts": "Boosts",
- "notifications.filter.favourites": "Favourites",
- "notifications.filter.follows": "Follows",
- "notifications.filter.mentions": "Mentions",
+ "notifications.filter.all": "Все",
+ "notifications.filter.boosts": "Продвижения",
+ "notifications.filter.favourites": "Отметки \"нравится\"",
+ "notifications.filter.follows": "Новые подписчики",
+ "notifications.filter.mentions": "Упоминания",
+ "notifications.filter.polls": "Результаты опросов",
"notifications.group": "{count} уведомл.",
+ "poll.closed": "Завершён",
+ "poll.refresh": "Обновить",
+ "poll.total_votes": "{count, plural, one {# голос} few {# голоса} many {# голосов} other {# голосов}}",
+ "poll.vote": "Голосовать",
+ "poll_button.add_poll": "Добавить опрос",
+ "poll_button.remove_poll": "Удалить опрос",
"privacy.change": "Изменить видимость статуса",
"privacy.direct.long": "Показать только упомянутым",
"privacy.direct.short": "Направленный",
@@ -279,12 +299,12 @@
"relative_time.minutes": "{number}м",
"relative_time.seconds": "{number}с",
"reply_indicator.cancel": "Отмена",
- "report.forward": "Переслать для {target}",
+ "report.forward": "Переслать в {target}",
"report.forward_hint": "Этот аккаунт расположен на другом сервере. Отправить туда анонимную копию Вашей жалобы?",
"report.hint": "Жалоба будет отправлена модераторам Вашего сервера. Вы также можете указать подробную причину жалобы ниже:",
"report.placeholder": "Комментарий",
"report.submit": "Отправить",
- "report.target": "Жалуемся на {target}",
+ "report.target": "Жалоба на {target}",
"search.placeholder": "Поиск",
"search_popout.search_format": "Продвинутый формат поиска",
"search_popout.tips.full_text": "Возвращает посты, которые Вы написали, отметили как 'избранное', продвинули или в которых были упомянуты, а также содержащие юзернейм, имя и хэштеги.",
@@ -296,12 +316,12 @@
"search_results.hashtags": "Хэштеги",
"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.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}",
@@ -314,11 +334,11 @@
"status.mention": "Упомянуть @{name}",
"status.more": "Больше",
"status.mute": "Заглушить @{name}",
- "status.mute_conversation": "Заглушить всю цепочку",
+ "status.mute_conversation": "Заглушить всё обсуждение",
"status.open": "Развернуть статус",
"status.pin": "Закрепить в профиле",
"status.pinned": "Закреплённый статус",
- "status.read_more": "Read more",
+ "status.read_more": "Ещё",
"status.reblog": "Продвинуть",
"status.reblog_private": "Продвинуть для своей аудитории",
"status.reblogged_by": "{name} продвинул(а)",
@@ -334,20 +354,27 @@
"status.show_less_all": "Свернуть для всех",
"status.show_more": "Развернуть",
"status.show_more_all": "Развернуть для всех",
- "status.show_thread": "Show thread",
- "status.unmute_conversation": "Снять глушение с треда",
+ "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": "Локальная",
"tabs_bar.notifications": "Уведомления",
"tabs_bar.search": "Поиск",
+ "time_remaining.days": "{number, plural, one {остался # день} few {осталось # дня} many {осталось # дней} other {осталось # дней}}",
+ "time_remaining.hours": "{number, plural, one {остался # час} few {осталось # часа} many {осталось # часов} other {осталось # часов}}",
+ "time_remaining.minutes": "{number, plural, one {осталась # минута} few {осталось # минуты} many {осталось # минут} other {осталось # минут}}",
+ "time_remaining.moments": "остались считанные мгновения",
+ "time_remaining.seconds": "{number, plural, one {осталась # секунду} few {осталось # секунды} many {осталось # секунд} other {осталось # секунд}}",
"trends.count_by_accounts": "Популярно у {count} {rawCount, plural, one {человека} few {человек} many {человек} other {человек}}",
"ui.beforeunload": "Ваш черновик будет утерян, если вы покинете Mastodon.",
"upload_area.title": "Перетащите сюда, чтобы загрузить",
"upload_button.label": "Добавить медиаконтент",
+ "upload_error.limit": "Достигнут лимит загруженных файлов.",
+ "upload_error.poll": "К опросам нельзя прикреплять файлы.",
"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 a7e7f02c7..212cf3745 100644
--- a/app/javascript/mastodon/locales/sk.json
+++ b/app/javascript/mastodon/locales/sk.json
@@ -5,49 +5,47 @@
"account.block_domain": "Ukry všetko z {domain}",
"account.blocked": "Blokovaný/á",
"account.direct": "Súkromná správa pre @{name}",
- "account.disclaimer_full": "Inofrmácie uvedené nižšie nemusia byť úplným odrazom uživateľovho účtu.",
"account.domain_blocked": "Doména ukrytá",
- "account.edit_profile": "Upraviť profil",
+ "account.edit_profile": "Uprav profil",
"account.endorse": "Zobrazuj na profile",
"account.follow": "Následuj",
"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.hide_reblogs": "Skry vyzdvihnutia od @{name}",
"account.link_verified_on": "Vlastníctvo tohto odkazu bolo skontrolované {date}",
"account.locked_info": "Stav súkromia pre tento účet je nastavený na zamknutý. Jeho vlastník sám prehodnocuje, kto ho môže sledovať.",
"account.media": "Médiá",
"account.mention": "Spomeň @{name}",
"account.moved_to": "{name} sa presunul/a na:",
"account.mute": "Ignorovať @{name}",
- "account.mute_notifications": "Stĺmiť oboznámenia od @{name}",
+ "account.mute_notifications": "Stĺm oboznámenia od @{name}",
"account.muted": "Utíšený/á",
"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.requested": "Čaká na schválenie. Klikni pre zrušenie žiadosti",
+ "account.share": "Zdieľaj @{name} profil",
"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ň následovať",
"account.unmute": "Prestaň ignorovať @{name}",
- "account.unmute_notifications": "Odtĺm oboznámenia od @{name}",
- "account.view_full_profile": "Pozri celý profil",
+ "account.unmute_notifications": "Zruš stĺmenie oboznámení od @{name}",
"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.",
"bundle_column_error.retry": "Skús to znova",
"bundle_column_error.title": "Chyba siete",
- "bundle_modal_error.close": "Zatvoriť",
+ "bundle_modal_error.close": "Zatvor",
"bundle_modal_error.message": "Nastala chyba pri načítaní tohto komponentu.",
"bundle_modal_error.retry": "Skúsiť znova",
"column.blocks": "Blokovaní užívatelia",
- "column.community": "Lokálna časová os",
+ "column.community": "Miestna časová os",
"column.direct": "Súkromné správy",
"column.domain_blocks": "Skryté domény",
"column.favourites": "Obľúbené",
@@ -60,60 +58,66 @@
"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",
- "community.column_settings.media_only": "Iba media",
+ "community.column_settings.media_only": "Iba médiá",
"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 {locked}. Ktokoľvek ťa môže nasledovať a vidieť tvoje správy pre sledujúcich.",
+ "compose_form.lock_disclaimer": "Tvoj úč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.poll.add_option": "Pridaj voľbu",
+ "compose_form.poll.duration": "Trvanie ankety",
+ "compose_form.poll.option_placeholder": "Voľba {number}",
+ "compose_form.poll.remove_option": "Odstráň túto voľbu",
"compose_form.publish": "Pošli",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "Médiálny obsah je označený ako chúlostivý",
"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?",
- "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í.",
+ "compose_form.spoiler_placeholder": "Sem napíš tvoje varovanie",
+ "confirmation_modal.cancel": "Zruš",
+ "confirmations.block.block_and_report": "Block & Report",
+ "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ú doménu {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.mute.message": "Naozaj chceš ignorovať {name}?",
+ "confirmations.redraft.confirm": "Vyčisti a prepíš",
"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}?",
+ "confirmations.unfollow.confirm": "Nesleduj",
+ "confirmations.unfollow.message": "Naozaj chceš prestať sledovať {name}?",
"embed.instructions": "Umiestni kód uvedený nižšie pre pridanie tohto statusu na tvoju web stránku.",
"embed.preview": "Tu je ako to bude vyzerať:",
"emoji_button.activity": "Aktivita",
"emoji_button.custom": "Vlastné",
"emoji_button.flags": "Vlajky",
"emoji_button.food": "Jedlá a nápoje",
- "emoji_button.label": "Vložiť emotikony",
+ "emoji_button.label": "Vlož emotikony",
"emoji_button.nature": "Prírodné",
"emoji_button.not_found": "Nie emotikony!! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "Predmety",
"emoji_button.people": "Ľudia",
"emoji_button.recent": "Často používané",
- "emoji_button.search": "Hľadať...",
+ "emoji_button.search": "Hľadaj...",
"emoji_button.search_results": "Nájdené",
"emoji_button.symbols": "Symboly",
"emoji_button.travel": "Cestovanie a miesta",
"empty_column.account_timeline": "Niesú tu žiadne príspevky!",
+ "empty_column.account_unavailable": "Profil nedostupný",
"empty_column.blocks": "Ešte si nikoho nezablokoval/a.",
"empty_column.community": "Lokálna časová os je prázdna. Napíšte niečo, aby sa to tu začalo hýbať!",
"empty_column.direct": "Ešte nemáš žiadne súkromné správy. Keď nejakú pošleš, alebo dostaneš, ukáže sa tu.",
@@ -128,7 +132,7 @@
"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": "Ešte nemáš žiadne oznámenia. Začni komunikovať s ostatnými, aby diskusia mohla začať.",
- "empty_column.public": "Ešte tu nič nie je. Napíš niečo verejne, alebo začni sledovať užívateľov z iných Mastodon serverov, aby tu niečo pribudlo",
+ "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",
"federation.change": "Adjust status federation",
"federation.federated.long": "Allow toot to reach other instances",
"federation.federated.short": "Federated",
@@ -147,129 +151,144 @@
"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": "Žiadne návrhy neboli nájdené",
+ "hashtag.column_settings.select.placeholder": "Zadaj haštagy…",
"hashtag.column_settings.tag_mode.all": "Všetky tieto",
"hashtag.column_settings.tag_mode.any": "Hociktorý z týchto",
"hashtag.column_settings.tag_mode.none": "Žiaden z týchto",
- "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
+ "hashtag.column_settings.tag_toggle": "Vlož dodatočné haštagy pre tento stĺpec",
"home.column_settings.basic": "Základné",
"home.column_settings.show_reblogs": "Zobraziť povýšené",
"home.column_settings.show_replies": "Ukázať odpovede",
+ "intervals.full.days": "{number, plural, one {# deň} few {# dní} many {# dní} other {# dni}}",
+ "intervals.full.hours": "{number, plural, one {# hodina} few {# hodín} many {# hodín} other {# hodiny}}",
+ "intervals.full.minutes": "{number, plural, one {# minúta} few {# minút} many {# minút} other {# minúty}}",
"introduction.federation.action": "Ďalej",
- "introduction.federation.federated.headline": "Federated",
- "introduction.federation.federated.text": "Verejné príspevky z ostatných serverov vo fediverse budú zobrazenie vo federovanej časovej osi.",
- "introduction.federation.home.headline": "Home",
+ "introduction.federation.federated.headline": "Federovaná",
+ "introduction.federation.federated.text": "Verejné príspevky z ostatných serverov vo fediverse budú zobrazené vo federovanej časovej osi.",
+ "introduction.federation.home.headline": "Domovská",
"introduction.federation.home.text": "Príspevky od ľudí ktorých následuješ sa zobrazia na tvojej domovskej nástenke. Môžeš následovať hocikoho na ktoromkoľvek serveri!",
- "introduction.federation.local.headline": "Local",
+ "introduction.federation.local.headline": "Miestna",
"introduction.federation.local.text": "Verejné príspevky od ľudí v rámci toho istého serveru na akom si aj ty, budú zobrazované na miestnej časovej osi.",
"introduction.interactions.action": "Ukonči návod!",
"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.headline": "Vyzdvihni",
"introduction.interactions.reblog.text": "Môžeš zdieľať príspevky iných ľudí s vašimi následovateľmi tým, že ich povýšiš.",
"introduction.interactions.reply.headline": "Odpovedz",
- "introduction.interactions.reply.text": "Odpovedať môžeš na príspevky iných ľudí, aj na svoje vlastné, čím sa sspolu prepoja do konverzácie.",
+ "introduction.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úť",
- "keyboard_shortcuts.column": "zamerať sa na status v jednom zo stĺpcov",
- "keyboard_shortcuts.compose": "zamerať sa na písaciu plochu",
+ "keyboard_shortcuts.column": "zameraj sa na príspevok v jednom zo stĺpcov",
+ "keyboard_shortcuts.compose": "zameraj sa na písaciu plochu",
"keyboard_shortcuts.description": "Popis",
"keyboard_shortcuts.direct": "otvor panel súkromných správ",
"keyboard_shortcuts.down": "posunúť sa dole v zozname",
"keyboard_shortcuts.enter": "otvoriť správu",
- "keyboard_shortcuts.favourite": "pridať do obľúbených",
+ "keyboard_shortcuts.favourite": "pridaj do obľúbených",
"keyboard_shortcuts.favourites": "otvor zoznam obľúbených",
"keyboard_shortcuts.federated": "otvor federovanú časovú os",
"keyboard_shortcuts.heading": "Klávesové skratky",
"keyboard_shortcuts.home": "otvor domácu časovú os",
"keyboard_shortcuts.hotkey": "Klávesa",
- "keyboard_shortcuts.legend": "zobraziť túto legendu",
+ "keyboard_shortcuts.legend": "zobraz túto legendu",
"keyboard_shortcuts.local": "otvor miestnu časovú os",
- "keyboard_shortcuts.mention": "spomenúť autora",
+ "keyboard_shortcuts.mention": "spomeň autora",
"keyboard_shortcuts.muted": "otvor zoznam stíšených užívateľov",
"keyboard_shortcuts.my_profile": "otvor svoj profil",
"keyboard_shortcuts.notifications": "otvor panel oboznámení",
"keyboard_shortcuts.pinned": "otvor zoznam pripnutých príspevkov",
"keyboard_shortcuts.profile": "otvor autorov profil",
"keyboard_shortcuts.reply": "odpovedať",
- "keyboard_shortcuts.requests": "otvor zoznam požiadavok k následovaniu",
- "keyboard_shortcuts.search": "zamerať sa na vyhľadávanie",
+ "keyboard_shortcuts.requests": "otvor zoznam žiadostí o sledovanie",
+ "keyboard_shortcuts.search": "zameraj sa na vyhľadávanie",
"keyboard_shortcuts.start": "otvor panel ''začíname''",
"keyboard_shortcuts.toggle_hidden": "ukáž/skry text za CW",
- "keyboard_shortcuts.toot": "začať úplne novú hlášku",
- "keyboard_shortcuts.unfocus": "nesústrediť sa na písaciu plochu, alebo hľadanie",
- "keyboard_shortcuts.up": "posunúť sa vyššie v zozname",
- "lightbox.close": "Zatvoriť",
+ "keyboard_shortcuts.toot": "začni úplne nový príspevok",
+ "keyboard_shortcuts.unfocus": "nesústreď sa na písaciu plochu, alebo hľadanie",
+ "keyboard_shortcuts.up": "posuň sa vyššie v zozname",
+ "lightbox.close": "Zatvor",
"lightbox.next": "Ďalšie",
"lightbox.previous": "Predchádzajúci",
- "lists.account.add": "Pridať do zoznamu",
- "lists.account.remove": "Odobrať zo zoznamu",
- "lists.delete": "Vymazať list",
+ "lists.account.add": "Pridaj do zoznamu",
+ "lists.account.remove": "Odober zo zoznamu",
+ "lists.delete": "Vymaž list",
"lists.edit": "Uprav zoznam",
+ "lists.edit.submit": "Zmeň názov",
"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.search": "Vyhľadávaj medzi užívateľmi, ktorých sleduješ",
"lists.subheading": "Tvoje zoznamy",
"loading_indicator.label": "Načítam...",
- "media_gallery.toggle_visible": "Zapnúť/Vypnúť viditeľnosť",
+ "media_gallery.toggle_visible": "Zapni/Vypni 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?",
- "navigation_bar.apps": "Mobilné aplikácie",
+ "mute_modal.hide_notifications": "Skry oznámenia od tohto používateľa?",
+ "navigation_bar.apps": "Aplikácie",
"navigation_bar.blocks": "Blokovaní užívatelia",
- "navigation_bar.community_timeline": "Lokálna časová os",
+ "navigation_bar.community_timeline": "Miestna časová os",
"navigation_bar.compose": "Napíš nový príspevok",
"navigation_bar.direct": "Súkromné správy",
"navigation_bar.discover": "Objavuj",
"navigation_bar.domain_blocks": "Skryté domény",
"navigation_bar.edit_profile": "Uprav profil",
"navigation_bar.favourites": "Obľúbené",
- "navigation_bar.filters": "Utĺmené slová",
+ "navigation_bar.filters": "Filtrované 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",
"navigation_bar.mutes": "Ignorovaní užívatelia",
"navigation_bar.personal": "Osobné",
- "navigation_bar.pins": "Pripnuté tooty",
+ "navigation_bar.pins": "Pripnuté príspevky",
"navigation_bar.preferences": "Voľby",
"navigation_bar.public_timeline": "Federovaná časová os",
"navigation_bar.security": "Zabezbečenie",
- "notification.favourite": "{name} sa páči tvoj status",
+ "notification.favourite": "{name} si obľúbil/a tvoj príspevok",
"notification.follow": "{name} ťa začal/a následovať",
"notification.mention": "{name} ťa spomenul/a",
- "notification.reblog": "{name} zdieľal/a tvoj status",
- "notifications.clear": "Vyčistiť zoznam notifikácii",
- "notifications.clear_confirmation": "Naozaj chcete nenávratne prečistiť všetky vaše notifikácie?",
- "notifications.column_settings.alert": "Notifikácie na ploche",
+ "notification.poll": "Anketa v ktorej si hlasoval/a sa skončila",
+ "notification.reblog": "{name} zdieľal/a tvoj príspevok",
+ "notifications.clear": "Vyčistiť zoznam oboznámení",
+ "notifications.clear_confirmation": "Naozaj chceš nenávratne prečistiť všetky tvoje oboznámenia?",
+ "notifications.column_settings.alert": "Oboznámenia na ploche",
"notifications.column_settings.favourite": "Obľúbené:",
"notifications.column_settings.filter_bar.advanced": "Zobraz všetky kategórie",
"notifications.column_settings.filter_bar.category": "Rýchle triedenie",
"notifications.column_settings.filter_bar.show": "Ukáž",
- "notifications.column_settings.follow": "Noví následujúci:",
+ "notifications.column_settings.follow": "Noví sledujúci:",
"notifications.column_settings.mention": "Zmienenia:",
+ "notifications.column_settings.poll": "Výsledky ankiet:",
"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.column_settings.reblog": "Vyzdvihnutia:",
+ "notifications.column_settings.show": "Zobraz v stĺpci",
+ "notifications.column_settings.sound": "Prehraj zvuk",
"notifications.filter.all": "Všetky",
"notifications.filter.boosts": "Vyzdvihnutia",
"notifications.filter.favourites": "Obľúbené",
"notifications.filter.follows": "Sledovania",
- "notifications.filter.mentions": "Spomenutia",
- "notifications.group": "{count} oznámenia",
- "privacy.change": "Zmeňiť viditeľnosť statusu",
- "privacy.direct.long": "Poslať priamo iba spomenutým používateľom",
+ "notifications.filter.mentions": "Iba spomenutia",
+ "notifications.filter.polls": "Výsledky ankiet",
+ "notifications.group": "{count} oboznámení",
+ "poll.closed": "Uzatvorená",
+ "poll.refresh": "Aktualizuj",
+ "poll.total_votes": "{count, plural, one {# hlas} few {# hlasov} many {# hlasov} other {# hlasy}}",
+ "poll.vote": "Hlasuj",
+ "poll_button.add_poll": "Pridaj anketu",
+ "poll_button.remove_poll": "Odstráň anketu",
+ "privacy.change": "Uprav súkromie príspevku",
+ "privacy.direct.long": "Pošli iba spomenutým užívateľom",
"privacy.direct.short": "Súkromne",
- "privacy.private.long": "Poslať iba následovateľom",
+ "privacy.private.long": "Pošli iba následovateľom",
"privacy.private.short": "Iba pre sledujúcich",
- "privacy.public.long": "Poslať všetkým verejne",
+ "privacy.public.long": "Pošli všetkým verejne",
"privacy.public.short": "Verejné",
- "privacy.unlisted.long": "Neposielať do verejných časových osí",
+ "privacy.unlisted.long": "Neposielaj do verejných časových osí",
"privacy.unlisted.short": "Verejne, ale nezobraziť v osi",
"regeneration_indicator.label": "Načítava sa…",
"regeneration_indicator.sublabel": "Vaša domovská nástenka sa pripravuje!",
@@ -280,28 +299,28 @@
"relative_time.seconds": "{number}s",
"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.forward_hint": "Tento účet je z iného serveru. Chceš poslať anonymnú kópiu hlásenia aj tam?",
+ "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}",
+ "report.submit": "Odošli",
+ "report.target": "Nahlás {target}",
"search.placeholder": "Hľadaj",
"search_popout.search_format": "Pokročilé vyhľadávanie",
- "search_popout.tips.full_text": "Jednoduchý textový výpis statusov ktoré si napísal/a, ktoré si obľúbil/a, povýšil/a, alebo aj tých, v ktorých si bol/a spomenutý/á, a potom všetky zadaniu odpovedajúce prezívky, mená a haštagy.",
+ "search_popout.tips.full_text": "Vráti jednoduchý textový výpis príspevkov ktoré si napísal/a, ktoré si obľúbil/a, povýšil/a, alebo aj tých, v ktorých si bol/a spomenutý/á, a potom všetky zadaniu odpovedajúce prezívky, mená a haštagy.",
"search_popout.tips.hashtag": "haštag",
"search_popout.tips.status": "status",
- "search_popout.tips.text": "Jednoduchý text vráti zhodujúce sa mená, prezývky a hashtagy",
- "search_popout.tips.user": "používateľ",
+ "search_popout.tips.text": "Vráti jednoduchý textový výpis zhodujúcich sa mien, prezývok a haštagov",
+ "search_popout.tips.user": "užívateľ",
"search_results.accounts": "Ľudia",
"search_results.hashtags": "Haštagy",
"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.block": "Blokuj @{name}",
"status.cancel_reblog_private": "Nezdieľaj",
- "status.cannot_reblog": "Tento príspevok nemôže byť re-tootnutý",
+ "status.cannot_reblog": "Tento príspevok nemôže byť zdieľaný",
+ "status.copy": "Skopíruj odkaz na príspevok",
"status.delete": "Zmazať",
"status.detailed_status": "Podrobný náhľad celej konverzácie",
"status.direct": "Súkromná správa @{name}",
@@ -313,23 +332,23 @@
"status.media_hidden": "Skryté médiá",
"status.mention": "Spomeň @{name}",
"status.more": "Viac",
- "status.mute": "Utíšiť @{name}",
- "status.mute_conversation": "Ignorovať konverzáciu",
- "status.open": "Otvoriť tento status",
+ "status.mute": "Utíš @{name}",
+ "status.mute_conversation": "Ignoruj konverzáciu",
+ "status.open": "Otvor tento príspevok",
"status.pin": "Pripni na profil",
"status.pinned": "Pripnutý príspevok",
"status.read_more": "Čítaj ďalej",
- "status.reblog": "Povýšiť",
- "status.reblog_private": "Povýš k pôvodnému publiku",
+ "status.reblog": "Vyzdvihni",
+ "status.reblog_private": "Vyzdvihni k pôvodnému publiku",
"status.reblogged_by": "{name} povýšil/a",
- "status.reblogs.empty": "Nikto ešte nepovýšil tento príspevok. Keď tak niekto urobí, bude to zobrazené práve tu.",
+ "status.reblogs.empty": "Nikto ešte nevyzdvihol tento príspevok. Keď tak niekto urobí, bude to zobrazené práve tu.",
"status.redraft": "Vymaž a prepíš",
"status.reply": "Odpovedať",
- "status.replyAll": "Odpovedať na diskusiu",
- "status.report": "Nahlásiť @{name}",
+ "status.replyAll": "Odpovedz na diskusiu",
+ "status.report": "Nahlás @{name}",
"status.sensitive_toggle": "Klikni pre zobrazenie",
"status.sensitive_warning": "Chúlostivý obsah",
- "status.share": "Zdieľať",
+ "status.share": "Zdieľaj",
"status.show_less": "Zobraz menej",
"status.show_less_all": "Všetkým ukáž menej",
"status.show_more": "Ukáž viac",
@@ -340,25 +359,32 @@
"suggestions.dismiss": "Zavrhni návrh",
"suggestions.header": "Mohlo by ťa zaujímať…",
"tabs_bar.federated_timeline": "Federovaná",
- "tabs_bar.home": "Domov",
- "tabs_bar.local_timeline": "Lokálna",
- "tabs_bar.notifications": "Notifikácie",
+ "tabs_bar.home": "Domovská",
+ "tabs_bar.local_timeline": "Miestna",
+ "tabs_bar.notifications": "Oboznámenia",
"tabs_bar.search": "Hľadaj",
+ "time_remaining.days": "Ostáva {number, plural, one {# deň} few {# dní} many {# dni} other {# dni}}",
+ "time_remaining.hours": "Ostáva {number, plural, one {# hodina} few {# hodín} many {# hodín} other {# hodiny}}",
+ "time_remaining.minutes": "Ostáva {number, plural, one {# minúta} few {# minút} many {# minút} other {# minúty}}",
+ "time_remaining.moments": "Ostáva už iba chviľka",
+ "time_remaining.seconds": "Ostáva {number, plural, one {# sekunda} few {# sekúnd} many {# sekúnd} other {# sekundy}}",
"trends.count_by_accounts": "{count} {rawCount, plural, one {človek vraví} other {ľudia vravia}}",
"ui.beforeunload": "Čo máš rozpísané sa stratí, ak opustíš Mastodon.",
"upload_area.title": "Pretiahni a pusť pre nahratie",
- "upload_button.label": "Pridať médiálny súbor (JPEG, PNG, GIF, WebM, MP4, MOV)",
+ "upload_button.label": "Pridaj médiálny súbor (JPEG, PNG, GIF, WebM, MP4, MOV)",
+ "upload_error.limit": "Limit pre nahrávanie súborov bol prekročený.",
+ "upload_error.poll": "Nahrávanie súborov pri anketách nieje možné.",
"upload_form.description": "Opis pre slabo vidiacich",
"upload_form.focus": "Pozmeň náhľad",
"upload_form.undo": "Vymaž",
"upload_progress.label": "Nahráva sa...",
- "video.close": "Zavrieť video",
- "video.exit_fullscreen": "Vpnúť zobrazenie na celú obrazovku",
- "video.expand": "Zväčšiť video",
- "video.fullscreen": "Zobraziť na celú obrazovku",
- "video.hide": "Skryť video",
- "video.mute": "Vypnúť zvuk",
+ "video.close": "Zavri video",
+ "video.exit_fullscreen": "Vypni zobrazenie na celú obrazovku",
+ "video.expand": "Zväčši video",
+ "video.fullscreen": "Zobraz na celú obrazovku",
+ "video.hide": "Skry video",
+ "video.mute": "Vypni zvuk",
"video.pause": "Pauza",
- "video.play": "Prehrať",
- "video.unmute": "Zapnúť zvuk"
+ "video.play": "Prehraj",
+ "video.unmute": "Zapni zvuk"
}
diff --git a/app/javascript/mastodon/locales/sl.json b/app/javascript/mastodon/locales/sl.json
index cfc121697..059abacf1 100644
--- a/app/javascript/mastodon/locales/sl.json
+++ b/app/javascript/mastodon/locales/sl.json
@@ -1,11 +1,10 @@
{
- "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}",
"account.blocked": "Blokirano",
"account.direct": "Neposredno sporočilo @{name}",
- "account.disclaimer_full": "Spodnje informacije lahko nepopolno prikazujejo profil uporabnika.",
"account.domain_blocked": "Skrita domena",
"account.edit_profile": "Uredi profil",
"account.endorse": "Zmožnost profila",
@@ -36,7 +35,6 @@
"account.unfollow": "Prenehaj slediti",
"account.unmute": "Odtišaj @{name}",
"account.unmute_notifications": "Vklopi obvestila od @{name}",
- "account.view_full_profile": "Ogled celotnega profila",
"alert.unexpected.message": "Zgodila se je nepričakovana napaka.",
"alert.unexpected.title": "Uups!",
"boost_modal.combo": "Če želite naslednjič preskočiti to, lahko pritisnete {combo}",
@@ -73,6 +71,10 @@
"compose_form.lock_disclaimer": "Vaš račun ni {locked}. Vsakdo vam lahko sledi in si ogleda objave, ki so namenjene samo sledilcem.",
"compose_form.lock_disclaimer.lock": "zaklenjen",
"compose_form.placeholder": "O čem razmišljaš?",
+ "compose_form.poll.add_option": "Add a choice",
+ "compose_form.poll.duration": "Poll duration",
+ "compose_form.poll.option_placeholder": "Choice {number}",
+ "compose_form.poll.remove_option": "Remove this choice",
"compose_form.publish": "Tutni",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "Medij je označen kot občutljiv",
@@ -81,6 +83,7 @@
"compose_form.spoiler.unmarked": "Besedilo ni skrito",
"compose_form.spoiler_placeholder": "Napišite opozorilo tukaj",
"confirmation_modal.cancel": "Prekliči",
+ "confirmations.block.block_and_report": "Block & Report",
"confirmations.block.confirm": "Block",
"confirmations.block.message": "Ali ste prepričani, da želite blokirati {name}?",
"confirmations.delete.confirm": "Delete",
@@ -114,6 +117,7 @@
"emoji_button.symbols": "Simboli",
"emoji_button.travel": "Potovanja in Kraji",
"empty_column.account_timeline": "No toots here!",
+ "empty_column.account_unavailable": "Profile unavailable",
"empty_column.blocks": "Niste še blokirali nobenega uporabnika.",
"empty_column.community": "Lokalna časovnica je prazna. Napišite nekaj javnega, da se bo žoga zakotalila!",
"empty_column.direct": "Nimate še nobenih neposrednih sporočil. Ko ga pošljete ali prejmete, se prikaže tukaj.",
@@ -147,6 +151,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",
@@ -154,6 +160,9 @@
"home.column_settings.basic": "Osnovno",
"home.column_settings.show_reblogs": "Pokaži sunke",
"home.column_settings.show_replies": "Pokaži odgovore",
+ "intervals.full.days": "{number, plural, one {# day} other {# days}}",
+ "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
+ "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
"introduction.federation.action": "Next",
"introduction.federation.federated.headline": "Federated",
"introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
@@ -209,6 +218,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",
@@ -242,6 +252,7 @@
"notification.favourite": "{name} favourited your status",
"notification.follow": "{name} followed you",
"notification.mention": "{name} mentioned you",
+ "notification.poll": "A poll you have voted in has ended",
"notification.reblog": "{name} boosted your status",
"notifications.clear": "Clear notifications",
"notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?",
@@ -252,6 +263,7 @@
"notifications.column_settings.filter_bar.show": "Show",
"notifications.column_settings.follow": "New followers:",
"notifications.column_settings.mention": "Mentions:",
+ "notifications.column_settings.poll": "Poll results:",
"notifications.column_settings.push": "Push notifications",
"notifications.column_settings.reblog": "Boosts:",
"notifications.column_settings.show": "Show in column",
@@ -261,7 +273,14 @@
"notifications.filter.favourites": "Favourites",
"notifications.filter.follows": "Follows",
"notifications.filter.mentions": "Mentions",
+ "notifications.filter.polls": "Poll results",
"notifications.group": "{count} notifications",
+ "poll.closed": "Closed",
+ "poll.refresh": "Refresh",
+ "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
+ "poll.vote": "Vote",
+ "poll_button.add_poll": "Add a poll",
+ "poll_button.remove_poll": "Remove poll",
"privacy.change": "Adjust status privacy",
"privacy.direct.long": "Post to mentioned users only",
"privacy.direct.short": "Direct",
@@ -296,12 +315,12 @@
"search_results.hashtags": "Hashtags",
"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}",
@@ -344,10 +363,17 @@
"tabs_bar.local_timeline": "Lokalno",
"tabs_bar.notifications": "Obvestila",
"tabs_bar.search": "Poišči",
+ "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
+ "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
+ "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
+ "time_remaining.moments": "Moments remaining",
+ "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
"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_error.poll": "File upload not allowed with polls.",
"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..89df633cc
--- /dev/null
+++ b/app/javascript/mastodon/locales/sq.json
@@ -0,0 +1,384 @@
+{
+ "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.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}",
+ "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.poll.add_option": "Add a choice",
+ "compose_form.poll.duration": "Poll duration",
+ "compose_form.poll.option_placeholder": "Choice {number}",
+ "compose_form.poll.remove_option": "Remove this choice",
+ "compose_form.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.block_and_report": "Block & Report",
+ "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.account_unavailable": "Profile unavailable",
+ "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",
+ "intervals.full.days": "{number, plural, one {# day} other {# days}}",
+ "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
+ "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
+ "introduction.federation.action": "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.poll": "A poll you have voted in has ended",
+ "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.poll": "Poll results:",
+ "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.filter.polls": "Poll results",
+ "notifications.group": "%(count)s njoftime",
+ "poll.closed": "Closed",
+ "poll.refresh": "Refresh",
+ "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
+ "poll.vote": "Vote",
+ "poll_button.add_poll": "Add a poll",
+ "poll_button.remove_poll": "Remove poll",
+ "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}",
+ "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",
+ "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
+ "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
+ "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
+ "time_remaining.moments": "Moments remaining",
+ "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
+ "trends.count_by_accounts": "{count} {rawCount, plural, 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_error.poll": "File upload not allowed with polls.",
+ "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 1eb904a1e..ae18feb1b 100644
--- a/app/javascript/mastodon/locales/sr-Latn.json
+++ b/app/javascript/mastodon/locales/sr-Latn.json
@@ -5,7 +5,6 @@
"account.block_domain": "Sakrij sve sa domena {domain}",
"account.blocked": "Blocked",
"account.direct": "Direct Message @{name}",
- "account.disclaimer_full": "Navedene informacije možda ne odslikavaju korisnički profil u potpunosti.",
"account.domain_blocked": "Domain hidden",
"account.edit_profile": "Izmeni profil",
"account.endorse": "Feature on profile",
@@ -36,7 +35,6 @@
"account.unfollow": "Otprati",
"account.unmute": "Ukloni ućutkavanje korisniku @{name}",
"account.unmute_notifications": "Uključi nazad obaveštenja od korisnika @{name}",
- "account.view_full_profile": "Vidi ceo profil",
"alert.unexpected.message": "An unexpected error occurred.",
"alert.unexpected.title": "Oops!",
"boost_modal.combo": "Možete pritisnuti {combo} da preskočite ovo sledeći put",
@@ -73,6 +71,10 @@
"compose_form.lock_disclaimer": "Vaš nalog nije {locked}. Svako može da Vas zaprati i da vidi objave namenjene samo Vašim pratiocima.",
"compose_form.lock_disclaimer.lock": "zaključan",
"compose_form.placeholder": "Šta Vam je na umu?",
+ "compose_form.poll.add_option": "Add a choice",
+ "compose_form.poll.duration": "Poll duration",
+ "compose_form.poll.option_placeholder": "Choice {number}",
+ "compose_form.poll.remove_option": "Remove this choice",
"compose_form.publish": "Tutni",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "Media is marked as sensitive",
@@ -81,6 +83,7 @@
"compose_form.spoiler.unmarked": "Text is not hidden",
"compose_form.spoiler_placeholder": "Ovde upišite upozorenje",
"confirmation_modal.cancel": "Poništi",
+ "confirmations.block.block_and_report": "Block & Report",
"confirmations.block.confirm": "Blokiraj",
"confirmations.block.message": "Da li ste sigurni da želite da blokirate korisnika {name}?",
"confirmations.delete.confirm": "Obriši",
@@ -114,6 +117,7 @@
"emoji_button.symbols": "Simboli",
"emoji_button.travel": "Putovanja & mesta",
"empty_column.account_timeline": "No toots here!",
+ "empty_column.account_unavailable": "Profile unavailable",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "Lokalna lajna je prazna. Napišite nešto javno da lajna produva!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
@@ -147,6 +151,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",
@@ -154,6 +160,9 @@
"home.column_settings.basic": "Osnovno",
"home.column_settings.show_reblogs": "Prikaži i podržavanja",
"home.column_settings.show_replies": "Prikaži odgovore",
+ "intervals.full.days": "{number, plural, one {# day} other {# days}}",
+ "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
+ "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
"introduction.federation.action": "Next",
"introduction.federation.federated.headline": "Federated",
"introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
@@ -209,6 +218,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",
@@ -242,6 +252,7 @@
"notification.favourite": "{name} je stavio Vaš status kao omiljeni",
"notification.follow": "{name} Vas je zapratio",
"notification.mention": "{name} Vas je pomenuo",
+ "notification.poll": "A poll you have voted in has ended",
"notification.reblog": "{name} je podržao(la) Vaš status",
"notifications.clear": "Očisti obaveštenja",
"notifications.clear_confirmation": "Da li ste sigurno da trajno želite da očistite Vaša obaveštenja?",
@@ -252,6 +263,7 @@
"notifications.column_settings.filter_bar.show": "Show",
"notifications.column_settings.follow": "Novi pratioci:",
"notifications.column_settings.mention": "Pominjanja:",
+ "notifications.column_settings.poll": "Poll results:",
"notifications.column_settings.push": "Guraj obaveštenja",
"notifications.column_settings.reblog": "Podrški:",
"notifications.column_settings.show": "Prikaži u koloni",
@@ -261,7 +273,14 @@
"notifications.filter.favourites": "Favourites",
"notifications.filter.follows": "Follows",
"notifications.filter.mentions": "Mentions",
+ "notifications.filter.polls": "Poll results",
"notifications.group": "{count} notifications",
+ "poll.closed": "Closed",
+ "poll.refresh": "Refresh",
+ "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
+ "poll.vote": "Vote",
+ "poll_button.add_poll": "Add a poll",
+ "poll_button.remove_poll": "Remove poll",
"privacy.change": "Podesi status privatnosti",
"privacy.direct.long": "Objavi samo korisnicima koji su pomenuti",
"privacy.direct.short": "Direktno",
@@ -296,12 +315,12 @@
"search_results.hashtags": "Hashtags",
"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}",
@@ -344,10 +363,17 @@
"tabs_bar.local_timeline": "Lokalno",
"tabs_bar.notifications": "Obaveštenja",
"tabs_bar.search": "Search",
+ "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
+ "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
+ "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
+ "time_remaining.moments": "Moments remaining",
+ "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
"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_error.poll": "File upload not allowed with polls.",
"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 b72e5e631..f7a15a21b 100644
--- a/app/javascript/mastodon/locales/sr.json
+++ b/app/javascript/mastodon/locales/sr.json
@@ -5,7 +5,6 @@
"account.block_domain": "Сакриј све са домена {domain}",
"account.blocked": "Блокиран",
"account.direct": "Директна порука @{name}",
- "account.disclaimer_full": "Наведене информације можда не одсликавају кориснички профил у потпуности.",
"account.domain_blocked": "Домен сакривен",
"account.edit_profile": "Измени профил",
"account.endorse": "Приказати на профилу",
@@ -36,7 +35,6 @@
"account.unfollow": "Отпрати",
"account.unmute": "Уклони ућуткавање кориснику @{name}",
"account.unmute_notifications": "Укључи назад обавештења од корисника @{name}",
- "account.view_full_profile": "Види цео профил",
"alert.unexpected.message": "Појавила се неочекивана грешка.",
"alert.unexpected.title": "Упс!",
"boost_modal.combo": "Можете притиснути {combo} да прескочите ово следећи пут",
@@ -73,6 +71,10 @@
"compose_form.lock_disclaimer": "Ваш налог није {locked}. Свако може да Вас запрати и да види објаве намењене само Вашим пратиоцима.",
"compose_form.lock_disclaimer.lock": "закључан",
"compose_form.placeholder": "Шта Вам је на уму?",
+ "compose_form.poll.add_option": "Add a choice",
+ "compose_form.poll.duration": "Poll duration",
+ "compose_form.poll.option_placeholder": "Choice {number}",
+ "compose_form.poll.remove_option": "Remove this choice",
"compose_form.publish": "Труби",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "Медији су означени као осетљиви",
@@ -81,6 +83,7 @@
"compose_form.spoiler.unmarked": "Текст није сакривен",
"compose_form.spoiler_placeholder": "Овде упишите упозорење",
"confirmation_modal.cancel": "Поништи",
+ "confirmations.block.block_and_report": "Block & Report",
"confirmations.block.confirm": "Блокирај",
"confirmations.block.message": "Да ли сте сигурни да желите да блокирате корисника {name}?",
"confirmations.delete.confirm": "Обриши",
@@ -114,6 +117,7 @@
"emoji_button.symbols": "Симболи",
"emoji_button.travel": "Путовања и места",
"empty_column.account_timeline": "No toots here!",
+ "empty_column.account_unavailable": "Profile unavailable",
"empty_column.blocks": "Још увек немате блокираних корисника.",
"empty_column.community": "Локална временска линија је празна. Напишите нешто јавно да започнете!",
"empty_column.direct": "Још увек немате директних порука. Када пошаљете или примите једну, појавиће се овде.",
@@ -147,6 +151,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",
@@ -154,6 +160,9 @@
"home.column_settings.basic": "Основно",
"home.column_settings.show_reblogs": "Прикажи и подржавања",
"home.column_settings.show_replies": "Прикажи одговоре",
+ "intervals.full.days": "{number, plural, one {# day} other {# days}}",
+ "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
+ "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
"introduction.federation.action": "Next",
"introduction.federation.federated.headline": "Federated",
"introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
@@ -209,6 +218,7 @@
"lists.account.remove": "Уклони са листе",
"lists.delete": "Обриши листу",
"lists.edit": "Измени листу",
+ "lists.edit.submit": "Change title",
"lists.new.create": "Додај листу",
"lists.new.title_placeholder": "Наслов нове листе",
"lists.search": "Претражи међу људима које пратите",
@@ -242,6 +252,7 @@
"notification.favourite": "{name} је ставио/ла Ваш статус као омиљени",
"notification.follow": "{name} Вас је запратио/ла",
"notification.mention": "{name} Вас је поменуо/ла",
+ "notification.poll": "A poll you have voted in has ended",
"notification.reblog": "{name} је подржао/ла Ваш статус",
"notifications.clear": "Очисти обавештења",
"notifications.clear_confirmation": "Да ли сте сигурно да трајно желите да очистите Ваша обавештења?",
@@ -252,6 +263,7 @@
"notifications.column_settings.filter_bar.show": "Show",
"notifications.column_settings.follow": "Нови пратиоци:",
"notifications.column_settings.mention": "Помињања:",
+ "notifications.column_settings.poll": "Poll results:",
"notifications.column_settings.push": "Гурај обавештења",
"notifications.column_settings.reblog": "Подршки:",
"notifications.column_settings.show": "Прикажи у колони",
@@ -261,7 +273,14 @@
"notifications.filter.favourites": "Favourites",
"notifications.filter.follows": "Follows",
"notifications.filter.mentions": "Mentions",
+ "notifications.filter.polls": "Poll results",
"notifications.group": "{count} обавештења",
+ "poll.closed": "Closed",
+ "poll.refresh": "Refresh",
+ "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
+ "poll.vote": "Vote",
+ "poll_button.add_poll": "Add a poll",
+ "poll_button.remove_poll": "Remove poll",
"privacy.change": "Подеси статус приватности",
"privacy.direct.long": "Објави само корисницима који су поменути",
"privacy.direct.short": "Директно",
@@ -296,12 +315,12 @@
"search_results.hashtags": "Тарабе",
"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}",
@@ -344,10 +363,17 @@
"tabs_bar.local_timeline": "Локално",
"tabs_bar.notifications": "Обавештења",
"tabs_bar.search": "Претрага",
+ "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
+ "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
+ "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
+ "time_remaining.moments": "Moments remaining",
+ "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
"trends.count_by_accounts": "{count} {rawCount, plural, one {човек} other {људи}} прича",
"ui.beforeunload": "Ако напустите Мастодонт, изгубићете написани нацрт.",
"upload_area.title": "Превуците овде да отпремите",
"upload_button.label": "Додај мултимедију (JPEG, PNG, GIF, WebM, MP4, MOV)",
+ "upload_error.limit": "File upload limit exceeded.",
+ "upload_error.poll": "File upload not allowed with polls.",
"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 2d5eae6ae..e8c5355b5 100644
--- a/app/javascript/mastodon/locales/sv.json
+++ b/app/javascript/mastodon/locales/sv.json
@@ -5,7 +5,6 @@
"account.block_domain": "Dölj allt från {domain}",
"account.blocked": "Blockerad",
"account.direct": "Direktmeddelande @{name}",
- "account.disclaimer_full": "Informationen nedan kan spegla användarens profil ofullständigt.",
"account.domain_blocked": "Domän dold",
"account.edit_profile": "Redigera profil",
"account.endorse": "Feature on profile",
@@ -36,7 +35,6 @@
"account.unfollow": "Sluta följa",
"account.unmute": "Ta bort tystad @{name}",
"account.unmute_notifications": "Återaktivera notifikationer från @{name}",
- "account.view_full_profile": "Visa hela profilen",
"alert.unexpected.message": "Ett oväntat fel uppstod.",
"alert.unexpected.title": "Oops!",
"boost_modal.combo": "Du kan trycka {combo} för att slippa denna nästa gång",
@@ -73,6 +71,10 @@
"compose_form.lock_disclaimer": "Ditt konto är inte {locked}. Vemsomhelst kan följa dig och även se dina inlägg skrivna för endast dina följare.",
"compose_form.lock_disclaimer.lock": "låst",
"compose_form.placeholder": "Vad funderar du på?",
+ "compose_form.poll.add_option": "Add a choice",
+ "compose_form.poll.duration": "Poll duration",
+ "compose_form.poll.option_placeholder": "Choice {number}",
+ "compose_form.poll.remove_option": "Remove this choice",
"compose_form.publish": "Toot",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "Media har markerats som känsligt",
@@ -81,6 +83,7 @@
"compose_form.spoiler.unmarked": "Texten är inte dold",
"compose_form.spoiler_placeholder": "Skriv din varning här",
"confirmation_modal.cancel": "Ångra",
+ "confirmations.block.block_and_report": "Block & Report",
"confirmations.block.confirm": "Blockera",
"confirmations.block.message": "Är du säker att du vill blockera {name}?",
"confirmations.delete.confirm": "Ta bort",
@@ -114,6 +117,7 @@
"emoji_button.symbols": "Symboler",
"emoji_button.travel": "Resor & Platser",
"empty_column.account_timeline": "No toots here!",
+ "empty_column.account_unavailable": "Profile unavailable",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "Den lokala tidslinjen är tom. Skriv något offentligt för att få bollen att rulla!",
"empty_column.direct": "Du har inga direktmeddelanden än. När du skickar eller tar emot kommer den att dyka upp här.",
@@ -147,6 +151,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",
@@ -154,6 +160,9 @@
"home.column_settings.basic": "Grundläggande",
"home.column_settings.show_reblogs": "Visa knuffar",
"home.column_settings.show_replies": "Visa svar",
+ "intervals.full.days": "{number, plural, one {# day} other {# days}}",
+ "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
+ "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
"introduction.federation.action": "Next",
"introduction.federation.federated.headline": "Federated",
"introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
@@ -209,6 +218,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",
@@ -242,6 +252,7 @@
"notification.favourite": "{name} favoriserade din status",
"notification.follow": "{name} följer dig",
"notification.mention": "{name} nämnde dig",
+ "notification.poll": "A poll you have voted in has ended",
"notification.reblog": "{name} knuffade din status",
"notifications.clear": "Rensa meddelanden",
"notifications.clear_confirmation": "Är du säker på att du vill radera alla dina meddelanden permanent?",
@@ -252,6 +263,7 @@
"notifications.column_settings.filter_bar.show": "Show",
"notifications.column_settings.follow": "Nya följare:",
"notifications.column_settings.mention": "Omnämningar:",
+ "notifications.column_settings.poll": "Poll results:",
"notifications.column_settings.push": "Push meddelanden",
"notifications.column_settings.reblog": "Knuffar:",
"notifications.column_settings.show": "Visa i kolumnen",
@@ -261,7 +273,14 @@
"notifications.filter.favourites": "Favourites",
"notifications.filter.follows": "Follows",
"notifications.filter.mentions": "Mentions",
+ "notifications.filter.polls": "Poll results",
"notifications.group": "{count} aviseringar",
+ "poll.closed": "Closed",
+ "poll.refresh": "Refresh",
+ "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
+ "poll.vote": "Vote",
+ "poll_button.add_poll": "Add a poll",
+ "poll_button.remove_poll": "Remove poll",
"privacy.change": "Justera sekretess",
"privacy.direct.long": "Skicka endast till nämnda användare",
"privacy.direct.short": "Direkt",
@@ -296,12 +315,12 @@
"search_results.hashtags": "Hashtags",
"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}",
@@ -344,10 +363,17 @@
"tabs_bar.local_timeline": "Lokal",
"tabs_bar.notifications": "Meddelanden",
"tabs_bar.search": "Sök",
+ "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
+ "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
+ "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
+ "time_remaining.moments": "Moments remaining",
+ "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
"trends.count_by_accounts": "{count} {rawCount, plural, en {person} andra {people}} pratar",
"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_error.poll": "File upload not allowed with polls.",
"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 70df09970..301768013 100644
--- a/app/javascript/mastodon/locales/ta.json
+++ b/app/javascript/mastodon/locales/ta.json
@@ -5,7 +5,6 @@
"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",
@@ -36,7 +35,6 @@
"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",
@@ -73,6 +71,10 @@
"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.poll.add_option": "Add a choice",
+ "compose_form.poll.duration": "Poll duration",
+ "compose_form.poll.option_placeholder": "Choice {number}",
+ "compose_form.poll.remove_option": "Remove this choice",
"compose_form.publish": "Toot",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "Media is marked as sensitive",
@@ -81,6 +83,7 @@
"compose_form.spoiler.unmarked": "Text is not hidden",
"compose_form.spoiler_placeholder": "Write your warning here",
"confirmation_modal.cancel": "Cancel",
+ "confirmations.block.block_and_report": "Block & Report",
"confirmations.block.confirm": "Block",
"confirmations.block.message": "Are you sure you want to block {name}?",
"confirmations.delete.confirm": "Delete",
@@ -114,6 +117,7 @@
"emoji_button.symbols": "Symbols",
"emoji_button.travel": "Travel & Places",
"empty_column.account_timeline": "No toots here!",
+ "empty_column.account_unavailable": "Profile unavailable",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.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.",
@@ -147,6 +151,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",
@@ -154,6 +160,9 @@
"home.column_settings.basic": "Basic",
"home.column_settings.show_reblogs": "Show boosts",
"home.column_settings.show_replies": "Show replies",
+ "intervals.full.days": "{number, plural, one {# day} other {# days}}",
+ "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
+ "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
"introduction.federation.action": "Next",
"introduction.federation.federated.headline": "Federated",
"introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
@@ -209,6 +218,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",
@@ -242,6 +252,7 @@
"notification.favourite": "{name} favourited your status",
"notification.follow": "{name} followed you",
"notification.mention": "{name} mentioned you",
+ "notification.poll": "A poll you have voted in has ended",
"notification.reblog": "{name} boosted your status",
"notifications.clear": "Clear notifications",
"notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?",
@@ -252,6 +263,7 @@
"notifications.column_settings.filter_bar.show": "Show",
"notifications.column_settings.follow": "New followers:",
"notifications.column_settings.mention": "Mentions:",
+ "notifications.column_settings.poll": "Poll results:",
"notifications.column_settings.push": "Push notifications",
"notifications.column_settings.reblog": "Boosts:",
"notifications.column_settings.show": "Show in column",
@@ -261,7 +273,14 @@
"notifications.filter.favourites": "Favourites",
"notifications.filter.follows": "Follows",
"notifications.filter.mentions": "Mentions",
+ "notifications.filter.polls": "Poll results",
"notifications.group": "{count} notifications",
+ "poll.closed": "Closed",
+ "poll.refresh": "Refresh",
+ "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
+ "poll.vote": "Vote",
+ "poll_button.add_poll": "Add a poll",
+ "poll_button.remove_poll": "Remove poll",
"privacy.change": "Adjust status privacy",
"privacy.direct.long": "Post to mentioned users only",
"privacy.direct.short": "Direct",
@@ -296,12 +315,12 @@
"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}",
@@ -344,10 +363,17 @@
"tabs_bar.local_timeline": "Local",
"tabs_bar.notifications": "Notifications",
"tabs_bar.search": "Search",
+ "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
+ "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
+ "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
+ "time_remaining.moments": "Moments remaining",
+ "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
"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_error.poll": "File upload not allowed with polls.",
"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 ae56de63c..60831e9e5 100644
--- a/app/javascript/mastodon/locales/te.json
+++ b/app/javascript/mastodon/locales/te.json
@@ -5,7 +5,6 @@
"account.block_domain": "{domain} నుంచి అన్నీ దాచిపెట్టు",
"account.blocked": "బ్లాక్ అయినవి",
"account.direct": "@{name}కు నేరుగా సందేశం పంపు",
- "account.disclaimer_full": "క్రింది సమాచారం వాడుకరి యొక్క ప్రొఫైల్ను అసంపూర్తిగా ప్రతిబింబించవచ్చు.",
"account.domain_blocked": "డొమైన్ దాచిపెట్టబడినది",
"account.edit_profile": "ప్రొఫైల్ని సవరించండి",
"account.endorse": "ప్రొఫైల్లో చూపించు",
@@ -36,7 +35,6 @@
"account.unfollow": "అనుసరించవద్దు",
"account.unmute": "@{name}పై మ్యూట్ ని తొలగించు",
"account.unmute_notifications": "@{name} నుంచి ప్రకటనలపై మ్యూట్ ని తొలగించు",
- "account.view_full_profile": "పూర్తి ప్రొఫైల్ను చూడండి",
"alert.unexpected.message": "అనుకోని తప్పు జరిగినది.",
"alert.unexpected.title": "అయ్యో!",
"boost_modal.combo": "మీరు తదుపరిసారి దీనిని దాటవేయడానికి {combo} నొక్కవచ్చు",
@@ -73,6 +71,10 @@
"compose_form.lock_disclaimer": "మీ ఖాతా {locked} చేయబడలేదు. ఎవరైనా మిమ్మల్ని అనుసరించి మీ అనుచరులకు-మాత్రమే పోస్ట్లను వీక్షించవచ్చు.",
"compose_form.lock_disclaimer.lock": "బిగించబడినది",
"compose_form.placeholder": "మీ మనస్సులో ఏముంది?",
+ "compose_form.poll.add_option": "ఒక ఎంపికను చేర్చండి",
+ "compose_form.poll.duration": "ఎన్నిక వ్యవధి",
+ "compose_form.poll.option_placeholder": "ఎంపిక {number}",
+ "compose_form.poll.remove_option": "ఈ ఎంపికను తొలగించు",
"compose_form.publish": "టూట్",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "మీడియా సున్నితమైనదిగా గుర్తించబడింది",
@@ -81,6 +83,7 @@
"compose_form.spoiler.unmarked": "పాఠ్యం దాచబడలేదు",
"compose_form.spoiler_placeholder": "ఇక్కడ మీ హెచ్చరికను రాయండి",
"confirmation_modal.cancel": "రద్దు చెయ్యి",
+ "confirmations.block.block_and_report": "Block & Report",
"confirmations.block.confirm": "బ్లాక్ చేయి",
"confirmations.block.message": "మీరు ఖచ్చితంగా {name}ని బ్లాక్ చేయాలనుకుంటున్నారా?",
"confirmations.delete.confirm": "తొలగించు",
@@ -114,6 +117,7 @@
"emoji_button.symbols": "చిహ్నాలు",
"emoji_button.travel": "ప్రయాణం & ప్రదేశాలు",
"empty_column.account_timeline": "ఇక్కడ ఏ టూట్లూ లేవు!No toots here!",
+ "empty_column.account_unavailable": "Profile unavailable",
"empty_column.blocks": "మీరు ఇంకా ఏ వినియోగదారులనూ బ్లాక్ చేయలేదు.",
"empty_column.community": "స్థానిక కాలక్రమం ఖాళీగా ఉంది. మొదలుపెట్టడానికి బహిరంగంగా ఏదో ఒకటి వ్రాయండి!",
"empty_column.direct": "మీకు ఇంకా ఏ ప్రత్యక్ష సందేశాలు లేవు. మీరు ఒకదాన్ని పంపినప్పుడు లేదా స్వీకరించినప్పుడు, అది ఇక్కడ చూపబడుతుంది.",
@@ -128,7 +132,7 @@
"empty_column.lists": "మీకు ఇంకా జాబితాలు ఏమీ లేవు. మీరు ఒకటి సృష్టించగానే, అది ఇక్కడ కనబడుతుంది.",
"empty_column.mutes": "మీరు ఇంకా ఏ వినియోగదారులనూ మ్యూట్ చేయలేదు.",
"empty_column.notifications": "మీకు ఇంకా ఏ నోటిఫికేషన్లు లేవు. సంభాషణను ప్రారంభించడానికి ఇతరులతో ప్రతిస్పందించండి.",
- "empty_column.public": "ఇక్కడ ఏమీ లేదు! దీన్ని నింపడానికి బహిరంగంగా ఏదైనా వ్రాయండి, లేదా ఇతర దృష్టాంతాల్లోని వినియోగదారులను అనుసరించండి",
+ "empty_column.public": "ఇక్కడ ఏమీ లేదు! దీన్ని నింపడానికి బహిరంగంగా ఏదైనా వ్రాయండి, లేదా ఇతర సేవికల నుండి వినియోగదారులను అనుసరించండి",
"federation.change": "Adjust status federation",
"federation.federated.long": "Allow toot to reach other instances",
"federation.federated.short": "Federated",
@@ -137,7 +141,7 @@
"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": "వ్యక్తులను ఆహ్వానించండి",
@@ -147,13 +151,18 @@
"hashtag.column_header.tag_mode.all": "మరియు {additional}",
"hashtag.column_header.tag_mode.any": "లేదా {additional}",
"hashtag.column_header.tag_mode.none": "{additional} లేకుండా",
- "hashtag.column_settings.tag_mode.all": "ఇవన్నీAll of these",
+ "hashtag.column_settings.select.no_options_message": "ఎటువంటి సూచనలూ దొరకలేదు",
+ "hashtag.column_settings.select.placeholder": "హ్యాష్ టాగులు నింపండి…",
+ "hashtag.column_settings.tag_mode.all": "ఇవన్నీ",
"hashtag.column_settings.tag_mode.any": "వీటిలో ఏవైనా",
"hashtag.column_settings.tag_mode.none": "ఇవేవీ కావు",
- "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": "ప్రత్యుత్తరాలను చూపించు",
+ "intervals.full.days": "{number, plural, one {# day} other {# days}}",
+ "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
+ "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
"introduction.federation.action": "తరువాత",
"introduction.federation.federated.headline": "Federated",
"introduction.federation.federated.text": "ఫెడివర్స్ లోని ఇతర సర్వర్లకు చెందిన పబ్లిక్ టూట్లు ఫెడరేటెడ్ టైంలైన్ లో కనిపిస్తాయి.",
@@ -209,6 +218,7 @@
"lists.account.remove": "జాబితా నుండి తొలగించు",
"lists.delete": "జాబితాను తొలగించు",
"lists.edit": "జాబితాను సవరించు",
+ "lists.edit.submit": "శీర్షిక మార్చు",
"lists.new.create": "జాబితాను జోడించు",
"lists.new.title_placeholder": "కొత్త జాబితా శీర్షిక",
"lists.search": "మీరు అనుసరించే వ్యక్తులలో శోధించండి",
@@ -229,7 +239,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,6 +252,7 @@
"notification.favourite": "{name} మీ స్టేటస్ ను ఇష్టపడ్డారు",
"notification.follow": "{name} మిమ్మల్ని అనుసరిస్తున్నారు",
"notification.mention": "{name} మిమ్మల్ని ప్రస్తావించారు",
+ "notification.poll": "మీరు పాల్గొనిన ఎన్సిక ముగిసినది",
"notification.reblog": "{name} మీ స్టేటస్ ను బూస్ట్ చేసారు",
"notifications.clear": "ప్రకటనలను తుడిచివేయు",
"notifications.clear_confirmation": "మీరు మీ అన్ని నోటిఫికేషన్లను శాశ్వతంగా తొలగించాలనుకుంటున్నారా?",
@@ -252,6 +263,7 @@
"notifications.column_settings.filter_bar.show": "చూపించు",
"notifications.column_settings.follow": "క్రొత్త అనుచరులు:",
"notifications.column_settings.mention": "ప్రస్తావనలు:",
+ "notifications.column_settings.poll": "ఎన్నిక ఫలితాలు:",
"notifications.column_settings.push": "పుష్ ప్రకటనలు",
"notifications.column_settings.reblog": "బూస్ట్ లు:",
"notifications.column_settings.show": "నిలువు వరుసలో చూపు",
@@ -261,7 +273,14 @@
"notifications.filter.favourites": "ఇష్టాలు",
"notifications.filter.follows": "అనుసరిస్తున్నవి",
"notifications.filter.mentions": "పేర్కొన్నవి",
+ "notifications.filter.polls": "ఎన్నిక ఫలితాలు",
"notifications.group": "{count} ప్రకటనలు",
+ "poll.closed": "మూసివేయబడినవి",
+ "poll.refresh": "నవీకరించు",
+ "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
+ "poll.vote": "ఎన్నుకోండి",
+ "poll_button.add_poll": "ఒక ఎన్నికను చేర్చు",
+ "poll_button.remove_poll": "ఎన్నికను తొలగించు",
"privacy.change": "స్టేటస్ గోప్యతను సర్దుబాటు చేయండి",
"privacy.direct.long": "పేర్కొన్న వినియోగదారులకు మాత్రమే పోస్ట్ చేయి",
"privacy.direct.short": "ప్రత్యక్ష",
@@ -281,7 +300,7 @@
"reply_indicator.cancel": "రద్దు చెయ్యి",
"report.forward": "{target}కి ఫార్వార్డ్ చేయండి",
"report.forward_hint": "ఖాతా మరొక సర్వర్లో ఉంది. నివేదిక యొక్క ఒక అనామకంగా ఉన్న కాపీని అక్కడికి కూడా పంపించమంటారా?",
- "report.hint": "మీ దుష్టాంత మోడరేటర్లకు నివేదిక పంపబడుతుంది. దిగువ ఈ ఖాతాను ఎందుకు నివేదిస్తున్నారనేదాని వివరణను మీరు అందించవచ్చు:",
+ "report.hint": "మీ సేవిక మోడరేటర్లకు నివేదిక పంపబడుతుంది. ఈ ఖాతాను ఎందుకు నివేదిస్తున్నారనేదాని వివరణను మీరు దిగువన అందించవచ్చు:",
"report.placeholder": "అదనపు వ్యాఖ్యలు",
"report.submit": "సమర్పించండి",
"report.target": "{target}పై ఫిర్యాదు చేయండి",
@@ -296,12 +315,12 @@
"search_results.hashtags": "హాష్ ట్యాగ్లు",
"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.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}కు నేరుగా సందేశం పంపు",
@@ -344,10 +363,17 @@
"tabs_bar.local_timeline": "స్థానిక",
"tabs_bar.notifications": "ప్రకటనలు",
"tabs_bar.search": "శోధన",
+ "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
+ "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
+ "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
+ "time_remaining.moments": "కొన్ని క్షణాలు మాత్రమే మిగిలి ఉన్నాయి",
+ "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} మాట్లాడుతున్నారు",
"ui.beforeunload": "మీరు మాస్టొడొన్ను వదిలివేస్తే మీ డ్రాఫ్ట్లు పోతాయి.",
"upload_area.title": "అప్లోడ్ చేయడానికి డ్రాగ్ & డ్రాప్ చేయండి",
"upload_button.label": "మీడియాను జోడించండి (JPEG, PNG, GIF, WebM, MP4, MOV)",
+ "upload_error.limit": "File upload limit exceeded.",
+ "upload_error.poll": "File upload not allowed with polls.",
"upload_form.description": "దృష్టి లోపమున్న వారి కోసం వివరించండి",
"upload_form.focus": "ప్రివ్యూను మార్చు",
"upload_form.undo": "తొలగించు",
diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json
index 7e5c8f542..f8402281a 100644
--- a/app/javascript/mastodon/locales/th.json
+++ b/app/javascript/mastodon/locales/th.json
@@ -1,129 +1,133 @@
{
- "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.add_or_remove_from_list": "เพิ่มหรือเอาออกจากรายการ",
+ "account.badges.bot": "บอต",
+ "account.block": "ปิดกั้น @{name}",
+ "account.block_domain": "ซ่อนทุกอย่างจาก {domain}",
+ "account.blocked": "ปิดกั้นอยู่",
+ "account.direct": "ส่งข้อความโดยตรงถึง @{name}",
+ "account.domain_blocked": "ซ่อนโดเมนอยู่",
+ "account.edit_profile": "แก้ไขโปรไฟล์",
+ "account.endorse": "แสดงให้เห็นในโปรไฟล์",
+ "account.follow": "ติดตาม",
+ "account.followers": "ผู้ติดตาม",
+ "account.followers.empty": "ยังไม่มีใครติดตามผู้ใช้นี้",
+ "account.follows": "ติดตาม",
+ "account.follows.empty": "ผู้ใช้นี้ยังไม่ได้ติดตามใคร",
+ "account.follows_you": "ติดตามคุณ",
+ "account.hide_reblogs": "ซ่อนการดันจาก @{name}",
+ "account.link_verified_on": "ตรวจสอบความเป็นเจ้าของของลิงก์นี้เมื่อ {date}",
"account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
- "account.media": "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": "Posts",
- "account.posts_with_replies": "Toots with replies",
- "account.report": "Report @{name}",
- "account.requested": "Awaiting approval",
- "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!",
+ "account.media": "สื่อ",
+ "account.mention": "กล่าวถึง @{name}",
+ "account.moved_to": "{name} ได้ย้ายไปยัง:",
+ "account.mute": "ปิดเสียง @{name}",
+ "account.mute_notifications": "ปิดเสียงการแจ้งเตือนจาก @{name}",
+ "account.muted": "ปิดเสียงอยู่",
+ "account.posts": "โพสต์",
+ "account.posts_with_replies": "โพสต์และการตอบกลับ",
+ "account.report": "รายงาน @{name}",
+ "account.requested": "กำลังรอการอนุมัติ คลิกเพื่อยกเลิกคำขอติดตาม",
+ "account.share": "แบ่งปันโปรไฟล์ของ @{name}",
+ "account.show_reblogs": "แสดงการดันจาก @{name}",
+ "account.unblock": "เลิกปิดกั้น @{name}",
+ "account.unblock_domain": "เลิกซ่อน {domain}",
+ "account.unendorse": "ไม่แสดงให้เห็นในโปรไฟล์",
+ "account.unfollow": "เลิกติดตาม",
+ "account.unmute": "เลิกปิดเสียง @{name}",
+ "account.unmute_notifications": "เลิกปิดเสียงการแจ้งเตือนจาก @{name}",
+ "alert.unexpected.message": "เกิดข้อผิดพลาดที่ไม่คาดคิด",
+ "alert.unexpected.title": "อุปส์!",
"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",
+ "bundle_column_error.body": "มีบางอย่างผิดพลาดขณะโหลดส่วนประกอบนี้",
+ "bundle_column_error.retry": "ลองอีกครั้ง",
+ "bundle_column_error.title": "ข้อผิดพลาดเครือข่าย",
+ "bundle_modal_error.close": "ปิด",
+ "bundle_modal_error.message": "มีบางอย่างผิดพลาดขณะโหลดส่วนประกอบนี้",
+ "bundle_modal_error.retry": "ลองอีกครั้ง",
+ "column.blocks": "ผู้ใช้ที่ปิดกั้นอยู่",
+ "column.community": "เส้นเวลาในเว็บ",
+ "column.direct": "ข้อความโดยตรง",
+ "column.domain_blocks": "โดเมนที่ซ่อนอยู่",
+ "column.favourites": "รายการโปรด",
+ "column.follow_requests": "คำขอติดตาม",
+ "column.home": "หน้าแรก",
+ "column.lists": "รายการ",
+ "column.mutes": "ผู้ใช้ที่ปิดเสียงอยู่",
+ "column.notifications": "การแจ้งเตือน",
+ "column.pins": "โพสต์ที่ปักหมุด",
+ "column.public": "เส้นเวลาที่ติดต่อกับภายนอก",
+ "column_back_button.label": "ย้อนกลับ",
+ "column_header.hide_settings": "ซ่อนการตั้งค่า",
+ "column_header.moveLeft_settings": "ย้ายคอลัมน์ไปทางซ้าย",
+ "column_header.moveRight_settings": "ย้ายคอลัมน์ไปทางขวา",
+ "column_header.pin": "ปักหมุด",
+ "column_header.show_settings": "แสดงการตั้งค่า",
+ "column_header.unpin": "ถอนหมุด",
+ "column_subheading.settings": "การตั้งค่า",
+ "community.column_settings.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",
+ "compose_form.direct_message_warning_learn_more": "เรียนรู้เพิ่มเติม",
"compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
"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.poll.add_option": "Add a choice",
+ "compose_form.poll.duration": "Poll duration",
+ "compose_form.poll.option_placeholder": "Choice {number}",
+ "compose_form.poll.remove_option": "Remove this choice",
+ "compose_form.publish": "โพสต์",
"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": "Content warning",
- "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?",
+ "compose_form.spoiler_placeholder": "เขียนคำเตือนของคุณที่นี่",
+ "confirmation_modal.cancel": "ยกเลิก",
+ "confirmations.block.block_and_report": "ปิดกั้นแล้วรายงาน",
+ "confirmations.block.confirm": "ปิดกั้น",
+ "confirmations.block.message": "คุณแน่ใจหรือไม่ว่าต้องการปิดกั้น {name}?",
+ "confirmations.delete.confirm": "ลบ",
+ "confirmations.delete.message": "คุณแน่ใจหรือไม่ว่าต้องการลบสถานะนี้?",
+ "confirmations.delete_list.confirm": "ลบ",
+ "confirmations.delete_list.message": "คุณแน่ใจหรือไม่ว่าต้องการลบรายการนี้อย่างถาวร?",
"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.",
- "confirmations.mute.confirm": "Mute",
- "confirmations.mute.message": "Are you sure you want to mute {name}?",
- "confirmations.redraft.confirm": "Delete & redraft",
+ "confirmations.mute.confirm": "ปิดเสียง",
+ "confirmations.mute.message": "คุณแน่ใจหรือไม่ว่าต้องการปิดเสียง {name}?",
+ "confirmations.redraft.confirm": "ลบแล้วร่างใหม่",
"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.confirm": "ตอบกลับ",
"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}?",
+ "confirmations.unfollow.confirm": "เลิกติดตาม",
+ "confirmations.unfollow.message": "คุณแน่ใจหรือไม่ว่าต้องการเลิกติดตาม {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.activity": "กิจกรรม",
+ "emoji_button.custom": "กำหนดเอง",
+ "emoji_button.flags": "ธง",
+ "emoji_button.food": "อาหารและเครื่องดื่ม",
+ "emoji_button.label": "แทรกอีโมจิ",
+ "emoji_button.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!",
+ "emoji_button.objects": "วัตถุ",
+ "emoji_button.people": "ผู้คน",
+ "emoji_button.recent": "ที่ใช้บ่อย",
+ "emoji_button.search": "ค้นหา...",
+ "emoji_button.search_results": "ผลลัพธ์การค้นหา",
+ "emoji_button.symbols": "สัญลักษณ์",
+ "emoji_button.travel": "การเดินทางและสถานที่",
+ "empty_column.account_timeline": "ไม่มีโพสต์ที่นี่!",
+ "empty_column.account_unavailable": "Profile unavailable",
"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.domain_blocks": "ยังไม่มีโดเมนที่ซ่อนอยู่",
"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.home.public_timeline": "เส้นเวลาสาธารณะ",
"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.",
@@ -134,27 +138,32 @@
"federation.federated.short": "Federated",
"federation.local_only.long": "Restrict this toot only to my instance",
"federation.local_only.short": "Local-only",
- "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",
+ "follow_request.authorize": "อนุญาต",
+ "follow_request.reject": "ปฏิเสธ",
+ "getting_started.developers": "นักพัฒนา",
+ "getting_started.directory": "ไดเรกทอรีโปรไฟล์",
+ "getting_started.documentation": "เอกสารประกอบ",
+ "getting_started.heading": "เริ่มต้นใช้งาน",
+ "getting_started.invite": "เชิญผู้คน",
"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}",
+ "getting_started.security": "ความปลอดภัย",
+ "getting_started.terms": "เงื่อนไขการให้บริการ",
+ "hashtag.column_header.tag_mode.all": "และ {additional}",
+ "hashtag.column_header.tag_mode.any": "หรือ {additional}",
+ "hashtag.column_header.tag_mode.none": "โดยไม่มี {additional}",
+ "hashtag.column_settings.select.no_options_message": "ไม่พบข้อเสนอแนะ",
+ "hashtag.column_settings.select.placeholder": "ป้อนแฮชแท็ก…",
"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",
+ "home.column_settings.basic": "พื้นฐาน",
+ "home.column_settings.show_reblogs": "แสดงการดัน",
+ "home.column_settings.show_replies": "แสดงการตอบกลับ",
+ "intervals.full.days": "{number, plural, one {# day} other {# days}}",
+ "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
+ "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
+ "introduction.federation.action": "ถัดไป",
"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",
@@ -176,7 +185,7 @@
"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": "คำอธิบาย",
"keyboard_shortcuts.direct": "to open direct messages column",
"keyboard_shortcuts.down": "to move down in the list",
"keyboard_shortcuts.enter": "to open status",
@@ -185,7 +194,7 @@
"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.hotkey": "ปุ่มลัด",
"keyboard_shortcuts.legend": "to display this legend",
"keyboard_shortcuts.local": "to open local timeline",
"keyboard_shortcuts.mention": "to mention author",
@@ -202,163 +211,179 @@
"keyboard_shortcuts.toot": "to start a brand new toot",
"keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
"keyboard_shortcuts.up": "to move up in the list",
- "lightbox.close": "Close",
- "lightbox.next": "Next",
- "lightbox.previous": "Previous",
- "lists.account.add": "Add to list",
- "lists.account.remove": "Remove from list",
- "lists.delete": "Delete list",
- "lists.edit": "Edit list",
- "lists.new.create": "Add list",
- "lists.new.title_placeholder": "New list title",
- "lists.search": "Search among people you follow",
- "lists.subheading": "Your lists",
- "loading_indicator.label": "Loading...",
- "media_gallery.toggle_visible": "Toggle visibility",
- "missing_indicator.label": "Not found",
- "missing_indicator.sublabel": "This resource could not be found",
- "mute_modal.hide_notifications": "Hide notifications from this user?",
- "navigation_bar.apps": "Mobile apps",
- "navigation_bar.blocks": "Blocked users",
- "navigation_bar.community_timeline": "Local timeline",
- "navigation_bar.compose": "Compose new toot",
- "navigation_bar.direct": "Direct messages",
- "navigation_bar.discover": "Discover",
- "navigation_bar.domain_blocks": "Hidden domains",
- "navigation_bar.edit_profile": "Edit profile",
- "navigation_bar.favourites": "Favourites",
- "navigation_bar.filters": "Muted words",
- "navigation_bar.follow_requests": "Follow requests",
- "navigation_bar.info": "About this instance",
- "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
- "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?",
+ "lightbox.close": "ปิด",
+ "lightbox.next": "ถัดไป",
+ "lightbox.previous": "ก่อนหน้า",
+ "lists.account.add": "เพิ่มไปยังรายการ",
+ "lists.account.remove": "เอาออกจากรายการ",
+ "lists.delete": "ลบรายการ",
+ "lists.edit": "แก้ไขรายการ",
+ "lists.edit.submit": "เปลี่ยนชื่อเรื่อง",
+ "lists.new.create": "เพิ่มรายการ",
+ "lists.new.title_placeholder": "ชื่อเรื่องรายการใหม่",
+ "lists.search": "ค้นหาในหมู่ผู้คนที่คุณติดตาม",
+ "lists.subheading": "รายการของคุณ",
+ "loading_indicator.label": "กำลังโหลด...",
+ "media_gallery.toggle_visible": "เปิด/ปิดการมองเห็น",
+ "missing_indicator.label": "ไม่พบ",
+ "missing_indicator.sublabel": "ไม่พบทรัพยากรนี้",
+ "mute_modal.hide_notifications": "ซ่อนการแจ้งเตือนจากผู้ใช้นี้?",
+ "navigation_bar.apps": "แอปสำหรับมือถือ",
+ "navigation_bar.blocks": "ผู้ใช้ที่ปิดกั้นอยู่",
+ "navigation_bar.community_timeline": "เส้นเวลาในเว็บ",
+ "navigation_bar.compose": "เขียนโพสต์ใหม่",
+ "navigation_bar.direct": "ข้อความโดยตรง",
+ "navigation_bar.discover": "ค้นพบ",
+ "navigation_bar.domain_blocks": "โดเมนที่ซ่อนอยู่",
+ "navigation_bar.edit_profile": "แก้ไขโปรไฟล์",
+ "navigation_bar.favourites": "รายการโปรด",
+ "navigation_bar.filters": "คำที่ปิดเสียงอยู่",
+ "navigation_bar.follow_requests": "คำขอติดตาม",
+ "navigation_bar.info": "เกี่ยวกับเซิร์ฟเวอร์นี้",
+ "navigation_bar.keyboard_shortcuts": "ปุ่มลัด",
+ "navigation_bar.lists": "รายการ",
+ "navigation_bar.logout": "ออกจากระบบ",
+ "navigation_bar.mutes": "ผู้ใช้ที่ปิดเสียงอยู่",
+ "navigation_bar.personal": "ส่วนบุคคล",
+ "navigation_bar.pins": "โพสต์ที่ปักหมุด",
+ "navigation_bar.preferences": "การกำหนดลักษณะ",
+ "navigation_bar.public_timeline": "เส้นเวลาที่ติดต่อกับภายนอก",
+ "navigation_bar.security": "ความปลอดภัย",
+ "notification.favourite": "{name} ได้ชื่นชอบสถานะของคุณ",
+ "notification.follow": "{name} ได้ติดตามคุณ",
+ "notification.mention": "{name} ได้กล่าวถึงคุณ",
+ "notification.poll": "A poll you have voted in has ended",
+ "notification.reblog": "{name} ได้ดันสถานะของคุณ",
+ "notifications.clear": "ล้างการแจ้งเตือน",
+ "notifications.clear_confirmation": "คุณแน่ใจหรือไม่ว่าต้องการล้างการแจ้งเตือนทั้งหมดของคุณอย่างถาวร?",
"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",
+ "notifications.column_settings.favourite": "รายการโปรด:",
+ "notifications.column_settings.filter_bar.advanced": "แสดงหมวดหมู่ทั้งหมด",
+ "notifications.column_settings.filter_bar.category": "แถบตัวกรองด่วน",
+ "notifications.column_settings.filter_bar.show": "แสดง",
+ "notifications.column_settings.follow": "ผู้ติดตามใหม่:",
+ "notifications.column_settings.mention": "การกล่าวถึง:",
+ "notifications.column_settings.poll": "Poll results:",
+ "notifications.column_settings.push": "การแจ้งเตือนแบบผลัก",
+ "notifications.column_settings.reblog": "การดัน:",
+ "notifications.column_settings.show": "แสดงในคอลัมน์",
+ "notifications.column_settings.sound": "เล่นเสียง",
+ "notifications.filter.all": "ทั้งหมด",
+ "notifications.filter.boosts": "การดัน",
+ "notifications.filter.favourites": "รายการโปรด",
+ "notifications.filter.follows": "การติดตาม",
+ "notifications.filter.mentions": "การกล่าวถึง",
+ "notifications.filter.polls": "Poll results",
+ "notifications.group": "{count} การแจ้งเตือน",
+ "poll.closed": "ปิดแล้ว",
+ "poll.refresh": "Refresh",
+ "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
+ "poll.vote": "Vote",
+ "poll_button.add_poll": "Add a poll",
+ "poll_button.remove_poll": "Remove poll",
"privacy.change": "Adjust status privacy",
- "privacy.direct.long": "Post to mentioned users only",
- "privacy.direct.short": "Direct",
- "privacy.private.long": "Post to followers only",
- "privacy.private.short": "Followers-only",
- "privacy.public.long": "Post to public timelines",
- "privacy.public.short": "Public",
- "privacy.unlisted.long": "Do not post to public timelines",
- "privacy.unlisted.short": "Unlisted",
- "regeneration_indicator.label": "Loading…",
+ "privacy.direct.long": "โพสต์ไปยังผู้ใช้ที่กล่าวถึงเท่านั้น",
+ "privacy.direct.short": "โดยตรง",
+ "privacy.private.long": "โพสต์ไปยังผู้ติดตามเท่านั้น",
+ "privacy.private.short": "ผู้ติดตามเท่านั้น",
+ "privacy.public.long": "โพสต์ไปยังเส้นเวลาสาธารณะ",
+ "privacy.public.short": "สาธารณะ",
+ "privacy.unlisted.long": "ไม่โพสต์ไปยังเส้นเวลาสาธารณะ",
+ "privacy.unlisted.short": "ไม่อยู่ในรายการ",
+ "regeneration_indicator.label": "กำลังโหลด…",
"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}",
+ "relative_time.days": "{number} วัน",
+ "relative_time.hours": "{number} ชั่วโมง",
+ "relative_time.just_now": "ตอนนี้",
+ "relative_time.minutes": "{number} นาที",
+ "relative_time.seconds": "{number} วินาที",
+ "reply_indicator.cancel": "ยกเลิก",
+ "report.forward": "ส่งต่อไปยัง {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": "Reporting",
- "search.placeholder": "Search",
- "search_popout.search_format": "Advanced search format",
+ "report.placeholder": "ความคิดเห็นเพิ่มเติม",
+ "report.submit": "ส่ง",
+ "report.target": "กำลังรายงาน {target}",
+ "search.placeholder": "ค้นหา",
+ "search_popout.search_format": "รูปแบบการค้นหาขั้นสูง",
"search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
- "search_popout.tips.hashtag": "hashtag",
- "search_popout.tips.status": "status",
+ "search_popout.tips.hashtag": "แฮชแท็ก",
+ "search_popout.tips.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_popout.tips.user": "ผู้ใช้",
+ "search_results.accounts": "ผู้คน",
+ "search_results.hashtags": "แฮชแท็ก",
+ "search_results.statuses": "โพสต์",
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
- "standalone.public_title": "A look inside...",
- "status.admin_account": "Open moderation interface for @{name}",
- "status.admin_status": "Open this status in the moderation interface",
- "status.block": "Block @{name}",
- "status.cancel_reblog_private": "Unboost",
- "status.cannot_reblog": "This post cannot be boosted",
- "status.delete": "Delete",
- "status.detailed_status": "Detailed conversation view",
- "status.direct": "Direct message @{name}",
+ "status.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}",
"status.embed": "Embed",
- "status.favourite": "Favourite",
- "status.filtered": "Filtered",
- "status.load_more": "Load more",
- "status.local_only": "This post is only visible by other users of your instance",
- "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.favourite": "ชื่นชอบ",
+ "status.filtered": "กรองอยู่",
+ "status.load_more": "โหลดเพิ่มเติม",
+ "status.media_hidden": "ซ่อนสื่ออยู่",
+ "status.mention": "กล่าวถึง @{name}",
+ "status.more": "เพิ่มเติม",
+ "status.mute": "ปิดเสียง @{name}",
+ "status.mute_conversation": "ปิดเสียงการสนทนา",
+ "status.open": "ขยายสถานะนี้",
+ "status.pin": "ปักหมุดในโปรไฟล์",
+ "status.pinned": "โพสต์ที่ปักหมุด",
+ "status.read_more": "อ่านเพิ่มเติม",
+ "status.reblog": "ดัน",
+ "status.reblog_private": "ดันไปยังผู้ชมดั้งเดิม",
+ "status.reblogged_by": "{name} ได้ดัน",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
- "status.redraft": "Delete & re-draft",
- "status.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",
+ "status.redraft": "ลบแล้วร่างใหม่",
+ "status.reply": "ตอบกลับ",
+ "status.replyAll": "ตอบกลับกระทู้",
+ "status.report": "รายงาน @{name}",
+ "status.sensitive_toggle": "คลิกเพื่อดู",
+ "status.sensitive_warning": "เนื้อหาที่ละเอียดอ่อน",
+ "status.share": "แบ่งปัน",
+ "status.show_less": "แสดงน้อยลง",
+ "status.show_less_all": "แสดงน้อยลงทั้งหมด",
+ "status.show_more": "แสดงเพิ่มเติม",
+ "status.show_more_all": "แสดงเพิ่มเติมทั้งหมด",
+ "status.show_thread": "แสดงกระทู้",
+ "status.unmute_conversation": "เลิกปิดเสียงการสนทนา",
+ "status.unpin": "ถอนหมุดจากโปรไฟล์",
+ "suggestions.dismiss": "ยกเลิกข้อเสนอแนะ",
+ "suggestions.header": "คุณอาจสนใจ…",
+ "tabs_bar.federated_timeline": "ที่ติดต่อกับภายนอก",
+ "tabs_bar.home": "หน้าแรก",
+ "tabs_bar.local_timeline": "ในเว็บ",
+ "tabs_bar.notifications": "การแจ้งเตือน",
+ "tabs_bar.search": "ค้นหา",
+ "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
+ "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
+ "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
+ "time_remaining.moments": "Moments remaining",
+ "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
- "ui.beforeunload": "Your draft will be lost if you leave Mastodon.",
- "upload_area.title": "Drag & drop to upload",
- "upload_button.label": "Add media",
+ "ui.beforeunload": "แบบร่างของคุณจะหายไปหากคุณออกจาก Mastodon",
+ "upload_area.title": "ลากแล้วปล่อยเพื่ออัปโหลด",
+ "upload_button.label": "เพิ่มสื่อ (JPEG, PNG, GIF, WebM, MP4, MOV)",
+ "upload_error.limit": "เกินขีดจำกัดการอัปโหลดไฟล์",
+ "upload_error.poll": "File upload not allowed with polls.",
"upload_form.description": "Describe for the visually impaired",
- "upload_form.focus": "Crop",
- "upload_form.undo": "Undo",
- "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"
+ "upload_form.focus": "ตัวอย่างการเปลี่ยนแปลง",
+ "upload_form.undo": "ลบ",
+ "upload_progress.label": "กำลังอัปโหลด...",
+ "video.close": "ปิดวิดีโอ",
+ "video.exit_fullscreen": "ออกจากเต็มหน้าจอ",
+ "video.expand": "ขยายวิดีโอ",
+ "video.fullscreen": "เต็มหน้าจอ",
+ "video.hide": "ซ่อนวิดีโอ",
+ "video.mute": "ปิดเสียง",
+ "video.pause": "หยุดชั่วคราว",
+ "video.play": "เล่น",
+ "video.unmute": "เลิกปิดเสียง"
}
diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json
index ae86e6dd7..93f9a5f77 100644
--- a/app/javascript/mastodon/locales/tr.json
+++ b/app/javascript/mastodon/locales/tr.json
@@ -1,134 +1,138 @@
{
- "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.direct": "Direct Message @{name}",
- "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
- "account.domain_blocked": "Domain hidden",
+ "account.block_domain": "{domain} alanından her şeyi gizle",
+ "account.blocked": "Engellenmiş",
+ "account.direct": "Mesaj gönder : @{name}",
+ "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.moved_to": "{name} has moved to:",
- "account.mute": "Sustur @{name}",
- "account.mute_notifications": "Mute notifications from @{name}",
- "account.muted": "Muted",
+ "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} şuraya taşındı:",
+ "account.mute": "@{name} kullanıcısını sessize al",
+ "account.mute_notifications": "@{name} kullanıcısının bildirimlerini kapat",
+ "account.muted": "Sesi kısık",
"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 boostları 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": "Sesi aç : @{name}",
+ "account.unmute_notifications": "@{name} kullanıcısından bildirimleri aç",
+ "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.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_column_error.body": "Bu bileşen yüklenirken bir şeyler ters gitti.",
+ "bundle_column_error.retry": "Tekrar deneyin",
+ "bundle_column_error.title": "Ağ hatası",
+ "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.pins": "Sabitlenmiş gönderi",
"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",
- "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.",
+ "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 edinin",
+ "compose_form.hashtag_warning": "Bu paylaşım liste dışı olduğu için hiç bir hashtag'de yer almayacak. Sadece herkese açık gönderiler hashtaglerde bulunabilir.",
"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.publish": "Toot",
+ "compose_form.placeholder": "Aklınızdan ne geçiyor?",
+ "compose_form.poll.add_option": "Bir seçenek ekleyin",
+ "compose_form.poll.duration": "Anket süresi",
+ "compose_form.poll.option_placeholder": "Seçim {number}",
+ "compose_form.poll.remove_option": "Bu seçimi kaldır",
+ "compose_form.publish": "Gönder",
"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.block_and_report": "Engelle & Bildir",
"confirmations.block.confirm": "Engelle",
"confirmations.block.message": "{name} kullanıcısını engellemek istiyor musunuz?",
"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.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.delete_list.confirm": "Sil",
+ "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": "tüm {domain} alan adını engellemek istediğinizden emin misiniz? Genellikle birkaç hedefli engel ve susturma işi görür ve tercih edilir.",
"confirmations.mute.confirm": "Sessize al",
"confirmations.mute.message": "{name} kullanıcısını sessize almak istiyor musunuz?",
- "confirmations.redraft.confirm": "Delete & redraft",
- "confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? You will lose all replies, boosts and favourites to it.",
- "confirmations.reply.confirm": "Reply",
- "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
- "confirmations.unfollow.confirm": "Unfollow",
- "confirmations.unfollow.message": "Are you sure you want to unfollow {name}?",
- "embed.instructions": "Embed this status on your website by copying the code below.",
- "embed.preview": "Here is what it will look like:",
+ "confirmations.redraft.confirm": "Sil ve yeniden tasarla",
+ "confirmations.redraft.message": "Bu durumu silip tekrar taslaklaştırmak istediğinizden emin misiniz? Tüm cevapları, boostları ve favorileri kaybedeceksiniz.",
+ "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": "{name}'yi takipten çıkarmak istediğinizden emin misiniz?",
+ "embed.instructions": "Aşağıdaki kodu kopyalayarak bu durumu sitenize gömün.",
+ "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.search": "Emoji ara...",
- "emoji_button.search_results": "Search results",
+ "emoji_button.recent": "Sık kullanılan",
+ "emoji_button.search": "Ara...",
+ "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.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.account_timeline": "Burada hiç gönderi yok!",
+ "empty_column.account_unavailable": "Profile unavailable",
+ "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": "Hiç favori gönderiminiz yok. Bir tane olursa burada görünecek.",
+ "empty_column.favourites": "Kimse bu gönderiyi favorilerine eklememiş. Biri eklerse burada görünecek.",
+ "empty_column.follow_requests": "Hiç takip isteğiniz yok. Bir tane aldığınızda burada görünecek.",
"empty_column.hashtag": "Henüz bu hashtag’e sahip hiçbir gönderi yok.",
"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.list": "Bu listede henüz hiçbir şey yok.",
+ "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",
"federation.change": "Adjust status federation",
"federation.federated.long": "Allow toot to reach other instances",
"federation.federated.short": "Federated",
@@ -136,132 +140,147 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "Yetkilendir",
"follow_request.reject": "Reddet",
- "getting_started.developers": "Developers",
- "getting_started.directory": "Profile directory",
- "getting_started.documentation": "Documentation",
+ "getting_started.developers": "Geliştiriciler",
+ "getting_started.directory": "Profil dizini",
+ "getting_started.documentation": "Belgeler",
"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",
- "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
+ "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": "Hiç öneri bulunamadı",
+ "hashtag.column_settings.select.placeholder": "Hashtagler girin…",
+ "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": "Bu sütundaki ek etiketleri içer",
"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",
+ "intervals.full.days": "{number, plural, one {# day} other {# days}}",
+ "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
+ "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
+ "introduction.federation.action": "İleri",
+ "introduction.federation.federated.headline": "Birleşik",
+ "introduction.federation.federated.text": "Diğer dosya sunucularından gelen genel gönderiler, 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.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.headline": "Yerel",
+ "introduction.federation.local.text": "Aynı sunucudaki kişilerin gönderileri yerel zaman tünelinde gözükecektir.",
+ "introduction.interactions.action": "Öğreticiyi bitirin!",
+ "introduction.interactions.favourite.headline": "Favori",
+ "introduction.interactions.favourite.text": "Bir gönderiyi favorilerinize alarak sonrası için saklayabilirsiniz ve yazara gönderiyi beğendiğinizi söyleyebilirsiniz.",
"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",
+ "introduction.interactions.reblog.text": "Başkalarının gönderilerini boostlayarak kendi takipçilerinizle paylaşabillirsiniz.",
+ "introduction.interactions.reply.headline": "Yanıt",
+ "introduction.interactions.reply.text": "Başkalarının gönderilerini ve kendi gönderilerinizi yanıtlayabilirsiniz. Bir konuşmada zincirli bir şekilde olacaklardır.",
+ "introduction.welcome.action": "Hadi gidelim!",
+ "introduction.welcome.headline": "İlk adımlar",
+ "introduction.welcome.text": "Krallığa hoş geldiniz! Az sonra, geniş bir sunucu yelpazesinde mesaj gönderip arkadaşlarınızla konuşabileceksiniz. Ama bu sunucu, {domain}, özel (profilinizi barındırır, bu yüzden adresini hatırlayın).",
+ "keyboard_shortcuts.back": "geriye gitmek için",
+ "keyboard_shortcuts.blocked": "engelli kullanıcılar listesini açmak için",
+ "keyboard_shortcuts.boost": "boostlamak için",
+ "keyboard_shortcuts.column": "sütunlardan birindeki duruma odaklanmak için",
+ "keyboard_shortcuts.compose": "yazma alanına odaklanmak için",
+ "keyboard_shortcuts.description": "Açıklama",
+ "keyboard_shortcuts.direct": "direkt mesajlar sütununu açmak için",
+ "keyboard_shortcuts.down": "listede aşağıya inmek için",
+ "keyboard_shortcuts.enter": "durumu açmak için",
+ "keyboard_shortcuts.favourite": "favorilere eklemek için",
+ "keyboard_shortcuts.favourites": "favoriler listesini açmak için",
+ "keyboard_shortcuts.federated": "federe edilmiş zaman tünelini açmak için",
+ "keyboard_shortcuts.heading": "Klavye kısayolları",
+ "keyboard_shortcuts.home": "ana sayfa zaman çizelgesini açmak için",
+ "keyboard_shortcuts.hotkey": "Kısatuş",
+ "keyboard_shortcuts.legend": "bu efsaneyi görüntülemek için",
+ "keyboard_shortcuts.local": "yerel zaman tünelini açmak için",
+ "keyboard_shortcuts.mention": "yazardan bahsetmek için",
+ "keyboard_shortcuts.muted": "susturulmuş kullanıcı listesini açmak için",
+ "keyboard_shortcuts.my_profile": "profilinizi açmak için",
+ "keyboard_shortcuts.notifications": "bildirimler sütununu açmak için",
+ "keyboard_shortcuts.pinned": "sabitlenmiş gönderiler listesini açmak için",
+ "keyboard_shortcuts.profile": "yazarın profilini açmak için",
+ "keyboard_shortcuts.reply": "cevaplamak için",
+ "keyboard_shortcuts.requests": "takip istekleri listesini açmak için",
+ "keyboard_shortcuts.search": "aramaya odaklanmak için",
+ "keyboard_shortcuts.start": "\"başlayın\" sütununu açmak için",
+ "keyboard_shortcuts.toggle_hidden": "CW'den önceki yazıyı göstermek/gizlemek için",
+ "keyboard_shortcuts.toot": "yeni bir gönderiye başlamak için",
+ "keyboard_shortcuts.unfocus": "aramada bir gönderiye odaklanmamak için",
+ "keyboard_shortcuts.up": "listede yukarıya çıkmak için",
"lightbox.close": "Kapat",
- "lightbox.next": "Next",
- "lightbox.previous": "Previous",
- "lists.account.add": "Add to list",
- "lists.account.remove": "Remove from list",
- "lists.delete": "Delete list",
- "lists.edit": "Edit list",
- "lists.new.create": "Add list",
- "lists.new.title_placeholder": "New list title",
- "lists.search": "Search among people you follow",
- "lists.subheading": "Your lists",
+ "lightbox.next": "Sonraki",
+ "lightbox.previous": "Önceli",
+ "lists.account.add": "Listeye ekle",
+ "lists.account.remove": "Listeden kaldır",
+ "lists.delete": "Listeyi sil",
+ "lists.edit": "listeyi düzenle",
+ "lists.edit.submit": "Başlığı değiştir",
+ "lists.new.create": "Liste ekle",
+ "lists.new.title_placeholder": "Yeni liste başlığı",
+ "lists.search": "Takip ettiğiniz kişiler arasından arayın",
+ "lists.subheading": "Listeleriniz",
"loading_indicator.label": "Yükleniyor...",
"media_gallery.toggle_visible": "Görünürlüğü değiştir",
"missing_indicator.label": "Bulunamadı",
- "missing_indicator.sublabel": "This resource could not be found",
- "mute_modal.hide_notifications": "Hide notifications from this user?",
- "navigation_bar.apps": "Mobile apps",
+ "missing_indicator.sublabel": "Bu kaynak bulunamadı",
+ "mute_modal.hide_notifications": "Bu kullanıcıdan bildirimler gizlensin mı?",
+ "navigation_bar.apps": "Mobil uygulamalar",
"navigation_bar.blocks": "Engellenen kullanıcılar",
"navigation_bar.community_timeline": "Yerel zaman tüneli",
- "navigation_bar.compose": "Compose new toot",
- "navigation_bar.direct": "Direct messages",
- "navigation_bar.discover": "Discover",
- "navigation_bar.domain_blocks": "Hidden domains",
+ "navigation_bar.compose": "Yeni bir gönderi yazın",
+ "navigation_bar.direct": "Direkt Mesajlar",
+ "navigation_bar.discover": "Keşfet",
+ "navigation_bar.domain_blocks": "Gizli alan adları",
"navigation_bar.edit_profile": "Profili düzenle",
"navigation_bar.favourites": "Favoriler",
- "navigation_bar.filters": "Muted words",
+ "navigation_bar.filters": "Susturulmuş kelimeler",
"navigation_bar.follow_requests": "Takip istekleri",
"navigation_bar.info": "Genişletilmiş bilgi",
- "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
- "navigation_bar.lists": "Lists",
+ "navigation_bar.keyboard_shortcuts": "Klavye kısayolları",
+ "navigation_bar.lists": "Listeler",
"navigation_bar.logout": "Çıkış",
"navigation_bar.mutes": "Sessize alınmış kullanıcılar",
- "navigation_bar.personal": "Personal",
- "navigation_bar.pins": "Pinned toots",
+ "navigation_bar.personal": "Kişisel",
+ "navigation_bar.pins": "Sabitlenmiş gönderiler",
"navigation_bar.preferences": "Tercihler",
"navigation_bar.public_timeline": "Federe zaman tüneli",
- "navigation_bar.security": "Security",
+ "navigation_bar.security": "Güvenlik",
"notification.favourite": "{name} senin durumunu favorilere ekledi",
"notification.follow": "{name} seni takip ediyor",
"notification.mention": "{name} mentioned you",
+ "notification.poll": "Oy verdiğiniz bir anket bitti",
"notification.reblog": "{name} senin durumunu boost etti",
"notifications.clear": "Bildirimleri temizle",
"notifications.clear_confirmation": "Tüm bildirimlerinizi kalıcı olarak temizlemek ister misiniz?",
"notifications.column_settings.alert": "Masaüstü bildirimleri",
"notifications.column_settings.favourite": "Favoriler:",
- "notifications.column_settings.filter_bar.advanced": "Display all categories",
- "notifications.column_settings.filter_bar.category": "Quick filter bar",
- "notifications.column_settings.filter_bar.show": "Show",
+ "notifications.column_settings.filter_bar.advanced": "Tüm kategorileri göster",
+ "notifications.column_settings.filter_bar.category": "Hızlı filtre çubuğu",
+ "notifications.column_settings.filter_bar.show": "Göster",
"notifications.column_settings.follow": "Yeni takipçiler:",
"notifications.column_settings.mention": "Bahsedilenler:",
- "notifications.column_settings.push": "Push notifications",
- "notifications.column_settings.reblog": "Boost’lar:",
+ "notifications.column_settings.poll": "Anket sonuçları:",
+ "notifications.column_settings.push": "Push bildirimleri",
+ "notifications.column_settings.reblog": "Boostlar:",
"notifications.column_settings.show": "Bildirimlerde göster",
"notifications.column_settings.sound": "Ses çal",
- "notifications.filter.all": "All",
- "notifications.filter.boosts": "Boosts",
- "notifications.filter.favourites": "Favourites",
- "notifications.filter.follows": "Follows",
- "notifications.filter.mentions": "Mentions",
- "notifications.group": "{count} notifications",
+ "notifications.filter.all": "Tümü",
+ "notifications.filter.boosts": "Boostlar",
+ "notifications.filter.favourites": "Favoriler",
+ "notifications.filter.follows": "Takip edilenler",
+ "notifications.filter.mentions": "Bahsetmeler",
+ "notifications.filter.polls": "Anket sonuçları",
+ "notifications.group": "{count} bildirim",
+ "poll.closed": "Kapandı",
+ "poll.refresh": "Yenile",
+ "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
+ "poll.vote": "Oy ver",
+ "poll_button.add_poll": "Bir anket ekleyin",
+ "poll_button.remove_poll": "Anket kaldır",
"privacy.change": "Gönderi gizliliğini ayarla",
"privacy.direct.long": "Sadece bahsedilen kişilere gönder",
"privacy.direct.short": "Direkt",
@@ -271,94 +290,101 @@
"privacy.public.short": "Herkese açık",
"privacy.unlisted.long": "Herkese açık zaman tüneline gönderme",
"privacy.unlisted.short": "Listelenmemiş",
- "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",
+ "regeneration_indicator.label": "Yükleniyor…",
+ "regeneration_indicator.sublabel": "Ev akışınız hazırlanıyor!",
+ "relative_time.days": "{number}g",
+ "relative_time.hours": "{number}s",
+ "relative_time.just_now": "şimdi",
+ "relative_time.minutes": "{number}dk",
+ "relative_time.seconds": "{number}sn",
"reply_indicator.cancel": "İptal",
- "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.forward": "Şu kişiye ilet : {target}",
+ "report.forward_hint": "Bu hesap başka bir sunucudan. Anonimleştirilmiş bir rapor oraya da gönderilsin mi?",
+ "report.hint": "Bu rapor sunucu moderatörlerine gönderilecek. Bu hesabı neden bildirdiğiniz hakkında bilgi verebirsiniz:",
"report.placeholder": "Ek yorumlar",
"report.submit": "Gönder",
"report.target": "Raporlama",
"search.placeholder": "Ara",
- "search_popout.search_format": "Advanced search format",
+ "search_popout.search_format": "Gelişmiş arama 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.status": "durum",
"search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
- "search_popout.tips.user": "user",
- "search_results.accounts": "People",
- "search_results.hashtags": "Hashtags",
- "search_results.statuses": "Toots",
+ "search_popout.tips.user": "kullanıcı",
+ "search_results.accounts": "İnsanlar",
+ "search_results.hashtags": "Hashtagler",
+ "search_results.statuses": "Gönderiler",
"search_results.total": "{count, number} {count, plural, one {sonuç} other {sonuçlar}}",
- "standalone.public_title": "A look inside...",
- "status.admin_account": "Open moderation interface for @{name}",
- "status.admin_status": "Open this status in the moderation interface",
- "status.block": "Block @{name}",
- "status.cancel_reblog_private": "Unboost",
+ "status.admin_account": "@{name} için denetim arayüzünü açın",
+ "status.admin_status": "Denetim arayüzünde bu durumu açın",
+ "status.block": "Engelle : @{name}",
+ "status.cancel_reblog_private": "Boost'u geri al",
"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}",
- "status.embed": "Embed",
+ "status.detailed_status": "Detaylı yazışma dökümü",
+ "status.direct": "@{name}'e gönder",
+ "status.embed": "Gömülü",
"status.favourite": "Favorilere ekle",
- "status.filtered": "Filtered",
+ "status.filtered": "Filtrelenmiş",
"status.load_more": "Daha fazla",
"status.local_only": "This post is only visible by other users of your instance",
"status.media_hidden": "Gizli görsel",
- "status.mention": "Bahset @{name}",
- "status.more": "More",
- "status.mute": "Mute @{name}",
- "status.mute_conversation": "Mute conversation",
+ "status.mention": "Bahset : @{name}",
+ "status.more": "Daha fazla",
+ "status.mute": "Sustur : @{name}",
+ "status.mute_conversation": "Yazışmayı sustur",
"status.open": "Bu gönderiyi genişlet",
- "status.pin": "Pin on profile",
- "status.pinned": "Pinned toot",
- "status.read_more": "Read more",
- "status.reblog": "Boost'la",
+ "status.pin": "Profile sabitle",
+ "status.pinned": "Sabitlenmiş gönderi",
+ "status.read_more": "Daha dazla oku",
+ "status.reblog": "Boostla",
"status.reblog_private": "Boost to original audience",
"status.reblogged_by": "{name} boost etti",
- "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
- "status.redraft": "Delete & re-draft",
+ "status.reblogs.empty": "Kimse bu gönderiyi boostlamadı. Biri yaptığında burada gözükecek.",
+ "status.redraft": "Sil & tekrar taslakla",
"status.reply": "Cevapla",
"status.replyAll": "Konuşmayı cevapla",
"status.report": "@{name}'i raporla",
"status.sensitive_toggle": "Görmek için tıklayınız",
"status.sensitive_warning": "Hassas içerik",
- "status.share": "Share",
- "status.show_less": "Daha azı",
- "status.show_less_all": "Show less for all",
- "status.show_more": "Daha fazlası",
- "status.show_more_all": "Show more for all",
- "status.show_thread": "Show thread",
+ "status.share": "Paylaş",
+ "status.show_less": "Daha az göster",
+ "status.show_less_all": "Hepsi için daha az göster",
+ "status.show_more": "Daha fazla göster",
+ "status.show_more_all": "Hepsi için daha fazla göster",
+ "status.show_thread": "Başlığı göster",
"status.unmute_conversation": "Unmute conversation",
- "status.unpin": "Unpin from profile",
- "suggestions.dismiss": "Dismiss suggestion",
- "suggestions.header": "You might be interested in…",
+ "status.unpin": "Profilden sabitlemeyi kaldır",
+ "suggestions.dismiss": "Öneriyi görmezden gel",
+ "suggestions.header": "Şuna ilgi duyuyor olabilirsiniz…",
"tabs_bar.federated_timeline": "Federe",
"tabs_bar.home": "Ana sayfa",
"tabs_bar.local_timeline": "Yerel",
"tabs_bar.notifications": "Bildirimler",
- "tabs_bar.search": "Search",
+ "tabs_bar.search": "Ara",
+ "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
+ "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
+ "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
+ "time_remaining.moments": "Moments remaining",
+ "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
- "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",
+ "ui.beforeunload": "Mastodon'dan ayrılırsanız taslağınız kaybolacak.",
+ "upload_area.title": "Karşıya yükleme 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_error.poll": "Anketlerde dosya yüklemesine izin verilmez.",
"upload_form.description": "Describe for the visually impaired",
- "upload_form.focus": "Crop",
+ "upload_form.focus": "Kırp",
"upload_form.undo": "Geri al",
"upload_progress.label": "Yükleniyor...",
- "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"
+ "video.close": "Videoyu kapat",
+ "video.exit_fullscreen": "Tam ekrandan çık",
+ "video.expand": "Videoyu genişlet",
+ "video.fullscreen": "Tam ekran",
+ "video.hide": "Videoyu gizle",
+ "video.mute": "Sesi kıs",
+ "video.pause": "Duraklat",
+ "video.play": "Oynat",
+ "video.unmute": "Sesi aç"
}
diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json
index afa5d815c..ff3b59213 100644
--- a/app/javascript/mastodon/locales/uk.json
+++ b/app/javascript/mastodon/locales/uk.json
@@ -5,7 +5,6 @@
"account.block_domain": "Заглушити {domain}",
"account.blocked": "Заблоковані",
"account.direct": "Пряме повідомлення @{name}",
- "account.disclaimer_full": "Інфомація знизу може відображати профіль користувача неповністю.",
"account.domain_blocked": "Домен приховано",
"account.edit_profile": "Редагувати профіль",
"account.endorse": "Feature on profile",
@@ -36,7 +35,6 @@
"account.unfollow": "Відписатися",
"account.unmute": "Зняти глушення @{name}",
"account.unmute_notifications": "Показувати сповіщення від @{name}",
- "account.view_full_profile": "Показати профіль повністю",
"alert.unexpected.message": "Трапилась неочікувана помилка.",
"alert.unexpected.title": "Ой!",
"boost_modal.combo": "Ви можете натиснути {combo}, щоб пропустити це наступного разу",
@@ -73,6 +71,10 @@
"compose_form.lock_disclaimer": "Ваш акаунт не {locked}. Кожен може підписатися на Вас та бачити Ваші приватні пости.",
"compose_form.lock_disclaimer.lock": "приватний",
"compose_form.placeholder": "Що у Вас на думці?",
+ "compose_form.poll.add_option": "Add a choice",
+ "compose_form.poll.duration": "Poll duration",
+ "compose_form.poll.option_placeholder": "Choice {number}",
+ "compose_form.poll.remove_option": "Remove this choice",
"compose_form.publish": "Дмухнути",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "Медіа відмічене
несприйнятливим",
@@ -81,6 +83,7 @@
"compose_form.spoiler.unmarked": "Текст видимий",
"compose_form.spoiler_placeholder": "Попередження щодо прихованого тексту",
"confirmation_modal.cancel": "Відмінити",
+ "confirmations.block.block_and_report": "Block & Report",
"confirmations.block.confirm": "Заблокувати",
"confirmations.block.message": "Ви впевнені, що хочете заблокувати {name}?",
"confirmations.delete.confirm": "Видалити",
@@ -114,6 +117,7 @@
"emoji_button.symbols": "Символи",
"emoji_button.travel": "Подорожі",
"empty_column.account_timeline": "No toots here!",
+ "empty_column.account_unavailable": "Profile unavailable",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "Локальна стрічка пуста. Напишіть щось, щоб розігріти народ!",
"empty_column.direct": "У вас ще немає прямих повідомлень. Коли ви відправите чи отримаєте якесь, воно з'явиться тут.",
@@ -147,6 +151,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",
@@ -154,6 +160,9 @@
"home.column_settings.basic": "Основні",
"home.column_settings.show_reblogs": "Показувати передмухи",
"home.column_settings.show_replies": "Показувати відповіді",
+ "intervals.full.days": "{number, plural, one {# day} other {# days}}",
+ "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
+ "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
"introduction.federation.action": "Next",
"introduction.federation.federated.headline": "Federated",
"introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
@@ -209,6 +218,7 @@
"lists.account.remove": "Видалити зі списку",
"lists.delete": "Видалити список",
"lists.edit": "Редагувати список",
+ "lists.edit.submit": "Change title",
"lists.new.create": "Додати список",
"lists.new.title_placeholder": "Нова назва списку",
"lists.search": "Шукати серед людей, на яких ви підписані",
@@ -242,6 +252,7 @@
"notification.favourite": "{name} вподобав(-ла) ваш допис",
"notification.follow": "{name} підписався(-лась) на Вас",
"notification.mention": "{name} згадав(-ла) Вас",
+ "notification.poll": "A poll you have voted in has ended",
"notification.reblog": "{name} передмухнув(-ла) Ваш допис",
"notifications.clear": "Очистити сповіщення",
"notifications.clear_confirmation": "Ви впевнені, що хочете назавжди видалити всі сповіщеня?",
@@ -252,6 +263,7 @@
"notifications.column_settings.filter_bar.show": "Show",
"notifications.column_settings.follow": "Нові підписники:",
"notifications.column_settings.mention": "Згадки:",
+ "notifications.column_settings.poll": "Poll results:",
"notifications.column_settings.push": "Push-сповіщення",
"notifications.column_settings.reblog": "Передмухи:",
"notifications.column_settings.show": "Показати в колонці",
@@ -261,7 +273,14 @@
"notifications.filter.favourites": "Favourites",
"notifications.filter.follows": "Follows",
"notifications.filter.mentions": "Mentions",
+ "notifications.filter.polls": "Poll results",
"notifications.group": "{count} сповіщень",
+ "poll.closed": "Closed",
+ "poll.refresh": "Refresh",
+ "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
+ "poll.vote": "Vote",
+ "poll_button.add_poll": "Add a poll",
+ "poll_button.remove_poll": "Remove poll",
"privacy.change": "Змінити видимість допису",
"privacy.direct.long": "Показати тільки згаданим користувачам",
"privacy.direct.short": "Направлений",
@@ -296,12 +315,12 @@
"search_results.hashtags": "Hashtags",
"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}",
@@ -344,10 +363,17 @@
"tabs_bar.local_timeline": "Локальна",
"tabs_bar.notifications": "Сповіщення",
"tabs_bar.search": "Пошук",
+ "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
+ "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
+ "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
+ "time_remaining.moments": "Moments remaining",
+ "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
"ui.beforeunload": "Вашу чернетку буде втрачено, якщо ви покинете Mastodon.",
"upload_area.title": "Перетягніть сюди, щоб завантажити",
"upload_button.label": "Додати медіаконтент",
+ "upload_error.limit": "File upload limit exceeded.",
+ "upload_error.poll": "File upload not allowed with polls.",
"upload_form.description": "Опишіть для людей з вадами зору",
"upload_form.focus": "Обрізати",
"upload_form.undo": "Видалити",
diff --git a/app/javascript/mastodon/locales/whitelist_bn.json b/app/javascript/mastodon/locales/whitelist_bn.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/mastodon/locales/whitelist_bn.json
@@ -0,0 +1,2 @@
+[
+]
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_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 369b1e77a..fdf003400 100644
--- a/app/javascript/mastodon/locales/zh-CN.json
+++ b/app/javascript/mastodon/locales/zh-CN.json
@@ -5,7 +5,6 @@
"account.block_domain": "隐藏来自 {domain} 的内容",
"account.blocked": "已屏蔽",
"account.direct": "发送私信给 @{name}",
- "account.disclaimer_full": "此处显示的信息可能不是全部内容。",
"account.domain_blocked": "网站已屏蔽",
"account.edit_profile": "修改个人资料",
"account.endorse": "Feature on profile",
@@ -36,7 +35,6 @@
"account.unfollow": "取消关注",
"account.unmute": "不再隐藏 @{name}",
"account.unmute_notifications": "不再隐藏来自 @{name} 的通知",
- "account.view_full_profile": "查看完整资料",
"alert.unexpected.message": "发生了意外错误。",
"alert.unexpected.title": "哎呀!",
"boost_modal.combo": "下次按住 {combo} 即可跳过此提示",
@@ -73,6 +71,10 @@
"compose_form.lock_disclaimer": "你的帐户没有{locked}。任何人都可以在关注你后立即查看仅关注者可见的嘟文。",
"compose_form.lock_disclaimer.lock": "开启保护",
"compose_form.placeholder": "在想啥?",
+ "compose_form.poll.add_option": "Add a choice",
+ "compose_form.poll.duration": "Poll duration",
+ "compose_form.poll.option_placeholder": "Choice {number}",
+ "compose_form.poll.remove_option": "Remove this choice",
"compose_form.publish": "嘟嘟",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "媒体已被标记为敏感内容",
@@ -81,6 +83,7 @@
"compose_form.spoiler.unmarked": "正文未被折叠",
"compose_form.spoiler_placeholder": "折叠部分的警告消息",
"confirmation_modal.cancel": "取消",
+ "confirmations.block.block_and_report": "Block & Report",
"confirmations.block.confirm": "屏蔽",
"confirmations.block.message": "你确定要屏蔽 {name} 吗?",
"confirmations.delete.confirm": "删除",
@@ -114,6 +117,7 @@
"emoji_button.symbols": "符号",
"emoji_button.travel": "旅行和地点",
"empty_column.account_timeline": "No toots here!",
+ "empty_column.account_unavailable": "Profile unavailable",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "本站时间轴暂时没有内容,快嘟几个来抢头香啊!",
"empty_column.direct": "你还没有使用过私信。当你发出或者收到私信时,它会在这里显示。",
@@ -147,6 +151,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",
@@ -154,6 +160,9 @@
"home.column_settings.basic": "基本设置",
"home.column_settings.show_reblogs": "显示转嘟",
"home.column_settings.show_replies": "显示回复",
+ "intervals.full.days": "{number, plural, one {# day} other {# days}}",
+ "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
+ "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
"introduction.federation.action": "Next",
"introduction.federation.federated.headline": "Federated",
"introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
@@ -209,6 +218,7 @@
"lists.account.remove": "从列表中删除",
"lists.delete": "删除列表",
"lists.edit": "编辑列表",
+ "lists.edit.submit": "Change title",
"lists.new.create": "新建列表",
"lists.new.title_placeholder": "新列表的标题",
"lists.search": "搜索你关注的人",
@@ -242,6 +252,7 @@
"notification.favourite": "{name} 收藏了你的嘟文",
"notification.follow": "{name} 开始关注你",
"notification.mention": "{name} 提及你",
+ "notification.poll": "A poll you have voted in has ended",
"notification.reblog": "{name} 转嘟了你的嘟文",
"notifications.clear": "清空通知列表",
"notifications.clear_confirmation": "你确定要永久清空通知列表吗?",
@@ -252,6 +263,7 @@
"notifications.column_settings.filter_bar.show": "Show",
"notifications.column_settings.follow": "当有人关注你时:",
"notifications.column_settings.mention": "当有人在嘟文中提及你时:",
+ "notifications.column_settings.poll": "Poll results:",
"notifications.column_settings.push": "推送通知",
"notifications.column_settings.reblog": "当有人转嘟了你的嘟文时:",
"notifications.column_settings.show": "在通知栏显示",
@@ -261,7 +273,14 @@
"notifications.filter.favourites": "Favourites",
"notifications.filter.follows": "Follows",
"notifications.filter.mentions": "Mentions",
+ "notifications.filter.polls": "Poll results",
"notifications.group": "{count} 条通知",
+ "poll.closed": "Closed",
+ "poll.refresh": "Refresh",
+ "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
+ "poll.vote": "Vote",
+ "poll_button.add_poll": "Add a poll",
+ "poll_button.remove_poll": "Remove poll",
"privacy.change": "设置嘟文可见范围",
"privacy.direct.long": "只有被提及的用户能看到",
"privacy.direct.short": "私信",
@@ -296,12 +315,12 @@
"search_results.hashtags": "话题标签",
"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}",
@@ -344,10 +363,17 @@
"tabs_bar.local_timeline": "本站",
"tabs_bar.notifications": "通知",
"tabs_bar.search": "搜索",
+ "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
+ "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
+ "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
+ "time_remaining.moments": "Moments remaining",
+ "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
"trends.count_by_accounts": "{count} 人正在讨论",
"ui.beforeunload": "如果你现在离开 Mastodon,你的草稿内容将会被丢弃。",
"upload_area.title": "将文件拖放到此处开始上传",
"upload_button.label": "上传媒体文件",
+ "upload_error.limit": "File upload limit exceeded.",
+ "upload_error.poll": "File upload not allowed with polls.",
"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 875c18851..7c73059a7 100644
--- a/app/javascript/mastodon/locales/zh-HK.json
+++ b/app/javascript/mastodon/locales/zh-HK.json
@@ -5,7 +5,6 @@
"account.block_domain": "隱藏來自 {domain} 的一切文章",
"account.blocked": "封鎖",
"account.direct": "私訊 @{name}",
- "account.disclaimer_full": "下列資料不一定完整。",
"account.domain_blocked": "服務站被隱藏",
"account.edit_profile": "修改個人資料",
"account.endorse": "Feature on profile",
@@ -36,7 +35,6 @@
"account.unfollow": "取消關注",
"account.unmute": "取消 @{name} 的靜音",
"account.unmute_notifications": "取消來自 @{name} 通知的靜音",
- "account.view_full_profile": "查看完整資料",
"alert.unexpected.message": "發生不可預期的錯誤。",
"alert.unexpected.title": "噢!",
"boost_modal.combo": "如你想在下次路過這顯示,請按{combo},",
@@ -73,6 +71,10 @@
"compose_form.lock_disclaimer": "你的用戶狀態為「{locked}」,任何人都能立即關注你,然後看到「只有關注者能看」的文章。",
"compose_form.lock_disclaimer.lock": "公共",
"compose_form.placeholder": "你在想甚麼?",
+ "compose_form.poll.add_option": "Add a choice",
+ "compose_form.poll.duration": "Poll duration",
+ "compose_form.poll.option_placeholder": "Choice {number}",
+ "compose_form.poll.remove_option": "Remove this choice",
"compose_form.publish": "發文",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "媒體被標示為敏感",
@@ -81,6 +83,7 @@
"compose_form.spoiler.unmarked": "文字沒有被隱藏",
"compose_form.spoiler_placeholder": "敏感警告訊息",
"confirmation_modal.cancel": "取消",
+ "confirmations.block.block_and_report": "Block & Report",
"confirmations.block.confirm": "封鎖",
"confirmations.block.message": "你確定要封鎖{name}嗎?",
"confirmations.delete.confirm": "刪除",
@@ -114,6 +117,7 @@
"emoji_button.symbols": "符號",
"emoji_button.travel": "旅遊景物",
"empty_column.account_timeline": "No toots here!",
+ "empty_column.account_unavailable": "Profile unavailable",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "本站時間軸暫時未有內容,快寫一點東西來搶頭香啊!",
"empty_column.direct": "你沒有個人訊息。當你發出或接收個人訊息,就會在這裡出現。",
@@ -147,6 +151,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",
@@ -154,6 +160,9 @@
"home.column_settings.basic": "基本",
"home.column_settings.show_reblogs": "顯示被轉推的文章",
"home.column_settings.show_replies": "顯示回應文章",
+ "intervals.full.days": "{number, plural, one {# day} other {# days}}",
+ "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
+ "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
"introduction.federation.action": "Next",
"introduction.federation.federated.headline": "Federated",
"introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
@@ -209,6 +218,7 @@
"lists.account.remove": "從列表刪除",
"lists.delete": "刪除列表",
"lists.edit": "編輯列表",
+ "lists.edit.submit": "Change title",
"lists.new.create": "新增列表",
"lists.new.title_placeholder": "新列表標題",
"lists.search": "從你關注的用戶中搜索",
@@ -242,6 +252,7 @@
"notification.favourite": "{name} 收藏了你的文章",
"notification.follow": "{name} 開始關注你",
"notification.mention": "{name} 提及你",
+ "notification.poll": "A poll you have voted in has ended",
"notification.reblog": "{name} 轉推你的文章",
"notifications.clear": "清空通知紀錄",
"notifications.clear_confirmation": "你確定要清空通知紀錄嗎?",
@@ -252,6 +263,7 @@
"notifications.column_settings.filter_bar.show": "Show",
"notifications.column_settings.follow": "關注你:",
"notifications.column_settings.mention": "提及你:",
+ "notifications.column_settings.poll": "Poll results:",
"notifications.column_settings.push": "推送通知",
"notifications.column_settings.reblog": "轉推你的文章:",
"notifications.column_settings.show": "在通知欄顯示",
@@ -261,7 +273,14 @@
"notifications.filter.favourites": "Favourites",
"notifications.filter.follows": "Follows",
"notifications.filter.mentions": "Mentions",
+ "notifications.filter.polls": "Poll results",
"notifications.group": "{count} 條通知",
+ "poll.closed": "Closed",
+ "poll.refresh": "Refresh",
+ "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
+ "poll.vote": "Vote",
+ "poll_button.add_poll": "Add a poll",
+ "poll_button.remove_poll": "Remove poll",
"privacy.change": "調整私隱設定",
"privacy.direct.long": "只有提及的用戶能看到",
"privacy.direct.short": "私人訊息",
@@ -296,12 +315,12 @@
"search_results.hashtags": "標籤",
"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}",
@@ -344,10 +363,17 @@
"tabs_bar.local_timeline": "本站",
"tabs_bar.notifications": "通知",
"tabs_bar.search": "搜尋",
+ "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
+ "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
+ "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
+ "time_remaining.moments": "Moments remaining",
+ "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
"trends.count_by_accounts": "{count} 位用戶在討論",
"ui.beforeunload": "如果你現在離開 Mastodon,你的草稿內容將會被丟棄。",
"upload_area.title": "將檔案拖放至此上載",
"upload_button.label": "上載媒體檔案",
+ "upload_error.limit": "File upload limit exceeded.",
+ "upload_error.poll": "File upload not allowed with polls.",
"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 2b2acd771..f2ee96d73 100644
--- a/app/javascript/mastodon/locales/zh-TW.json
+++ b/app/javascript/mastodon/locales/zh-TW.json
@@ -1,134 +1,138 @@
{
- "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} 的一切嘟文",
- "account.blocked": "已被封鎖的",
- "account.direct": "發送私訊給 @{name}",
- "account.disclaimer_full": "下列資料不一定完整。",
- "account.domain_blocked": "站點被隱藏",
- "account.edit_profile": "編輯使用者資訊",
- "account.endorse": "在個人資訊頁面上推薦對方",
+ "account.block_domain": "隱藏來自 {domain} 的所有嘟文",
+ "account.blocked": "已封鎖",
+ "account.direct": "傳私訊給 @{name}",
+ "account.domain_blocked": "已隱藏網域",
+ "account.edit_profile": "編輯個人資料",
+ "account.endorse": "在個人資料推薦對方",
"account.follow": "關注",
"account.followers": "關注者",
- "account.followers.empty": "還沒有人關注這個使用者。",
+ "account.followers.empty": "還沒有人關注這位使用者。",
"account.follows": "正在關注",
- "account.follows.empty": "這個使用者還沒有關注任何人。",
- "account.follows_you": "關注你",
+ "account.follows.empty": "這個使用者尚未關注任何使用者。",
+ "account.follows_you": "關注了你",
"account.hide_reblogs": "隱藏來自 @{name} 的轉推",
- "account.link_verified_on": "Ownership of this link was checked on {date}",
- "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
+ "account.link_verified_on": "此連結的所有權已在 {date} 檢查",
+ "account.locked_info": "此帳號的隱私狀態被設為鎖定,擁有者將手動審核可關注此帳號的人。",
"account.media": "媒體",
- "account.mention": "提到 @{name}",
- "account.moved_to": "{name} 已經移至:",
+ "account.mention": "提及 @{name}",
+ "account.moved_to": "{name} 已遷移至:",
"account.mute": "靜音 @{name}",
"account.mute_notifications": "靜音來自 @{name} 的通知",
- "account.muted": "靜音",
+ "account.muted": "已靜音",
"account.posts": "嘟文",
"account.posts_with_replies": "嘟文與回覆",
"account.report": "檢舉 @{name}",
- "account.requested": "正在等待對方同意。點擊以取消發送關注請求",
- "account.share": "分享 @{name} 的使用者資訊",
+ "account.requested": "正在等待核准。按一下取消關注請求",
+ "account.share": "分享 @{name} 的個人資料",
"account.show_reblogs": "顯示來自 @{name} 的嘟文",
"account.unblock": "取消封鎖 @{name}",
- "account.unblock_domain": "不再隱藏 {domain}",
- "account.unendorse": "不再於個人資訊頁面上推薦對方",
+ "account.unblock_domain": "取消隱藏 {domain}",
+ "account.unendorse": "不再於個人資料頁面推薦對方",
"account.unfollow": "取消關注",
"account.unmute": "不再靜音 @{name}",
- "account.unmute_notifications": "不再對來自 @{name} 的通知靜音",
- "account.view_full_profile": "查看完整資訊",
- "alert.unexpected.message": "發生非預期的錯誤。",
+ "account.unmute_notifications": "不再靜音來自 @{name} 的通知",
+ "alert.unexpected.message": "發生了非預期的錯誤。",
"alert.unexpected.title": "哎呀!",
- "boost_modal.combo": "下次你可以按 {combo} 來跳過",
- "bundle_column_error.body": "加載本組件出錯。",
+ "boost_modal.combo": "下次您可以按 {combo} 跳過",
+ "bundle_column_error.body": "載入此組件時發生錯誤。",
"bundle_column_error.retry": "重試",
"bundle_column_error.title": "網路錯誤",
"bundle_modal_error.close": "關閉",
- "bundle_modal_error.message": "加載本組件出錯。",
+ "bundle_modal_error.message": "載入此組件時發生錯誤。",
"bundle_modal_error.retry": "重試",
"column.blocks": "封鎖的使用者",
"column.community": "本地時間軸",
"column.direct": "私訊",
- "column.domain_blocks": "隱藏的站點",
+ "column.domain_blocks": "隱藏的網域",
"column.favourites": "最愛",
"column.follow_requests": "關注請求",
"column.home": "主頁",
"column.lists": "名單",
- "column.mutes": "靜音的使用者",
+ "column.mutes": "被靜音的使用者",
"column.notifications": "通知",
- "column.pins": "置頂嘟文",
- "column.public": "其他站點時間軸",
+ "column.pins": "釘選的嘟文",
+ "column.public": "聯邦時間軸",
"column_back_button.label": "上一頁",
"column_header.hide_settings": "隱藏設定",
- "column_header.moveLeft_settings": "將欄左移",
- "column_header.moveRight_settings": "將欄右移",
- "column_header.pin": "固定",
+ "column_header.moveLeft_settings": "將欄位向左移動",
+ "column_header.moveRight_settings": "將欄位向右移動",
+ "column_header.pin": "釘選",
"column_header.show_settings": "顯示設定",
- "column_header.unpin": "取下",
+ "column_header.unpin": "取消釘選",
"column_subheading.settings": "設定",
"community.column_settings.media_only": "僅媒體",
- "compose_form.direct_message_warning": "這條嘟文僅對有被提及的使用者才能看到。",
+ "compose_form.direct_message_warning": "這條嘟文只有被提及的使用者才能看到。",
"compose_form.direct_message_warning_learn_more": "了解更多",
- "compose_form.hashtag_warning": "此則推文將不會在任何主題標籤中看見,只有公開的推文可以用主題標籤來搜尋。",
- "compose_form.lock_disclaimer": "你的帳號沒有{locked}。任何人都可以關注你,看到發給關注者的嘟文。",
+ "compose_form.hashtag_warning": "因這則嘟文設成「不公開」,因此它不會列在任何「#」標籤下。只有公開嘟文才能用「#」標籤找到。",
+ "compose_form.lock_disclaimer": "您的帳戶尚未{locked}。任何人都能關注您並看到您設定成僅關注者能看的嘟文。",
"compose_form.lock_disclaimer.lock": "上鎖",
- "compose_form.placeholder": "在想些什麼?",
+ "compose_form.placeholder": "您正在想些什麼?",
+ "compose_form.poll.add_option": "新增選擇",
+ "compose_form.poll.duration": "投票期限",
+ "compose_form.poll.option_placeholder": "第 {number} 個選擇",
+ "compose_form.poll.remove_option": "移除此選擇",
"compose_form.publish": "嘟掉",
"compose_form.publish_loud": "{publish}!",
- "compose_form.sensitive.marked": "此媒體已被標註為敏感的",
- "compose_form.sensitive.unmarked": "此媒體未被標註為敏感的",
- "compose_form.spoiler.marked": "文字隱藏在警告後",
- "compose_form.spoiler.unmarked": "文字不是隱藏的",
- "compose_form.spoiler_placeholder": "內容警告",
+ "compose_form.sensitive.marked": "此媒體被標記為敏感內容",
+ "compose_form.sensitive.unmarked": "此媒體未被標記為敏感內容",
+ "compose_form.spoiler.marked": "正文已隱藏在警告之後",
+ "compose_form.spoiler.unmarked": "正文未被隱藏",
+ "compose_form.spoiler_placeholder": "請在此處寫入警告訊息",
"confirmation_modal.cancel": "取消",
+ "confirmations.block.block_and_report": "Block & Report",
"confirmations.block.confirm": "封鎖",
"confirmations.block.message": "你確定要封鎖 {name} ?",
"confirmations.delete.confirm": "刪除",
- "confirmations.delete.message": "你確定要刪除這個狀態?",
+ "confirmations.delete.message": "你確定要刪除這條嘟文?",
"confirmations.delete_list.confirm": "刪除",
- "confirmations.delete_list.message": "確定要永久性地刪除這個名單嗎?",
+ "confirmations.delete_list.message": "確定要永久刪除此名單?",
"confirmations.domain_block.confirm": "隱藏整個網域",
- "confirmations.domain_block.message": "你真的確定要靜音所有來自 {domain} 的內容嗎? 多數情況下,封鎖或靜音幾個特定用戶應該就能滿足你的需求了。來自該站點的內容將不再出現在你的公共時間軸或通知裡。來自該站點的關注者將會被移除。",
- "confirmations.mute.confirm": "消音",
- "confirmations.mute.message": "你確定要消音 {name} ?",
- "confirmations.redraft.confirm": "刪除 & 編輯",
- "confirmations.redraft.message": "你確定要刪除這條嘟文並重新編輯它嗎?所有相關的轉嘟與最愛都會被刪除,而對原始嘟文的回覆將會變成孤兒。",
- "confirmations.reply.confirm": "Reply",
- "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
+ "confirmations.domain_block.message": "確定封鎖整個 {domain} 嗎?多數情況下,封鎖或靜音幾個特定使用者應該就能滿足你的需求了。您將不能在任何公開時間軸或通知中看到來自該網域的內容。來自該網域的關注者將被移除。",
+ "confirmations.mute.confirm": "靜音",
+ "confirmations.mute.message": "確定靜音 {name} ?",
+ "confirmations.redraft.confirm": "刪除並重新編輯",
+ "confirmations.redraft.message": "你確定要刪除這條嘟文並重新編輯它嗎?這麼做將失去轉嘟和最愛,而對原始嘟文的回覆將被孤立。",
+ "confirmations.reply.confirm": "回覆",
+ "confirmations.reply.message": "現在回覆將蓋掉您目前正在撰寫的訊息。是否仍要回覆?",
"confirmations.unfollow.confirm": "取消關注",
- "confirmations.unfollow.message": "真的不要繼續關注 {name} 了嗎?",
- "embed.instructions": "要內嵌此嘟文,請將以下代碼貼進你的網站。",
- "embed.preview": "看上去會變成這樣:",
+ "confirmations.unfollow.message": "真的要取消關注 {name} 嗎?",
+ "embed.instructions": "要嵌入此嘟文,請將以下代碼貼進你的網站。",
+ "embed.preview": "他會顯示成這樣:",
"emoji_button.activity": "活動",
"emoji_button.custom": "自訂",
- "emoji_button.flags": "旗幟",
+ "emoji_button.flags": "旗標",
"emoji_button.food": "飲食",
"emoji_button.label": "插入表情符號",
- "emoji_button.nature": "自然",
- "emoji_button.not_found": "沒有表情符號吼!! (╯°□°)╯︵ ┻━┻",
+ "emoji_button.nature": "大自然",
+ "emoji_button.not_found": "就沒這表情符號吼!! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "物件",
"emoji_button.people": "使用者",
- "emoji_button.recent": "常用",
+ "emoji_button.recent": "最常使用",
"emoji_button.search": "搜尋…",
"emoji_button.search_results": "搜尋結果",
"emoji_button.symbols": "符號",
"emoji_button.travel": "旅遊與地點",
- "empty_column.account_timeline": "No toots here!",
+ "empty_column.account_timeline": "這裡還沒有嘟文!",
+ "empty_column.account_unavailable": "Profile unavailable",
"empty_column.blocks": "你還沒有封鎖任何使用者。",
- "empty_column.community": "本地時間軸是空的。公開寫點什麼吧!",
- "empty_column.direct": "你還沒有使用過私訊。當你發出或著收到私訊時,它會在這裡顯示。",
- "empty_column.domain_blocks": "還沒有隱藏任何網域。",
- "empty_column.favourited_statuses": "你還沒有收藏任何嘟文。收藏後的嘟文會顯示在這裡。",
- "empty_column.favourites": "還沒有人收藏此嘟文。如果有人收藏,會顯示在這裡。",
- "empty_column.follow_requests": "還沒有人請求關注你。如果收到關注請求,會顯示在這裡。",
- "empty_column.hashtag": "這個主題標籤下什麼都沒有。",
- "empty_column.home": "你還沒關注任何人。造訪{public}或利用搜尋功能找到其他用者。",
+ "empty_column.community": "本地時間軸是空的。快公開嘟些文搶頭香啊!",
+ "empty_column.direct": "您還沒有任何私訊。當您私訊別人或收到私訊時,它將於此顯示。",
+ "empty_column.domain_blocks": "尚未隱藏任何網域。",
+ "empty_column.favourited_statuses": "你還沒有將任何嘟文標為最愛。最愛的嘟文將顯示於此。",
+ "empty_column.favourites": "還沒有人將此嘟文標為最愛。如果有人標成最愛,則會顯示在這裡。",
+ "empty_column.follow_requests": "您尚未收到任何關注請求。收到時會顯示於此。",
+ "empty_column.hashtag": "這個「#」標籤下什麼都沒有。",
+ "empty_column.home": "您的首頁時間軸是空的!前往 {public} 或使用搜尋功能來認識其他人。",
"empty_column.home.public_timeline": "公開時間軸",
- "empty_column.list": "此份名單尚未有東西。當此名單的成員嘟出了新的狀態時,它們就會出現在這裡。",
+ "empty_column.list": "此份名單還沒有東西。當此名單的成員嘟出了新的嘟文時,它們就會出現在這裡。",
"empty_column.lists": "你還沒有建立任何名單。你建立的名單將會顯示在這裡。",
"empty_column.mutes": "你還沒有靜音任何使用者。",
- "empty_column.notifications": "還沒有任何通知。和別的使用者互動來開始對話。",
- "empty_column.public": "這裡什麼都沒有! 寫一些公開的嘟文,或著關注其他站點的使用者後,這裡就會有嘟文出現了",
+ "empty_column.notifications": "您尚未收到任何通知,和別人互動開啟對話吧。",
+ "empty_column.public": "這裡什麼都沒有!嘗試寫些公開的嘟文,或著自己關注其他伺服器的使用者後就會有嘟文出現了",
"federation.change": "Adjust status federation",
"federation.federated.long": "Allow toot to reach other instances",
"federation.federated.short": "Federated",
@@ -136,81 +140,87 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "授權",
"follow_request.reject": "拒絕",
- "getting_started.developers": "開發",
- "getting_started.directory": "Profile directory",
+ "getting_started.developers": "開發者",
+ "getting_started.directory": "個人資料目錄",
"getting_started.documentation": "文件",
- "getting_started.heading": "馬上開始",
+ "getting_started.heading": "開始使用",
"getting_started.invite": "邀請使用者",
- "getting_started.open_source_notice": "Mastodon 是開源軟體。你可以在 GitHub {github} 上做出貢獻或是回報問題。",
- "getting_started.security": "登入資訊",
- "getting_started.terms": "使用條款",
- "hashtag.column_header.tag_mode.all": "and {additional}",
- "hashtag.column_header.tag_mode.any": "or {additional}",
- "hashtag.column_header.tag_mode.none": "without {additional}",
- "hashtag.column_settings.tag_mode.all": "All of these",
- "hashtag.column_settings.tag_mode.any": "Any of these",
- "hashtag.column_settings.tag_mode.none": "None of these",
- "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
+ "getting_started.open_source_notice": "Mastodon 是開源軟體。你可以在 GitHub {github} 上貢獻或是回報問題。",
+ "getting_started.security": "安全性",
+ "getting_started.terms": "服務條款",
+ "hashtag.column_header.tag_mode.all": "以及{additional}",
+ "hashtag.column_header.tag_mode.any": "或是{additional}",
+ "hashtag.column_header.tag_mode.none": "而不用{additional}",
+ "hashtag.column_settings.select.no_options_message": "找不到建議",
+ "hashtag.column_settings.select.placeholder": "輸入「#」標籤…",
+ "hashtag.column_settings.tag_mode.all": "全部",
+ "hashtag.column_settings.tag_mode.any": "任一",
+ "hashtag.column_settings.tag_mode.none": "全都不要",
+ "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.",
- "keyboard_shortcuts.back": "回到上一個",
- "keyboard_shortcuts.blocked": "到封鎖的使用者名單",
- "keyboard_shortcuts.boost": "到轉推",
- "keyboard_shortcuts.column": "選擇第 X 欄中的嘟文",
- "keyboard_shortcuts.compose": "焦點移至撰寫文字區塊",
+ "home.column_settings.show_replies": "顯示回覆",
+ "intervals.full.days": "{number, plural, one {# 天} other {# 天}}",
+ "intervals.full.hours": "{number, plural, one {# 小時} other {# 小時}}",
+ "intervals.full.minutes": "{number, plural, one {# 分鐘} other {# 分鐘}}",
+ "introduction.federation.action": "下一步",
+ "introduction.federation.federated.headline": "聯邦",
+ "introduction.federation.federated.text": "來自聯邦網路中其他伺服器的公開嘟文將會在聯邦網路時間軸中顯示。",
+ "introduction.federation.home.headline": "首頁",
+ "introduction.federation.home.text": "您所關注使用者所發的嘟文將顯示在首頁的訊息來源。您能關注任何伺服器上的任何人!",
+ "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": "轉嘟",
+ "keyboard_shortcuts.column": "將焦點放在其中一欄的嘟文",
+ "keyboard_shortcuts.compose": "將焦點移至撰寫文字區塊",
"keyboard_shortcuts.description": "描述",
- "keyboard_shortcuts.direct": "到私訊欄",
- "keyboard_shortcuts.down": "在列表往下移動",
- "keyboard_shortcuts.enter": "看嘟文",
- "keyboard_shortcuts.favourite": "收藏",
- "keyboard_shortcuts.favourites": "到收藏名單",
- "keyboard_shortcuts.federated": "到其他站點時間軸",
+ "keyboard_shortcuts.direct": "開啟私訊欄",
+ "keyboard_shortcuts.down": "在名單中往下移動",
+ "keyboard_shortcuts.enter": "檢視嘟文",
+ "keyboard_shortcuts.favourite": "加入最愛",
+ "keyboard_shortcuts.favourites": "開啟最愛名單",
+ "keyboard_shortcuts.federated": "開啟聯邦時間軸",
"keyboard_shortcuts.heading": "鍵盤快速鍵",
- "keyboard_shortcuts.home": "到主頁時間軸",
+ "keyboard_shortcuts.home": "開啟首頁時間軸",
"keyboard_shortcuts.hotkey": "快速鍵",
- "keyboard_shortcuts.legend": "顯示這個說明",
- "keyboard_shortcuts.local": "到本地時間軸",
- "keyboard_shortcuts.mention": "到提到的作者",
- "keyboard_shortcuts.muted": "到靜音的使用者列表",
- "keyboard_shortcuts.my_profile": "到你的個人資訊頁",
- "keyboard_shortcuts.notifications": "打開通知欄",
- "keyboard_shortcuts.pinned": "到收藏的嘟文名單",
- "keyboard_shortcuts.profile": "到嘟文作者的個人資訊頁",
- "keyboard_shortcuts.reply": "到回應",
- "keyboard_shortcuts.requests": "打開關注請求名單",
- "keyboard_shortcuts.search": "把滑鼠移動到搜尋",
- "keyboard_shortcuts.start": "到「馬上開始」",
- "keyboard_shortcuts.toggle_hidden": "顯示或隱藏被標為敏感的嘟文",
- "keyboard_shortcuts.toot": "新的嘟文",
- "keyboard_shortcuts.unfocus": "取消輸入",
- "keyboard_shortcuts.up": "在列表往上移動",
+ "keyboard_shortcuts.legend": "顯示此說明",
+ "keyboard_shortcuts.local": "開啟本地時間軸",
+ "keyboard_shortcuts.mention": "提及作者",
+ "keyboard_shortcuts.muted": "開啟靜音使用者名單",
+ "keyboard_shortcuts.my_profile": "開啟個人資料頁面",
+ "keyboard_shortcuts.notifications": "開啟通知欄",
+ "keyboard_shortcuts.pinned": "開啟釘選的嘟文名單",
+ "keyboard_shortcuts.profile": "開啟作者的個人資料頁",
+ "keyboard_shortcuts.reply": "回應嘟文",
+ "keyboard_shortcuts.requests": "開啟關注請求名單",
+ "keyboard_shortcuts.search": "將焦點移至搜尋框",
+ "keyboard_shortcuts.start": "開啟「開始使用」欄位",
+ "keyboard_shortcuts.toggle_hidden": "顯示/隱藏在內容警告之後的正文",
+ "keyboard_shortcuts.toot": "開始發出新嘟文",
+ "keyboard_shortcuts.unfocus": "取消輸入文字區塊 / 搜尋的焦點",
+ "keyboard_shortcuts.up": "在名單中往上移動",
"lightbox.close": "關閉",
- "lightbox.next": "繼續",
- "lightbox.previous": "回退",
- "lists.account.add": "加到名單裡",
+ "lightbox.next": "下一步",
+ "lightbox.previous": "上一步",
+ "lists.account.add": "新增至名單",
"lists.account.remove": "從名單中移除",
"lists.delete": "刪除名單",
- "lists.edit": "修改名單",
+ "lists.edit": "編輯名單",
+ "lists.edit.submit": "變更標題",
"lists.new.create": "新增名單",
- "lists.new.title_placeholder": "名單名稱",
+ "lists.new.title_placeholder": "新名單標題",
"lists.search": "搜尋您關注的使用者",
"lists.subheading": "您的名單",
"loading_indicator.label": "讀取中...",
@@ -221,47 +231,56 @@
"navigation_bar.apps": "行動應用程式",
"navigation_bar.blocks": "封鎖的使用者",
"navigation_bar.community_timeline": "本地時間軸",
- "navigation_bar.compose": "寫新的嘟文",
+ "navigation_bar.compose": "撰寫新嘟文",
"navigation_bar.direct": "私訊",
"navigation_bar.discover": "探索",
- "navigation_bar.domain_blocks": "隱藏的站點",
- "navigation_bar.edit_profile": "編輯使用者資訊",
- "navigation_bar.favourites": "最愛",
- "navigation_bar.filters": "消音的詞",
+ "navigation_bar.domain_blocks": "隱藏的網域",
+ "navigation_bar.edit_profile": "編輯個人資料",
+ "navigation_bar.favourites": "最愛內容",
+ "navigation_bar.filters": "靜音詞彙",
"navigation_bar.follow_requests": "關注請求",
- "navigation_bar.info": "關於本站",
- "navigation_bar.keyboard_shortcuts": "快捷鍵",
+ "navigation_bar.info": "關於此伺服器",
+ "navigation_bar.keyboard_shortcuts": "快速鍵",
"navigation_bar.lists": "名單",
"navigation_bar.logout": "登出",
"navigation_bar.mutes": "靜音的使用者",
"navigation_bar.personal": "個人",
- "navigation_bar.pins": "置頂嘟文",
+ "navigation_bar.pins": "釘選的嘟文",
"navigation_bar.preferences": "偏好設定",
- "navigation_bar.public_timeline": "其他站點時間軸",
- "navigation_bar.security": "登入資訊",
- "notification.favourite": "{name}把你的嘟文加入了最愛",
- "notification.follow": "{name}關注了你",
- "notification.mention": "{name}提到了你",
+ "navigation_bar.public_timeline": "聯邦時間軸",
+ "navigation_bar.security": "安全性",
+ "notification.favourite": "{name} 把你的嘟文加入了最愛",
+ "notification.follow": "{name} 關注了你",
+ "notification.mention": "{name} 提到了你",
+ "notification.poll": "您投過的投票已經結束",
"notification.reblog": "{name}轉嘟了你的嘟文",
"notifications.clear": "清除通知",
"notifications.clear_confirmation": "確定要永久清除你的通知嗎?",
"notifications.column_settings.alert": "桌面通知",
"notifications.column_settings.favourite": "最愛:",
- "notifications.column_settings.filter_bar.advanced": "Display all categories",
- "notifications.column_settings.filter_bar.category": "Quick filter bar",
- "notifications.column_settings.filter_bar.show": "Show",
- "notifications.column_settings.follow": "新的關注者:",
- "notifications.column_settings.mention": "提到:",
+ "notifications.column_settings.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.poll": "投票結果:",
"notifications.column_settings.push": "推送通知",
"notifications.column_settings.reblog": "轉嘟:",
- "notifications.column_settings.show": "顯示在欄位中",
+ "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.filter.polls": "投票結果",
"notifications.group": "{count} 條通知",
+ "poll.closed": "已關閉",
+ "poll.refresh": "重新整理",
+ "poll.total_votes": "{count, plural, one {# 個投票} other {# 個投票}}",
+ "poll.vote": "投票",
+ "poll_button.add_poll": "建立投票",
+ "poll_button.remove_poll": "移除投票",
"privacy.change": "調整隱私狀態",
"privacy.direct.long": "只有被提到的使用者能看到",
"privacy.direct.short": "私訊",
@@ -281,7 +300,7 @@
"reply_indicator.cancel": "取消",
"report.forward": "轉寄到 {target}",
"report.forward_hint": "這個帳戶屬於其他站點。要像該站點發送匿名的檢舉訊息嗎?",
- "report.hint": "這項訊息會發送到你該站點的管理員。你可以提供檢舉這個帳戶的理由:",
+ "report.hint": "這項訊息會發送到您伺服器的管理員。你可以提供檢舉這個帳戶的理由:",
"report.placeholder": "更多訊息",
"report.submit": "送出",
"report.target": "檢舉 {target}",
@@ -289,19 +308,19 @@
"search_popout.search_format": "進階搜尋格式",
"search_popout.tips.full_text": "輸入簡單的文字,搜尋由你撰寫、最愛、轉嘟或提你的嘟文,以及符合使用者名稱、帳戶名稱和標籤。",
"search_popout.tips.hashtag": "主題標籤",
- "search_popout.tips.status": "狀態",
+ "search_popout.tips.status": "嘟文",
"search_popout.tips.text": "輸入簡單的文字,搜尋符合的使用者名稱,帳戶名稱與標籤",
"search_popout.tips.user": "使用者",
"search_results.accounts": "使用者",
"search_results.hashtags": "主題標籤",
"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.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}",
@@ -316,9 +335,9 @@
"status.mute": "靜音 @{name}",
"status.mute_conversation": "靜音對話",
"status.open": "展開嘟文",
- "status.pin": "置頂到個人資訊頁",
- "status.pinned": "置頂嘟文",
- "status.read_more": "Read more",
+ "status.pin": "釘選到個人資料頁",
+ "status.pinned": "釘選的嘟文",
+ "status.read_more": "閱讀更多",
"status.reblog": "轉嘟",
"status.reblog_private": "轉嘟給原有關注者",
"status.reblogged_by": "{name} 轉嘟了",
@@ -334,22 +353,29 @@
"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": "本站",
"tabs_bar.notifications": "通知",
"tabs_bar.search": "搜尋",
+ "time_remaining.days": "剩餘{number, plural, one {# 天數} other {# 天數}}",
+ "time_remaining.hours": "剩餘{number, plural, one {# 小時} other {# 小時}}",
+ "time_remaining.minutes": "剩餘{number, plural, one {# 分鐘} other {# 分鐘}}",
+ "time_remaining.moments": "剩餘時間",
+ "time_remaining.seconds": "剩餘 {number, plural, one {# 秒} other {# 秒}}",
"trends.count_by_accounts": "{count} 位使用者在討論",
"ui.beforeunload": "如果離開 Mastodon,你的草稿將會不見。",
"upload_area.title": "拖放來上傳",
"upload_button.label": "上傳媒體檔案 (JPEG, PNG, GIF, WebM, MP4, MOV)",
+ "upload_error.limit": "已達到檔案上傳限制。",
+ "upload_error.poll": "不允許在投票上傳檔案。",
"upload_form.description": "為視障人士增加文字說明",
- "upload_form.focus": "裁切",
+ "upload_form.focus": "變更預覽",
"upload_form.undo": "刪除",
"upload_progress.label": "上傳中...",
"video.close": "關閉影片",
diff --git a/app/javascript/mastodon/reducers/compose.js b/app/javascript/mastodon/reducers/compose.js
index 3d5dcb1f6..ed4981c48 100644
--- a/app/javascript/mastodon/reducers/compose.js
+++ b/app/javascript/mastodon/reducers/compose.js
@@ -30,6 +30,12 @@ import {
COMPOSE_UPLOAD_CHANGE_SUCCESS,
COMPOSE_UPLOAD_CHANGE_FAIL,
COMPOSE_RESET,
+ COMPOSE_POLL_ADD,
+ COMPOSE_POLL_REMOVE,
+ COMPOSE_POLL_OPTION_ADD,
+ COMPOSE_POLL_OPTION_CHANGE,
+ COMPOSE_POLL_OPTION_REMOVE,
+ COMPOSE_POLL_SETTINGS_CHANGE,
} from '../actions/compose';
import { TIMELINE_DELETE } from '../actions/timelines';
import { STORE_HYDRATE } from '../actions/store';
@@ -57,6 +63,7 @@ const initialState = ImmutableMap({
is_uploading: false,
progress: 0,
media_attachments: ImmutableList(),
+ poll: null,
suggestion_token: null,
suggestions: ImmutableList(),
default_privacy: 'public',
@@ -67,6 +74,12 @@ const initialState = ImmutableMap({
tagHistory: ImmutableList(),
});
+const initialPoll = ImmutableMap({
+ options: ImmutableList(['', '']),
+ expires_in: 24 * 3600,
+ multiple: false,
+});
+
function statusToTextMentions(state, status) {
let set = ImmutableOrderedSet([]);
@@ -89,6 +102,7 @@ function clearAll(state) {
map.set('federation', state.get('default_federation'));
map.set('sensitive', false);
map.update('media_attachments', list => list.clear());
+ map.set('poll', null);
map.set('idempotencyKey', uuid());
});
};
@@ -256,6 +270,7 @@ export default function compose(state = initialState, action) {
map.set('spoiler', false);
map.set('spoiler_text', '');
map.set('privacy', state.get('default_privacy'));
+ map.set('poll', null);
map.set('federation', state.get('default_federation'));
map.set('idempotencyKey', uuid());
});
@@ -340,7 +355,27 @@ export default function compose(state = initialState, action) {
map.set('spoiler', false);
map.set('spoiler_text', '');
}
+
+ if (action.status.get('poll')) {
+ map.set('poll', ImmutableMap({
+ options: action.status.getIn(['poll', 'options']).map(x => x.get('title')),
+ multiple: action.status.getIn(['poll', 'multiple']),
+ expires_in: 24 * 3600,
+ }));
+ }
});
+ case COMPOSE_POLL_ADD:
+ return state.set('poll', initialPoll);
+ case COMPOSE_POLL_REMOVE:
+ return state.set('poll', null);
+ case COMPOSE_POLL_OPTION_ADD:
+ return state.updateIn(['poll', 'options'], options => options.push(action.title));
+ case COMPOSE_POLL_OPTION_CHANGE:
+ return state.setIn(['poll', 'options', action.index], action.title);
+ case COMPOSE_POLL_OPTION_REMOVE:
+ return state.updateIn(['poll', 'options'], options => options.delete(action.index));
+ case COMPOSE_POLL_SETTINGS_CHANGE:
+ return state.update('poll', poll => poll.set('expires_in', action.expiresIn).set('multiple', action.isMultiple));
default:
return state;
}
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/identity_proofs.js b/app/javascript/mastodon/reducers/identity_proofs.js
new file mode 100644
index 000000000..58af0a5fa
--- /dev/null
+++ b/app/javascript/mastodon/reducers/identity_proofs.js
@@ -0,0 +1,25 @@
+import { Map as ImmutableMap, fromJS } from 'immutable';
+import {
+ IDENTITY_PROOFS_ACCOUNT_FETCH_REQUEST,
+ IDENTITY_PROOFS_ACCOUNT_FETCH_SUCCESS,
+ IDENTITY_PROOFS_ACCOUNT_FETCH_FAIL,
+} from '../actions/identity_proofs';
+
+const initialState = ImmutableMap();
+
+export default function identityProofsReducer(state = initialState, action) {
+ switch(action.type) {
+ case IDENTITY_PROOFS_ACCOUNT_FETCH_REQUEST:
+ return state.set('isLoading', true);
+ case IDENTITY_PROOFS_ACCOUNT_FETCH_FAIL:
+ return state.set('isLoading', false);
+ case IDENTITY_PROOFS_ACCOUNT_FETCH_SUCCESS:
+ return state.update(identity_proofs => identity_proofs.withMutations(map => {
+ map.set('isLoading', false);
+ map.set('loaded', true);
+ map.set(action.accountId, fromJS(action.identity_proofs));
+ }));
+ default:
+ return state;
+ }
+};
diff --git a/app/javascript/mastodon/reducers/index.js b/app/javascript/mastodon/reducers/index.js
index 0f0de849f..981ad8e64 100644
--- a/app/javascript/mastodon/reducers/index.js
+++ b/app/javascript/mastodon/reducers/index.js
@@ -29,6 +29,8 @@ import listAdder from './list_adder';
import filters from './filters';
import conversations from './conversations';
import suggestions from './suggestions';
+import polls from './polls';
+import identity_proofs from './identity_proofs';
const reducers = {
dropdown_menu,
@@ -55,12 +57,14 @@ const reducers = {
notifications,
height_cache,
custom_emojis,
+ identity_proofs,
lists,
listEditor,
listAdder,
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..9956cf83f
--- /dev/null
+++ b/app/javascript/mastodon/reducers/polls.js
@@ -0,0 +1,15 @@
+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);
+ default:
+ return state;
+ }
+}
diff --git a/app/javascript/mastodon/reducers/push_notifications.js b/app/javascript/mastodon/reducers/push_notifications.js
index 85628c6b1..317352b79 100644
--- a/app/javascript/mastodon/reducers/push_notifications.js
+++ b/app/javascript/mastodon/reducers/push_notifications.js
@@ -9,6 +9,7 @@ const initialState = Immutable.Map({
favourite: false,
reblog: false,
mention: false,
+ poll: false,
}),
isSubscribed: false,
browserSupport: false,
diff --git a/app/javascript/mastodon/reducers/settings.js b/app/javascript/mastodon/reducers/settings.js
index 2e1878cf7..a0eea137f 100644
--- a/app/javascript/mastodon/reducers/settings.js
+++ b/app/javascript/mastodon/reducers/settings.js
@@ -31,6 +31,7 @@ const initialState = ImmutableMap({
favourite: true,
reblog: true,
mention: true,
+ poll: true,
}),
quickFilter: ImmutableMap({
@@ -44,6 +45,7 @@ const initialState = ImmutableMap({
favourite: true,
reblog: true,
mention: true,
+ poll: true,
}),
sounds: ImmutableMap({
@@ -51,6 +53,7 @@ const initialState = ImmutableMap({
favourite: true,
reblog: true,
mention: true,
+ poll: true,
}),
}),
diff --git a/app/javascript/mastodon/reducers/timelines.js b/app/javascript/mastodon/reducers/timelines.js
index 1f7ece812..6a972f967 100644
--- a/app/javascript/mastodon/reducers/timelines.js
+++ b/app/javascript/mastodon/reducers/timelines.js
@@ -6,6 +6,7 @@ import {
TIMELINE_EXPAND_REQUEST,
TIMELINE_EXPAND_FAIL,
TIMELINE_SCROLL_TOP,
+ TIMELINE_CONNECT,
TIMELINE_DISCONNECT,
} from '../actions/timelines';
import {
@@ -20,6 +21,7 @@ const initialState = ImmutableMap();
const initialTimeline = ImmutableMap({
unread: 0,
+ online: false,
top: true,
isLoading: false,
hasMore: true,
@@ -29,6 +31,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()) {
@@ -74,14 +78,15 @@ const updateTimeline = (state, timeline, status) => {
}));
};
-const deleteStatus = (state, id, accountId, references) => {
+const deleteStatus = (state, id, accountId, references, exclude_account = null) => {
state.keySeq().forEach(timeline => {
- state = state.updateIn([timeline, 'items'], list => list.filterNot(item => item === id));
+ if (exclude_account === null || (timeline !== `account:${exclude_account}` && !timeline.startsWith(`account:${exclude_account}:`)))
+ state = state.updateIn([timeline, 'items'], list => list.filterNot(item => item === id));
});
// Remove reblogs of deleted status
references.forEach(ref => {
- state = deleteStatus(state, ref[0], ref[1], []);
+ state = deleteStatus(state, ref[0], ref[1], [], exclude_account);
});
return state;
@@ -100,7 +105,7 @@ const filterTimelines = (state, relationship, statuses) => {
}
references = statuses.filter(item => item.get('reblog') === status.get('id')).map(item => [item.get('id'), item.get('account')]);
- state = deleteStatus(state, status.get('id'), status.get('account'), references);
+ state = deleteStatus(state, status.get('id'), status.get('account'), references, relationship.id);
});
return state;
@@ -140,14 +145,13 @@ export default function timelines(state = initialState, action) {
return filterTimeline('home', state, action.relationship, action.statuses);
case TIMELINE_SCROLL_TOP:
return updateTop(state, action.timeline, action.top);
+ case TIMELINE_CONNECT:
+ return state.update(action.timeline, initialTimeline, map => map.set('online', true));
case TIMELINE_DISCONNECT:
return state.update(
action.timeline,
initialTimeline,
- map => map.update(
- 'items',
- items => items.first() ? items.unshift(null) : items
- )
+ map => map.set('online', false).update('items', items => items.first() ? items.unshift(null) : items)
);
default:
return state;
diff --git a/app/javascript/mastodon/service_worker/web_push_locales.js b/app/javascript/mastodon/service_worker/web_push_locales.js
index ce96ae297..5ce8c7b50 100644
--- a/app/javascript/mastodon/service_worker/web_push_locales.js
+++ b/app/javascript/mastodon/service_worker/web_push_locales.js
@@ -18,6 +18,7 @@ filenames.forEach(filename => {
'notification.follow': full['notification.follow'] || '',
'notification.mention': full['notification.mention'] || '',
'notification.reblog': full['notification.reblog'] || '',
+ 'notification.poll': full['notification.poll'] || '',
'status.show_more': full['status.show_more'] || '',
'status.reblog': full['status.reblog'] || '',
diff --git a/app/javascript/mastodon/stream.js b/app/javascript/mastodon/stream.js
index 9928d0dd7..306a068b7 100644
--- a/app/javascript/mastodon/stream.js
+++ b/app/javascript/mastodon/stream.js
@@ -2,11 +2,11 @@ import WebSocketClient from 'websocket.js';
const randomIntUpTo = max => Math.floor(Math.random() * Math.floor(max));
-export function connectStream(path, pollingRefresh = null, callbacks = () => ({ onDisconnect() {}, onReceive() {} })) {
+export function connectStream(path, pollingRefresh = null, callbacks = () => ({ onConnect() {}, onDisconnect() {}, onReceive() {} })) {
return (dispatch, getState) => {
const streamingAPIBaseURL = getState().getIn(['meta', 'streaming_api_base_url']);
const accessToken = getState().getIn(['meta', 'access_token']);
- const { onDisconnect, onReceive } = callbacks(dispatch, getState);
+ const { onConnect, onDisconnect, onReceive } = callbacks(dispatch, getState);
let polling = null;
@@ -28,6 +28,8 @@ export function connectStream(path, pollingRefresh = null, callbacks = () => ({
if (pollingRefresh) {
clearPolling();
}
+
+ onConnect();
},
disconnected () {
@@ -47,6 +49,8 @@ export function connectStream(path, pollingRefresh = null, callbacks = () => ({
clearPolling();
pollingRefresh(dispatch);
}
+
+ onConnect();
},
});
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/public.js b/app/javascript/packs/public.js
index 4ab27c769..6a8cf9c2f 100644
--- a/app/javascript/packs/public.js
+++ b/app/javascript/packs/public.js
@@ -192,14 +192,20 @@ function main() {
});
delegate(document, '.input-copy input', 'click', ({ target }) => {
+ target.focus();
target.select();
+ target.setSelectionRange(0, target.value.length);
});
delegate(document, '.input-copy button', 'click', ({ target }) => {
const input = target.parentNode.querySelector('.input-copy__wrapper input');
+ const oldReadOnly = input.readonly;
+
+ input.readonly = false;
input.focus();
input.select();
+ input.setSelectionRange(0, input.value.length);
try {
if (document.execCommand('copy')) {
@@ -213,6 +219,8 @@ function main() {
} catch (err) {
console.error(err);
}
+
+ input.readonly = oldReadOnly;
});
}
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/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/about.scss b/app/javascript/styles/mastodon/about.scss
index b078d4d24..d3b4a5909 100644
--- a/app/javascript/styles/mastodon/about.scss
+++ b/app/javascript/styles/mastodon/about.scss
@@ -193,6 +193,7 @@ $small-breakpoint: 960px;
}
strong {
+ font-family: $font-display, sans-serif;
font-weight: 500;
font-size: 32px;
line-height: 48px;
@@ -280,168 +281,6 @@ $small-breakpoint: 960px;
}
.landing-page {
- .grid {
- display: grid;
- grid-gap: 10px;
- grid-template-columns: 1fr 2fr;
- grid-auto-columns: 25%;
- grid-auto-rows: max-content;
-
- .column-0 {
- display: none;
- }
-
- .column-1 {
- grid-column: 1;
- grid-row: 1;
- }
-
- .column-2 {
- grid-column: 2;
- grid-row: 1;
- }
-
- .column-3 {
- grid-column: 3;
- grid-row: 1 / 3;
- }
-
- .column-4 {
- grid-column: 1 / 3;
- grid-row: 2;
- }
- }
-
- @media screen and (max-width: $small-breakpoint) {
- .grid {
- grid-template-columns: 40% 60%;
-
- .column-0 {
- display: none;
- }
-
- .column-1 {
- grid-column: 1;
- grid-row: 1;
-
- &.non-preview .landing-page__forms {
- height: 100%;
- }
- }
-
- .column-2 {
- grid-column: 2;
- grid-row: 1 / 3;
-
- &.non-preview {
- grid-column: 2;
- grid-row: 1;
- }
- }
-
- .column-3 {
- grid-column: 1;
- grid-row: 2 / 4;
- }
-
- .column-4 {
- grid-column: 2;
- grid-row: 3;
-
- &.non-preview {
- grid-column: 1 / 3;
- grid-row: 2;
- }
- }
- }
- }
-
- @media screen and (max-width: $column-breakpoint) {
- .grid {
- grid-template-columns: 100%;
-
- .column-0 {
- display: block;
- grid-column: 1;
- grid-row: 1;
- }
-
- .column-1 {
- grid-column: 1;
- grid-row: 3;
-
- .brand {
- display: none;
- }
- }
-
- .column-2 {
- grid-column: 1;
- grid-row: 2;
-
- .landing-page__logo,
- .landing-page__call-to-action {
- display: none;
- }
-
- &.non-preview {
- grid-column: 1;
- grid-row: 2;
- }
- }
-
- .column-3 {
- grid-column: 1;
- grid-row: 5;
- }
-
- .column-4 {
- grid-column: 1;
- grid-row: 4;
-
- &.non-preview {
- grid-column: 1;
- grid-row: 4;
- }
- }
- }
- }
-
- .column-flex {
- display: flex;
- flex-direction: column;
- }
-
- .separator-or {
- position: relative;
- margin: 40px 0;
- text-align: center;
-
- &::before {
- content: "";
- display: block;
- width: 100%;
- height: 0;
- border-bottom: 1px solid rgba($ui-base-lighter-color, .6);
- position: absolute;
- top: 50%;
- left: 0;
- }
-
- span {
- display: inline-block;
- background: $ui-base-color;
- font-size: 12px;
- font-weight: 500;
- color: $darker-text-color;
- text-transform: uppercase;
- position: relative;
- z-index: 1;
- padding: 0 8px;
- cursor: default;
- }
- }
-
p,
li {
font-family: $font-sans-serif, sans-serif;
@@ -458,28 +297,6 @@ $small-breakpoint: 960px;
}
}
- .closed-registrations-message {
- margin-top: 20px;
-
- &,
- p {
- text-align: center;
- font-size: 12px;
- line-height: 18px;
- color: $darker-text-color;
- margin-bottom: 0;
-
- a {
- color: $highlight-text-color;
- text-decoration: underline;
- }
- }
-
- p:last-child {
- margin-bottom: 0;
- }
- }
-
em {
display: inline;
margin: 0;
@@ -593,187 +410,6 @@ $small-breakpoint: 960px;
}
}
- .container-alt {
- width: 100%;
- box-sizing: border-box;
- max-width: 800px;
- margin: 0 auto;
- word-wrap: break-word;
- }
-
- .header-wrapper {
- padding-top: 15px;
- background: $ui-base-color;
- background: linear-gradient(150deg, lighten($ui-base-color, 8%), $ui-base-color);
- position: relative;
-
- &.compact {
- background: $ui-base-color;
- padding-bottom: 15px;
-
- .hero .heading {
- padding-bottom: 20px;
- font-family: $font-sans-serif, sans-serif;
- font-size: 16px;
- font-weight: 400;
- font-size: 16px;
- line-height: 30px;
- color: $darker-text-color;
-
- a {
- color: $highlight-text-color;
- text-decoration: underline;
- }
- }
- }
- }
-
- .brand {
- a {
- padding-left: 0;
- padding-right: 0;
- color: $white;
- }
-
- img {
- height: 32px;
- position: relative;
- top: 4px;
- left: -10px;
- }
- }
-
- .header {
- line-height: 30px;
- overflow: hidden;
-
- .container-alt {
- display: flex;
- justify-content: space-between;
- }
-
- .links {
- position: relative;
- z-index: 4;
-
- a {
- display: flex;
- justify-content: center;
- align-items: center;
- color: $darker-text-color;
- text-decoration: none;
- padding: 12px 16px;
- line-height: 32px;
- font-family: $font-display, sans-serif;
- font-weight: 500;
- font-size: 14px;
-
- &:hover {
- color: $secondary-text-color;
- }
- }
-
- ul {
- list-style: none;
- margin: 0;
-
- li {
- display: inline-block;
- vertical-align: bottom;
- margin: 0;
-
- &:first-child a {
- padding-left: 0;
- }
-
- &:last-child a {
- padding-right: 0;
- }
- }
- }
- }
-
- .hero {
- margin-top: 50px;
- align-items: center;
- position: relative;
-
- .heading {
- position: relative;
- z-index: 4;
- padding-bottom: 150px;
- }
-
- .simple_form,
- .closed-registrations-message {
- background: darken($ui-base-color, 4%);
- width: 280px;
- padding: 15px 20px;
- border-radius: 4px 4px 0 0;
- line-height: initial;
- position: relative;
- z-index: 4;
-
- .actions {
- margin-bottom: 0;
-
- button,
- .button,
- .block-button {
- margin-bottom: 0;
- }
- }
- }
-
- .closed-registrations-message {
- min-height: 330px;
- display: flex;
- flex-direction: column;
- justify-content: space-between;
- }
- }
- }
-
- .about-short {
- background: darken($ui-base-color, 4%);
- padding: 50px 0 30px;
- font-family: $font-sans-serif, sans-serif;
- font-size: 16px;
- font-weight: 400;
- font-size: 16px;
- line-height: 30px;
- color: $darker-text-color;
-
- a {
- color: $highlight-text-color;
- text-decoration: underline;
- }
- }
-
- &.alternative {
- padding: 10px 0;
-
- .brand {
- text-align: center;
- padding: 30px 0;
- margin-bottom: 10px;
-
- img {
- position: static;
- padding: 10px 0;
- }
-
- @media screen and (max-width: $small-breakpoint) {
- padding: 15px 0;
- }
-
- @media screen and (max-width: $column-breakpoint) {
- padding: 0;
- margin-bottom: -10px;
- }
- }
- }
-
&__information,
&__forms {
padding: 20px;
@@ -967,215 +603,7 @@ $small-breakpoint: 960px;
}
}
- &__forms {
- height: 100%;
-
- @media screen and (max-width: $small-breakpoint) {
- height: auto;
- }
-
- @media screen and (max-width: $column-breakpoint) {
- background: transparent;
- box-shadow: none;
- padding: 0 20px;
- margin-top: 30px;
- margin-bottom: 40px;
-
- .separator-or {
- span {
- background: darken($ui-base-color, 8%);
- }
- }
- }
-
- hr {
- margin: 40px 0;
- }
-
- .button {
- display: block;
- }
-
- .subtle-hint a {
- text-decoration: none;
-
- &:hover,
- &:focus,
- &:active {
- text-decoration: underline;
- }
- }
- }
-
- #mastodon-timeline {
- display: flex;
- -webkit-overflow-scrolling: touch;
- -ms-overflow-style: -ms-autohiding-scrollbar;
- font-family: $font-sans-serif, sans-serif;
- font-size: 13px;
- line-height: 18px;
- font-weight: 400;
- color: $primary-text-color;
- width: 100%;
- flex: 1 1 auto;
- overflow: hidden;
- height: 100%;
-
- .column-header {
- color: inherit;
- font-family: inherit;
- font-size: 16px;
- line-height: inherit;
- font-weight: inherit;
- margin: 0;
- padding: 0;
- }
-
- .column {
- padding: 0;
- border-radius: 4px;
- overflow: hidden;
- width: 100%;
- }
-
- .scrollable {
- height: 400px;
- }
-
- p {
- font-size: inherit;
- line-height: inherit;
- font-weight: inherit;
- color: $primary-text-color;
- margin-bottom: 20px;
-
- &:last-child {
- margin-bottom: 0;
- }
-
- a {
- color: $secondary-text-color;
- text-decoration: none;
- }
- }
-
- .attachment-list__list {
- margin-left: 0;
- list-style: none;
-
- li {
- font-size: inherit;
- line-height: inherit;
- font-weight: inherit;
- margin-bottom: 0;
-
- a {
- color: $dark-text-color;
- text-decoration: none;
-
- &:hover {
- text-decoration: underline;
- }
- }
- }
- }
-
- @media screen and (max-width: $column-breakpoint) {
- display: none;
- }
- }
-
- &__features {
- & > p {
- padding-right: 60px;
- }
-
- .features-list {
- margin: 40px 0;
- margin-top: 30px;
- }
-
- &__action {
- text-align: center;
- }
- }
-
- .features-list {
- .features-list__row {
- display: flex;
- padding: 10px 0;
- justify-content: space-between;
-
- .visual {
- flex: 0 0 auto;
- display: flex;
- align-items: center;
- margin-left: 15px;
-
- .fa {
- display: block;
- color: $darker-text-color;
- font-size: 48px;
- }
- }
-
- .text {
- font-size: 16px;
- line-height: 30px;
- color: $darker-text-color;
-
- h6 {
- font-size: inherit;
- line-height: inherit;
- margin-bottom: 0;
- }
- }
- }
-
- @media screen and (min-width: $small-breakpoint) {
- display: grid;
- grid-gap: 30px;
- grid-template-columns: 1fr 1fr;
- grid-auto-columns: 50%;
- grid-auto-rows: max-content;
- }
- }
-
- .footer-links {
- padding-bottom: 50px;
- text-align: right;
- color: $dark-text-color;
-
- p {
- font-size: 14px;
- }
-
- a {
- color: inherit;
- text-decoration: underline;
- }
- }
-
- &__footer {
- margin-top: 10px;
- text-align: center;
- color: $dark-text-color;
-
- p {
- font-size: 14px;
-
- a {
- color: inherit;
- text-decoration: underline;
- }
- }
- }
-
@media screen and (max-width: 840px) {
- .container-alt {
- padding: 0 20px;
- }
-
.information-board {
.container-alt {
padding-right: 20px;
@@ -1211,109 +639,217 @@ $small-breakpoint: 960px;
.features .container-alt {
display: block;
}
-
- .header {
- .links {
- padding-top: 15px;
- background: darken($ui-base-color, 4%);
-
- a {
- padding: 12px 8px;
- }
-
- .nav {
- display: flex;
- flex-flow: row wrap;
- justify-content: space-around;
- }
-
- .brand img {
- left: 0;
- top: 0;
- }
- }
-
- .hero {
- margin-top: 30px;
- padding: 0;
-
- .heading {
- padding: 30px 20px;
- text-align: center;
- }
-
- .simple_form,
- .closed-registrations-message {
- background: darken($ui-base-color, 8%);
- width: 100%;
- border-radius: 0;
- box-sizing: border-box;
- }
- }
- }
}
.cta {
margin: 20px;
}
+}
- &.tag-page {
- @media screen and (max-width: $column-breakpoint) {
+.landing {
+ margin-bottom: 100px;
+
+ @media screen and (max-width: 738px) {
+ margin-bottom: 0;
+ }
+
+ &__brand {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ padding: 50px;
+
+ img {
+ height: 52px;
+ }
+
+ @media screen and (max-width: $no-gap-breakpoint) {
padding: 0;
+ margin-bottom: 30px;
+ }
+ }
- .container {
- padding: 0;
+ .directory {
+ margin-top: 30px;
+ background: transparent;
+ box-shadow: none;
+ border-radius: 0;
+ }
+
+ .hero-widget {
+ margin-top: 30px;
+ margin-bottom: 0;
+
+ h4 {
+ padding: 10px;
+ text-transform: uppercase;
+ font-weight: 700;
+ font-size: 13px;
+ color: $darker-text-color;
+ }
+
+ &__text {
+ border-radius: 0;
+ padding-bottom: 0;
+ }
+
+ &__footer {
+ background: $ui-base-color;
+ padding: 10px;
+ border-radius: 0 0 4px 4px;
+ display: flex;
+
+ &__column {
+ flex: 1 1 50%;
}
+ }
- #mastodon-timeline {
+ .account {
+ padding: 10px 0;
+ border-bottom: 0;
+
+ .account__display-name {
display: flex;
- height: 100vh;
- border-radius: 0;
+ align-items: center;
+ }
+
+ .account__avatar {
+ width: 44px;
+ height: 44px;
+ background-size: 44px 44px;
}
}
- .grid {
- @media screen and (min-width: $small-breakpoint) {
- grid-template-columns: 33% 67%;
+ &__counter {
+ padding: 10px;
+
+ strong {
+ font-family: $font-display, sans-serif;
+ font-size: 15px;
+ font-weight: 700;
+ display: block;
}
- .column-2 {
- grid-column: 2;
+ span {
+ font-size: 14px;
+ color: $darker-text-color;
+ }
+ }
+ }
+
+ .simple_form .user_agreement .label_input > label {
+ font-weight: 400;
+ color: $darker-text-color;
+ }
+
+ .simple_form p.lead {
+ color: $darker-text-color;
+ font-size: 15px;
+ line-height: 20px;
+ font-weight: 400;
+ margin-bottom: 25px;
+ }
+
+ &__grid {
+ max-width: 960px;
+ margin: 0 auto;
+ display: grid;
+ grid-template-columns: minmax(0, 50%) minmax(0, 50%);
+ grid-gap: 30px;
+
+ @media screen and (max-width: 738px) {
+ grid-template-columns: minmax(0, 100%);
+ grid-gap: 10px;
+
+ &__column-login {
grid-row: 1;
- }
- }
+ display: flex;
+ flex-direction: column;
- .brand {
- text-align: unset;
- padding: 0;
-
- img {
- height: 48px;
- width: auto;
- }
- }
-
- .cta {
- margin: 0;
-
- .button {
- margin-right: 4px;
- }
- }
-
- @media screen and (max-width: $column-breakpoint) {
- .grid {
- grid-gap: 0;
-
- .column-1 {
- grid-column: 1;
- grid-row: 1;
+ .box-widget {
+ order: 2;
+ flex: 0 0 auto;
}
- .column-2 {
- display: none;
+ .hero-widget {
+ margin-top: 0;
+ margin-bottom: 10px;
+ order: 1;
+ flex: 0 0 auto;
+ }
+ }
+
+ &__column-registration {
+ grid-row: 2;
+ }
+
+ .directory {
+ margin-top: 10px;
+ }
+ }
+
+ @media screen and (max-width: $no-gap-breakpoint) {
+ grid-gap: 0;
+
+ .hero-widget {
+ display: block;
+ margin-bottom: 0;
+ box-shadow: none;
+
+ &__img,
+ &__img img,
+ &__footer {
+ border-radius: 0;
+ }
+ }
+
+ .hero-widget,
+ .box-widget,
+ .directory__tag {
+ border-bottom: 1px solid lighten($ui-base-color, 8%);
+ }
+
+ .directory {
+ margin-top: 0;
+
+ &__tag {
+ margin-bottom: 0;
+
+ & > a,
+ & > div {
+ border-radius: 0;
+ box-shadow: none;
+ }
+
+ &:last-child {
+ border-bottom: 0;
+ }
}
}
}
}
}
+
+.brand {
+ position: relative;
+ text-decoration: none;
+}
+
+.brand__tagline {
+ display: block;
+ position: absolute;
+ bottom: -10px;
+ left: 50px;
+ width: 300px;
+ color: $ui-primary-color;
+ text-decoration: none;
+ font-size: 14px;
+
+ @media screen and (max-width: $no-gap-breakpoint) {
+ position: static;
+ width: auto;
+ margin-top: 20px;
+ color: $dark-text-color;
+ }
+}
+
diff --git a/app/javascript/styles/mastodon/accounts.scss b/app/javascript/styles/mastodon/accounts.scss
index 63a5c61b8..a790251f4 100644
--- a/app/javascript/styles/mastodon/accounts.scss
+++ b/app/javascript/styles/mastodon/accounts.scss
@@ -288,3 +288,33 @@
border-bottom: 0;
}
}
+
+.directory__tag .trends__item__current {
+ width: auto;
+}
+
+.pending-account {
+ &__header {
+ color: $darker-text-color;
+
+ a {
+ color: $ui-secondary-color;
+ text-decoration: none;
+
+ &:hover,
+ &:active,
+ &:focus {
+ text-decoration: underline;
+ }
+ }
+
+ strong {
+ color: $primary-text-color;
+ font-weight: 700;
+ }
+ }
+
+ &__body {
+ margin-top: 10px;
+ }
+}
diff --git a/app/javascript/styles/mastodon/admin.scss b/app/javascript/styles/mastodon/admin.scss
index 177f8145f..fd5c08f04 100644
--- a/app/javascript/styles/mastodon/admin.scss
+++ b/app/javascript/styles/mastodon/admin.scss
@@ -153,10 +153,15 @@ $content-width: 840px;
font-weight: 500;
}
- .directory__tag a {
+ .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;
@@ -215,6 +220,11 @@ $content-width: 840px;
color: $error-value-color;
font-weight: 500;
}
+
+ .neutral-hint {
+ color: $dark-text-color;
+ font-weight: 500;
+ }
}
@media screen and (max-width: $no-columns-breakpoint) {
@@ -684,3 +694,11 @@ a.name-tag,
overflow: hidden;
text-overflow: ellipsis;
}
+
+.ellipsized-ip {
+ display: inline-block;
+ max-width: 120px;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ vertical-align: middle;
+}
diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss
index b4ab76f81..4b3f5153c 100644
--- a/app/javascript/styles/mastodon/components.scss
+++ b/app/javascript/styles/mastodon/components.scss
@@ -46,7 +46,8 @@
}
}
- &:disabled {
+ &:disabled,
+ &.disabled {
background-color: $ui-primary-color;
cursor: default;
}
@@ -105,6 +106,10 @@
border-color: lighten($ui-primary-color, 4%);
color: lighten($darker-text-color, 4%);
}
+
+ &:disabled {
+ opacity: 0.5;
+ }
}
&.button--block {
@@ -353,6 +358,11 @@
padding-bottom: 0;
padding-right: 10px + 22px;
resize: none;
+ scrollbar-color: initial;
+
+ &::-webkit-scrollbar {
+ all: unset;
+ }
@media screen and (max-width: 600px) {
height: 100px !important; // prevent auto-resize textarea
@@ -1177,57 +1187,6 @@ a .account__avatar {
white-space: nowrap;
}
-.account__header {
- flex: 0 0 auto;
- background: lighten($ui-base-color, 4%);
- text-align: center;
- background-size: cover;
- background-position: center;
- position: relative;
-
- &.inactive {
- opacity: 0.5;
-
- .account__header__avatar {
- filter: grayscale(100%);
- }
-
- .account__header__username {
- color: $secondary-text-color;
- }
- }
-
- & > div {
- background: rgba(lighten($ui-base-color, 4%), 0.9);
- padding: 20px 10px;
- }
-
- .account__header__content {
- color: $secondary-text-color;
- }
-
- .account__header__display-name {
- color: $primary-text-color;
- display: inline-block;
- width: 100%;
- font-size: 20px;
- line-height: 27px;
- font-weight: 500;
- overflow: hidden;
- text-overflow: ellipsis;
- }
-
- .account__header__username {
- color: $highlight-text-color;
- font-size: 14px;
- font-weight: 400;
- display: block;
- margin-bottom: 10px;
- overflow: hidden;
- text-overflow: ellipsis;
- }
-}
-
.account__disclaimer {
padding: 10px;
border-top: 1px solid lighten($ui-base-color, 8%);
@@ -1256,39 +1215,6 @@ a .account__avatar {
}
}
-.account__header__content {
- color: $darker-text-color;
- font-size: 14px;
- font-weight: 400;
- overflow: hidden;
- word-break: normal;
- word-wrap: break-word;
-
- p {
- margin-bottom: 20px;
-
- &:last-child {
- margin-bottom: 0;
- }
- }
-
- a {
- color: inherit;
- text-decoration: underline;
-
- &:hover {
- text-decoration: none;
- }
- }
-}
-
-.account__header__display-name {
- .emojione {
- width: 25px;
- height: 25px;
- }
-}
-
.account__action-bar {
border-top: 1px solid lighten($ui-base-color, 8%);
border-bottom: 1px solid lighten($ui-base-color, 8%);
@@ -1360,15 +1286,6 @@ a .account__avatar {
}
}
-.account__header__avatar {
- background-size: 90px 90px;
- display: block;
- height: 90px;
- margin: 0 auto 10px;
- overflow: hidden;
- width: 90px;
-}
-
.account-authorize {
padding: 14px 10px;
@@ -2336,6 +2253,7 @@ a.account__display-name {
.getting-started {
color: $dark-text-color;
+ overflow: auto;
&__footer {
flex: 0 0 auto;
@@ -3144,42 +3062,22 @@ a.status-card.compact:hover {
}
}
-.account--follows-info {
+.relationship-tag {
color: $primary-text-color;
- position: absolute;
- top: 10px;
- left: 10px;
- opacity: 0.7;
- display: inline-block;
+ margin-bottom: 4px;
+ display: block;
vertical-align: top;
- background-color: rgba($base-overlay-background, 0.4);
+ background-color: $base-overlay-background;
text-transform: uppercase;
font-size: 11px;
font-weight: 500;
padding: 4px;
border-radius: 4px;
-}
-
-.account--muting-info {
- color: $primary-text-color;
- position: absolute;
- top: 40px;
- left: 10px;
opacity: 0.7;
- display: inline-block;
- vertical-align: top;
- background-color: rgba($base-overlay-background, 0.4);
- text-transform: uppercase;
- font-size: 11px;
- font-weight: 500;
- padding: 4px;
- border-radius: 4px;
-}
-.account--action-button {
- position: absolute;
- top: 10px;
- right: 20px;
+ &:hover {
+ opacity: 1;
+ }
}
.setting-toggle {
@@ -4235,6 +4133,7 @@ a.status-card.compact:hover {
.confirmation-modal__action-bar,
.mute-modal__action-bar {
+ .confirmation-modal__secondary-button,
.confirmation-modal__cancel-button,
.mute-modal__cancel-button {
background-color: transparent;
@@ -5163,7 +5062,7 @@ noscript {
.icon-button {
flex: 0 0 auto;
- margin-left: 5px;
+ margin: 0 5px;
}
}
@@ -5338,53 +5237,193 @@ noscript {
}
}
-.account__header .roles {
- margin-top: 20px;
- margin-bottom: 20px;
- padding: 0 15px;
+.account__header__content {
+ color: $darker-text-color;
+ font-size: 14px;
+ font-weight: 400;
+ overflow: hidden;
+ word-break: normal;
+ word-wrap: break-word;
+
+ p {
+ margin-bottom: 20px;
+
+ &:last-child {
+ margin-bottom: 0;
+ }
+ }
+
+ a {
+ color: inherit;
+ text-decoration: underline;
+
+ &:hover {
+ text-decoration: none;
+ }
+ }
}
-.account__header .account__header__fields {
- font-size: 14px;
- line-height: 20px;
+.account__header {
overflow: hidden;
- margin: 20px -10px -20px;
- border-bottom: 0;
- border-top: 0;
- dl {
- border-top: 1px solid lighten($ui-base-color, 4%);
- border-bottom: 0;
- display: flex;
+ &.inactive {
+ opacity: 0.5;
+
+ .account__header__image,
+ .account__avatar {
+ filter: grayscale(100%);
+ }
}
- dt,
- dd {
- box-sizing: border-box;
- padding: 14px 5px;
- text-align: center;
- max-height: 48px;
+ &__info {
+ position: absolute;
+ top: 10px;
+ left: 10px;
+ }
+
+ &__image {
overflow: hidden;
- white-space: nowrap;
- text-overflow: ellipsis;
- }
-
- dt {
- color: $darker-text-color;
+ height: 145px;
+ position: relative;
background: darken($ui-base-color, 4%);
- width: 120px;
- flex: 0 0 auto;
- font-weight: 500;
+
+ img {
+ object-fit: cover;
+ display: block;
+ width: 100%;
+ height: 100%;
+ margin: 0;
+ }
}
- dd {
- flex: 1 1 auto;
- color: $primary-text-color;
- background: $ui-base-color;
+ &__bar {
+ position: relative;
+ background: lighten($ui-base-color, 4%);
+ padding: 5px;
+ border-bottom: 1px solid lighten($ui-base-color, 12%);
- &.verified {
- border: 1px solid rgba($valid-value-color, 0.5);
- background: rgba($valid-value-color, 0.25);
+ .avatar {
+ display: block;
+ flex: 0 0 auto;
+ width: 94px;
+ margin-left: -2px;
+
+ .account__avatar {
+ background: darken($ui-base-color, 8%);
+ border: 2px solid lighten($ui-base-color, 4%);
+ }
+ }
+ }
+
+ &__tabs {
+ display: flex;
+ align-items: flex-start;
+ padding: 7px 5px;
+ margin-top: -55px;
+
+ &__buttons {
+ display: flex;
+ align-items: center;
+ padding-top: 55px;
+ overflow: hidden;
+
+ .icon-button {
+ border: 1px solid lighten($ui-base-color, 12%);
+ border-radius: 4px;
+ box-sizing: content-box;
+ padding: 2px;
+ }
+
+ .button {
+ margin: 0 8px;
+ }
+ }
+
+ &__name {
+ padding: 5px;
+
+ .account-role {
+ vertical-align: top;
+ }
+
+ .emojione {
+ width: 22px;
+ height: 22px;
+ }
+
+ h1 {
+ font-size: 16px;
+ line-height: 24px;
+ color: $primary-text-color;
+ font-weight: 500;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+
+ small {
+ display: block;
+ font-size: 14px;
+ color: $darker-text-color;
+ font-weight: 400;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+ }
+ }
+
+ .spacer {
+ flex: 1 1 auto;
+ }
+ }
+
+ &__bio {
+ overflow: hidden;
+ margin: 0 -5px;
+
+ .account__header__content {
+ padding: 20px 15px;
+ padding-bottom: 5px;
+ color: $primary-text-color;
+ }
+
+ .account__header__fields {
+ margin: 0;
+ border-top: 1px solid lighten($ui-base-color, 12%);
+
+ a {
+ color: lighten($ui-highlight-color, 8%);
+ }
+
+ dl:first-child .verified {
+ border-radius: 0 4px 0 0;
+ }
+
+ .verified a {
+ color: $valid-value-color;
+ }
+ }
+ }
+
+ &__extra {
+ margin-top: 4px;
+
+ &__links {
+ font-size: 14px;
+ color: $darker-text-color;
+
+ a {
+ display: inline-block;
+ color: $darker-text-color;
+ text-decoration: none;
+ padding: 10px;
+ padding-top: 20px;
+ font-weight: 500;
+
+ strong {
+ font-weight: 700;
+ color: $primary-text-color;
+ }
+ }
}
}
}
diff --git a/app/javascript/styles/mastodon/containers.scss b/app/javascript/styles/mastodon/containers.scss
index a98fa52c4..368c2304b 100644
--- a/app/javascript/styles/mastodon/containers.scss
+++ b/app/javascript/styles/mastodon/containers.scss
@@ -10,12 +10,10 @@
}
.logo-container {
- margin: 100px auto;
- margin-bottom: 50px;
+ margin: 100px auto 50px;
- @media screen and (max-width: 400px) {
- margin: 30px auto;
- margin-bottom: 20px;
+ @media screen and (max-width: 500px) {
+ margin: 40px auto 0;
}
h1 {
@@ -677,6 +675,7 @@
color: $darker-text-color;
text-decoration: none;
padding: 15px;
+ font-weight: 500;
strong {
font-weight: 700;
diff --git a/app/javascript/styles/mastodon/forms.scss b/app/javascript/styles/mastodon/forms.scss
index bab982706..91888d305 100644
--- a/app/javascript/styles/mastodon/forms.scss
+++ b/app/javascript/styles/mastodon/forms.scss
@@ -68,6 +68,17 @@ code {
top: 2px;
left: 0;
}
+
+ label a {
+ color: $highlight-text-color;
+ text-decoration: underline;
+
+ &:hover,
+ &:active,
+ &:focus {
+ text-decoration: none;
+ }
+ }
}
}
@@ -305,7 +316,7 @@ code {
box-shadow: none;
}
- &:focus:invalid {
+ &:focus:invalid:not(:placeholder-shown) {
border-color: lighten($error-red, 12%);
}
@@ -346,6 +357,10 @@ code {
}
}
+ .input.disabled {
+ opacity: 0.5;
+ }
+
.actions {
margin-top: 30px;
display: flex;
@@ -392,6 +407,10 @@ code {
background-color: darken($ui-highlight-color, 5%);
}
+ &:disabled:hover {
+ background-color: $ui-primary-color;
+ }
+
&.negative {
background: $error-value-color;
@@ -456,6 +475,42 @@ code {
}
}
}
+
+ &__overlay-area {
+ position: relative;
+
+ &__overlay {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ background: rgba($ui-base-color, 0.65);
+ backdrop-filter: blur(2px);
+ border-radius: 4px;
+
+ &__content {
+ text-align: center;
+
+ &.rich-formatting {
+ &,
+ p {
+ color: $primary-text-color;
+ }
+ }
+ }
+ }
+ }
+}
+
+.block-icon {
+ display: block;
+ margin: 0 auto;
+ margin-bottom: 10px;
+ font-size: 24px;
}
.flash-message {
@@ -782,3 +837,65 @@ code {
}
}
}
+
+.connection-prompt {
+ margin-bottom: 25px;
+
+ .fa-link {
+ background-color: darken($ui-base-color, 4%);
+ border-radius: 100%;
+ font-size: 24px;
+ padding: 10px;
+ }
+
+ &__column {
+ align-items: center;
+ display: flex;
+ flex: 1;
+ flex-direction: column;
+ flex-shrink: 1;
+ max-width: 50%;
+
+ &-sep {
+ align-self: center;
+ flex-grow: 0;
+ overflow: visible;
+ position: relative;
+ z-index: 1;
+ }
+
+ p {
+ word-break: break-word;
+ }
+ }
+
+ .account__avatar {
+ margin-bottom: 20px;
+ }
+
+ &__connection {
+ background-color: lighten($ui-base-color, 8%);
+ box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
+ border-radius: 4px;
+ padding: 25px 10px;
+ position: relative;
+ text-align: center;
+
+ &::after {
+ background-color: darken($ui-base-color, 4%);
+ content: '';
+ display: block;
+ height: 100%;
+ left: 50%;
+ position: absolute;
+ top: 0;
+ width: 1px;
+ }
+ }
+
+ &__row {
+ align-items: flex-start;
+ display: flex;
+ flex-direction: row;
+ }
+}
diff --git a/app/javascript/styles/mastodon/polls.scss b/app/javascript/styles/mastodon/polls.scss
new file mode 100644
index 000000000..d8bc5473a
--- /dev/null
+++ b/app/javascript/styles/mastodon/polls.scss
@@ -0,0 +1,204 @@
+.poll {
+ margin-top: 16px;
+ font-size: 14px;
+
+ li {
+ margin-bottom: 10px;
+ position: relative;
+ height: 18px + 12px;
+ }
+
+ &__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;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+
+ input[type=radio],
+ input[type=checkbox] {
+ display: none;
+ }
+
+ input[type=text] {
+ display: block;
+ box-sizing: border-box;
+ flex: 1 1 auto;
+ width: 20px;
+ font-size: 14px;
+ color: $inverted-text-color;
+ display: block;
+ outline: 0;
+ font-family: inherit;
+ background: $simple-background-color;
+ border: 1px solid darken($simple-background-color, 14%);
+ border-radius: 4px;
+ padding: 6px 10px;
+
+ &:focus {
+ border-color: $highlight-text-color;
+ }
+ }
+
+ &.selectable {
+ cursor: pointer;
+ }
+
+ &.editable {
+ display: flex;
+ align-items: center;
+ }
+ }
+
+ &__input {
+ display: inline-block;
+ position: relative;
+ border: 1px solid $ui-primary-color;
+ box-sizing: border-box;
+ width: 18px;
+ height: 18px;
+ flex: 0 0 auto;
+ 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;
+ font-size: inherit;
+
+ &:hover,
+ &:focus,
+ &:active {
+ text-decoration: none;
+ }
+ }
+
+ .button {
+ height: 36px;
+ padding: 0 16px;
+ margin-right: 10px;
+ font-size: 14px;
+ }
+}
+
+.compose-form__poll-wrapper {
+ border-top: 1px solid darken($simple-background-color, 8%);
+
+ ul {
+ padding: 10px;
+ }
+
+ .poll__footer {
+ border-top: 1px solid darken($simple-background-color, 8%);
+ padding: 10px;
+ display: flex;
+ align-items: center;
+
+ button,
+ select {
+ flex: 1 1 50%;
+ }
+ }
+
+ .button.button-secondary {
+ font-size: 14px;
+ font-weight: 400;
+ padding: 6px 10px;
+ height: auto;
+ line-height: inherit;
+ color: $action-button-color;
+ border-color: $action-button-color;
+ margin-right: 5px;
+ }
+
+ li {
+ display: flex;
+ align-items: center;
+
+ .poll__text {
+ flex: 0 0 auto;
+ width: calc(100% - (23px + 6px));
+ margin-right: 6px;
+ }
+ }
+
+ select {
+ appearance: none;
+ box-sizing: border-box;
+ font-size: 14px;
+ color: $inverted-text-color;
+ display: inline-block;
+ width: auto;
+ outline: 0;
+ font-family: inherit;
+ background: $simple-background-color url("data:image/svg+xml;utf8,
") no-repeat right 8px center / auto 16px;
+ border: 1px solid darken($simple-background-color, 14%);
+ border-radius: 4px;
+ padding: 6px 10px;
+ padding-right: 30px;
+ }
+
+ .icon-button.disabled {
+ color: darken($simple-background-color, 14%);
+ }
+}
+
+.muted .poll {
+ color: $dark-text-color;
+
+ &__chart {
+ background: rgba(darken($ui-primary-color, 14%), 0.2);
+
+ &.leading {
+ background: rgba($ui-highlight-color, 0.2);
+ }
+ }
+}
diff --git a/app/javascript/styles/mastodon/stream_entries.scss b/app/javascript/styles/mastodon/stream_entries.scss
index d8bd30377..63eeffe25 100644
--- a/app/javascript/styles/mastodon/stream_entries.scss
+++ b/app/javascript/styles/mastodon/stream_entries.scss
@@ -109,6 +109,23 @@
}
}
+ &:disabled,
+ &.disabled {
+ svg path:last-child {
+ fill: $ui-primary-color;
+ }
+
+ &:active,
+ &:focus,
+ &:hover {
+ background: $ui-primary-color;
+
+ svg path:last-child {
+ fill: $ui-primary-color;
+ }
+ }
+ }
+
&.button--destructive {
&:active,
&:focus,
diff --git a/app/javascript/styles/mastodon/tables.scss b/app/javascript/styles/mastodon/tables.scss
index adb75afe5..11ac6dfeb 100644
--- a/app/javascript/styles/mastodon/tables.scss
+++ b/app/javascript/styles/mastodon/tables.scss
@@ -82,6 +82,10 @@
}
}
}
+
+ &--invites tbody td {
+ vertical-align: middle;
+ }
}
.table-wrapper {
@@ -136,6 +140,19 @@ a.table-action-link {
input {
margin-top: 8px;
}
+
+ &--aligned {
+ display: flex;
+ align-items: center;
+
+ input {
+ margin-top: 0;
+ }
+ }
+
+ @media screen and (max-width: $no-gap-breakpoint) {
+ display: none;
+ }
}
&__actions,
@@ -157,6 +174,10 @@ a.table-action-link {
text-align: right;
padding-right: 16px - 5px;
}
+
+ @media screen and (max-width: $no-gap-breakpoint) {
+ display: none;
+ }
}
&__row {
@@ -164,6 +185,12 @@ a.table-action-link {
border-top: 0;
background: darken($ui-base-color, 4%);
+ @media screen and (max-width: $no-gap-breakpoint) {
+ &:first-child {
+ border-top: 1px solid darken($ui-base-color, 8%);
+ }
+ }
+
&:hover {
background: darken($ui-base-color, 2%);
}
@@ -179,6 +206,10 @@ a.table-action-link {
&__content {
padding-top: 12px;
padding-bottom: 16px;
+
+ &--unpadded {
+ padding: 0;
+ }
}
}
@@ -193,4 +224,20 @@ a.table-action-link {
font-weight: 700;
}
}
+
+ .nothing-here {
+ border: 1px solid darken($ui-base-color, 8%);
+ border-top: 0;
+ box-shadow: none;
+
+ @media screen and (max-width: $no-gap-breakpoint) {
+ border-top: 1px solid darken($ui-base-color, 8%);
+ }
+ }
+
+ @media screen and (max-width: 870px) {
+ .accounts-table tbody td.optional {
+ display: none;
+ }
+ }
}
diff --git a/app/javascript/styles/mastodon/widgets.scss b/app/javascript/styles/mastodon/widgets.scss
index c97337e4e..e736d7a7e 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,11 +290,16 @@
}
}
- &.active a {
+ &.active > a {
background: $ui-highlight-color;
cursor: default;
}
+ &.disabled > div {
+ opacity: 0.5;
+ cursor: default;
+ }
+
h4 {
flex: 1 1 auto;
font-size: 18px;
@@ -344,6 +352,7 @@
border-radius: 50%;
position: relative;
margin-left: -10px;
+ background: darken($ui-base-color, 8%);
border: 2px solid $ui-base-color;
&:nth-child(1) {
@@ -368,6 +377,10 @@
border: 0;
}
+ strong {
+ font-weight: 700;
+ }
+
thead th {
text-align: center;
text-transform: uppercase;
@@ -405,6 +418,11 @@
}
}
+ &__comment {
+ width: 50%;
+ vertical-align: initial !important;
+ }
+
@media screen and (max-width: $no-gap-breakpoint) {
tbody td.optional {
display: none;
diff --git a/app/lib/activitypub/activity.rb b/app/lib/activitypub/activity.rb
index 11fa3363a..54b175613 100644
--- a/app/lib/activitypub/activity.rb
+++ b/app/lib/activitypub/activity.rb
@@ -4,7 +4,7 @@ class ActivityPub::Activity
include JsonLdHelper
include Redisable
- SUPPORTED_TYPES = %w(Note).freeze
+ SUPPORTED_TYPES = %w(Note Question).freeze
CONVERTED_TYPES = %w(Image Video Article Page).freeze
def initialize(json, account, **options)
diff --git a/app/lib/activitypub/activity/announce.rb b/app/lib/activitypub/activity/announce.rb
index 9f8ffd9fb..1aa6ee9ec 100644
--- a/app/lib/activitypub/activity/announce.rb
+++ b/app/lib/activitypub/activity/announce.rb
@@ -47,6 +47,10 @@ class ActivityPub::Activity::Announce < ActivityPub::Activity
followed_by_local_accounts? || requested_through_relay? || reblog_of_local_status?
end
+ def requested_through_relay?
+ super || Relay.find_by(inbox_url: @account.inbox_url)&.enabled?
+ end
+
def reblog_of_local_status?
status_from_uri(object_uri)&.account&.local?
end
diff --git a/app/lib/activitypub/activity/create.rb b/app/lib/activitypub/activity/create.rb
index d7bd65c80..dabdcbcf7 100644
--- a/app/lib/activitypub/activity/create.rb
+++ b/app/lib/activitypub/activity/create.rb
@@ -6,7 +6,7 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
RedisLock.acquire(lock_options) do |lock|
if lock.acquired?
- return if delete_arrived_first?(object_uri)
+ return if delete_arrived_first?(object_uri) || poll_vote?
@status = find_existing_status
@@ -40,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
@@ -67,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),
+ poll: process_poll,
}
end
end
@@ -159,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?
@@ -208,11 +210,60 @@ 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.preloadable_poll.nil? || !replied_to_status.local? || !replied_to_status.preloadable_poll.options.include?(@object['name'])
+
+ unless replied_to_status.preloadable_poll.expired?
+ replied_to_status.preloadable_poll.votes.create!(account: @account, choice: replied_to_status.preloadable_poll.options.index(@object['name']), uri: @object['id'])
+ ActivityPub::DistributePollUpdateWorker.perform_in(3.minutes, replied_to_status.id) unless replied_to_status.preloadable_poll.hide_totals?
+ end
+
+ true
+ end
+
def resolve_thread(status)
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 unless replies.nil?
+ 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)
@@ -323,15 +374,6 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
@skip_download ||= DomainBlock.find_by(domain: @account.domain)&.reject_media?
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
-
def reply_to_local?
!replied_to_status.nil? && replied_to_status.account.local?
end
diff --git a/app/lib/activitypub/activity/delete.rb b/app/lib/activitypub/activity/delete.rb
index dc76dd3e2..4236af071 100644
--- a/app/lib/activitypub/activity/delete.rb
+++ b/app/lib/activitypub/activity/delete.rb
@@ -75,13 +75,4 @@ class ActivityPub::Activity::Delete < ActivityPub::Activity
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 0d10d6c3c..f73b93058 100644
--- a/app/lib/activitypub/activity/flag.rb
+++ b/app/lib/activitypub/activity/flag.rb
@@ -14,7 +14,8 @@ class ActivityPub::Activity::Flag < ActivityPub::Activity
@account,
target_account,
status_ids: target_statuses.nil? ? [] : target_statuses.map(&:id),
- comment: @json['content'] || ''
+ comment: @json['content'] || '',
+ uri: report_uri
)
end
end
@@ -28,4 +29,8 @@ class ActivityPub::Activity::Flag < ActivityPub::Activity
def object_uris
@object_uris ||= Array(@object.is_a?(Array) ? @object.map { |item| value_or_id(item) } : value_or_id(@object))
end
+
+ def report_uri
+ @json['id'] unless @json['id'].nil? || invalid_origin?(@json['id'])
+ end
end
diff --git a/app/lib/activitypub/activity/update.rb b/app/lib/activitypub/activity/update.rb
index 67dae3f81..70035325b 100644
--- a/app/lib/activitypub/activity/update.rb
+++ b/app/lib/activitypub/activity/update.rb
@@ -4,7 +4,11 @@ class ActivityPub::Activity::Update < ActivityPub::Activity
SUPPORTED_TYPES = %w(Application Group Organization Person Service).freeze
def perform
- update_account if equals_or_includes_any?(@object['type'], SUPPORTED_TYPES)
+ if equals_or_includes_any?(@object['type'], SUPPORTED_TYPES)
+ update_account
+ elsif equals_or_includes_any?(@object['type'], %w(Question))
+ update_poll
+ end
end
private
@@ -14,4 +18,13 @@ class ActivityPub::Activity::Update < ActivityPub::Activity
ActivityPub::ProcessAccountService.new.call(@account.username, @account.domain, @object, signed_with_known_key: true)
end
+
+ def update_poll
+ return reject_payload! if invalid_origin?(@object['id'])
+
+ status = Status.find_by(uri: object_uri, account_id: @account.id)
+ return if status.nil? || status.preloadable_poll.nil?
+
+ ActivityPub::ProcessPollService.new.call(status.preloadable_poll, @object)
+ end
end
diff --git a/app/lib/activitypub/adapter.rb b/app/lib/activitypub/adapter.rb
index 99f4d9305..94eb2899c 100644
--- a/app/lib/activitypub/adapter.rb
+++ b/app/lib/activitypub/adapter.rb
@@ -1,30 +1,24 @@
# frozen_string_literal: true
class ActivityPub::Adapter < ActiveModelSerializers::Adapter::Base
- CONTEXT = {
- '@context': [
- 'https://www.w3.org/ns/activitystreams',
- 'https://w3id.org/security/v1',
+ NAMED_CONTEXT_MAP = {
+ activitystreams: 'https://www.w3.org/ns/activitystreams',
+ security: 'https://w3id.org/security/v1',
+ }.freeze
- {
- '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',
- 'inReplyToAtomUri' => 'ostatus:inReplyToAtomUri',
- 'conversation' => 'ostatus:conversation',
- 'toot' => 'http://joinmastodon.org/ns#',
- 'Emoji' => 'toot:Emoji',
- 'focalPoint' => { '@container' => '@list', '@id' => 'toot:focalPoint' },
- 'featured' => { '@id' => 'toot:featured', '@type' => '@id' },
- 'schema' => 'http://schema.org#',
- 'PropertyValue' => 'schema:PropertyValue',
- 'value' => 'schema:value',
- },
- ],
+ CONTEXT_EXTENSION_MAP = {
+ manually_approves_followers: { 'manuallyApprovesFollowers' => 'as:manuallyApprovesFollowers' },
+ sensitive: { 'sensitive' => 'as:sensitive' },
+ hashtag: { 'Hashtag' => 'as:Hashtag' },
+ moved_to: { 'movedTo' => { '@id' => 'as:movedTo', '@type' => '@id' } },
+ also_known_as: { 'alsoKnownAs' => { '@id' => 'as:alsoKnownAs', '@type' => '@id' } },
+ emoji: { 'toot' => 'http://joinmastodon.org/ns#', 'Emoji' => 'toot:Emoji' },
+ featured: { 'toot' => 'http://joinmastodon.org/ns#', 'featured' => { '@id' => 'toot:featured', '@type' => '@id' } },
+ property_value: { 'schema' => 'http://schema.org#', 'PropertyValue' => 'schema:PropertyValue', 'value' => 'schema:value' },
+ atom_uri: { 'ostatus' => 'http://ostatus.org#', 'atomUri' => 'ostatus:atomUri' },
+ conversation: { 'ostatus' => 'http://ostatus.org#', 'inReplyToAtomUri' => 'ostatus:inReplyToAtomUri', 'conversation' => 'ostatus:conversation' },
+ focal_point: { 'toot' => 'http://joinmastodon.org/ns#', 'focalPoint' => { '@container' => '@list', '@id' => 'toot:focalPoint' } },
+ identity_proof: { 'toot' => 'http://joinmastodon.org/ns#', 'IdentityProof' => 'toot:IdentityProof' },
}.freeze
def self.default_key_transform
@@ -36,8 +30,36 @@ class ActivityPub::Adapter < ActiveModelSerializers::Adapter::Base
end
def serializable_hash(options = nil)
- options = serialization_options(options)
- serialized_hash = ActiveModelSerializers::Adapter::Attributes.new(serializer, instance_options).serializable_hash(options)
- CONTEXT.merge(self.class.transform_key_casing!(serialized_hash, instance_options))
+ options = serialization_options(options)
+ serialized_hash = serializer.serializable_hash(options)
+ serialized_hash = self.class.transform_key_casing!(serialized_hash, instance_options)
+
+ { '@context' => serialized_context }.merge(serialized_hash)
+ end
+
+ private
+
+ def serialized_context
+ context_array = []
+
+ serializer_options = serializer.send(:instance_options) || {}
+ named_contexts = [:activitystreams] + serializer._named_contexts.keys + serializer_options.fetch(:named_contexts, {}).keys
+ context_extensions = serializer._context_extensions.keys + serializer_options.fetch(:context_extensions, {}).keys
+
+ named_contexts.each do |key|
+ context_array << NAMED_CONTEXT_MAP[key]
+ end
+
+ extensions = context_extensions.each_with_object({}) do |key, h|
+ h.merge!(CONTEXT_EXTENSION_MAP[key])
+ end
+
+ context_array << extensions unless extensions.empty?
+
+ if context_array.size == 1
+ context_array.first
+ else
+ context_array
+ end
end
end
diff --git a/app/lib/activitypub/serializer.rb b/app/lib/activitypub/serializer.rb
new file mode 100644
index 000000000..07bd8c494
--- /dev/null
+++ b/app/lib/activitypub/serializer.rb
@@ -0,0 +1,30 @@
+# frozen_string_literal: true
+
+class ActivityPub::Serializer < ActiveModel::Serializer
+ with_options instance_writer: false, instance_reader: true do |serializer|
+ serializer.class_attribute :_named_contexts
+ serializer.class_attribute :_context_extensions
+
+ self._named_contexts ||= {}
+ self._context_extensions ||= {}
+ end
+
+ def self.inherited(base)
+ super
+
+ base._named_contexts = _named_contexts.dup
+ base._context_extensions = _context_extensions.dup
+ end
+
+ def self.context(*named_contexts)
+ named_contexts.each do |context|
+ _named_contexts[context] = true
+ end
+ end
+
+ def self.context_extensions(*extension_names)
+ extension_names.each do |extension_name|
+ _context_extensions[extension_name] = true
+ end
+ end
+end
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/formatter.rb b/app/lib/formatter.rb
index 0653214f5..59dfc9004 100644
--- a/app/lib/formatter.rb
+++ b/app/lib/formatter.rb
@@ -19,6 +19,10 @@ class Formatter
raw_content = status.text
+ if options[:inline_poll_options] && status.preloadable_poll
+ raw_content = raw_content + "\n\n" + status.preloadable_poll.options.map { |title| "[ ] #{title}" }.join("\n")
+ end
+
return '' if raw_content.blank?
unless status.local?
@@ -67,6 +71,12 @@ class Formatter
html.html_safe # rubocop:disable Rails/OutputSafety
end
+ def format_poll_option(status, option, **options)
+ html = encode(option.title)
+ html = encode_custom_emojis(html, status.emojis, options[:autoplay])
+ html.html_safe # rubocop:disable Rails/OutputSafety
+ end
+
def format_display_name(account, **options)
html = encode(account.display_name.presence || account.username)
html = encode_custom_emojis(html, account.emojis, options[:autoplay]) if options[:custom_emojify]
diff --git a/app/lib/language_detector.rb b/app/lib/language_detector.rb
index 58c8e2069..1e90af42d 100644
--- a/app/lib/language_detector.rb
+++ b/app/lib/language_detector.rb
@@ -3,7 +3,8 @@
class LanguageDetector
include Singleton
- CHARACTER_THRESHOLD = 140
+ WORDS_THRESHOLD = 4
+ RELIABLE_CHARACTERS_RE = /[\p{Hebrew}\p{Arabic}\p{Syriac}\p{Thaana}\p{Nko}\p{Han}\p{Katakana}\p{Hiragana}\p{Hangul}]+/m
def initialize
@identifier = CLD3::NNetLanguageIdentifier.new(1, 2048)
@@ -11,15 +12,14 @@ class LanguageDetector
def detect(text, account)
input_text = prepare_text(text)
+
return if input_text.blank?
detect_language_code(input_text) || default_locale(account)
end
def language_names
- @language_names =
- CLD3::TaskContextParams::LANGUAGE_NAMES.map { |name| iso6391(name.to_s).to_sym }
- .uniq
+ @language_names = CLD3::TaskContextParams::LANGUAGE_NAMES.map { |name| iso6391(name.to_s).to_sym }.uniq
end
private
@@ -29,12 +29,29 @@ class LanguageDetector
end
def unreliable_input?(text)
- text.size < CHARACTER_THRESHOLD
+ !reliable_input?(text)
+ end
+
+ def reliable_input?(text)
+ sufficient_text_length?(text) || language_specific_character_set?(text)
+ end
+
+ def sufficient_text_length?(text)
+ text.split(/\s+/).size >= WORDS_THRESHOLD
+ end
+
+ def language_specific_character_set?(text)
+ words = text.scan(RELIABLE_CHARACTERS_RE)
+
+ if words.present?
+ words.reduce(0) { |acc, elem| acc + elem.size }.to_f / text.size.to_f > 0.3
+ else
+ false
+ end
end
def detect_language_code(text)
return if unreliable_input?(text)
-
result = @identifier.find_language(text)
iso6391(result.language.to_s).to_sym if result.reliable?
end
@@ -77,6 +94,6 @@ class LanguageDetector
end
def default_locale(account)
- return account.user_locale&.to_sym || I18n.default_locale if account.local?
+ account.user_locale&.to_sym || I18n.default_locale if account.local?
end
end
diff --git a/app/lib/ostatus/atom_serializer.rb b/app/lib/ostatus/atom_serializer.rb
index 7a181fb40..9a05d96cf 100644
--- a/app/lib/ostatus/atom_serializer.rb
+++ b/app/lib/ostatus/atom_serializer.rb
@@ -352,7 +352,7 @@ class OStatus::AtomSerializer
append_element(entry, 'link', nil, rel: :alternate, type: 'application/activity+json', href: ActivityPub::TagManager.instance.uri_for(status)) if status.account.local?
append_element(entry, 'summary', status.spoiler_text, 'xml:lang': status.language) if status.spoiler_text?
- append_element(entry, 'content', Formatter.instance.format(status).to_str || '.', type: 'html', 'xml:lang': status.language)
+ append_element(entry, 'content', Formatter.instance.format(status, inline_poll_options: true).to_str || '.', type: 'html', 'xml:lang': status.language)
status.active_mentions.sort_by(&:id).each do |mentioned|
append_element(entry, 'link', nil, rel: :mentioned, 'ostatus:object-type': OStatus::TagManager::TYPES[:person], href: OStatus::TagManager.instance.uri_for(mentioned.account))
diff --git a/app/lib/proof_provider.rb b/app/lib/proof_provider.rb
new file mode 100644
index 000000000..102c50f4f
--- /dev/null
+++ b/app/lib/proof_provider.rb
@@ -0,0 +1,12 @@
+# frozen_string_literal: true
+
+module ProofProvider
+ SUPPORTED_PROVIDERS = %w(keybase).freeze
+
+ def self.find(identifier, proof = nil)
+ case identifier
+ when 'keybase'
+ ProofProvider::Keybase.new(proof)
+ end
+ end
+end
diff --git a/app/lib/proof_provider/keybase.rb b/app/lib/proof_provider/keybase.rb
new file mode 100644
index 000000000..9680b90ee
--- /dev/null
+++ b/app/lib/proof_provider/keybase.rb
@@ -0,0 +1,69 @@
+# frozen_string_literal: true
+
+class ProofProvider::Keybase
+ BASE_URL = ENV.fetch('KEYBASE_BASE_URL', 'https://keybase.io')
+ DOMAIN = ENV.fetch('KEYBASE_DOMAIN', Rails.configuration.x.local_domain)
+
+ class Error < StandardError; end
+
+ class ExpectedProofLiveError < Error; end
+
+ class UnexpectedResponseError < Error; end
+
+ def initialize(proof = nil)
+ @proof = proof
+ end
+
+ def serializer_class
+ ProofProvider::Keybase::Serializer
+ end
+
+ def worker_class
+ ProofProvider::Keybase::Worker
+ end
+
+ def validate!
+ unless @proof.token&.size == 66
+ @proof.errors.add(:base, I18n.t('identity_proofs.errors.keybase.invalid_token'))
+ return
+ end
+
+ # Do not perform synchronous validation for remote accounts
+ return if @proof.provider_username.blank? || !@proof.account.local?
+
+ if verifier.valid?
+ @proof.verified = true
+ @proof.live = false
+ else
+ @proof.errors.add(:base, I18n.t('identity_proofs.errors.keybase.verification_failed', kb_username: @proof.provider_username))
+ end
+ end
+
+ def refresh!
+ worker_class.new.perform(@proof)
+ rescue ProofProvider::Keybase::Error
+ nil
+ end
+
+ def on_success_path(user_agent = nil)
+ verifier.on_success_path(user_agent)
+ end
+
+ def badge
+ @badge ||= ProofProvider::Keybase::Badge.new(@proof.account.username, @proof.provider_username, @proof.token, domain)
+ end
+
+ def verifier
+ @verifier ||= ProofProvider::Keybase::Verifier.new(@proof.account.username, @proof.provider_username, @proof.token, domain)
+ end
+
+ private
+
+ def domain
+ if @proof.account.local?
+ DOMAIN
+ else
+ @proof.account.domain
+ end
+ end
+end
diff --git a/app/lib/proof_provider/keybase/badge.rb b/app/lib/proof_provider/keybase/badge.rb
new file mode 100644
index 000000000..f587b1cc7
--- /dev/null
+++ b/app/lib/proof_provider/keybase/badge.rb
@@ -0,0 +1,45 @@
+# frozen_string_literal: true
+
+class ProofProvider::Keybase::Badge
+ include RoutingHelper
+
+ def initialize(local_username, provider_username, token, domain)
+ @local_username = local_username
+ @provider_username = provider_username
+ @token = token
+ @domain = domain
+ end
+
+ def proof_url
+ "#{ProofProvider::Keybase::BASE_URL}/#{@provider_username}/sigchain\##{@token}"
+ end
+
+ def profile_url
+ "#{ProofProvider::Keybase::BASE_URL}/#{@provider_username}"
+ end
+
+ def icon_url
+ "#{ProofProvider::Keybase::BASE_URL}/#{@provider_username}/proof_badge/#{@token}?username=#{@local_username}&domain=#{@domain}"
+ end
+
+ def avatar_url
+ Rails.cache.fetch("proof_providers/keybase/#{@provider_username}/avatar_url", expires_in: 5.minutes) { remote_avatar_url } || default_avatar_url
+ end
+
+ private
+
+ def remote_avatar_url
+ request = Request.new(:get, "#{ProofProvider::Keybase::BASE_URL}/_/api/1.0/user/pic_url.json", params: { username: @provider_username })
+
+ request.perform do |res|
+ json = Oj.load(res.body_with_limit, mode: :strict)
+ json['pic_url'] if json.is_a?(Hash)
+ end
+ rescue Oj::ParseError, HTTP::Error, OpenSSL::SSL::SSLError
+ nil
+ end
+
+ def default_avatar_url
+ asset_pack_path('media/images/proof_providers/keybase.png')
+ end
+end
diff --git a/app/lib/proof_provider/keybase/config_serializer.rb b/app/lib/proof_provider/keybase/config_serializer.rb
new file mode 100644
index 000000000..2840f1823
--- /dev/null
+++ b/app/lib/proof_provider/keybase/config_serializer.rb
@@ -0,0 +1,71 @@
+# frozen_string_literal: true
+
+class ProofProvider::Keybase::ConfigSerializer < ActiveModel::Serializer
+ include RoutingHelper
+ include ActionView::Helpers::TextHelper
+
+ attributes :version, :domain, :display_name, :username,
+ :brand_color, :logo, :description, :prefill_url,
+ :profile_url, :check_url, :check_path, :avatar_path,
+ :contact
+
+ def version
+ 1
+ end
+
+ def domain
+ ProofProvider::Keybase::DOMAIN
+ end
+
+ def display_name
+ Setting.site_title
+ end
+
+ def logo
+ { svg_black: full_asset_url(asset_pack_path('media/images/logo_transparent_black.svg')), svg_full: full_asset_url(asset_pack_path('media/images/logo.svg')) }
+ end
+
+ def brand_color
+ '#282c37'
+ end
+
+ def description
+ strip_tags(Setting.site_short_description.presence || I18n.t('about.about_mastodon_html'))
+ end
+
+ def username
+ { min: 1, max: 30, re: '[a-z0-9_]+([a-z0-9_.-]+[a-z0-9_]+)?' }
+ end
+
+ def prefill_url
+ params = {
+ provider: 'keybase',
+ token: '%{sig_hash}',
+ provider_username: '%{kb_username}',
+ username: '%{username}',
+ user_agent: '%{kb_ua}',
+ }
+
+ CGI.unescape(new_settings_identity_proof_url(params))
+ end
+
+ def profile_url
+ CGI.unescape(short_account_url('%{username}')) # rubocop:disable Style/FormatStringToken
+ end
+
+ def check_url
+ CGI.unescape(api_proofs_url(username: '%{username}', provider: 'keybase'))
+ end
+
+ def check_path
+ ['signatures']
+ end
+
+ def avatar_path
+ ['avatar']
+ end
+
+ def contact
+ [Setting.site_contact_email.presence || 'unknown'].compact
+ end
+end
diff --git a/app/lib/proof_provider/keybase/serializer.rb b/app/lib/proof_provider/keybase/serializer.rb
new file mode 100644
index 000000000..d29283600
--- /dev/null
+++ b/app/lib/proof_provider/keybase/serializer.rb
@@ -0,0 +1,25 @@
+# frozen_string_literal: true
+
+class ProofProvider::Keybase::Serializer < ActiveModel::Serializer
+ include RoutingHelper
+
+ attribute :avatar
+
+ has_many :identity_proofs, key: :signatures
+
+ def avatar
+ full_asset_url(object.avatar_original_url)
+ end
+
+ class AccountIdentityProofSerializer < ActiveModel::Serializer
+ attributes :sig_hash, :kb_username
+
+ def sig_hash
+ object.token
+ end
+
+ def kb_username
+ object.provider_username
+ end
+ end
+end
diff --git a/app/lib/proof_provider/keybase/verifier.rb b/app/lib/proof_provider/keybase/verifier.rb
new file mode 100644
index 000000000..af69b1bfc
--- /dev/null
+++ b/app/lib/proof_provider/keybase/verifier.rb
@@ -0,0 +1,59 @@
+# frozen_string_literal: true
+
+class ProofProvider::Keybase::Verifier
+ def initialize(local_username, provider_username, token, domain)
+ @local_username = local_username
+ @provider_username = provider_username
+ @token = token
+ @domain = domain
+ end
+
+ def valid?
+ request = Request.new(:get, "#{ProofProvider::Keybase::BASE_URL}/_/api/1.0/sig/proof_valid.json", params: query_params)
+
+ request.perform do |res|
+ json = Oj.load(res.body_with_limit, mode: :strict)
+
+ if json.is_a?(Hash)
+ json.fetch('proof_valid', false)
+ else
+ false
+ end
+ end
+ rescue Oj::ParseError, HTTP::Error, OpenSSL::SSL::SSLError
+ false
+ end
+
+ def on_success_path(user_agent = nil)
+ url = Addressable::URI.parse("#{ProofProvider::Keybase::BASE_URL}/_/proof_creation_success")
+ url.query_values = query_params.merge(kb_ua: user_agent || 'unknown')
+ url.to_s
+ end
+
+ def status
+ request = Request.new(:get, "#{ProofProvider::Keybase::BASE_URL}/_/api/1.0/sig/proof_live.json", params: query_params)
+
+ request.perform do |res|
+ raise ProofProvider::Keybase::UnexpectedResponseError unless res.code == 200
+
+ json = Oj.load(res.body_with_limit, mode: :strict)
+
+ raise ProofProvider::Keybase::UnexpectedResponseError unless json.is_a?(Hash) && json.key?('proof_valid') && json.key?('proof_live')
+
+ json
+ end
+ rescue Oj::ParseError, HTTP::Error, OpenSSL::SSL::SSLError
+ raise ProofProvider::Keybase::UnexpectedResponseError
+ end
+
+ private
+
+ def query_params
+ {
+ domain: @domain,
+ kb_username: @provider_username,
+ username: @local_username,
+ sig_hash: @token,
+ }
+ end
+end
diff --git a/app/lib/proof_provider/keybase/worker.rb b/app/lib/proof_provider/keybase/worker.rb
new file mode 100644
index 000000000..bcdd18cc5
--- /dev/null
+++ b/app/lib/proof_provider/keybase/worker.rb
@@ -0,0 +1,32 @@
+# frozen_string_literal: true
+
+class ProofProvider::Keybase::Worker
+ include Sidekiq::Worker
+
+ sidekiq_options queue: 'pull', retry: 20, unique: :until_executed
+
+ sidekiq_retry_in do |count, exception|
+ # Retry aggressively when the proof is valid but not live in Keybase.
+ # This is likely because Keybase just hasn't noticed the proof being
+ # served from here yet.
+
+ if exception.class == ProofProvider::Keybase::ExpectedProofLiveError
+ case count
+ when 0..2 then 0.seconds
+ when 2..6 then 1.second
+ end
+ end
+ end
+
+ def perform(proof_id)
+ proof = proof_id.is_a?(AccountIdentityProof) ? proof_id : AccountIdentityProof.find(proof_id)
+ status = proof.provider_instance.verifier.status
+
+ # If Keybase thinks the proof is valid, and it exists here in Mastodon,
+ # then it should be live. Keybase just has to notice that it's here
+ # and then update its state. That might take a couple seconds.
+ raise ProofProvider::Keybase::ExpectedProofLiveError if status['proof_valid'] && !status['proof_live']
+
+ proof.update!(verified: status['proof_valid'], live: status['proof_live'])
+ end
+end
diff --git a/app/lib/request.rb b/app/lib/request.rb
index ef4aeaf29..e555ae6a1 100644
--- a/app/lib/request.rb
+++ b/app/lib/request.rb
@@ -171,7 +171,7 @@ class Request
outer_e = nil
Resolv::DNS.open do |dns|
- dns.timeouts = 1
+ dns.timeouts = 5
addresses = dns.getaddresses(host).take(2)
time_slot = 10.0 / addresses.size
diff --git a/app/lib/user_settings_decorator.rb b/app/lib/user_settings_decorator.rb
index 727cbdb36..83dff9c75 100644
--- a/app/lib/user_settings_decorator.rb
+++ b/app/lib/user_settings_decorator.rb
@@ -33,6 +33,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
@@ -95,6 +96,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/admin_mailer.rb b/app/mailers/admin_mailer.rb
index a30468eb8..db154cad5 100644
--- a/app/mailers/admin_mailer.rb
+++ b/app/mailers/admin_mailer.rb
@@ -14,4 +14,14 @@ class AdminMailer < ApplicationMailer
mail to: @me.user_email, subject: I18n.t('admin_mailer.new_report.subject', instance: @instance, id: @report.id)
end
end
+
+ def new_pending_account(recipient, user)
+ @account = user.account
+ @me = recipient
+ @instance = Rails.configuration.x.local_domain
+
+ locale_for_account(@me) do
+ mail to: @me.user_email, subject: I18n.t('admin_mailer.new_pending_account.subject', instance: @instance, username: @account.username)
+ end
+ end
end
diff --git a/app/models/account.rb b/app/models/account.rb
index 11a3c21fe..51e01246e 100644
--- a/app/models/account.rb
+++ b/app/models/account.rb
@@ -94,7 +94,7 @@ class Account < ApplicationRecord
scope :matches_display_name, ->(value) { where(arel_table[:display_name].matches("#{value}%")) }
scope :matches_domain, ->(value) { where(arel_table[:domain].matches("%#{value}%")) }
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 :discoverable, -> { searchable.without_silenced.where(discoverable: true).joins(:account_stat).where(AccountStat.arel_table[:followers_count].gteq(MIN_FOLLOWERS_DISCOVERY)) }
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') }
@@ -104,11 +104,14 @@ class Account < ApplicationRecord
:current_sign_in_ip,
:current_sign_in_at,
:confirmed?,
+ :approved?,
+ :pending?,
:admin?,
:moderator?,
:staff?,
:locale,
:hides_network?,
+ :shows_application?,
to: :user,
prefix: true,
allow_nil: true
@@ -240,6 +243,7 @@ class Account < ApplicationRecord
def fields_attributes=(attributes)
fields = []
old_fields = self[:fields] || []
+ old_fields = [] if old_fields.is_a?(Hash)
if attributes.is_a?(Hash)
attributes.each_value do |attr|
@@ -264,6 +268,7 @@ class Account < ApplicationRecord
return if fields.size >= DEFAULT_FIELDS_SIZE
tmp = self[:fields] || []
+ tmp = [] if tmp.is_a?(Hash)
(DEFAULT_FIELDS_SIZE - tmp.size).times do
tmp << { name: '', value: '' }
@@ -385,7 +390,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
@@ -397,15 +402,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
@@ -426,10 +431,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
@@ -442,10 +447,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)
@@ -469,6 +474,7 @@ class Account < ApplicationRecord
before_create :generate_keys
before_validation :prepare_contents, if: :local?
+ before_validation :prepare_username, on: :create
before_destroy :clean_feed_manager
private
@@ -478,6 +484,10 @@ class Account < ApplicationRecord
note&.strip!
end
+ def prepare_username
+ username&.squish!
+ end
+
def generate_keys
return unless local? && !Rails.env.test?
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/account_filter.rb b/app/models/account_filter.rb
index b10f50db7..d2503100c 100644
--- a/app/models/account_filter.rb
+++ b/app/models/account_filter.rb
@@ -22,7 +22,7 @@ class AccountFilter
def set_defaults!
params['local'] = '1' if params['remote'].blank?
- params['active'] = '1' if params['suspended'].blank? && params['silenced'].blank?
+ params['active'] = '1' if params['suspended'].blank? && params['silenced'].blank? && params['pending'].blank?
end
def scope_for(key, value)
@@ -35,6 +35,8 @@ class AccountFilter
Account.where(domain: value)
when 'active'
Account.without_suspended
+ when 'pending'
+ accounts_with_users.merge User.pending
when 'silenced'
Account.silenced
when 'suspended'
diff --git a/app/models/account_identity_proof.rb b/app/models/account_identity_proof.rb
new file mode 100644
index 000000000..10b66cccf
--- /dev/null
+++ b/app/models/account_identity_proof.rb
@@ -0,0 +1,46 @@
+# frozen_string_literal: true
+# == Schema Information
+#
+# Table name: account_identity_proofs
+#
+# id :bigint(8) not null, primary key
+# account_id :bigint(8)
+# provider :string default(""), not null
+# provider_username :string default(""), not null
+# token :text default(""), not null
+# verified :boolean default(FALSE), not null
+# live :boolean default(FALSE), not null
+# created_at :datetime not null
+# updated_at :datetime not null
+#
+
+class AccountIdentityProof < ApplicationRecord
+ belongs_to :account
+
+ validates :provider, inclusion: { in: ProofProvider::SUPPORTED_PROVIDERS }
+ validates :provider_username, format: { with: /\A[a-z0-9_]+\z/i }, length: { minimum: 2, maximum: 30 }
+ validates :provider_username, uniqueness: { scope: [:account_id, :provider] }
+ validates :token, format: { with: /\A[a-f0-9]+\z/ }, length: { maximum: 66 }
+
+ validate :validate_with_provider, if: :token_changed?
+
+ scope :active, -> { where(verified: true, live: true) }
+
+ after_commit :queue_worker, if: :saved_change_to_token?
+
+ delegate :refresh!, :on_success_path, :badge, to: :provider_instance
+
+ def provider_instance
+ @provider_instance ||= ProofProvider.find(provider, self)
+ end
+
+ private
+
+ def queue_worker
+ provider_instance.worker_class.perform_async(id)
+ end
+
+ def validate_with_provider
+ provider_instance.validate!
+ end
+end
diff --git a/app/models/concerns/account_associations.rb b/app/models/concerns/account_associations.rb
index 7dafeee34..70855e054 100644
--- a/app/models/concerns/account_associations.rb
+++ b/app/models/concerns/account_associations.rb
@@ -7,6 +7,9 @@ module AccountAssociations
# Local users
has_one :user, inverse_of: :account, dependent: :destroy
+ # Identity proofs
+ has_many :identity_proofs, class_name: 'AccountIdentityProof', dependent: :destroy, inverse_of: :account
+
# Timelines
has_many :stream_entries, inverse_of: :account, dependent: :destroy
has_many :statuses, inverse_of: :account, dependent: :destroy
@@ -26,6 +29,7 @@ module AccountAssociations
# Media
has_many :media_attachments, dependent: :destroy
+ has_many :polls, dependent: :destroy
# PuSH subscriptions
has_many :subscriptions, dependent: :destroy
@@ -55,5 +59,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 7e3bbde09..0ac49cc12 100644
--- a/app/models/concerns/account_finder_concern.rb
+++ b/app/models/concerns/account_finder_concern.rb
@@ -13,7 +13,7 @@ module AccountFinderConcern
end
def representative
- find_local(Setting.site_contact_username.gsub(/\A@/, '')) || Account.local.find_by(suspended: false)
+ find_local(Setting.site_contact_username.strip.gsub(/\A@/, '')) || Account.local.find_by(suspended: false)
end
def find_local(username)
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
index dff3e5414..fb84058fc 100644
--- a/app/models/concerns/domain_normalizable.rb
+++ b/app/models/concerns/domain_normalizable.rb
@@ -10,6 +10,6 @@ module DomainNormalizable
private
def normalize_domain
- self.domain = TagManager.instance.normalize_domain(domain)
+ self.domain = TagManager.instance.normalize_domain(domain&.strip)
end
end
diff --git a/app/models/concerns/expireable.rb b/app/models/concerns/expireable.rb
index 2c0631476..f7d2bab49 100644
--- a/app/models/concerns/expireable.rb
+++ b/app/models/concerns/expireable.rb
@@ -18,7 +18,11 @@ module Expireable
end
def expired?
- !expires_at.nil? && expires_at < Time.now.utc
+ expires? && expires_at < Time.now.utc
+ end
+
+ def expires?
+ !expires_at.nil?
end
end
end
diff --git a/app/models/concerns/ldap_authenticable.rb b/app/models/concerns/ldap_authenticable.rb
new file mode 100644
index 000000000..e1b5e3832
--- /dev/null
+++ b/app/models/concerns/ldap_authenticable.rb
@@ -0,0 +1,25 @@
+# frozen_string_literal: true
+
+module LdapAuthenticable
+ extend ActiveSupport::Concern
+
+ def ldap_setup(_attributes)
+ self.confirmed_at = Time.now.utc
+ self.admin = false
+
+ save!
+ end
+
+ class_methods do
+ def ldap_get_user(attributes = {})
+ resource = joins(:account).find_by(accounts: { username: attributes[Devise.ldap_uid.to_sym].first })
+
+ if resource.blank?
+ resource = new(email: attributes[:mail].first, agreement: true, account_attributes: { username: attributes[Devise.ldap_uid.to_sym].first })
+ resource.ldap_setup(attributes)
+ end
+
+ resource
+ end
+ end
+end
diff --git a/app/models/concerns/omniauthable.rb b/app/models/concerns/omniauthable.rb
index 4dd2e9383..1b28b8162 100644
--- a/app/models/concerns/omniauthable.rb
+++ b/app/models/concerns/omniauthable.rb
@@ -7,6 +7,8 @@ module Omniauthable
TEMP_EMAIL_REGEX = /\Achange@me/
included do
+ devise :omniauthable
+
def omniauth_providers
Devise.omniauth_configs.keys
end
diff --git a/app/models/concerns/pam_authenticable.rb b/app/models/concerns/pam_authenticable.rb
new file mode 100644
index 000000000..2f651c1a3
--- /dev/null
+++ b/app/models/concerns/pam_authenticable.rb
@@ -0,0 +1,68 @@
+# frozen_string_literal: true
+
+module PamAuthenticable
+ extend ActiveSupport::Concern
+
+ included do
+ devise :pam_authenticatable if ENV['PAM_ENABLED'] == 'true'
+
+ def pam_conflict(_attributes)
+ # Block pam login tries on traditional account
+ end
+
+ def pam_conflict?
+ if Devise.pam_authentication
+ encrypted_password.present? && pam_managed_user?
+ else
+ false
+ end
+ end
+
+ def pam_get_name
+ if account.present?
+ account.username
+ else
+ super
+ end
+ end
+
+ def pam_setup(_attributes)
+ account = Account.new(username: pam_get_name)
+ account.save!(validate: false)
+
+ self.email = "#{account.username}@#{find_pam_suffix}" if email.nil? && find_pam_suffix
+ self.confirmed_at = Time.now.utc
+ self.admin = false
+ self.account = account
+
+ account.destroy! unless save
+ end
+
+ def self.pam_get_user(attributes = {})
+ return nil unless attributes[:email]
+
+ resource = begin
+ if Devise.check_at_sign && !attributes[:email].index('@')
+ joins(:account).find_by(accounts: { username: attributes[:email] })
+ else
+ find_by(email: attributes[:email])
+ end
+ end
+
+ if resource.nil?
+ 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]
+ end
+ end
+
+ resource
+ end
+
+ def self.authenticate_with_pam(attributes = {})
+ super if Devise.pam_authentication
+ end
+ 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/concerns/user_roles.rb b/app/models/concerns/user_roles.rb
new file mode 100644
index 000000000..58dffdc46
--- /dev/null
+++ b/app/models/concerns/user_roles.rb
@@ -0,0 +1,54 @@
+# frozen_string_literal: true
+
+module UserRoles
+ extend ActiveSupport::Concern
+
+ included do
+ scope :admins, -> { where(admin: true) }
+ scope :moderators, -> { where(moderator: true) }
+ scope :staff, -> { admins.or(moderators) }
+ end
+
+ def staff?
+ admin? || moderator?
+ end
+
+ def role
+ if admin?
+ 'admin'
+ elsif moderator?
+ 'moderator'
+ else
+ 'user'
+ end
+ end
+
+ def role?(role)
+ case role
+ when 'user'
+ true
+ when 'moderator'
+ staff?
+ when 'admin'
+ admin?
+ else
+ false
+ end
+ end
+
+ def promote!
+ if moderator?
+ update!(moderator: false, admin: true)
+ elsif !admin?
+ update!(moderator: true)
+ end
+ end
+
+ def demote!
+ if admin?
+ update!(admin: false, moderator: true)
+ elsif moderator?
+ update!(moderator: false)
+ end
+ end
+end
diff --git a/app/models/domain_block.rb b/app/models/domain_block.rb
index 1064ea7c8..069cda367 100644
--- a/app/models/domain_block.rb
+++ b/app/models/domain_block.rb
@@ -24,6 +24,8 @@ 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
diff --git a/app/models/export.rb b/app/models/export.rb
index a2520e9c2..cab01f11a 100644
--- a/app/models/export.rb
+++ b/app/models/export.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
require 'csv'
class Export
@@ -13,16 +14,24 @@ class Export
end
def to_muted_accounts_csv
- to_csv account.muting.select(:username, :domain)
+ CSV.generate(headers: ['Account address', 'Hide notifications'], write_headers: true) do |csv|
+ account.mute_relationships.includes(:target_account).reorder(id: :desc).each do |mute|
+ csv << [acct(mute.target_account), mute.hide_notifications]
+ end
+ end
end
def to_following_accounts_csv
- to_csv account.following.select(:username, :domain)
+ CSV.generate(headers: ['Account address', 'Show boosts'], write_headers: true) do |csv|
+ account.active_relationships.includes(:target_account).reorder(id: :desc).each do |follow|
+ csv << [acct(follow.target_account), follow.show_reblogs]
+ end
+ end
end
def to_lists_csv
CSV.generate do |csv|
- account.owned_lists.select(:title).each do |list|
+ account.owned_lists.select(:title, :id).each do |list|
list.accounts.select(:username, :domain).each do |account|
csv << [list.title, acct(account)]
end
diff --git a/app/models/featured_tag.rb b/app/models/featured_tag.rb
new file mode 100644
index 000000000..d06ae26a8
--- /dev/null
+++ b/app/models/featured_tag.rb
@@ -0,0 +1,47 @@
+# 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_associated :tag, on: :create
+ validates :name, presence: true, on: :create
+ validate :validate_featured_tags_limit, on: :create
+
+ def name=(str)
+ self.tag = Tag.find_or_initialize_by(name: str.strip.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/follow_request.rb b/app/models/follow_request.rb
index c5451a050..96ac7eaa5 100644
--- a/app/models/follow_request.rb
+++ b/app/models/follow_request.rb
@@ -26,7 +26,7 @@ class FollowRequest < ApplicationRecord
def authorize!
account.follow!(target_account, reblogs: show_reblogs, uri: uri)
- MergeWorker.perform_async(target_account.id, account.id)
+ MergeWorker.perform_async(target_account.id, account.id) if account.local?
destroy!
end
diff --git a/app/models/form/account_batch.rb b/app/models/form/account_batch.rb
new file mode 100644
index 000000000..5bc44e809
--- /dev/null
+++ b/app/models/form/account_batch.rb
@@ -0,0 +1,79 @@
+# frozen_string_literal: true
+
+class Form::AccountBatch
+ include ActiveModel::Model
+ include Authorization
+
+ attr_accessor :account_ids, :action, :current_account
+
+ def save
+ case action
+ when 'unfollow'
+ unfollow!
+ when 'remove_from_followers'
+ remove_from_followers!
+ when 'block_domains'
+ block_domains!
+ when 'approve'
+ approve!
+ when 'reject'
+ reject!
+ end
+ end
+
+ private
+
+ def unfollow!
+ accounts.find_each do |target_account|
+ UnfollowService.new.call(current_account, target_account)
+ end
+ end
+
+ def remove_from_followers!
+ current_account.passive_relationships.where(account_id: account_ids).find_each do |follow|
+ reject_follow!(follow)
+ end
+ end
+
+ def block_domains!
+ AfterAccountDomainBlockWorker.push_bulk(account_domains) do |domain|
+ [current_account.id, domain]
+ end
+ end
+
+ def account_domains
+ accounts.pluck(Arel.sql('distinct domain')).compact
+ end
+
+ def accounts
+ Account.where(id: account_ids)
+ end
+
+ def reject_follow!(follow)
+ follow.destroy
+
+ return unless follow.account.activitypub?
+
+ json = ActiveModelSerializers::SerializableResource.new(
+ follow,
+ serializer: ActivityPub::RejectFollowSerializer,
+ adapter: ActivityPub::Adapter
+ ).to_json
+
+ ActivityPub::DeliveryWorker.perform_async(json, current_account.id, follow.account.inbox_url)
+ end
+
+ def approve!
+ users = accounts.includes(:user).map(&:user)
+
+ users.each { |user| authorize(user, :approve?) }
+ .each(&:approve!)
+ end
+
+ def reject!
+ records = accounts.includes(:user)
+
+ records.each { |account| authorize(account.user, :reject?) }
+ .each { |account| SuspendAccountService.new.call(account, including_user: true, destroy: true, skip_distribution: true) }
+ end
+end
diff --git a/app/models/form/admin_settings.rb b/app/models/form/admin_settings.rb
index eca71bf62..86a86ec66 100644
--- a/app/models/form/admin_settings.rb
+++ b/app/models/form/admin_settings.rb
@@ -3,49 +3,94 @@
class Form::AdminSettings
include ActiveModel::Model
- delegate(
- :site_contact_username,
- :site_contact_username=,
- :site_contact_email,
- :site_contact_email=,
- :site_title,
- :site_title=,
- :site_short_description,
- :site_short_description=,
- :site_description,
- :site_description=,
- :site_extended_description,
- :site_extended_description=,
- :site_terms,
- :site_terms=,
- :open_registrations,
- :open_registrations=,
- :closed_registrations_message,
- :closed_registrations_message=,
- :open_deletion,
- :open_deletion=,
- :timeline_preview,
- :timeline_preview=,
- :show_staff_badge,
- :show_staff_badge=,
- :bootstrap_timeline_accounts,
- :bootstrap_timeline_accounts=,
- :theme,
- :theme=,
- :min_invite_role,
- :min_invite_role=,
- :activity_api_enabled,
- :activity_api_enabled=,
- :peers_api_enabled,
- :peers_api_enabled=,
- :show_known_fediverse_at_about_page,
- :show_known_fediverse_at_about_page=,
- :preview_sensitive_media,
- :preview_sensitive_media=,
- :custom_css,
- :custom_css=,
- :profile_directory,
- :profile_directory=,
- to: Setting
- )
+ KEYS = %i(
+ site_contact_username
+ site_contact_email
+ site_title
+ site_short_description
+ site_description
+ site_extended_description
+ site_terms
+ registrations_mode
+ closed_registrations_message
+ open_deletion
+ timeline_preview
+ show_staff_badge
+ bootstrap_timeline_accounts
+ theme
+ min_invite_role
+ activity_api_enabled
+ peers_api_enabled
+ show_known_fediverse_at_about_page
+ preview_sensitive_media
+ custom_css
+ profile_directory
+ thumbnail
+ hero
+ mascot
+ ).freeze
+
+ BOOLEAN_KEYS = %i(
+ open_deletion
+ timeline_preview
+ show_staff_badge
+ activity_api_enabled
+ peers_api_enabled
+ show_known_fediverse_at_about_page
+ preview_sensitive_media
+ profile_directory
+ ).freeze
+
+ UPLOAD_KEYS = %i(
+ thumbnail
+ hero
+ mascot
+ ).freeze
+
+ attr_accessor(*KEYS)
+
+ validates :site_short_description, :site_description, html: { wrap_with: :p }
+ validates :site_extended_description, :site_terms, :closed_registrations_message, html: true
+ validates :registrations_mode, inclusion: { in: %w(open approved none) }
+ validates :min_invite_role, inclusion: { in: %w(disabled user moderator admin) }
+ validates :site_contact_email, :site_contact_username, presence: true
+ validates :site_contact_username, existing_username: true
+ validates :bootstrap_timeline_accounts, existing_username: { multiple: true }
+
+ def initialize(_attributes = {})
+ super
+ initialize_attributes
+ end
+
+ def save
+ return false unless valid?
+
+ KEYS.each do |key|
+ value = instance_variable_get("@#{key}")
+
+ if UPLOAD_KEYS.include?(key) && !value.nil?
+ upload = SiteUpload.where(var: key).first_or_initialize(var: key)
+ upload.update(file: value)
+ else
+ setting = Setting.where(var: key).first_or_initialize(var: key)
+ setting.update(value: typecast_value(key, value))
+ end
+ end
+ end
+
+ private
+
+ def initialize_attributes
+ KEYS.each do |key|
+ instance_variable_set("@#{key}", Setting.public_send(key)) if instance_variable_get("@#{key}").nil?
+ end
+ end
+
+ def typecast_value(key, value)
+ if BOOLEAN_KEYS.include?(key)
+ value == '1'
+ else
+ value
+ end
+ end
end
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 7448d465c..7bf000d40 100644
--- a/app/models/instance.rb
+++ b/app/models/instance.rb
@@ -7,7 +7,7 @@ class Instance
def initialize(resource)
@domain = resource.domain
- @accounts_count = resource.accounts_count
+ @accounts_count = resource.is_a?(DomainBlock) ? nil : resource.accounts_count
@domain_block = resource.is_a?(DomainBlock) ? resource : DomainBlock.find_by(domain: domain)
end
@@ -15,6 +15,10 @@ class Instance
Rails.cache.fetch("#{cache_key}/sample_accounts", expires_in: 12.hours) { Account.where(domain: domain).searchable.joins(:account_stat).popular.limit(3) }
end
+ def cached_accounts_count
+ @accounts_count || Rails.cache.fetch("#{cache_key}/count", expires_in: 12.hours) { Account.where(domain: domain).count }
+ end
+
def to_param
domain
end
diff --git a/app/models/instance_filter.rb b/app/models/instance_filter.rb
index 3483d8cd6..848fff53e 100644
--- a/app/models/instance_filter.rb
+++ b/app/models/instance_filter.rb
@@ -9,9 +9,13 @@ class InstanceFilter
def results
if params[:limited].present?
- DomainBlock.order(id: :desc)
+ scope = DomainBlock
+ scope = scope.matches_domain(params[:by_domain]) if params[:by_domain].present?
+ scope.order(id: :desc)
else
- Account.remote.by_domain_accounts
+ 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 6b939124f..a57ba0b2e 100644
--- a/app/models/media_attachment.rb
+++ b/app/models/media_attachment.rb
@@ -25,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
@@ -87,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
@@ -111,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/notification.rb b/app/models/notification.rb
index 2f0a9b78c..300269e24 100644
--- a/app/models/notification.rb
+++ b/app/models/notification.rb
@@ -22,9 +22,10 @@ class Notification < ApplicationRecord
follow: 'Follow',
follow_request: 'FollowRequest',
favourite: 'Favourite',
+ poll: 'Poll',
}.freeze
- STATUS_INCLUDES = [:account, :application, :media_attachments, :tags, active_mentions: :account, reblog: [:account, :application, :media_attachments, :tags, active_mentions: :account]].freeze
+ STATUS_INCLUDES = [:account, :application, :preloadable_poll, :media_attachments, :tags, active_mentions: :account, reblog: [:account, :application, :preloadable_poll, :media_attachments, :tags, active_mentions: :account]].freeze
belongs_to :account, optional: true
belongs_to :from_account, class_name: 'Account', optional: true
@@ -35,6 +36,7 @@ class Notification < ApplicationRecord
belongs_to :follow, foreign_type: 'Follow', foreign_key: 'activity_id', optional: true
belongs_to :follow_request, foreign_type: 'FollowRequest', foreign_key: 'activity_id', optional: true
belongs_to :favourite, foreign_type: 'Favourite', foreign_key: 'activity_id', optional: true
+ belongs_to :poll, foreign_type: 'Poll', foreign_key: 'activity_id', optional: true
validates :account_id, uniqueness: { scope: [:activity_type, :activity_id] }
validates :activity_type, inclusion: { in: TYPE_CLASS_MAP.values }
@@ -44,7 +46,7 @@ class Notification < ApplicationRecord
where(activity_type: types)
}
- cache_associated :from_account, status: STATUS_INCLUDES, mention: [status: STATUS_INCLUDES], favourite: [:account, status: STATUS_INCLUDES], follow: :account
+ cache_associated :from_account, status: STATUS_INCLUDES, mention: [status: STATUS_INCLUDES], favourite: [:account, status: STATUS_INCLUDES], follow: :account, poll: [status: STATUS_INCLUDES]
def type
@type ||= TYPE_CLASS_MAP.invert[activity_type].to_sym
@@ -58,6 +60,8 @@ class Notification < ApplicationRecord
favourite&.status
when :mention
mention&.status
+ when :poll
+ poll&.status
end
end
@@ -97,7 +101,7 @@ class Notification < ApplicationRecord
return unless new_record?
case activity_type
- when 'Status', 'Follow', 'Favourite', 'FollowRequest'
+ when 'Status', 'Follow', 'Favourite', 'FollowRequest', 'Poll'
self.from_account_id = activity&.account_id
when 'Mention'
self.from_account_id = activity&.status&.account_id
diff --git a/app/models/poll.rb b/app/models/poll.rb
new file mode 100644
index 000000000..8f72c7b11
--- /dev/null
+++ b/app/models/poll.rb
@@ -0,0 +1,108 @@
+# 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
+# lock_version :integer default(0), not null
+#
+
+class Poll < ApplicationRecord
+ include Expireable
+
+ belongs_to :account
+ belongs_to :status
+
+ has_many :votes, class_name: 'PollVote', inverse_of: :poll, dependent: :destroy
+
+ has_many :notifications, as: :activity, dependent: :destroy
+
+ validates :options, presence: true
+ validates :expires_at, presence: true, if: :local?
+ validates_with PollValidator, on: :create, if: :local?
+
+ scope :attached, -> { where.not(status_id: nil) }
+ scope :unattached, -> { where(status_id: nil) }
+
+ before_validation :prepare_options
+ 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, show_totals_now? ? cached_tallies[key] : nil) }
+ end
+
+ def possibly_stale?
+ remote? && last_fetched_before_expiration? && time_passed_since_last_fetch?
+ end
+
+ def voted?(account)
+ account.id == account_id || votes.where(account: account).exists?
+ end
+
+ delegate :local?, to: :account
+
+ def remote?
+ !local?
+ end
+
+ def emojis
+ @emojis ||= CustomEmoji.from_text(options.join(' '), account.domain)
+ 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 prepare_options
+ self.options = options.map(&:strip).reject(&:blank?)
+ 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
+
+ def show_totals_now?
+ expired? || !hide_totals?
+ end
+end
diff --git a/app/models/poll_vote.rb b/app/models/poll_vote.rb
new file mode 100644
index 000000000..ad24eb691
--- /dev/null
+++ b/app/models/poll_vote.rb
@@ -0,0 +1,39 @@
+# 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
+# uri :string
+#
+
+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
+
+ delegate :local?, to: :account
+
+ def object_type
+ :vote
+ end
+
+ private
+
+ def increment_counter_cache
+ poll.cached_tallies[choice] = (poll.cached_tallies[choice] || 0) + 1
+ poll.save
+ rescue ActiveRecord::StaleObjectError
+ poll.reload
+ retry
+ 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/report.rb b/app/models/report.rb
index 2804020f5..86c303798 100644
--- a/app/models/report.rb
+++ b/app/models/report.rb
@@ -13,6 +13,7 @@
# action_taken_by_account_id :bigint(8)
# target_account_id :bigint(8) not null
# assigned_account_id :bigint(8)
+# uri :string
#
class Report < ApplicationRecord
@@ -28,6 +29,12 @@ class Report < ApplicationRecord
validates :comment, length: { maximum: 1000 }
+ def local?
+ false # Force uri_for to use uri attribute
+ end
+
+ before_validation :set_uri, only: :create
+
def object_type
:flag
end
@@ -89,4 +96,8 @@ class Report < ApplicationRecord
Admin::ActionLog.from("(#{sql}) AS admin_action_logs")
end
+
+ def set_uri
+ self.uri = ActivityPub::TagManager.instance.generate_uri_for(self) if uri.nil? && account.local?
+ end
end
diff --git a/app/models/site_upload.rb b/app/models/site_upload.rb
index 14d683767..cf10b30fc 100644
--- a/app/models/site_upload.rb
+++ b/app/models/site_upload.rb
@@ -18,6 +18,7 @@ class SiteUpload < ApplicationRecord
has_attached_file :file
validates_attachment_content_type :file, content_type: /\Aimage\/.*\z/
+ validates :file, presence: true
validates :var, presence: true, uniqueness: true
before_save :set_meta
diff --git a/app/models/status.rb b/app/models/status.rb
index 12cf993a4..32cbfdd5d 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)
# local_only :boolean
#
@@ -45,6 +46,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 :preloadable_poll, class_name: 'Poll', foreign_key: 'poll_id', 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
@@ -62,12 +64,16 @@ 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 :poll, inverse_of: :status, dependent: :destroy
validates :uri, uniqueness: true, presence: true, unless: :local?
validates :text, presence: true, unless: -> { with_media? || reblog? }
validates_with StatusLengthValidator
validates_with DisallowedHashtagsValidator
validates :reblog, uniqueness: { scope: :account }, if: :reblog?
+ validates :visibility, exclusion: { in: %w(direct limited) }, if: :reblog?
+
+ accepts_nested_attributes_for :poll
default_scope { recent }
@@ -103,6 +109,7 @@ class Status < ApplicationRecord
:tags,
:preview_cards,
:stream_entry,
+ :preloadable_poll,
account: :account_stat,
active_mentions: { account: :account_stat },
reblog: [
@@ -113,6 +120,7 @@ class Status < ApplicationRecord
:media_attachments,
:conversation,
:status_stat,
+ :preloadable_poll,
account: :account_stat,
active_mentions: { account: :account_stat },
],
@@ -211,7 +219,12 @@ class Status < ApplicationRecord
end
def emojis
- @emojis ||= CustomEmoji.from_text([spoiler_text, text].join(' '), account.domain)
+ return @emojis if defined?(@emojis)
+
+ fields = [spoiler_text, text]
+ fields += preloadable_poll.options unless preloadable_poll.nil?
+
+ @emojis = CustomEmoji.from_text(fields.join(' '), account.domain)
end
def mark_for_mass_destruction!
@@ -258,6 +271,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)
@@ -446,9 +461,13 @@ class Status < ApplicationRecord
self.reblog = reblog.reblog if reblog? && reblog.reblog?
end
+ def set_poll_id
+ update_column(:poll_id, poll.id) unless poll.nil?
+ end
+
def set_visibility
+ self.visibility = reblog.visibility if reblog? && visibility.nil?
self.visibility = (account.locked? ? :private : :public) if visibility.nil?
- self.visibility = reblog.visibility if reblog?
self.sensitive = false if sensitive.nil?
end
diff --git a/app/models/tag.rb b/app/models/tag.rb
index 99830ae92..7db76d157 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,21 @@ 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
+
+ def find_normalized(name)
+ find_by(name: name.mb_chars.downcase.to_s)
+ end
+
+ def find_normalized!(name)
+ find_normalized(name) || raise(ActiveRecord::RecordNotFound)
end
end
diff --git a/app/models/user.rb b/app/models/user.rb
index e1bf53810..b8e853dff 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -37,11 +37,12 @@
# remember_token :string
# chosen_languages :string is an Array
# created_by_application_id :bigint(8)
+# approved :boolean default(TRUE), not null
#
class User < ApplicationRecord
include Settings::Extend
- include Omniauthable
+ include UserRoles
# The home and list feeds will be stored in Redis for this amount
# of time, and status fan-out to followers will include only people
@@ -61,9 +62,9 @@ class User < ApplicationRecord
devise :registerable, :recoverable, :rememberable, :trackable, :validatable,
:confirmable
- devise :pam_authenticatable if ENV['PAM_ENABLED'] == 'true'
-
- devise :omniauthable
+ include Omniauthable
+ include PamAuthenticable
+ include LdapAuthenticable
belongs_to :account, inverse_of: :user
belongs_to :invite, counter_cache: :uses, optional: true
@@ -73,15 +74,17 @@ class User < ApplicationRecord
has_many :applications, class_name: 'Doorkeeper::Application', as: :owner
has_many :backups, inverse_of: :user
+ has_one :invite_request, class_name: 'UserInviteRequest', inverse_of: :user, dependent: :destroy
+ accepts_nested_attributes_for :invite_request, reject_if: ->(attributes) { attributes['text'].blank? }
+
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 :pending, -> { where(approved: false) }
+ scope :approved, -> { where(approved: true) }
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)) }
@@ -90,6 +93,7 @@ class User < ApplicationRecord
scope :emailable, -> { confirmed.enabled.joins(:account).merge(Account.searchable) }
before_validation :sanitize_languages
+ before_create :set_approved
# This avoids a deprecation warning from Rails 5.1
# It seems possible that a future release of devise-two-factor will
@@ -100,43 +104,10 @@ 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, :default_federation, to: :settings, prefix: :setting, allow_nil: false
+ :expand_spoilers, :default_language, :aggregate_reblogs, :show_application, :default_federation, to: :settings, prefix: :setting, allow_nil: false
attr_reader :invite_code
- def pam_conflict(_)
- # block pam login tries on traditional account
- nil
- end
-
- def pam_conflict?
- return false unless Devise.pam_authentication
- encrypted_password.present? && pam_managed_user?
- end
-
- def pam_get_name
- return account.username if account.present?
- super
- end
-
- def pam_setup(_attributes)
- acc = Account.new(username: pam_get_name)
- acc.save!(validate: false)
-
- self.email = "#{acc.username}@#{find_pam_suffix}" if email.nil? && find_pam_suffix
- self.confirmed_at = Time.now.utc
- self.admin = false
- self.account = acc
-
- acc.destroy! unless save
- end
-
- def ldap_setup(_attributes)
- self.confirmed_at = Time.now.utc
- self.admin = false
- save!
- end
-
def confirmed?
confirmed_at.present?
end
@@ -145,33 +116,6 @@ class User < ApplicationRecord
invite_id.present?
end
- def staff?
- admin? || moderator?
- end
-
- def role
- if admin?
- 'admin'
- elsif moderator?
- 'moderator'
- else
- 'user'
- end
- end
-
- def role?(role)
- case role
- when 'user'
- true
- when 'moderator'
- staff?
- when 'admin'
- admin?
- else
- false
- end
- end
-
def disable!
update!(disabled: true,
last_sign_in_at: current_sign_in_at,
@@ -183,18 +127,45 @@ class User < ApplicationRecord
end
def confirm
- new_user = !confirmed?
+ new_user = !confirmed?
+ self.approved = true if open_registrations?
super
- prepare_new_user! if new_user
+
+ if new_user && approved?
+ prepare_new_user!
+ elsif new_user
+ notify_staff_about_pending_account!
+ end
end
def confirm!
- new_user = !confirmed?
+ new_user = !confirmed?
+ self.approved = true if open_registrations?
skip_confirmation!
save!
- prepare_new_user! if new_user
+
+ prepare_new_user! if new_user && approved?
+ end
+
+ def pending?
+ !approved?
+ end
+
+ def active_for_authentication?
+ super && approved?
+ end
+
+ def inactive_message
+ !approved? ? :pending : super
+ end
+
+ def approve!
+ return if approved?
+
+ update!(approved: true)
+ prepare_new_user!
end
def update_tracked_fields!(request)
@@ -202,22 +173,6 @@ class User < ApplicationRecord
prepare_returning_user!
end
- def promote!
- if moderator?
- update!(moderator: false, admin: true)
- elsif !admin?
- update!(moderator: true)
- end
- end
-
- def demote!
- if admin?
- update!(admin: false, moderator: true)
- elsif moderator?
- update!(moderator: false)
- end
- end
-
def disable_two_factor!
self.otp_required_for_login = false
otp_backup_codes&.clear
@@ -236,6 +191,10 @@ class User < ApplicationRecord
settings.notification_emails['report']
end
+ def allows_pending_account_emails?
+ settings.notification_emails['pending_account']
+ end
+
def hides_network?
@hides_network ||= settings.hide_network
end
@@ -244,6 +203,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
@@ -293,43 +256,6 @@ class User < ApplicationRecord
super
end
- 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] })
- else
- find_by(email: attributes[:email])
- end
-
- if resource.blank?
- 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]
- end
- end
- resource
- end
-
- def self.ldap_get_user(attributes = {})
- resource = joins(:account).find_by(accounts: { username: attributes[Devise.ldap_uid.to_sym].first })
-
- if resource.blank?
- resource = new(email: attributes[:mail].first, agreement: true, account_attributes: { username: attributes[Devise.ldap_uid.to_sym].first })
- resource.ldap_setup(attributes)
- end
-
- resource
- end
-
- def self.authenticate_with_pam(attributes = {})
- return nil unless Devise.pam_authentication
- super
- end
-
def show_all_media?
setting_display_media == 'show_all'
end
@@ -346,6 +272,14 @@ class User < ApplicationRecord
private
+ def set_approved
+ self.approved = open_registrations? || invited?
+ end
+
+ def open_registrations?
+ Setting.registrations_mode == 'open'
+ end
+
def sanitize_languages
return if chosen_languages.nil?
chosen_languages.reject!(&:blank?)
@@ -363,6 +297,13 @@ class User < ApplicationRecord
regenerate_feed! if needs_feed_update?
end
+ def notify_staff_about_pending_account!
+ User.staff.includes(:account).each do |u|
+ next unless u.allows_pending_account_emails?
+ AdminMailer.new_pending_account(u.account, self).deliver_later
+ end
+ end
+
def regenerate_feed!
return unless Redis.current.setnx("account:#{account_id}:regeneration", true)
Redis.current.expire("account:#{account_id}:regeneration", 1.day.seconds)
diff --git a/app/models/user_invite_request.rb b/app/models/user_invite_request.rb
new file mode 100644
index 000000000..2b76c88b9
--- /dev/null
+++ b/app/models/user_invite_request.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+# == Schema Information
+#
+# Table name: user_invite_requests
+#
+# id :bigint(8) not null, primary key
+# user_id :bigint(8)
+# text :text
+# created_at :datetime not null
+# updated_at :datetime not null
+#
+
+class UserInviteRequest < ApplicationRecord
+ belongs_to :user, inverse_of: :invite_request
+ validates :text, presence: true, length: { maximum: 420 }
+end
diff --git a/app/policies/poll_policy.rb b/app/policies/poll_policy.rb
new file mode 100644
index 000000000..9d69eb5bb
--- /dev/null
+++ b/app/policies/poll_policy.rb
@@ -0,0 +1,7 @@
+# frozen_string_literal: true
+
+class PollPolicy < ApplicationPolicy
+ def vote?
+ StatusPolicy.new(current_account, record.status).show? && !current_account.blocking?(record.account) && !record.account.blocking?(current_account)
+ end
+end
diff --git a/app/policies/user_policy.rb b/app/policies/user_policy.rb
index 57af5c61c..d832bff75 100644
--- a/app/policies/user_policy.rb
+++ b/app/policies/user_policy.rb
@@ -21,6 +21,14 @@ class UserPolicy < ApplicationPolicy
staff?
end
+ def approve?
+ staff? && !record.approved?
+ end
+
+ def reject?
+ staff? && !record.approved?
+ end
+
def disable?
staff? && !record.admin?
end
@@ -36,7 +44,7 @@ class UserPolicy < ApplicationPolicy
private
def promoteable?
- !record.staff? || !record.admin?
+ record.approved? && (!record.staff? || !record.admin?)
end
def demoteable?
diff --git a/app/presenters/account_relationships_presenter.rb b/app/presenters/account_relationships_presenter.rb
index e4aaa65f6..b05673a3d 100644
--- a/app/presenters/account_relationships_presenter.rb
+++ b/app/presenters/account_relationships_presenter.rb
@@ -1,7 +1,7 @@
# frozen_string_literal: true
class AccountRelationshipsPresenter
- attr_reader :following, :followed_by, :blocking,
+ attr_reader :following, :followed_by, :blocking, :blocked_by,
:muting, :requested, :domain_blocking,
:endorsed
@@ -12,6 +12,7 @@ class AccountRelationshipsPresenter
@following = cached[:following].merge(Account.following_map(@uncached_account_ids, @current_account_id))
@followed_by = cached[:followed_by].merge(Account.followed_by_map(@uncached_account_ids, @current_account_id))
@blocking = cached[:blocking].merge(Account.blocking_map(@uncached_account_ids, @current_account_id))
+ @blocked_by = cached[:blocked_by].merge(Account.blocked_by_map(@uncached_account_ids, @current_account_id))
@muting = cached[:muting].merge(Account.muting_map(@uncached_account_ids, @current_account_id))
@requested = cached[:requested].merge(Account.requested_map(@uncached_account_ids, @current_account_id))
@domain_blocking = cached[:domain_blocking].merge(Account.domain_blocking_map(@uncached_account_ids, @current_account_id))
@@ -22,6 +23,7 @@ class AccountRelationshipsPresenter
@following.merge!(options[:following_map] || {})
@followed_by.merge!(options[:followed_by_map] || {})
@blocking.merge!(options[:blocking_map] || {})
+ @blocked_by.merge!(options[:blocked_by_map] || {})
@muting.merge!(options[:muting_map] || {})
@requested.merge!(options[:requested_map] || {})
@domain_blocking.merge!(options[:domain_blocking_map] || {})
@@ -37,6 +39,7 @@ class AccountRelationshipsPresenter
following: {},
followed_by: {},
blocking: {},
+ blocked_by: {},
muting: {},
requested: {},
domain_blocking: {},
@@ -64,6 +67,7 @@ class AccountRelationshipsPresenter
following: { account_id => following[account_id] },
followed_by: { account_id => followed_by[account_id] },
blocking: { account_id => blocking[account_id] },
+ blocked_by: { account_id => blocked_by[account_id] },
muting: { account_id => muting[account_id] },
requested: { account_id => requested[account_id] },
domain_blocking: { account_id => domain_blocking[account_id] },
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/presenters/instance_presenter.rb b/app/presenters/instance_presenter.rb
index dc77162d4..f3a73209a 100644
--- a/app/presenters/instance_presenter.rb
+++ b/app/presenters/instance_presenter.rb
@@ -2,25 +2,28 @@
class InstancePresenter
delegate(
- :closed_registrations_message,
:site_contact_email,
- :open_registrations,
:site_title,
:site_short_description,
:site_description,
:site_extended_description,
:site_terms,
+ :closed_registrations_message,
to: Setting
)
def contact_account
- Account.find_local(Setting.site_contact_username.gsub(/\A@/, ''))
+ Account.find_local(Setting.site_contact_username.strip.gsub(/\A@/, ''))
end
def user_count
Rails.cache.fetch('user_count') { User.confirmed.joins(:account).merge(Account.without_suspended).count }
end
+ def active_user_count
+ Rails.cache.fetch('active_user_count') { Redis.current.pfcount(*(0..3).map { |i| "activity:logins:#{i.weeks.ago.utc.to_date.cweek}" }) }
+ end
+
def status_count
Rails.cache.fetch('local_status_count') { Account.local.joins(:account_stat).sum('account_stats.statuses_count') }.to_i
end
@@ -29,6 +32,10 @@ class InstancePresenter
Rails.cache.fetch('distinct_domain_count') { Account.distinct.count(:domain) }
end
+ def sample_accounts
+ Rails.cache.fetch('sample_accounts', expires_in: 12.hours) { Account.discoverable.popular.limit(3) }
+ end
+
def version_number
Mastodon::Version
end
diff --git a/app/serializers/activitypub/accept_follow_serializer.rb b/app/serializers/activitypub/accept_follow_serializer.rb
index 3e23591a5..1c1c6ab73 100644
--- a/app/serializers/activitypub/accept_follow_serializer.rb
+++ b/app/serializers/activitypub/accept_follow_serializer.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-class ActivityPub::AcceptFollowSerializer < ActiveModel::Serializer
+class ActivityPub::AcceptFollowSerializer < ActivityPub::Serializer
attributes :id, :type, :actor
has_one :object, serializer: ActivityPub::FollowSerializer
diff --git a/app/serializers/activitypub/activity_serializer.rb b/app/serializers/activitypub/activity_serializer.rb
index b51e8c544..c06d5c87c 100644
--- a/app/serializers/activitypub/activity_serializer.rb
+++ b/app/serializers/activitypub/activity_serializer.rb
@@ -1,10 +1,10 @@
# frozen_string_literal: true
-class ActivityPub::ActivitySerializer < ActiveModel::Serializer
+class ActivityPub::ActivitySerializer < ActivityPub::Serializer
attributes :id, :type, :actor, :published, :to, :cc
- has_one :proper, key: :object, serializer: ActivityPub::NoteSerializer, unless: :owned_announce?
- attribute :proper_uri, key: :object, if: :owned_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
@@ -43,7 +43,9 @@ class ActivityPub::ActivitySerializer < ActiveModel::Serializer
object.reblog?
end
- def owned_announce?
- announce? && object.account == object.proper.account && object.proper.private_visibility?
+ 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 6746c1782..0644219fb 100644
--- a/app/serializers/activitypub/actor_serializer.rb
+++ b/app/serializers/activitypub/actor_serializer.rb
@@ -1,8 +1,13 @@
# frozen_string_literal: true
-class ActivityPub::ActorSerializer < ActiveModel::Serializer
+class ActivityPub::ActorSerializer < ActivityPub::Serializer
include RoutingHelper
+ context :security
+
+ context_extensions :manually_approves_followers, :featured, :also_known_as,
+ :moved_to, :property_value, :hashtag, :emoji, :identity_proof
+
attributes :id, :type, :following, :followers,
:inbox, :outbox, :featured,
:preferred_username, :name, :summary,
@@ -16,7 +21,7 @@ class ActivityPub::ActorSerializer < ActiveModel::Serializer
attribute :moved_to, if: :moved?
attribute :also_known_as, if: :also_known_as?
- class EndpointsSerializer < ActiveModel::Serializer
+ class EndpointsSerializer < ActivityPub::Serializer
include RoutingHelper
attributes :shared_inbox
@@ -110,7 +115,7 @@ class ActivityPub::ActorSerializer < ActiveModel::Serializer
end
def virtual_attachments
- object.fields
+ object.fields + object.identity_proofs.active
end
def moved_to
@@ -124,7 +129,7 @@ class ActivityPub::ActorSerializer < ActiveModel::Serializer
class CustomEmojiSerializer < ActivityPub::EmojiSerializer
end
- class TagSerializer < ActiveModel::Serializer
+ class TagSerializer < ActivityPub::Serializer
include RoutingHelper
attributes :type, :href, :name
@@ -142,7 +147,7 @@ class ActivityPub::ActorSerializer < ActiveModel::Serializer
end
end
- class Account::FieldSerializer < ActiveModel::Serializer
+ class Account::FieldSerializer < ActivityPub::Serializer
attributes :type, :name, :value
def type
@@ -153,4 +158,24 @@ class ActivityPub::ActorSerializer < ActiveModel::Serializer
Formatter.instance.format_field(object.account, object.value)
end
end
+
+ class AccountIdentityProofSerializer < ActivityPub::Serializer
+ attributes :type, :name, :signature_algorithm, :signature_value
+
+ def type
+ 'IdentityProof'
+ end
+
+ def name
+ object.provider_username
+ end
+
+ def signature_algorithm
+ object.provider
+ end
+
+ def signature_value
+ object.token
+ end
+ end
end
diff --git a/app/serializers/activitypub/add_serializer.rb b/app/serializers/activitypub/add_serializer.rb
index c0906e8d0..6f5aab17f 100644
--- a/app/serializers/activitypub/add_serializer.rb
+++ b/app/serializers/activitypub/add_serializer.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-class ActivityPub::AddSerializer < ActiveModel::Serializer
+class ActivityPub::AddSerializer < ActivityPub::Serializer
include RoutingHelper
attributes :type, :actor, :target
diff --git a/app/serializers/activitypub/block_serializer.rb b/app/serializers/activitypub/block_serializer.rb
index 624ce2fce..e6c69329d 100644
--- a/app/serializers/activitypub/block_serializer.rb
+++ b/app/serializers/activitypub/block_serializer.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-class ActivityPub::BlockSerializer < ActiveModel::Serializer
+class ActivityPub::BlockSerializer < ActivityPub::Serializer
attributes :id, :type, :actor
attribute :virtual_object, key: :object
diff --git a/app/serializers/activitypub/collection_serializer.rb b/app/serializers/activitypub/collection_serializer.rb
index e8960131b..da1ba735f 100644
--- a/app/serializers/activitypub/collection_serializer.rb
+++ b/app/serializers/activitypub/collection_serializer.rb
@@ -1,13 +1,14 @@
# frozen_string_literal: true
-class ActivityPub::CollectionSerializer < ActiveModel::Serializer
+class ActivityPub::CollectionSerializer < ActivityPub::Serializer
def self.serializer_for(model, options)
return ActivityPub::NoteSerializer if model.class.name == 'Status'
return ActivityPub::CollectionSerializer if model.class.name == 'ActivityPub::CollectionPresenter'
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/delete_actor_serializer.rb b/app/serializers/activitypub/delete_actor_serializer.rb
index ddf59be97..a6c5e2385 100644
--- a/app/serializers/activitypub/delete_actor_serializer.rb
+++ b/app/serializers/activitypub/delete_actor_serializer.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-class ActivityPub::DeleteActorSerializer < ActiveModel::Serializer
+class ActivityPub::DeleteActorSerializer < ActivityPub::Serializer
attributes :id, :type, :actor, :to
attribute :virtual_object, key: :object
diff --git a/app/serializers/activitypub/delete_serializer.rb b/app/serializers/activitypub/delete_serializer.rb
index 5012a8383..a7d5bd469 100644
--- a/app/serializers/activitypub/delete_serializer.rb
+++ b/app/serializers/activitypub/delete_serializer.rb
@@ -1,7 +1,9 @@
# frozen_string_literal: true
-class ActivityPub::DeleteSerializer < ActiveModel::Serializer
- class TombstoneSerializer < ActiveModel::Serializer
+class ActivityPub::DeleteSerializer < ActivityPub::Serializer
+ class TombstoneSerializer < ActivityPub::Serializer
+ context_extensions :atom_uri
+
attributes :id, :type, :atom_uri
def id
diff --git a/app/serializers/activitypub/emoji_serializer.rb b/app/serializers/activitypub/emoji_serializer.rb
index 7b06b1e5d..4dc38f3ea 100644
--- a/app/serializers/activitypub/emoji_serializer.rb
+++ b/app/serializers/activitypub/emoji_serializer.rb
@@ -1,8 +1,10 @@
# frozen_string_literal: true
-class ActivityPub::EmojiSerializer < ActiveModel::Serializer
+class ActivityPub::EmojiSerializer < ActivityPub::Serializer
include RoutingHelper
+ context_extensions :emoji
+
attributes :id, :type, :name, :updated
has_one :icon, serializer: ActivityPub::ImageSerializer
diff --git a/app/serializers/activitypub/flag_serializer.rb b/app/serializers/activitypub/flag_serializer.rb
index 53e8f726d..2f2a707d3 100644
--- a/app/serializers/activitypub/flag_serializer.rb
+++ b/app/serializers/activitypub/flag_serializer.rb
@@ -1,11 +1,10 @@
# frozen_string_literal: true
-class ActivityPub::FlagSerializer < ActiveModel::Serializer
+class ActivityPub::FlagSerializer < ActivityPub::Serializer
attributes :id, :type, :actor, :content
attribute :virtual_object, key: :object
def id
- # This is nil for now
ActivityPub::TagManager.instance.uri_for(object)
end
diff --git a/app/serializers/activitypub/follow_serializer.rb b/app/serializers/activitypub/follow_serializer.rb
index bb204ee8f..9228d7716 100644
--- a/app/serializers/activitypub/follow_serializer.rb
+++ b/app/serializers/activitypub/follow_serializer.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-class ActivityPub::FollowSerializer < ActiveModel::Serializer
+class ActivityPub::FollowSerializer < ActivityPub::Serializer
attributes :id, :type, :actor
attribute :virtual_object, key: :object
diff --git a/app/serializers/activitypub/image_serializer.rb b/app/serializers/activitypub/image_serializer.rb
index 3c08f77e8..1060f9691 100644
--- a/app/serializers/activitypub/image_serializer.rb
+++ b/app/serializers/activitypub/image_serializer.rb
@@ -1,8 +1,10 @@
# frozen_string_literal: true
-class ActivityPub::ImageSerializer < ActiveModel::Serializer
+class ActivityPub::ImageSerializer < ActivityPub::Serializer
include RoutingHelper
+ context_extensions :focal_point
+
attributes :type, :media_type, :url
attribute :focal_point, if: :focal_point?
diff --git a/app/serializers/activitypub/like_serializer.rb b/app/serializers/activitypub/like_serializer.rb
index c1a7ff6f6..0f170ddb4 100644
--- a/app/serializers/activitypub/like_serializer.rb
+++ b/app/serializers/activitypub/like_serializer.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-class ActivityPub::LikeSerializer < ActiveModel::Serializer
+class ActivityPub::LikeSerializer < ActivityPub::Serializer
attributes :id, :type, :actor
attribute :virtual_object, key: :object
diff --git a/app/serializers/activitypub/note_serializer.rb b/app/serializers/activitypub/note_serializer.rb
index c9d23e25f..d11cfa59a 100644
--- a/app/serializers/activitypub/note_serializer.rb
+++ b/app/serializers/activitypub/note_serializer.rb
@@ -1,6 +1,9 @@
# frozen_string_literal: true
-class ActivityPub::NoteSerializer < ActiveModel::Serializer
+class ActivityPub::NoteSerializer < ActivityPub::Serializer
+ context_extensions :atom_uri, :conversation, :sensitive,
+ :hashtag, :emoji, :focal_point
+
attributes :id, :type, :summary,
:in_reply_to, :published, :url,
:attributed_to, :to, :cc, :sensitive,
@@ -13,12 +16,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_options, key: :one_of, if: :poll_and_not_multiple?
+ has_many :poll_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.preloadable_poll ? 'Question' : 'Note'
end
def summary
@@ -33,6 +44,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,7 +124,33 @@ class ActivityPub::NoteSerializer < ActiveModel::Serializer
object.account.local?
end
- class MediaAttachmentSerializer < ActiveModel::Serializer
+ def poll_options
+ object.preloadable_poll.loaded_options
+ end
+
+ def poll_and_multiple?
+ object.preloadable_poll&.multiple?
+ end
+
+ def poll_and_not_multiple?
+ object.preloadable_poll && !object.preloadable_poll.multiple?
+ end
+
+ def closed
+ object.preloadable_poll.expires_at.iso8601
+ end
+
+ alias end_time closed
+
+ def poll_and_expires?
+ object.preloadable_poll&.expires_at&.present?
+ end
+
+ def poll_and_expired?
+ object.preloadable_poll&.expired?
+ end
+
+ class MediaAttachmentSerializer < ActivityPub::Serializer
include RoutingHelper
attributes :type, :media_type, :url, :name
@@ -128,7 +181,7 @@ class ActivityPub::NoteSerializer < ActiveModel::Serializer
end
end
- class MentionSerializer < ActiveModel::Serializer
+ class MentionSerializer < ActivityPub::Serializer
attributes :type, :href, :name
def type
@@ -144,7 +197,7 @@ class ActivityPub::NoteSerializer < ActiveModel::Serializer
end
end
- class TagSerializer < ActiveModel::Serializer
+ class TagSerializer < ActivityPub::Serializer
include RoutingHelper
attributes :type, :href, :name
@@ -164,4 +217,34 @@ class ActivityPub::NoteSerializer < ActiveModel::Serializer
class CustomEmojiSerializer < ActivityPub::EmojiSerializer
end
+
+ class OptionSerializer < ActivityPub::Serializer
+ class RepliesSerializer < ActivityPub::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/public_key_serializer.rb b/app/serializers/activitypub/public_key_serializer.rb
index 38e9e93ba..62ed49e81 100644
--- a/app/serializers/activitypub/public_key_serializer.rb
+++ b/app/serializers/activitypub/public_key_serializer.rb
@@ -1,6 +1,8 @@
# frozen_string_literal: true
-class ActivityPub::PublicKeySerializer < ActiveModel::Serializer
+class ActivityPub::PublicKeySerializer < ActivityPub::Serializer
+ context :security
+
attributes :id, :owner, :public_key_pem
def id
diff --git a/app/serializers/activitypub/reject_follow_serializer.rb b/app/serializers/activitypub/reject_follow_serializer.rb
index 7814f4f57..4996c9a3c 100644
--- a/app/serializers/activitypub/reject_follow_serializer.rb
+++ b/app/serializers/activitypub/reject_follow_serializer.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-class ActivityPub::RejectFollowSerializer < ActiveModel::Serializer
+class ActivityPub::RejectFollowSerializer < ActivityPub::Serializer
attributes :id, :type, :actor
has_one :object, serializer: ActivityPub::FollowSerializer
diff --git a/app/serializers/activitypub/remove_serializer.rb b/app/serializers/activitypub/remove_serializer.rb
index c2a5ae1b3..7fefda59d 100644
--- a/app/serializers/activitypub/remove_serializer.rb
+++ b/app/serializers/activitypub/remove_serializer.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-class ActivityPub::RemoveSerializer < ActiveModel::Serializer
+class ActivityPub::RemoveSerializer < ActivityPub::Serializer
include RoutingHelper
attributes :type, :actor, :target
diff --git a/app/serializers/activitypub/undo_announce_serializer.rb b/app/serializers/activitypub/undo_announce_serializer.rb
index 4fc042727..6758af679 100644
--- a/app/serializers/activitypub/undo_announce_serializer.rb
+++ b/app/serializers/activitypub/undo_announce_serializer.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-class ActivityPub::UndoAnnounceSerializer < ActiveModel::Serializer
+class ActivityPub::UndoAnnounceSerializer < ActivityPub::Serializer
attributes :id, :type, :actor, :to
has_one :object, serializer: ActivityPub::ActivitySerializer
diff --git a/app/serializers/activitypub/undo_block_serializer.rb b/app/serializers/activitypub/undo_block_serializer.rb
index 2f43d8402..b4f049377 100644
--- a/app/serializers/activitypub/undo_block_serializer.rb
+++ b/app/serializers/activitypub/undo_block_serializer.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-class ActivityPub::UndoBlockSerializer < ActiveModel::Serializer
+class ActivityPub::UndoBlockSerializer < ActivityPub::Serializer
attributes :id, :type, :actor
has_one :object, serializer: ActivityPub::BlockSerializer
diff --git a/app/serializers/activitypub/undo_follow_serializer.rb b/app/serializers/activitypub/undo_follow_serializer.rb
index e5b7f143d..9b3e0ca3c 100644
--- a/app/serializers/activitypub/undo_follow_serializer.rb
+++ b/app/serializers/activitypub/undo_follow_serializer.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-class ActivityPub::UndoFollowSerializer < ActiveModel::Serializer
+class ActivityPub::UndoFollowSerializer < ActivityPub::Serializer
attributes :id, :type, :actor
has_one :object, serializer: ActivityPub::FollowSerializer
diff --git a/app/serializers/activitypub/undo_like_serializer.rb b/app/serializers/activitypub/undo_like_serializer.rb
index 25f4ccaae..20c786cb7 100644
--- a/app/serializers/activitypub/undo_like_serializer.rb
+++ b/app/serializers/activitypub/undo_like_serializer.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-class ActivityPub::UndoLikeSerializer < ActiveModel::Serializer
+class ActivityPub::UndoLikeSerializer < ActivityPub::Serializer
attributes :id, :type, :actor
has_one :object, serializer: ActivityPub::LikeSerializer
diff --git a/app/serializers/activitypub/update_poll_serializer.rb b/app/serializers/activitypub/update_poll_serializer.rb
new file mode 100644
index 000000000..b894f309f
--- /dev/null
+++ b/app/serializers/activitypub/update_poll_serializer.rb
@@ -0,0 +1,27 @@
+# frozen_string_literal: true
+
+class ActivityPub::UpdatePollSerializer < ActivityPub::Serializer
+ attributes :id, :type, :actor, :to
+
+ has_one :object, serializer: ActivityPub::NoteSerializer
+
+ def id
+ [ActivityPub::TagManager.instance.uri_for(object), '#updates/', object.preloadable_poll.updated_at.to_i].join
+ end
+
+ def type
+ 'Update'
+ end
+
+ def actor
+ ActivityPub::TagManager.instance.uri_for(object)
+ end
+
+ def to
+ ActivityPub::TagManager.instance.to(object)
+ end
+
+ def cc
+ ActivityPub::TagManager.instance.cc(object)
+ end
+end
diff --git a/app/serializers/activitypub/update_serializer.rb b/app/serializers/activitypub/update_serializer.rb
index 48d7a1929..a5eb857d3 100644
--- a/app/serializers/activitypub/update_serializer.rb
+++ b/app/serializers/activitypub/update_serializer.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-class ActivityPub::UpdateSerializer < ActiveModel::Serializer
+class ActivityPub::UpdateSerializer < ActivityPub::Serializer
attributes :id, :type, :actor, :to
has_one :object, serializer: ActivityPub::ActorSerializer
diff --git a/app/serializers/activitypub/vote_serializer.rb b/app/serializers/activitypub/vote_serializer.rb
new file mode 100644
index 000000000..71ef5c77e
--- /dev/null
+++ b/app/serializers/activitypub/vote_serializer.rb
@@ -0,0 +1,52 @@
+# frozen_string_literal: true
+
+class ActivityPub::VoteSerializer < ActivityPub::Serializer
+ class NoteSerializer < ActivityPub::Serializer
+ attributes :id, :type, :name, :attributed_to,
+ :in_reply_to, :to
+
+ def id
+ ActivityPub::TagManager.instance.uri_for(object) || [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/manifest_serializer.rb b/app/serializers/manifest_serializer.rb
index 859ef0d14..28127437d 100644
--- a/app/serializers/manifest_serializer.rb
+++ b/app/serializers/manifest_serializer.rb
@@ -18,7 +18,7 @@ class ManifestSerializer < ActiveModel::Serializer
end
def description
- strip_tags(object.site_description.presence || I18n.t('about.about_mastodon_html'))
+ strip_tags(object.site_short_description.presence || I18n.t('about.about_mastodon_html'))
end
def icons
@@ -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/oembed_serializer.rb b/app/serializers/oembed_serializer.rb
index 0c8350e2d..01689633b 100644
--- a/app/serializers/oembed_serializer.rb
+++ b/app/serializers/oembed_serializer.rb
@@ -43,6 +43,7 @@ class OEmbedSerializer < ActiveModel::Serializer
style: 'max-width: 100%; border: 0',
width: width,
height: height,
+ allowfullscreen: true,
}
content_tag(:iframe, nil, attributes) + content_tag(:script, nil, src: full_asset_url('embed.js', skip_pipeline: true), async: true)
diff --git a/app/serializers/rest/identity_proof_serializer.rb b/app/serializers/rest/identity_proof_serializer.rb
new file mode 100644
index 000000000..0e7415935
--- /dev/null
+++ b/app/serializers/rest/identity_proof_serializer.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+class REST::IdentityProofSerializer < ActiveModel::Serializer
+ attributes :provider, :provider_username, :updated_at, :proof_url, :profile_url
+
+ def proof_url
+ object.badge.proof_url
+ end
+
+ def profile_url
+ object.badge.profile_url
+ end
+
+ def provider
+ object.provider.capitalize
+ end
+end
diff --git a/app/serializers/rest/instance_serializer.rb b/app/serializers/rest/instance_serializer.rb
index 216808ffb..a82eff195 100644
--- a/app/serializers/rest/instance_serializer.rb
+++ b/app/serializers/rest/instance_serializer.rb
@@ -32,7 +32,7 @@ class REST::InstanceSerializer < ActiveModel::Serializer
end
def thumbnail
- instance_presenter.thumbnail ? full_asset_url(instance_presenter.thumbnail.file.url) : full_pack_url('preview.jpg')
+ instance_presenter.thumbnail ? full_asset_url(instance_presenter.thumbnail.file.url) : full_pack_url('media/images/preview.jpg')
end
def stats
@@ -52,7 +52,7 @@ class REST::InstanceSerializer < ActiveModel::Serializer
end
def registrations
- Setting.open_registrations && !Rails.configuration.x.single_user_mode
+ Setting.registrations_mode != 'none' && !Rails.configuration.x.single_user_mode
end
private
diff --git a/app/serializers/rest/notification_serializer.rb b/app/serializers/rest/notification_serializer.rb
index 541a6b8b5..80812ad0d 100644
--- a/app/serializers/rest/notification_serializer.rb
+++ b/app/serializers/rest/notification_serializer.rb
@@ -11,6 +11,6 @@ class REST::NotificationSerializer < ActiveModel::Serializer
end
def status_type?
- [:favourite, :reblog, :mention].include?(object.type)
+ [:favourite, :reblog, :mention, :poll].include?(object.type)
end
end
diff --git a/app/serializers/rest/poll_serializer.rb b/app/serializers/rest/poll_serializer.rb
new file mode 100644
index 000000000..356c45b83
--- /dev/null
+++ b/app/serializers/rest/poll_serializer.rb
@@ -0,0 +1,31 @@
+# frozen_string_literal: true
+
+class REST::PollSerializer < ActiveModel::Serializer
+ attributes :id, :expires_at, :expired,
+ :multiple, :votes_count
+
+ has_many :loaded_options, key: :options
+ has_many :emojis, serializer: REST::CustomEmojiSerializer
+
+ attribute :voted, if: :current_user?
+
+ def id
+ object.id.to_s
+ end
+
+ def expired
+ object.expired?
+ end
+
+ def voted
+ object.voted?(current_user.account)
+ end
+
+ def current_user?
+ !current_user.nil?
+ end
+
+ class OptionSerializer < ActiveModel::Serializer
+ attributes :title, :votes_count
+ end
+end
diff --git a/app/serializers/rest/preferences_serializer.rb b/app/serializers/rest/preferences_serializer.rb
new file mode 100644
index 000000000..119f0e06d
--- /dev/null
+++ b/app/serializers/rest/preferences_serializer.rb
@@ -0,0 +1,30 @@
+# frozen_string_literal: true
+
+class REST::PreferencesSerializer < ActiveModel::Serializer
+ attribute :posting_default_privacy, key: 'posting:default:visibility'
+ attribute :posting_default_sensitive, key: 'posting:default:sensitive'
+ attribute :posting_default_language, key: 'posting:default:language'
+
+ attribute :reading_default_sensitive_media, key: 'reading:expand:media'
+ attribute :reading_default_sensitive_text, key: 'reading:expand:spoilers'
+
+ def posting_default_privacy
+ object.user.setting_default_privacy
+ end
+
+ def posting_default_sensitive
+ object.user.setting_default_sensitive
+ end
+
+ def posting_default_language
+ object.user.setting_default_language.presence
+ end
+
+ def reading_default_sensitive_media
+ object.user.setting_display_media
+ end
+
+ def reading_default_sensitive_text
+ object.user.setting_expand_spoilers
+ end
+end
diff --git a/app/serializers/rest/relationship_serializer.rb b/app/serializers/rest/relationship_serializer.rb
index c6c722a54..1a3fd915c 100644
--- a/app/serializers/rest/relationship_serializer.rb
+++ b/app/serializers/rest/relationship_serializer.rb
@@ -1,7 +1,7 @@
# frozen_string_literal: true
class REST::RelationshipSerializer < ActiveModel::Serializer
- attributes :id, :following, :showing_reblogs, :followed_by, :blocking,
+ attributes :id, :following, :showing_reblogs, :followed_by, :blocking, :blocked_by,
:muting, :muting_notifications, :requested, :domain_blocking,
:endorsed
@@ -27,6 +27,10 @@ class REST::RelationshipSerializer < ActiveModel::Serializer
instance_options[:relationships].blocking[object.id] || false
end
+ def blocked_by
+ instance_options[:relationships].blocked_by[object.id] || false
+ end
+
def muting
instance_options[:relationships].muting[object.id] ? true : false
end
diff --git a/app/serializers/rest/status_serializer.rb b/app/serializers/rest/status_serializer.rb
index aa84e5e32..d979c88f6 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 :preloadable_poll, key: :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/serializers/rss/account_serializer.rb b/app/serializers/rss/account_serializer.rb
index bde360a41..88eca79ed 100644
--- a/app/serializers/rss/account_serializer.rb
+++ b/app/serializers/rss/account_serializer.rb
@@ -11,7 +11,7 @@ class RSS::AccountSerializer
builder.title("#{display_name(account)} (@#{account.local_username_and_domain})")
.description(account_description(account))
.link(TagManager.instance.url_for(account))
- .logo(full_asset_url(asset_pack_path('logo.svg')))
+ .logo(full_pack_url('media/images/logo.svg'))
.accent_color('2b90d9')
builder.image(full_asset_url(account.avatar.url(:original))) if account.avatar?
@@ -22,7 +22,7 @@ class RSS::AccountSerializer
item.title(status.title)
.link(TagManager.instance.url_for(status))
.pub_date(status.created_at)
- .description(status.spoiler_text.presence || Formatter.instance.format(status).to_str)
+ .description(status.spoiler_text.presence || Formatter.instance.format(status, inline_poll_options: true).to_str)
status.media_attachments.each do |media|
item.enclosure(full_asset_url(media.file.url(:original, false)), media.file.content_type, length: media.file.size)
diff --git a/app/serializers/rss/tag_serializer.rb b/app/serializers/rss/tag_serializer.rb
index 7680a8da5..644380149 100644
--- a/app/serializers/rss/tag_serializer.rb
+++ b/app/serializers/rss/tag_serializer.rb
@@ -12,7 +12,7 @@ class RSS::TagSerializer
builder.title("##{tag.name}")
.description(strip_tags(I18n.t('about.about_hashtag_html', hashtag: tag.name)))
.link(tag_url(tag))
- .logo(full_asset_url(asset_pack_path('logo.svg')))
+ .logo(full_pack_url('media/images/logo.svg'))
.accent_color('2b90d9')
statuses.each do |status|
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_poll_service.rb b/app/services/activitypub/fetch_remote_poll_service.rb
new file mode 100644
index 000000000..854a32d05
--- /dev/null
+++ b/app/services/activitypub/fetch_remote_poll_service.rb
@@ -0,0 +1,11 @@
+# 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?(json)
+ ActivityPub::ProcessPollService.new.call(poll, json)
+ 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..8cb309e52
--- /dev/null
+++ b/app/services/activitypub/fetch_replies_service.rb
@@ -0,0 +1,49 @@
+# 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)
+ fetch_resource_without_id_validation(collection_or_uri, nil, true)
+ 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
+end
diff --git a/app/services/activitypub/process_account_service.rb b/app/services/activitypub/process_account_service.rb
index 5e3308428..6d0609ca0 100644
--- a/app/services/activitypub/process_account_service.rb
+++ b/app/services/activitypub/process_account_service.rb
@@ -24,6 +24,7 @@ class ActivityPub::ProcessAccountService < BaseService
create_account if @account.nil?
update_account
process_tags
+ process_attachments
else
raise Mastodon::RaceConditionError
end
@@ -151,7 +152,7 @@ class ActivityPub::ProcessAccountService < BaseService
def property_values
return unless @json['attachment'].is_a?(Array)
- @json['attachment'].select { |attachment| attachment['type'] == 'PropertyValue' }.map { |attachment| attachment.slice('name', 'value') }
+ as_array(@json['attachment']).select { |attachment| attachment['type'] == 'PropertyValue' }.map { |attachment| attachment.slice('name', 'value') }
end
def mismatching_origin?(url)
@@ -231,6 +232,23 @@ class ActivityPub::ProcessAccountService < BaseService
end
end
+ def process_attachments
+ return if @json['attachment'].blank?
+
+ previous_proofs = @account.identity_proofs.to_a
+ current_proofs = []
+
+ as_array(@json['attachment']).each do |attachment|
+ next unless equals_or_includes?(attachment['type'], 'IdentityProof')
+ current_proofs << process_identity_proof(attachment)
+ end
+
+ previous_proofs.each do |previous_proof|
+ next if current_proofs.any? { |current_proof| current_proof.id == previous_proof.id }
+ previous_proof.delete
+ end
+ end
+
def process_emoji(tag)
return if skip_download?
return if tag['name'].blank? || tag['icon'].blank? || tag['icon']['url'].blank?
@@ -247,4 +265,12 @@ class ActivityPub::ProcessAccountService < BaseService
emoji.image_remote_url = image_url
emoji.save
end
+
+ def process_identity_proof(attachment)
+ provider = attachment['signatureAlgorithm']
+ provider_username = attachment['name']
+ token = attachment['signatureValue']
+
+ @account.identity_proofs.where(provider: provider, provider_username: provider_username).find_or_create_by(provider: provider, provider_username: provider_username, token: token)
+ end
end
diff --git a/app/services/activitypub/process_poll_service.rb b/app/services/activitypub/process_poll_service.rb
new file mode 100644
index 000000000..61357abd3
--- /dev/null
+++ b/app/services/activitypub/process_poll_service.rb
@@ -0,0 +1,60 @@
+# frozen_string_literal: true
+
+class ActivityPub::ProcessPollService < BaseService
+ include JsonLdHelper
+
+ def call(poll, json)
+ @json = json
+ return unless expected_type?
+
+ previous_expires_at = poll.expires_at
+
+ 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
+
+ begin
+ poll.update!(
+ last_fetched_at: Time.now.utc,
+ expires_at: expires_at,
+ options: latest_options,
+ cached_tallies: items.map { |item| item.dig('replies', 'totalItems') || 0 }
+ )
+ rescue ActiveRecord::StaleObjectError
+ poll.reload
+ retry
+ end
+
+ # If the poll had no expiration date set but now has, and people have voted,
+ # schedule a notification.
+ if previous_expires_at.nil? && poll.expires_at.present? && poll.votes.exists?
+ PollExpirationNotifyWorker.perform_at(poll.expires_at + 5.minutes, poll.id)
+ end
+ end
+
+ private
+
+ def expected_type?
+ equals_or_includes_any?(@json['type'], %w(Question))
+ end
+end
diff --git a/app/services/app_sign_up_service.rb b/app/services/app_sign_up_service.rb
index d621cc462..6dee9cd81 100644
--- a/app/services/app_sign_up_service.rb
+++ b/app/services/app_sign_up_service.rb
@@ -18,6 +18,6 @@ class AppSignUpService < BaseService
private
def allowed_registrations?
- Setting.open_registrations && !Rails.configuration.x.single_user_mode
+ Setting.registrations_mode != 'none' && !Rails.configuration.x.single_user_mode
end
end
diff --git a/app/services/batched_remove_status_service.rb b/app/services/batched_remove_status_service.rb
index cd3b14e08..e328b1739 100644
--- a/app/services/batched_remove_status_service.rb
+++ b/app/services/batched_remove_status_service.rb
@@ -35,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)
diff --git a/app/services/import_service.rb b/app/services/import_service.rb
new file mode 100644
index 000000000..4ee431ea3
--- /dev/null
+++ b/app/services/import_service.rb
@@ -0,0 +1,101 @@
+# frozen_string_literal: true
+
+require 'csv'
+
+class ImportService < BaseService
+ ROWS_PROCESSING_LIMIT = 20_000
+
+ def call(import)
+ @import = import
+ @account = @import.account
+
+ 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!
+ parse_import_data!(['Account address'])
+ import_relationships!('follow', 'unfollow', @account.following, follow_limit, reblogs: 'Show boosts')
+ end
+
+ def import_blocks!
+ parse_import_data!(['Account address'])
+ import_relationships!('block', 'unblock', @account.blocking, ROWS_PROCESSING_LIMIT)
+ end
+
+ def import_mutes!
+ parse_import_data!(['Account address'])
+ import_relationships!('mute', 'unmute', @account.muting, ROWS_PROCESSING_LIMIT, notifications: 'Hide notifications')
+ end
+
+ def import_domain_blocks!
+ parse_import_data!(['#domain'])
+ items = @data.take(ROWS_PROCESSING_LIMIT).map { |row| row['#domain'].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, extra_fields = {})
+ items = @data.take(limit).map { |row| [row['Account address']&.strip, Hash[extra_fields.map { |key, header| [key, row[header]&.strip] }]] }.reject { |(id, _)| id.blank? }
+
+ if @import.overwrite?
+ presence_hash = items.each_with_object({}) { |(id, extra), mapping| mapping[id] = [true, extra] }
+
+ overwrite_scope.find_each do |target_account|
+ if presence_hash[target_account.acct]
+ items.delete(target_account.acct)
+ extra = presence_hash[target_account.acct][1]
+ Import::RelationshipWorker.perform_async(@account.id, target_account.acct, action, extra)
+ else
+ Import::RelationshipWorker.perform_async(@account.id, target_account.acct, undo_action)
+ end
+ end
+ end
+
+ Import::RelationshipWorker.push_bulk(items) do |acct, extra|
+ [@account.id, acct, action, extra]
+ end
+ end
+
+ def parse_import_data!(default_headers)
+ data = CSV.parse(import_data, headers: true)
+ data = CSV.parse(import_data, headers: default_headers) unless data.headers&.first&.strip&.include?(' ')
+ @data = data.reject(&:blank?)
+ 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/notify_service.rb b/app/services/notify_service.rb
index b80ceef03..b5c721589 100644
--- a/app/services/notify_service.rb
+++ b/app/services/notify_service.rb
@@ -38,6 +38,10 @@ class NotifyService < BaseService
false
end
+ def blocked_poll?
+ false
+ end
+
def following_sender?
return @following_sender if defined?(@following_sender)
@following_sender = @recipient.following?(@notification.from_account) || @recipient.requested?(@notification.from_account)
@@ -88,7 +92,7 @@ class NotifyService < BaseService
def blocked?
blocked = @recipient.suspended? # Skip if the recipient account is suspended anyway
- blocked ||= from_self? # Skip for interactions with self
+ blocked ||= from_self? && @notification.type != :poll # Skip for interactions with self
return blocked if message? && from_staff?
diff --git a/app/services/post_status_service.rb b/app/services/post_status_service.rb
index 795fe00c0..74d13a016 100644
--- a/app/services/post_status_service.rb
+++ b/app/services/post_status_service.rb
@@ -15,6 +15,7 @@ class PostStatusService < BaseService
# @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
@@ -69,6 +70,7 @@ class PostStatusService < BaseService
def schedule_status!
status_for_validation = @account.statuses.build(status_attributes)
+
if status_for_validation.valid?
status_for_validation.destroy
@@ -92,17 +94,17 @@ class PostStatusService < BaseService
def postprocess_status!
LinkCrawlWorker.perform_async(@status.id) unless @status.spoiler_text?
DistributionWorker.perform_async(@status.id)
-
unless @status.local_only?
Pubsubhubbub::DistributionWorker.perform_async(@status.stream_entry.id)
ActivityPub::DistributionWorker.perform_async(@status.id)
+ PollExpirationNotifyWorker.perform_at(@status.poll.expires_at, @status.poll.id) if @status.poll
end
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
+ 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))
@@ -161,13 +163,14 @@ class PostStatusService < BaseService
text: @text,
media_attachments: @media || [],
thread: @in_reply_to,
+ poll_attributes: poll_attributes,
sensitive: (@options[:sensitive].nil? ? @account.user&.setting_default_sensitive : @options[:sensitive]) || @options[:spoiler_text].present?,
spoiler_text: @options[:spoiler_text] || '',
visibility: @visibility,
language: language_from_option(@options[:language]) || @account.user&.setting_default_language&.presence || LanguageDetector.instance.detect(@text, @account),
application: @options[:application],
local_only: local_only_option(@options[:local_only], @in_reply_to, @account.user&.setting_default_federation),
- }
+ }.compact
end
def scheduled_status_attributes
@@ -178,6 +181,12 @@ class PostStatusService < BaseService
}
end
+ def poll_attributes
+ return if @options[:poll].blank?
+
+ @options[:poll].merge(account: @account)
+ end
+
def scheduled_options
@options.tap do |options_hash|
options_hash[:in_reply_to_id] = options_hash.delete(:thread)&.id
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/reblog_service.rb b/app/services/reblog_service.rb
index 03db27406..deaa0549e 100644
--- a/app/services/reblog_service.rb
+++ b/app/services/reblog_service.rb
@@ -7,8 +7,9 @@ class ReblogService < BaseService
# Reblog a status and notify its remote author
# @param [Account] account Account to reblog from
# @param [Status] reblogged_status Status to be reblogged
+ # @param [Hash] options
# @return [Status]
- def call(account, reblogged_status)
+ def call(account, reblogged_status, options = {})
reblogged_status = reblogged_status.reblog if reblogged_status.reblog?
authorize_with account, reblogged_status, :reblog?
@@ -17,7 +18,7 @@ class ReblogService < BaseService
return reblog unless reblog.nil?
- reblog = account.statuses.create!(reblog: reblogged_status, text: '')
+ reblog = account.statuses.create!(reblog: reblogged_status, text: '', visibility: options[:visibility] || account.user&.setting_default_privacy)
DistributionWorker.perform_async(reblog.id)
@@ -38,7 +39,7 @@ class ReblogService < BaseService
reblogged_status = reblog.reblog
if reblogged_status.account.local?
- NotifyService.new.call(reblogged_status.account, reblog)
+ LocalNotificationWorker.perform_async(reblogged_status.account_id, reblog.id, reblog.class.name)
elsif reblogged_status.account.ostatus?
NotificationWorker.perform_async(stream_entry_to_xml(reblog.stream_entry), reblog.account_id, reblogged_status.account_id)
elsif reblogged_status.account.activitypub? && !reblogged_status.account.following?(reblog.account)
diff --git a/app/services/remove_status_service.rb b/app/services/remove_status_service.rb
index 28c5224b0..747f209f3 100644
--- a/app/services/remove_status_service.rb
+++ b/app/services/remove_status_service.rb
@@ -10,20 +10,26 @@ class RemoveStatusService < BaseService
@account = status.account
@tags = status.tags.pluck(:name).to_a
@mentions = status.active_mentions.includes(:account).to_a
- @reblogs = status.reblogs.to_a
+ @reblogs = status.reblogs.includes(:account).to_a
@stream_entry = status.stream_entry
@options = options
- remove_from_self if status.account.local?
- remove_from_followers
- remove_from_lists
- remove_from_affected
- remove_reblogs
- remove_from_hashtags
- remove_from_public
- remove_from_media if status.media_attachments.any?
+ RedisLock.acquire(lock_options) do |lock|
+ if lock.acquired?
+ remove_from_self if status.account.local?
+ remove_from_followers
+ remove_from_lists
+ remove_from_affected
+ remove_reblogs
+ remove_from_hashtags
+ remove_from_public
+ remove_from_media if status.media_attachments.any?
- @status.destroy!
+ @status.destroy!
+ else
+ raise Mastodon::RaceConditionError
+ end
+ end
# There is no reason to send out Undo activities when the
# cause is that the original object has been removed, since
@@ -77,8 +83,8 @@ class RemoveStatusService < BaseService
end
# ActivityPub
- ActivityPub::DeliveryWorker.push_bulk(target_accounts.select(&:activitypub?).uniq(&:inbox_url)) do |target_account|
- [signed_activity_json, @account.id, target_account.inbox_url]
+ ActivityPub::DeliveryWorker.push_bulk(target_accounts.select(&:activitypub?).uniq(&:preferred_inbox_url)) do |target_account|
+ [signed_activity_json, @account.id, target_account.preferred_inbox_url]
end
end
@@ -131,6 +137,10 @@ 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|
@@ -152,4 +162,8 @@ class RemoveStatusService < BaseService
redis.publish('timeline:public:media', @payload)
redis.publish('timeline:public:local:media', @payload) if @status.local?
end
+
+ def lock_options
+ { redis: Redis.current, key: "distribute:#{@status.id}" }
+ end
end
diff --git a/app/services/report_service.rb b/app/services/report_service.rb
index 1bcc1c0d5..73bd6694f 100644
--- a/app/services/report_service.rb
+++ b/app/services/report_service.rb
@@ -21,7 +21,8 @@ class ReportService < BaseService
@report = @source_account.reports.create!(
target_account: @target_account,
status_ids: @status_ids,
- comment: @comment
+ comment: @comment,
+ uri: @options[:uri]
)
end
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 1c31e0509..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,23 +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
@@ -47,7 +70,7 @@ class SearchService < BaseService
end
def url_query?
- query =~ /\Ahttps?:\/\//
+ @options[:type].blank? && @query =~ /\Ahttps?:\/\//
end
def url_resource_results
@@ -55,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
@@ -64,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 fc3bc03a5..6c2ecad30 100644
--- a/app/services/suspend_account_service.rb
+++ b/app/services/suspend_account_service.rb
@@ -41,6 +41,7 @@ class SuspendAccountService < BaseService
@account = account
@options = options
+ reject_follows!
purge_user!
purge_profile!
purge_content!
@@ -48,6 +49,14 @@ class SuspendAccountService < BaseService
private
+ def reject_follows!
+ return if @account.local? || !@account.activitypub?
+
+ ActivityPub::DeliveryWorker.push_bulk(Follow.where(account: @account)) do |follow|
+ [build_reject_json(follow), follow.target_account_id, follow.account.inbox_url]
+ end
+ end
+
def purge_user!
return if !@account.local? || @account.user.nil?
@@ -59,7 +68,7 @@ class SuspendAccountService < BaseService
end
def purge_content!
- distribute_delete_actor! if @account.local?
+ distribute_delete_actor! if @account.local? && !@options[:skip_distribution]
@account.statuses.reorder(nil).find_in_batches do |statuses|
BatchedRemoveStatusService.new.call(statuses, skip_side_effects: @options[:destroy])
@@ -84,7 +93,7 @@ class SuspendAccountService < BaseService
@account.locked = false
@account.display_name = ''
@account.note = ''
- @account.fields = {}
+ @account.fields = []
@account.statuses_count = 0
@account.followers_count = 0
@account.following_count = 0
@@ -120,6 +129,14 @@ class SuspendAccountService < BaseService
@delete_actor_json = Oj.dump(ActivityPub::LinkedDataSignature.new(payload).sign!(@account))
end
+ def build_reject_json(follow)
+ ActiveModelSerializers::SerializableResource.new(
+ follow,
+ serializer: ActivityPub::RejectFollowSerializer,
+ adapter: ActivityPub::Adapter
+ ).to_json
+ end
+
def delivery_inboxes
@delivery_inboxes ||= @account.followers.inboxes + Relay.enabled.pluck(:inbox_url)
end
diff --git a/app/services/vote_service.rb b/app/services/vote_service.rb
new file mode 100644
index 000000000..81af9ef3a
--- /dev/null
+++ b/app/services/vote_service.rb
@@ -0,0 +1,59 @@
+# 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
+
+ ActivityTracker.increment('activity:interactions')
+
+ if @poll.account.local?
+ distribute_poll!
+ else
+ deliver_votes!
+ queue_final_poll_check!
+ end
+ end
+
+ private
+
+ def distribute_poll!
+ return if @poll.hide_totals?
+ ActivityPub::DistributePollUpdateWorker.perform_in(3.minutes, @poll.status.id)
+ end
+
+ def queue_final_poll_check!
+ return unless @poll.expires?
+ PollExpirationNotifyWorker.perform_at(@poll.expires_at + 5.minutes, @poll.id)
+ end
+
+ def deliver_votes!
+ @votes.each do |vote|
+ ActivityPub::DeliveryWorker.perform_async(
+ build_json(vote),
+ @account.id,
+ @poll.account.inbox_url
+ )
+ end
+ end
+
+ def build_json(vote)
+ ActiveModelSerializers::SerializableResource.new(
+ vote,
+ serializer: ActivityPub::VoteSerializer,
+ adapter: ActivityPub::Adapter
+ ).to_json
+ end
+end
diff --git a/app/validators/existing_username_validator.rb b/app/validators/existing_username_validator.rb
new file mode 100644
index 000000000..b31d09827
--- /dev/null
+++ b/app/validators/existing_username_validator.rb
@@ -0,0 +1,14 @@
+# frozen_string_literal: true
+
+class ExistingUsernameValidator < ActiveModel::EachValidator
+ def validate_each(record, attribute, value)
+ return if value.blank?
+
+ if options[:multiple]
+ missing_usernames = value.split(',').map { |username| username.strip.gsub(/\A@/, '') }.map { |username| username unless Account.find_local(username) }.compact
+ record.errors.add(attribute, I18n.t('existing_username_validator.not_found_multiple', usernames: missing_usernames.join(', '))) if missing_usernames.any?
+ else
+ record.errors.add(attribute, I18n.t('existing_username_validator.not_found')) unless Account.find_local(value.strip.gsub(/\A@/, ''))
+ end
+ end
+end
diff --git a/app/validators/html_validator.rb b/app/validators/html_validator.rb
new file mode 100644
index 000000000..1c9cd303c
--- /dev/null
+++ b/app/validators/html_validator.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+class HtmlValidator < ActiveModel::EachValidator
+ ERROR_RE = /Opening and ending tag mismatch|Unexpected end tag/
+
+ def validate_each(record, attribute, value)
+ return if value.blank?
+
+ errors = html_errors(value)
+
+ record.errors.add(attribute, I18n.t('html_validator.invalid_markup', error: errors.first.to_s)) unless errors.empty?
+ end
+
+ private
+
+ def html_errors(str)
+ fragment = Nokogiri::HTML.fragment(options[:wrap_with] ? "<#{options[:wrap_with]}>#{str}#{options[:wrap_with]}>" : str)
+ fragment.errors.select { |error| ERROR_RE =~ error.message }
+ end
+end
diff --git a/app/validators/poll_validator.rb b/app/validators/poll_validator.rb
new file mode 100644
index 000000000..9d7321cad
--- /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 = 1.month.freeze
+ MIN_EXPIRATION = 5.minutes.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).ceil < MIN_EXPIRATION
+ 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/about/_features.html.haml b/app/views/about/_features.html.haml
deleted file mode 100644
index 8fbc6b760..000000000
--- a/app/views/about/_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/about/_forms.html.haml b/app/views/about/_forms.html.haml
deleted file mode 100644
index 81f7173f7..000000000
--- a/app/views/about/_forms.html.haml
+++ /dev/null
@@ -1,15 +0,0 @@
-- if @instance_presenter.open_registrations
- = render 'registration'
-- else
- = link_to t('auth.register_elsewhere'), 'https://joinmastodon.org', class: 'button button-primary'
-
- .closed-registrations-message
- - if @instance_presenter.closed_registrations_message.blank?
- %p= t('about.closed_registrations')
- - else
- = @instance_presenter.closed_registrations_message.html_safe
-
-.separator-or
- %span= t('auth.or')
-
-= link_to t('auth.login'), new_user_session_path, class: 'button button-alternative-2 webapp-btn'
diff --git a/app/views/about/_links.html.haml b/app/views/about/_links.html.haml
deleted file mode 100644
index f79c37e65..000000000
--- a/app/views/about/_links.html.haml
+++ /dev/null
@@ -1,16 +0,0 @@
-.container-alt.links
- .brand
- = link_to root_url do
- = image_tag asset_pack_path('logo_full.svg'), alt: 'Mastodon'
-
- %ul.nav
- %li
- - if user_signed_in?
- = link_to t('settings.back'), root_url, class: 'webapp-btn'
- - else
- = link_to t('auth.login'), new_user_session_path, class: 'webapp-btn'
- %li= link_to t('about.about_this'), about_more_path
- %li
- = link_to 'https://joinmastodon.org/' do
- = "#{t('about.other_instances')}"
- %i.fa.fa-external-link{ style: 'padding-left: 5px;' }
diff --git a/app/views/about/_login.html.haml b/app/views/about/_login.html.haml
new file mode 100644
index 000000000..d286f0d3c
--- /dev/null
+++ b/app/views/about/_login.html.haml
@@ -0,0 +1,13 @@
+= simple_form_for(new_user, url: user_session_path) do |f|
+ .fields-group
+ - if use_seamless_external_login?
+ = f.input :email, placeholder: t('simple_form.labels.defaults.username_or_email'), input_html: { 'aria-label' => t('simple_form.labels.defaults.username_or_email') }, hint: false
+ - else
+ = f.input :email, placeholder: t('simple_form.labels.defaults.email'), input_html: { 'aria-label' => t('simple_form.labels.defaults.email') }, hint: false
+
+ = f.input :password, placeholder: t('simple_form.labels.defaults.password'), input_html: { 'aria-label' => t('simple_form.labels.defaults.password') }, hint: false
+
+ .actions
+ = f.button :button, t('auth.login'), type: :submit, class: 'button button-primary'
+
+ %p.hint.subtle-hint= link_to t('auth.trouble_logging_in'), new_user_password_path
diff --git a/app/views/about/_registration.html.haml b/app/views/about/_registration.html.haml
index ee4f8fe2e..ff32ec8c4 100644
--- a/app/views/about/_registration.html.haml
+++ b/app/views/about/_registration.html.haml
@@ -1,12 +1,28 @@
= simple_form_for(new_user, url: user_registration_path) do |f|
- = f.simple_fields_for :account do |account_fields|
- = account_fields.input :username, wrapper: :with_label, autofocus: true, label: false, required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.username'), :autocomplete => 'off', placeholder: t('simple_form.labels.defaults.username') }, append: "@#{site_hostname}", hint: false
+ .simple_form__overlay-area
+ %p.lead= t('about.federation_hint_html', instance: content_tag(:strong, site_hostname))
- = f.input :email, placeholder: t('simple_form.labels.defaults.email'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.email'), :autocomplete => 'off' }, hint: false
- = f.input :password, placeholder: t('simple_form.labels.defaults.password'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.password'), :autocomplete => 'off' }, hint: false
- = f.input :password_confirmation, placeholder: t('simple_form.labels.defaults.confirm_password'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.confirm_password'), :autocomplete => 'off' }, hint: false
+ .fields-group
+ = f.simple_fields_for :account do |account_fields|
+ = account_fields.input :username, wrapper: :with_label, label: false, required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.username'), :autocomplete => 'off', placeholder: t('simple_form.labels.defaults.username') }, append: "@#{site_hostname}", hint: false, disabled: closed_registrations?
- .actions
- = f.button :button, t('auth.register'), type: :submit, class: 'button button-primary'
+ = f.input :email, placeholder: t('simple_form.labels.defaults.email'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.email'), :autocomplete => 'off' }, hint: false, disabled: closed_registrations?
+ = f.input :password, placeholder: t('simple_form.labels.defaults.password'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.password'), :autocomplete => 'off' }, hint: false, disabled: closed_registrations?
+ = f.input :password_confirmation, placeholder: t('simple_form.labels.defaults.confirm_password'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.confirm_password'), :autocomplete => 'off' }, hint: false, disabled: closed_registrations?
- %p.hint.subtle-hint=t('auth.agreement_html', rules_path: about_more_path, terms_path: terms_path)
+ - if approved_registrations?
+ .fields-group
+ = f.simple_fields_for :invite_request do |invite_request_fields|
+ = invite_request_fields.input :text, as: :text, wrapper: :with_block_label, required: false
+
+ .fields-group
+ = f.input :agreement, as: :boolean, wrapper: :with_label, label: t('auth.checkbox_agreement_html', rules_path: about_more_path, terms_path: terms_path), disabled: closed_registrations?
+
+ .actions
+ = f.button :button, sign_up_message, type: :submit, class: 'button button-primary', disabled: closed_registrations?
+
+ - if closed_registrations? && @instance_presenter.closed_registrations_message.present?
+ .simple_form__overlay-area__overlay
+ .simple_form__overlay-area__overlay__content.rich-formatting
+ .block-icon= fa_icon 'warning'
+ = @instance_presenter.closed_registrations_message.html_safe
diff --git a/app/views/about/more.html.haml b/app/views/about/more.html.haml
index f94c7c06f..b248ed1d2 100644
--- a/app/views/about/more.html.haml
+++ b/app/views/about/more.html.haml
@@ -9,7 +9,7 @@
.column-0
.public-account-header.public-account-header--no-bar
.public-account-header__image
- = image_tag @instance_presenter.hero&.file&.url || @instance_presenter.thumbnail&.file&.url || asset_pack_path('preview.jpg'), alt: @instance_presenter.site_title, class: 'parallax'
+ = image_tag @instance_presenter.hero&.file&.url || @instance_presenter.thumbnail&.file&.url || asset_pack_path('media/images/preview.jpg'), alt: @instance_presenter.site_title, class: 'parallax'
.column-1
.landing-page__call-to-action{ dir: 'ltr' }
@@ -25,7 +25,7 @@
%span= t 'about.status_count_after', count: @instance_presenter.status_count
.row__mascot
.landing-page__mascot
- = image_tag @instance_presenter.mascot&.file&.url || asset_pack_path('elephant_ui_plane.svg'), alt: ''
+ = image_tag @instance_presenter.mascot&.file&.url || asset_pack_path('media/images/elephant_ui_plane.svg'), alt: ''
.column-2
.landing-page__information.contact-widget
diff --git a/app/views/about/show.html.haml b/app/views/about/show.html.haml
index f5a78665d..45e5f0717 100644
--- a/app/views/about/show.html.haml
+++ b/app/views/about/show.html.haml
@@ -3,144 +3,78 @@
- content_for :header_tags do
%link{ rel: 'canonical', href: about_url }/
- %script#initial-state{ type: 'application/json' }!= json_escape(@initial_state_json)
- = javascript_pack_tag 'about', integrity: true, crossorigin: 'anonymous'
= render partial: 'shared/og'
-.landing-page.alternative
- .container
- .grid
- .column-0
- .brand
- = link_to root_url do
- = image_tag asset_pack_path('logo_full.svg'), alt: 'Mastodon'
+.landing
+ .landing__brand
+ = link_to root_url, class: 'brand' do
+ = image_pack_tag 'logo_full.svg', alt: 'Mastodon'
+ %span.brand__tagline=t 'about.tagline'
- - if Setting.timeline_preview
- .column-1
- .landing-page__forms
- .brand
- = link_to root_url do
- = image_tag asset_pack_path('logo_full.svg'), alt: 'Mastodon'
+ .landing__grid
+ .landing__grid__column.landing__grid__column-registration
+ .box-widget
+ = render 'registration'
- = render 'forms'
+ .directory
+ - if Setting.profile_directory
+ .directory__tag
+ = optional_link_to Setting.profile_directory, explore_path do
+ %h4
+ = fa_icon 'address-book fw'
+ = t('about.discover_users')
+ %small= t('about.browse_directory')
- - else
- .column-1.non-preview
- .landing-page__forms
- .brand
- = link_to root_url do
- = image_tag asset_pack_path('logo_full.svg'), alt: 'Mastodon'
+ .avatar-stack
+ - @instance_presenter.sample_accounts.each do |account|
+ = image_tag current_account&.user&.setting_auto_play_gif ? account.avatar_original_url : account.avatar_static_url, width: 48, height: 48, alt: '', class: 'account__avatar'
- = render 'forms'
+ - if Setting.timeline_preview
+ .directory__tag
+ = optional_link_to Setting.timeline_preview, public_timeline_path do
+ %h4
+ = fa_icon 'globe fw'
+ = t('about.see_whats_happening')
+ %small= t('about.browse_public_posts')
- - if Setting.timeline_preview
- .column-2
- .landing-page__hero
- = image_tag @instance_presenter.hero&.file&.url || @instance_presenter.thumbnail&.file&.url || asset_pack_path('preview.jpg'), alt: @instance_presenter.site_title
+ .directory__tag
+ = link_to 'https://joinmastodon.org/apps', target: '_blank', rel: 'noopener' do
+ %h4
+ = fa_icon 'tablet fw'
+ = t('about.get_apps')
+ %small= t('about.apps_platforms')
- .landing-page__information
- .landing-page__short-description
- .row
- .landing-page__logo
- = image_tag asset_pack_path('logo_transparent.svg'), alt: 'Mastodon'
+ .landing__grid__column.landing__grid__column-login
+ .box-widget
+ = render 'login'
- %h1
- = @instance_presenter.site_title
- %small!= t 'about.hosted_on', domain: content_tag(:span, site_hostname)
+ .hero-widget
+ .hero-widget__img
+ = image_tag @instance_presenter.hero&.file&.url || @instance_presenter.thumbnail&.file&.url || asset_pack_path('media/images/preview.jpg'), alt: @instance_presenter.site_title
- %p= @instance_presenter.site_description.html_safe.presence || t('about.generic_description', domain: site_hostname)
-
- .landing-page__call-to-action{ dir: 'ltr' }
- .row
- .row__information-board
- .information-board__section
- %span= t 'about.user_count_before'
- %strong= number_with_delimiter @instance_presenter.user_count
- %span= t 'about.user_count_after', count: @instance_presenter.user_count
- .information-board__section
- %span= t 'about.status_count_before'
- %strong= number_with_delimiter @instance_presenter.status_count
- %span= t 'about.status_count_after', count: @instance_presenter.status_count
- .row__mascot
- .landing-page__mascot
- = image_tag @instance_presenter.mascot&.file&.url || asset_pack_path('elephant_ui_plane.svg'), alt: ''
-
- - else
- .column-2.non-preview
- .landing-page__hero
- = image_tag @instance_presenter.hero&.file&.url || @instance_presenter.thumbnail&.file&.url || asset_pack_path('preview.jpg'), alt: @instance_presenter.site_title
-
- .landing-page__information
- .landing-page__short-description
- .row
- .landing-page__logo
- = image_tag asset_pack_path('logo_transparent.svg'), alt: 'Mastodon'
-
- %h1
- = @instance_presenter.site_title
- %small!= t 'about.hosted_on', domain: content_tag(:span, site_hostname)
-
- %p= @instance_presenter.site_description.html_safe.presence || t('about.generic_description', domain: site_hostname)
-
- .landing-page__call-to-action
- .row
- .row__information-board
- .information-board__section
- %span= t 'about.user_count_before'
- %strong= number_with_delimiter @instance_presenter.user_count
- %span= t 'about.user_count_after', count: @instance_presenter.user_count
- .information-board__section
- %span= t 'about.status_count_before'
- %strong= number_with_delimiter @instance_presenter.status_count
- %span= t 'about.status_count_after', count: @instance_presenter.status_count
- .row__mascot
- .landing-page__mascot
- = image_tag @instance_presenter.mascot&.file&.url || asset_pack_path('elephant_ui_plane.svg'), alt: ''
-
- - if Setting.timeline_preview
- .column-3
- #mastodon-timeline{ data: { props: Oj.dump(default_props) } }
-
- - if Setting.timeline_preview
- .column-4.landing-page__information
- .landing-page__features
- .features-list
- %div
- %h3= t 'about.what_is_mastodon'
- %p= t 'about.about_mastodon_html'
- %div.contact
- %h3= t 'about.administered_by'
- = account_link_to(@instance_presenter.contact_account, link_to(t('about.learn_more'), about_more_path, class: 'button button-alternative'))
-
- = render 'features'
-
- .landing-page__features__action
- = link_to t('about.learn_more'), 'https://joinmastodon.org/', class: 'button button-alternative'
-
- .landing-page__footer
+ - if @instance_presenter.site_short_description.present?
+ .hero-widget__text
%p
- = link_to t('about.source_code'), @instance_presenter.source_url
- = " (#{@instance_presenter.version_number})"
+ = @instance_presenter.site_short_description.html_safe.presence
+ = link_to about_more_path do
+ = t('about.learn_more')
+ = fa_icon 'angle-double-right'
- - else
- .column-4.non-preview.landing-page__information
- .landing-page__features
- .features-list
- %div
- %h3= t 'about.what_is_mastodon'
- %p= t 'about.about_mastodon_html'
- %div.contact
- %h3= t 'about.administered_by'
- = account_link_to(@instance_presenter.contact_account, link_to(t('about.learn_more'), about_more_path, class: 'button button-alternative'))
+ .hero-widget__footer
+ .hero-widget__footer__column
+ %h4= t 'about.administered_by'
- = render 'features'
+ = account_link_to @instance_presenter.contact_account
- .landing-page__features__action
- = link_to t('about.learn_more'), 'https://joinmastodon.org/', class: 'button button-alternative'
+ .hero-widget__footer__column
+ %h4= t 'about.server_stats'
- .landing-page__footer
- %p
- = link_to t('about.source_code'), @instance_presenter.source_url
- = " (#{@instance_presenter.version_number})"
-
-#modal-container
+ %div{ style: 'display: flex' }
+ .hero-widget__counter{ style: 'width: 50%' }
+ %strong= number_to_human @instance_presenter.user_count, strip_insignificant_zeros: true
+ %span= t 'about.user_count_after', count: @instance_presenter.user_count
+ .hero-widget__counter{ style: 'width: 50%' }
+ %strong= number_to_human @instance_presenter.active_user_count, strip_insignificant_zeros: true
+ %span
+ = t 'about.active_count_after'
+ %abbr{ title: t('about.active_footnote') } *
diff --git a/app/views/accounts/_bio.html.haml b/app/views/accounts/_bio.html.haml
index 2ea34a048..efc26d136 100644
--- a/app/views/accounts/_bio.html.haml
+++ b/app/views/accounts/_bio.html.haml
@@ -1,7 +1,17 @@
+- proofs = account.identity_proofs.active
+- fields = account.fields
+
.public-account-bio
- - unless account.fields.empty?
+ - unless fields.empty? && proofs.empty?
.account__header__fields
- - account.fields.each do |field|
+ - proofs.each do |proof|
+ %dl
+ %dt= proof.provider.capitalize
+ %dd.verified
+ = link_to fa_icon('check'), proof.badge.proof_url, class: 'verified__mark', title: t('accounts.link_verified_on', date: l(proof.updated_at))
+ = link_to proof.provider_username, proof.badge.profile_url
+
+ - fields.each do |field|
%dl
%dt.emojify{ title: field.name }= Formatter.instance.format_field(account, field.name, custom_emojify: true)
%dd{ title: field.value, class: custom_field_classes(field) }
@@ -9,6 +19,7 @@
%span.verified__mark{ title: t('accounts.link_verified_on', date: l(field.verified_at)) }
= fa_icon 'check'
= Formatter.instance.format_field(account, field.value, custom_emojify: true)
+
= account_badge(account)
- if account.note.present?
diff --git a/app/views/accounts/show.html.haml b/app/views/accounts/show.html.haml
index 0ee9dd7de..e4223119c 100644
--- a/app/views/accounts/show.html.haml
+++ b/app/views/accounts/show.html.haml
@@ -33,7 +33,9 @@
= active_link_to t('accounts.posts_with_replies'), short_account_with_replies_url(@account)
= active_link_to t('accounts.media'), short_account_media_url(@account)
- - if @statuses.empty?
+ - if user_signed_in? && @account.blocking?(current_account)
+ .nothing-here.nothing-here--under-tabs= t('accounts.unavailable')
+ - elsif @statuses.empty?
= nothing_here 'nothing-here--under-tabs'
- else
.activity-stream
@@ -63,4 +65,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/_account.html.haml b/app/views/admin/accounts/_account.html.haml
index 1e1bb1812..eba3ad804 100644
--- a/app/views/admin/accounts/_account.html.haml
+++ b/app/views/admin/accounts/_account.html.haml
@@ -5,7 +5,7 @@
%div{ style: 'margin: -2px 0' }= account_badge(account, all: true)
%td
- if account.user_current_sign_in_ip
- %samp= account.user_current_sign_in_ip
+ %samp.ellipsized-ip{ title: account.user_current_sign_in_ip }= account.user_current_sign_in_ip
- else
\-
%td
@@ -14,5 +14,9 @@
- else
\-
%td
- = table_link_to 'circle', t('admin.accounts.web'), web_path("accounts/#{account.id}")
- = table_link_to 'globe', t('admin.accounts.public'), TagManager.instance.url_for(account)
+ - if account.local? && account.user_pending?
+ = table_link_to 'check', t('admin.accounts.approve'), approve_admin_account_path(account.id), method: :post, data: { confirm: t('admin.accounts.are_you_sure') } if can?(:approve, account.user)
+ = table_link_to 'times', t('admin.accounts.reject'), reject_admin_account_path(account.id), method: :post, data: { confirm: t('admin.accounts.are_you_sure') } if can?(:reject, account.user)
+ - else
+ = table_link_to 'circle', t('admin.accounts.web'), web_path("accounts/#{account.id}")
+ = table_link_to 'globe', t('admin.accounts.public'), TagManager.instance.url_for(account)
diff --git a/app/views/admin/accounts/index.html.haml b/app/views/admin/accounts/index.html.haml
index 91fddadf8..7e9adb3ff 100644
--- a/app/views/admin/accounts/index.html.haml
+++ b/app/views/admin/accounts/index.html.haml
@@ -10,9 +10,10 @@
.filter-subset
%strong= t('admin.accounts.moderation.title')
%ul
- %li= filter_link_to t('admin.accounts.moderation.active'), silenced: nil, suspended: nil
- %li= filter_link_to t('admin.accounts.moderation.silenced'), silenced: '1', suspended: nil
- %li= filter_link_to t('admin.accounts.moderation.suspended'), suspended: '1', silenced: nil
+ %li= link_to safe_join([t('admin.accounts.moderation.pending'), "(#{number_with_delimiter(User.pending.count)})"], ' '), admin_pending_accounts_path
+ %li= filter_link_to t('admin.accounts.moderation.active'), silenced: nil, suspended: nil, pending: nil
+ %li= filter_link_to t('admin.accounts.moderation.silenced'), silenced: '1', suspended: nil, pending: nil
+ %li= filter_link_to t('admin.accounts.moderation.suspended'), suspended: '1', silenced: nil, pending: nil
.filter-subset
%strong= t('admin.accounts.role')
%ul
@@ -26,8 +27,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 280a834ba..7494c9fa2 100644
--- a/app/views/admin/accounts/show.html.haml
+++ b/app/views/admin/accounts/show.html.haml
@@ -37,6 +37,8 @@
%span.red= t('admin.accounts.disabled')
- elsif @account.local? && !@account.user&.confirmed?
%span.neutral= t('admin.accounts.confirming')
+ - elsif @account.local? && !@account.user_approved?
+ %span.neutral= t('admin.accounts.pending')
- else
%span.neutral= t('admin.accounts.no_limits_imposed')
.dashboard__counters__label= t 'admin.accounts.login_status'
@@ -95,7 +97,7 @@
%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
+ - elsif @account.user_approved?
= table_link_to 'lock', t('admin.accounts.disable'), new_admin_account_action_path(@account.id, type: 'disable') if can?(:disable, @account.user)
%tr
@@ -144,28 +146,38 @@
= 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?
+ - if !@account.memorial? && @account.user_approved?
= link_to t('admin.accounts.memorialize'), memorialize_admin_account_path(@account.id), method: :post, data: { confirm: t('admin.accounts.are_you_sure') }, class: 'button button--destructive' if can?(:memorialize, @account)
- else
= link_to t('admin.accounts.redownload'), redownload_admin_account_path(@account.id), method: :post, class: 'button' if can?(:redownload, @account)
%div{ style: 'float: left' }
- - if @account.local?
+ - if @account.local? && @account.user_approved?
= link_to t('admin.accounts.warn'), new_admin_account_action_path(@account.id, type: 'none'), class: 'button' if can?(:warn, @account)
- if @account.silenced?
= link_to t('admin.accounts.undo_silenced'), unsilence_admin_account_path(@account.id), method: :post, class: 'button' if can?(:unsilence, @account)
- - else
+ - elsif !@account.local? || @account.user_approved?
= 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?
+ - if @account.user_pending?
+ = link_to t('admin.accounts.approve'), approve_admin_account_path(@account.id), method: :post, data: { confirm: t('admin.accounts.are_you_sure') }, class: 'button' if can?(:approve, @account.user)
+ = link_to t('admin.accounts.reject'), reject_admin_account_path(@account.id), method: :post, data: { confirm: t('admin.accounts.are_you_sure') }, class: 'button button--destructive' if can?(:reject, @account.user)
+
- 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
+ - elsif !@account.local? || @account.user_approved?
= 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'
+
%hr.spacer/
- unless @warnings.empty?
diff --git a/app/views/admin/dashboard/index.html.haml b/app/views/admin/dashboard/index.html.haml
index fa3d70e9e..d448e3862 100644
--- a/app/views/admin/dashboard/index.html.haml
+++ b/app/views/admin/dashboard/index.html.haml
@@ -40,35 +40,17 @@
%h4= t 'admin.dashboard.features'
%ul
%li
- = link_to t('admin.dashboard.feature_registrations'), edit_admin_settings_path
- - if @registrations_enabled
- %span.pull-right.positive-hint= fa_icon 'check fw'
- - else
- %span.pull-right.negative-hint= fa_icon 'times fw'
+ = feature_hint(link_to(t('admin.dashboard.feature_registrations'), edit_admin_settings_path), @registrations_enabled)
%li
- = link_to t('admin.dashboard.feature_invites'), edit_admin_settings_path
- - if @invites_enabled
- %span.pull-right.positive-hint= fa_icon 'check fw'
- - else
- %span.pull-right.negative-hint= fa_icon 'times fw'
+ = feature_hint(link_to(t('admin.dashboard.feature_invites'), edit_admin_settings_path), @invites_enabled)
%li
- = link_to t('admin.dashboard.feature_deletions'), edit_admin_settings_path
- - if @deletions_enabled
- %span.pull-right.positive-hint= fa_icon 'check fw'
- - else
- %span.pull-right.negative-hint= fa_icon 'times fw'
+ = feature_hint(link_to(t('admin.dashboard.feature_deletions'), edit_admin_settings_path), @deletions_enabled)
%li
- = link_to t('admin.dashboard.feature_profile_directory'), edit_admin_settings_path
- - if @profile_directory
- %span.pull-right.positive-hint= fa_icon 'check fw'
- - else
- %span.pull-right.negative-hint= fa_icon 'times fw'
+ = feature_hint(link_to(t('admin.dashboard.feature_profile_directory'), edit_admin_settings_path), @profile_directory)
%li
- = link_to t('admin.dashboard.feature_relay'), admin_relays_path
- - if @relay_enabled
- %span.pull-right.positive-hint= fa_icon 'check fw'
- - else
- %span.pull-right.negative-hint= fa_icon 'times fw'
+ = feature_hint(link_to(t('admin.dashboard.feature_timeline_preview'), edit_admin_settings_path), @timeline_preview)
+ %li
+ = feature_hint(link_to(t('admin.dashboard.feature_relay'), admin_relays_path), @relay_enabled)
.dashboard__widgets__versions
%div
@@ -103,47 +85,19 @@
%h4= t 'admin.dashboard.config'
%ul
%li
- = t('admin.dashboard.search')
- - if @search_enabled
- %span.pull-right.positive-hint= fa_icon 'check fw'
- - else
- %span.pull-right.negative-hint= fa_icon 'times fw'
+ = feature_hint(t('admin.dashboard.search'), @search_enabled)
%li
- = t('admin.dashboard.single_user_mode')
- - if @single_user_mode
- %span.pull-right.positive-hint= fa_icon 'check fw'
- - else
- %span.pull-right.negative-hint= fa_icon 'times fw'
+ = feature_hint(t('admin.dashboard.single_user_mode'), @single_user_mode)
%li
- LDAP
- - if @ldap_enabled
- %span.pull-right.positive-hint= fa_icon 'check fw'
- - else
- %span.pull-right.negative-hint= fa_icon 'times fw'
+ = feature_hint('LDAP', @ldap_enabled)
%li
- CAS
- - if @cas_enabled
- %span.pull-right.positive-hint= fa_icon 'check fw'
- - else
- %span.pull-right.negative-hint= fa_icon 'times fw'
+ = feature_hint('CAS', @cas_enabled)
%li
- SAML
- - if @saml_enabled
- %span.pull-right.positive-hint= fa_icon 'check fw'
- - else
- %span.pull-right.negative-hint= fa_icon 'times fw'
+ = feature_hint('SAML', @saml_enabled)
%li
- PAM
- - if @pam_enabled
- %span.pull-right.positive-hint= fa_icon 'check fw'
- - else
- %span.pull-right.negative-hint= fa_icon 'times fw'
+ = feature_hint('PAM', @pam_enabled)
%li
- = t 'admin.dashboard.hidden_service'
- - if @hidden_service
- %span.pull-right.positive-hint= fa_icon 'check fw'
- - else
- %span.pull-right.negative-hint= fa_icon 'times fw'
+ = feature_hint(t('admin.dashboard.hidden_service'), @hidden_service)
.dashboard__widgets__trends
%div
diff --git a/app/views/admin/instances/index.html.haml b/app/views/admin/instances/index.html.haml
index ce35b5db4..9574c3147 100644
--- a/app/views/admin/instances/index.html.haml
+++ b/app/views/admin/instances/index.html.haml
@@ -11,6 +11,20 @@
%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
+ - 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.accounts.search')
+ = link_to t('admin.accounts.reset'), admin_instances_path, class: 'button negative'
+
%hr.spacer/
- @instances.each do |instance|
@@ -19,7 +33,7 @@
%h4
= instance.domain
%small
- = t('admin.instances.known_accounts', count: instance.accounts_count)
+ = t('admin.instances.known_accounts', count: instance.cached_accounts_count)
- if instance.domain_block
- if !instance.domain_block.noop?
diff --git a/app/views/admin/invites/_invite.html.haml b/app/views/admin/invites/_invite.html.haml
index d7b697286..e6ad9de34 100644
--- a/app/views/admin/invites/_invite.html.haml
+++ b/app/views/admin/invites/_invite.html.haml
@@ -1,21 +1,30 @@
%tr
+ %td
+ .input-copy
+ .input-copy__wrapper
+ %input{ type: :text, maxlength: '999', spellcheck: 'false', readonly: 'true', value: public_invite_url(invite_code: invite.code) }
+ %button{ type: :button }= t('generic.copy')
+
%td
.name-tag
= image_tag invite.user.account.avatar.url(:original), alt: '', width: 16, height: 16, class: 'avatar'
%span.username= invite.user.account.username
- %td
- = invite.uses
- = " / #{invite.max_uses}" unless invite.max_uses.nil?
- %td
- - if invite.expired?
- = t('invites.expired')
- - else
+
+ - if invite.valid_for_use?
+ %td
+ = fa_icon 'user fw'
+ = invite.uses
+ = " / #{invite.max_uses}" unless invite.max_uses.nil?
+ %td
- if invite.expires_at.nil?
∞
- else
%time.formatted{ datetime: invite.expires_at.iso8601, title: l(invite.expires_at) }
= l invite.expires_at
- %td= table_link_to 'link', public_invite_url(invite_code: invite.code), public_invite_url(invite_code: invite.code)
+ - else
+ %td{ colspan: 2 }
+ = t('invites.expired')
+
%td
- - if !invite.expired? && policy(invite).destroy?
+ - if invite.valid_for_use? && policy(invite).destroy?
= table_link_to 'times', t('invites.delete'), admin_invite_path(invite), method: :delete
diff --git a/app/views/admin/invites/index.html.haml b/app/views/admin/invites/index.html.haml
index 42159e9f3..ee6ba0f57 100644
--- a/app/views/admin/invites/index.html.haml
+++ b/app/views/admin/invites/index.html.haml
@@ -18,15 +18,15 @@
%hr.spacer/
-.table-wrapper
- %table.table
+.table-wrapper.simple_form
+ %table.table.table--invites
%thead
%tr
+ %th
%th
%th= t('invites.table.uses')
%th= t('invites.table.expires_at')
%th
- %th
%tbody
= render @invites
diff --git a/app/views/admin/pending_accounts/_account.html.haml b/app/views/admin/pending_accounts/_account.html.haml
new file mode 100644
index 000000000..1ed5dafdd
--- /dev/null
+++ b/app/views/admin/pending_accounts/_account.html.haml
@@ -0,0 +1,14 @@
+.batch-table__row
+ %label.batch-table__row__select.batch-table__row__select--aligned.batch-checkbox
+ = f.check_box :account_ids, { multiple: true, include_hidden: false }, account.id
+ .batch-table__row__content.pending-account
+ .pending-account__header
+ = link_to admin_account_path(account.id) do
+ %strong= account.user_email
+ = "(@#{account.username})"
+ %br/
+ = account.user_current_sign_in_ip
+
+ - if account.user&.invite_request&.text&.present?
+ .pending-account__body
+ %p= account.user&.invite_request&.text
diff --git a/app/views/admin/pending_accounts/index.html.haml b/app/views/admin/pending_accounts/index.html.haml
new file mode 100644
index 000000000..7ce5b8213
--- /dev/null
+++ b/app/views/admin/pending_accounts/index.html.haml
@@ -0,0 +1,33 @@
+- content_for :page_title do
+ = t('admin.pending_accounts.title', count: User.pending.count)
+
+- content_for :header_tags do
+ = javascript_pack_tag 'admin', integrity: true, async: true, crossorigin: 'anonymous'
+
+= form_for(@form, url: batch_admin_pending_accounts_path) do |f|
+ = hidden_field_tag :page, params[:page] || 1
+
+ .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('check'), t('admin.accounts.approve')]), name: :approve, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') }
+
+ = f.button safe_join([fa_icon('times'), t('admin.accounts.reject')]), name: :reject, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') }
+ .batch-table__body
+ - if @accounts.empty?
+ = nothing_here 'nothing-here--under-tabs'
+ - else
+ = render partial: 'account', collection: @accounts, locals: { f: f }
+
+= paginate @accounts
+
+%hr.spacer/
+
+%div{ style: 'overflow: hidden' }
+ %div{ style: 'float: right' }
+ = link_to t('admin.accounts.reject_all'), reject_all_admin_pending_accounts_path, method: :post, data: { confirm: t('admin.accounts.are_you_sure') }, class: 'button button--destructive'
+
+ %div
+ = link_to t('admin.accounts.approve_all'), approve_all_admin_pending_accounts_path, method: :post, data: { confirm: t('admin.accounts.are_you_sure') }, class: 'button'
diff --git a/app/views/admin/settings/edit.html.haml b/app/views/admin/settings/edit.html.haml
index 7afa9ec37..1c2c00f10 100644
--- a/app/views/admin/settings/edit.html.haml
+++ b/app/views/admin/settings/edit.html.haml
@@ -2,12 +2,16 @@
= t('admin.settings.title')
= simple_form_for @admin_settings, url: admin_settings_path, html: { method: :patch } do |f|
+ = render 'shared/error_messages', object: @admin_settings
.fields-group
= f.input :site_title, wrapper: :with_label, label: t('admin.settings.site_title')
- .fields-group
- = f.input :theme, collection: Themes.instance.names, label_method: lambda { |theme| I18n.t("themes.#{theme}", default: theme) }, wrapper: :with_label, include_blank: false
+ .fields-row
+ .fields-row__column.fields-row__column-6.fields-group
+ = f.input :theme, collection: Themes.instance.names, label_method: lambda { |theme| I18n.t("themes.#{theme}", default: theme) }, wrapper: :with_label, include_blank: false
+ .fields-row__column.fields-row__column-6.fields-group
+ = f.input :registrations_mode, collection: %w(open approved none), wrapper: :with_label, label: t('admin.settings.registrations_mode.title'), include_blank: false, label_method: lambda { |mode| I18n.t("admin.settings.registrations_mode.modes.#{mode}") }
.fields-row
.fields-row__column.fields-row__column-6.fields-group
@@ -47,9 +51,6 @@
.fields-group
= f.input :show_staff_badge, as: :boolean, wrapper: :with_label, label: t('admin.settings.show_staff_badge.title'), hint: t('admin.settings.show_staff_badge.desc_html')
- .fields-group
- = f.input :open_registrations, as: :boolean, wrapper: :with_label, label: t('admin.settings.registrations.open.title'), hint: t('admin.settings.registrations.open.desc_html')
-
.fields-group
= f.input :open_deletion, as: :boolean, wrapper: :with_label, label: t('admin.settings.registrations.deletion.title'), hint: t('admin.settings.registrations.deletion.desc_html')
diff --git a/app/views/admin_mailer/new_pending_account.text.erb b/app/views/admin_mailer/new_pending_account.text.erb
new file mode 100644
index 000000000..a466ee2de
--- /dev/null
+++ b/app/views/admin_mailer/new_pending_account.text.erb
@@ -0,0 +1,12 @@
+<%= raw t('application_mailer.salutation', name: display_name(@me)) %>
+
+<%= raw t('admin_mailer.new_pending_account.body') %>
+
+<%= @account.user_email %> (@<%= @account.username %>)
+<%= @account.user_current_sign_in_ip %>
+<% if @account.user&.invite_request&.text.present? %>
+
+<%= quote_wrap(@account.user&.invite_request&.text) %>
+<% end %>
+
+<%= raw t('application_mailer.view')%> <%= admin_pending_accounts_url %>
diff --git a/app/views/application/_sidebar.html.haml b/app/views/application/_sidebar.html.haml
index 2ff14b252..b5ce5845e 100644
--- a/app/views/application/_sidebar.html.haml
+++ b/app/views/application/_sidebar.html.haml
@@ -1,6 +1,6 @@
.hero-widget
.hero-widget__img
- = image_tag @instance_presenter.hero&.file&.url || @instance_presenter.thumbnail&.file&.url || asset_pack_path('preview.jpg'), alt: @instance_presenter.site_title
+ = image_tag @instance_presenter.hero&.file&.url || @instance_presenter.thumbnail&.file&.url || asset_pack_path('media/images/preview.jpg'), alt: @instance_presenter.site_title
.hero-widget__text
%p= @instance_presenter.site_short_description.html_safe.presence || @instance_presenter.site_description.html_safe.presence || t('about.generic_description', domain: site_hostname)
diff --git a/app/views/auth/registrations/new.html.haml b/app/views/auth/registrations/new.html.haml
index 72ce8e531..bd6e3a13f 100644
--- a/app/views/auth/registrations/new.html.haml
+++ b/app/views/auth/registrations/new.html.haml
@@ -21,14 +21,21 @@
.fields-group
= f.input :password, wrapper: :with_label, label: t('simple_form.labels.defaults.password'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.password'), :autocomplete => 'off' }
+
.fields-group
= f.input :password_confirmation, wrapper: :with_label, label: t('simple_form.labels.defaults.confirm_password'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.confirm_password'), :autocomplete => 'off' }
+ - if approved_registrations? && !@invite.present?
+ .fields-group
+ = f.simple_fields_for :invite_request do |invite_request_fields|
+ = invite_request_fields.input :text, as: :text, wrapper: :with_block_label, required: false
+
= f.input :invite_code, as: :hidden
- %p.hint= t('auth.agreement_html', rules_path: about_more_path, terms_path: terms_path)
+ .fields-group
+ = f.input :agreement, as: :boolean, wrapper: :with_label, label: t('auth.checkbox_agreement_html', rules_path: about_more_path, terms_path: terms_path)
.actions
- = f.button :button, t('auth.register'), type: :submit
+ = f.button :button, sign_up_message, type: :submit
.form-footer= render 'auth/shared/links'
diff --git a/app/views/auth/shared/_links.html.haml b/app/views/auth/shared/_links.html.haml
index 516c625a6..3c68ccd22 100644
--- a/app/views/auth/shared/_links.html.haml
+++ b/app/views/auth/shared/_links.html.haml
@@ -3,7 +3,7 @@
%li= link_to t('auth.login'), new_session_path(resource_name)
- if devise_mapping.registerable? && controller_name != 'registrations'
- %li= link_to t('auth.register'), open_registrations? ? new_registration_path(resource_name) : 'https://joinmastodon.org/#getting-started'
+ %li= link_to t('auth.register'), available_sign_up_path
- if devise_mapping.recoverable? && controller_name != 'passwords' && controller_name != 'registrations'
%li= link_to t('auth.forgot_password'), new_password_path(resource_name)
diff --git a/app/views/follower_accounts/index.html.haml b/app/views/follower_accounts/index.html.haml
index 31dab68bf..645dd2de1 100644
--- a/app/views/follower_accounts/index.html.haml
+++ b/app/views/follower_accounts/index.html.haml
@@ -9,6 +9,8 @@
- if @account.user_hides_network?
.nothing-here= t('accounts.network_hidden')
+- elsif user_signed_in? && @account.blocking?(current_account)
+ .nothing-here= t('accounts.unavailable')
- elsif @follows.empty?
= nothing_here
- else
diff --git a/app/views/following_accounts/index.html.haml b/app/views/following_accounts/index.html.haml
index 8b49b529b..17fe79018 100644
--- a/app/views/following_accounts/index.html.haml
+++ b/app/views/following_accounts/index.html.haml
@@ -9,6 +9,8 @@
- if @account.user_hides_network?
.nothing-here= t('accounts.network_hidden')
+- elsif user_signed_in? && @account.blocking?(current_account)
+ .nothing-here= t('accounts.unavailable')
- elsif @follows.empty?
= nothing_here
- else
diff --git a/app/views/home/index.html.haml b/app/views/home/index.html.haml
index 6f3a6942e..4c7fac0b6 100644
--- a/app/views/home/index.html.haml
+++ b/app/views/home/index.html.haml
@@ -11,7 +11,7 @@
.app-holder#mastodon{ data: { props: Oj.dump(default_props) } }
%noscript
- = image_tag asset_pack_path('logo.svg'), alt: 'Mastodon'
+ = image_pack_tag 'logo.svg', alt: 'Mastodon'
%div
= t('errors.noscript_html', apps_path: 'https://joinmastodon.org/apps')
diff --git a/app/views/invites/_invite.html.haml b/app/views/invites/_invite.html.haml
index 1c7ec311d..62799ca5b 100644
--- a/app/views/invites/_invite.html.haml
+++ b/app/views/invites/_invite.html.haml
@@ -1,17 +1,25 @@
%tr
%td
- = invite.uses
- = " / #{invite.max_uses}" unless invite.max_uses.nil?
- %td
- - if invite.expired?
- = t('invites.expired')
- - else
+ .input-copy
+ .input-copy__wrapper
+ %input{ type: :text, maxlength: '999', spellcheck: 'false', readonly: 'true', value: public_invite_url(invite_code: invite.code) }
+ %button{ type: :button }= t('generic.copy')
+
+ - if invite.valid_for_use?
+ %td
+ = fa_icon 'user fw'
+ = invite.uses
+ = " / #{invite.max_uses}" unless invite.max_uses.nil?
+ %td
- if invite.expires_at.nil?
∞
- else
%time.formatted{ datetime: invite.expires_at.iso8601, title: l(invite.expires_at) }
= l invite.expires_at
- %td= table_link_to 'link', public_invite_url(invite_code: invite.code), public_invite_url(invite_code: invite.code)
+ - else
+ %td{ colspan: 2 }
+ = t('invites.expired')
+
%td
- - if !invite.expired? && policy(invite).destroy?
+ - if invite.valid_for_use? && policy(invite).destroy?
= table_link_to 'times', t('invites.delete'), invite_path(invite), method: :delete
diff --git a/app/views/invites/index.html.haml b/app/views/invites/index.html.haml
index fb827f6e6..61420ab1e 100644
--- a/app/views/invites/index.html.haml
+++ b/app/views/invites/index.html.haml
@@ -8,12 +8,13 @@
%hr.spacer/
-%table.table
- %thead
- %tr
- %th= t('invites.table.uses')
- %th= t('invites.table.expires_at')
- %th
- %th
- %tbody
- = render @invites
+.simple_form
+ %table.table.table--invites
+ %thead
+ %tr
+ %th
+ %th= t('invites.table.uses')
+ %th= t('invites.table.expires_at')
+ %th
+ %tbody
+ = render @invites
diff --git a/app/views/layouts/admin.html.haml b/app/views/layouts/admin.html.haml
index 6ce67d91e..083f2fac7 100644
--- a/app/views/layouts/admin.html.haml
+++ b/app/views/layouts/admin.html.haml
@@ -6,7 +6,7 @@
.sidebar-wrapper
.sidebar
= link_to root_path do
- = image_tag asset_pack_path('logo.svg'), class: 'logo', alt: 'Mastodon'
+ = image_pack_tag 'logo.svg', class: 'logo', alt: 'Mastodon'
= render_navigation
.content-wrapper
diff --git a/app/views/layouts/auth.html.haml b/app/views/layouts/auth.html.haml
index eb8949f98..aa1990972 100644
--- a/app/views/layouts/auth.html.haml
+++ b/app/views/layouts/auth.html.haml
@@ -6,7 +6,7 @@
.logo-container
%h1
= link_to root_path do
- = image_tag asset_pack_path('logo_full.svg'), alt: 'Mastodon'
+ = image_pack_tag 'logo_full.svg', alt: 'Mastodon'
.form-container
= render 'flashes'
diff --git a/app/views/layouts/mailer.html.haml b/app/views/layouts/mailer.html.haml
index e401df10f..4ffe3d79a 100644
--- a/app/views/layouts/mailer.html.haml
+++ b/app/views/layouts/mailer.html.haml
@@ -24,7 +24,7 @@
%tr
%td.column-cell
= link_to root_url do
- = image_tag full_pack_url('logo_full.png'), alt: 'Mastodon', height: 34, class: 'logo'
+ = image_tag full_pack_url('media/images/mailer/logo_full.png'), alt: 'Mastodon', height: 34, class: 'logo'
= yield
@@ -49,4 +49,4 @@
%p= link_to t('application_mailer.notification_preferences'), settings_notifications_url
%td.column-cell.text-right
= link_to root_url do
- = image_tag full_pack_url('logo_transparent.png'), alt: 'Mastodon', height: 24
+ = image_tag full_pack_url('media/images/mailer/logo_transparent.png'), alt: 'Mastodon', height: 24
diff --git a/app/views/layouts/public.html.haml b/app/views/layouts/public.html.haml
index caccd5bb6..d30b2a3ea 100644
--- a/app/views/layouts/public.html.haml
+++ b/app/views/layouts/public.html.haml
@@ -3,23 +3,23 @@
- content_for :content do
.public-layout
- .container
- %nav.header
- .nav-left
- = link_to root_url, class: 'brand' do
- = image_tag asset_pack_path('logo_full.svg'), alt: 'Mastodon'
+ - unless @hide_navbar
+ .container
+ %nav.header
+ .nav-left
+ = link_to root_url, class: 'brand' do
+ = image_pack_tag 'logo_full.svg', alt: 'Mastodon'
- - if Setting.profile_directory
- = link_to t('directories.directory'), explore_path, class: 'nav-link optional'
- = link_to t('about.about_this'), about_more_path, class: 'nav-link optional'
- = link_to t('about.apps'), 'https://joinmastodon.org/apps', class: 'nav-link optional'
- .nav-center
- .nav-right
- - if user_signed_in?
- = link_to t('settings.back'), root_url, class: 'nav-link nav-button webapp-btn'
- - else
- = link_to t('auth.login'), new_user_session_path, class: 'webapp-btn nav-link nav-button'
- = link_to t('auth.register'), open_registrations? ? new_user_registration_path : 'https://joinmastodon.org/#getting-started', class: 'webapp-btn nav-link nav-button'
+ = link_to t('directories.directory'), explore_path, class: 'nav-link optional' if Setting.profile_directory
+ = link_to t('about.about_this'), about_more_path, class: 'nav-link optional'
+ = link_to t('about.apps'), 'https://joinmastodon.org/apps', class: 'nav-link optional'
+ .nav-center
+ .nav-right
+ - if user_signed_in?
+ = link_to t('settings.back'), root_url, class: 'nav-link nav-button webapp-btn'
+ - else
+ = link_to t('auth.login'), new_user_session_path, class: 'webapp-btn nav-link nav-button'
+ = link_to t('auth.register'), available_sign_up_path, class: 'webapp-btn nav-link nav-button'
.container= yield
diff --git a/app/views/notification_mailer/favourite.html.haml b/app/views/notification_mailer/favourite.html.haml
index 7d1b494d0..a715d615c 100644
--- a/app/views/notification_mailer/favourite.html.haml
+++ b/app/views/notification_mailer/favourite.html.haml
@@ -17,7 +17,7 @@
%tbody
%tr
%td
- = image_tag full_pack_url('icon_grade.png'), alt:''
+ = image_tag full_pack_url('media/images/mailer/icon_grade.png'), alt:''
%h1= t 'notification_mailer.favourite.title'
%p.lead= t('notification_mailer.favourite.body', name: @account.acct)
diff --git a/app/views/notification_mailer/follow.html.haml b/app/views/notification_mailer/follow.html.haml
index 31a2b7445..cd84f7858 100644
--- a/app/views/notification_mailer/follow.html.haml
+++ b/app/views/notification_mailer/follow.html.haml
@@ -17,7 +17,7 @@
%tbody
%tr
%td
- = image_tag full_pack_url('icon_person_add.png'), alt: ''
+ = image_tag full_pack_url('media/images/mailer/icon_person_add.png'), alt: ''
%h1= t 'notification_mailer.follow.title'
%p.lead= t('notification_mailer.follow.body', name: @account.acct)
diff --git a/app/views/notification_mailer/follow_request.html.haml b/app/views/notification_mailer/follow_request.html.haml
index 44f1911c4..a63e27a90 100644
--- a/app/views/notification_mailer/follow_request.html.haml
+++ b/app/views/notification_mailer/follow_request.html.haml
@@ -17,7 +17,7 @@
%tbody
%tr
%td
- = image_tag full_pack_url('icon_person_add.png'), alt: ''
+ = image_tag full_pack_url('media/images/mailer/icon_person_add.png'), alt: ''
%h1= t 'notification_mailer.follow_request.title'
%p.lead= t('notification_mailer.follow_request.body', name: @account.acct)
diff --git a/app/views/notification_mailer/mention.html.haml b/app/views/notification_mailer/mention.html.haml
index 479fed41c..619873cfa 100644
--- a/app/views/notification_mailer/mention.html.haml
+++ b/app/views/notification_mailer/mention.html.haml
@@ -17,7 +17,7 @@
%tbody
%tr
%td
- = image_tag full_pack_url('icon_reply.png'), alt: ''
+ = image_tag full_pack_url('media/images/mailer/icon_reply.png'), alt: ''
%h1= t 'notification_mailer.mention.title'
%p.lead= t('notification_mailer.mention.body', name: @status.account.acct)
diff --git a/app/views/notification_mailer/reblog.html.haml b/app/views/notification_mailer/reblog.html.haml
index 85b202cf9..a2811be23 100644
--- a/app/views/notification_mailer/reblog.html.haml
+++ b/app/views/notification_mailer/reblog.html.haml
@@ -17,7 +17,7 @@
%tbody
%tr
%td
- = image_tag full_pack_url('icon_cached.png'), alt: ''
+ = image_tag full_pack_url('media/images/mailer/icon_cached.png'), alt: ''
%h1= t 'notification_mailer.reblog.title'
%p.lead= t('notification_mailer.reblog.body', name: @account.acct)
diff --git a/app/views/public_timelines/show.html.haml b/app/views/public_timelines/show.html.haml
new file mode 100644
index 000000000..913d5d855
--- /dev/null
+++ b/app/views/public_timelines/show.html.haml
@@ -0,0 +1,14 @@
+- content_for :page_title do
+ = t('about.see_whats_happening')
+
+- content_for :header_tags do
+ %meta{ name: 'robots', content: 'noindex' }/
+ %script#initial-state{ type: 'application/json' }!= json_escape(@initial_state_json)
+ = javascript_pack_tag 'about', integrity: true, crossorigin: 'anonymous'
+
+.page-header
+ %h1= t('about.see_whats_happening')
+ %p= t('about.browse_public_posts')
+
+#mastodon-timeline{ data: { props: Oj.dump(default_props) }}
+#modal-container
diff --git a/app/views/relationships/_account.html.haml b/app/views/relationships/_account.html.haml
new file mode 100644
index 000000000..6c22deb51
--- /dev/null
+++ b/app/views/relationships/_account.html.haml
@@ -0,0 +1,20 @@
+.batch-table__row
+ %label.batch-table__row__select.batch-table__row__select--aligned.batch-checkbox
+ = f.check_box :account_ids, { multiple: true, include_hidden: false }, account.id
+ .batch-table__row__content.batch-table__row__content--unpadded
+ %table.accounts-table
+ %tbody
+ %tr
+ %td= account_link_to account
+ %td.accounts-table__count.optional
+ = number_to_human account.statuses_count, strip_insignificant_zeros: true
+ %small= t('accounts.posts', count: account.statuses_count).downcase
+ %td.accounts-table__count.optional
+ = number_to_human account.followers_count, strip_insignificant_zeros: true
+ %small= t('accounts.followers', count: account.followers_count).downcase
+ %td.accounts-table__count
+ - if account.last_status_at.present?
+ %time.time-ago{ datetime: account.last_status_at.iso8601, title: l(account.last_status_at) }= l account.last_status_at
+ - else
+ \-
+ %small= t('accounts.last_active')
diff --git a/app/views/relationships/show.html.haml b/app/views/relationships/show.html.haml
new file mode 100644
index 000000000..e6fff0ad6
--- /dev/null
+++ b/app/views/relationships/show.html.haml
@@ -0,0 +1,57 @@
+- content_for :page_title do
+ = t('settings.relationships')
+
+- content_for :header_tags do
+ = javascript_pack_tag 'admin', integrity: true, async: true, crossorigin: 'anonymous'
+
+.filters
+ .filter-subset
+ %strong= t 'relationships.relationship'
+ %ul
+ %li= filter_link_to t('accounts.following', count: current_account.following_count), relationship: nil
+ %li= filter_link_to t('accounts.followers', count: current_account.followers_count), relationship: 'followed_by'
+ %li= filter_link_to t('relationships.mutual'), relationship: 'mutual'
+
+ .filter-subset
+ %strong= t 'relationships.status'
+ %ul
+ %li= filter_link_to t('generic.all'), status: nil
+ %li= filter_link_to t('relationships.primary'), status: 'primary'
+ %li= filter_link_to t('relationships.moved'), status: 'moved'
+
+ .filter-subset
+ %strong= t 'relationships.activity'
+ %ul
+ %li= filter_link_to t('generic.all'), activity: nil
+ %li= filter_link_to t('relationships.dormant'), activity: 'dormant'
+
+ .filter-subset
+ %strong= t 'generic.order_by'
+ %ul
+ %li= filter_link_to t('relationships.most_recent'), order: nil
+ %li= filter_link_to t('relationships.last_active'), order: 'active'
+
+= form_for(@form, url: relationships_path, method: :patch) do |f|
+ = hidden_field_tag :page, params[:page] || 1
+ = hidden_field_tag :relationship, params[:relationship]
+ = hidden_field_tag :status, params[:status]
+ = hidden_field_tag :activity, params[:activity]
+ = hidden_field_tag :order, params[:order]
+
+ .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('user-times'), t('relationships.remove_selected_follows')]), name: :unfollow, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } unless followed_by_relationship?
+
+ = f.button safe_join([fa_icon('trash'), t('relationships.remove_selected_followers')]), name: :remove_from_followers, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } unless following_relationship?
+
+ = f.button safe_join([fa_icon('trash'), t('relationships.remove_selected_domains')]), name: :block_domains, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } if followed_by_relationship?
+ .batch-table__body
+ - if @accounts.empty?
+ = nothing_here 'nothing-here--under-tabs'
+ - else
+ = render partial: 'account', collection: @accounts, locals: { f: f }
+
+= paginate @accounts
diff --git a/app/views/remote_follow/new.html.haml b/app/views/remote_follow/new.html.haml
index 5cf6977ba..4e9601f6a 100644
--- a/app/views/remote_follow/new.html.haml
+++ b/app/views/remote_follow/new.html.haml
@@ -1,6 +1,5 @@
- content_for :header_tags do
- - if @account.user&.setting_noindex
- %meta{ name: 'robots', content: 'noindex' }/
+ %meta{ name: 'robots', content: 'noindex' }/
.form-container
.follow-prompt
@@ -18,4 +17,4 @@
%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')
+ = t('remote_follow.no_account_html', sign_up_path: available_sign_up_path)
diff --git a/app/views/remote_interaction/new.html.haml b/app/views/remote_interaction/new.html.haml
index a0b106814..c8c08991f 100644
--- a/app/views/remote_interaction/new.html.haml
+++ b/app/views/remote_interaction/new.html.haml
@@ -1,3 +1,6 @@
+- content_for :header_tags do
+ %meta{ name: 'robots', content: 'noindex' }/
+
.form-container
.follow-prompt
%h2= t("remote_interaction.#{@interaction_type}.prompt")
@@ -18,4 +21,4 @@
%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')
+ = t('remote_follow.no_account_html', sign_up_path: available_sign_up_path)
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/follower_domains/show.html.haml b/app/views/settings/follower_domains/show.html.haml
deleted file mode 100644
index f1687d4d2..000000000
--- a/app/views/settings/follower_domains/show.html.haml
+++ /dev/null
@@ -1,34 +0,0 @@
-- content_for :page_title do
- = t('settings.followers')
-
-= form_tag settings_follower_domains_path, method: :patch, class: 'table-form' do
- - unless @account.locked?
- .warning
- %strong
- = fa_icon('warning')
- = t('followers.unlocked_warning_title')
- = t('followers.unlocked_warning_html', lock_link: link_to(t('followers.lock_link'), settings_profile_url))
-
- %p= t('followers.explanation_html')
- %p= t('followers.true_privacy_html')
-
- .table-wrapper
- %table.table
- %thead
- %tr
- %th
- %th= t('followers.domain')
- %th= t('followers.followers_count')
- %tbody
- - @domains.each do |domain|
- %tr
- %td
- = check_box_tag 'select[]', domain.domain, false, disabled: !@account.locked? unless domain.domain.nil?
- %td
- %samp= domain.domain.presence || Rails.configuration.x.local_domain
- %td= number_with_delimiter domain.accounts_from_domain
-
- .action-pagination
- .actions
- = button_tag t('followers.purge'), type: :submit, class: 'button', disabled: !@account.locked?
- = paginate @domains
diff --git a/app/views/settings/identity_proofs/_proof.html.haml b/app/views/settings/identity_proofs/_proof.html.haml
new file mode 100644
index 000000000..524827ad7
--- /dev/null
+++ b/app/views/settings/identity_proofs/_proof.html.haml
@@ -0,0 +1,20 @@
+%tr
+ %td
+ = link_to proof.badge.profile_url, class: 'name-tag' do
+ = image_tag proof.badge.avatar_url, width: 15, height: 15, alt: '', class: 'avatar'
+ %span.username
+ = proof.provider_username
+ %span= "(#{proof.provider.capitalize})"
+
+ %td
+ - if proof.live?
+ %span.positive-hint
+ = fa_icon 'check-circle fw'
+ = t('identity_proofs.active')
+ - else
+ %span.negative-hint
+ = fa_icon 'times-circle fw'
+ = t('identity_proofs.inactive')
+
+ %td
+ = table_link_to 'external-link', t('identity_proofs.view_proof'), proof.badge.proof_url if proof.badge.proof_url
diff --git a/app/views/settings/identity_proofs/index.html.haml b/app/views/settings/identity_proofs/index.html.haml
new file mode 100644
index 000000000..d0ea03ecd
--- /dev/null
+++ b/app/views/settings/identity_proofs/index.html.haml
@@ -0,0 +1,17 @@
+- content_for :page_title do
+ = t('settings.identity_proofs')
+
+%p= t('identity_proofs.explanation_html')
+
+- unless @proofs.empty?
+ %hr.spacer/
+
+ .table-wrapper
+ %table.table
+ %thead
+ %tr
+ %th= t('identity_proofs.identity')
+ %th= t('identity_proofs.status')
+ %th
+ %tbody
+ = render partial: 'settings/identity_proofs/proof', collection: @proofs, as: :proof
diff --git a/app/views/settings/identity_proofs/new.html.haml b/app/views/settings/identity_proofs/new.html.haml
new file mode 100644
index 000000000..5e4e9895d
--- /dev/null
+++ b/app/views/settings/identity_proofs/new.html.haml
@@ -0,0 +1,36 @@
+- content_for :page_title do
+ = t('identity_proofs.authorize_connection_prompt')
+
+.form-container
+ .oauth-prompt
+ %h2= t('identity_proofs.authorize_connection_prompt')
+
+ = simple_form_for @proof, url: settings_identity_proofs_url, html: { method: :post } do |f|
+ = f.input :provider, as: :hidden
+ = f.input :provider_username, as: :hidden
+ = f.input :token, as: :hidden
+
+ = hidden_field_tag :user_agent, params[:user_agent]
+
+ .connection-prompt
+ .connection-prompt__row.connection-prompt__connection
+ .connection-prompt__column
+ = image_tag current_account.avatar.url(:original), size: 96, class: 'account__avatar'
+
+ %p= t('identity_proofs.i_am_html', username: content_tag(:strong,current_account.username), service: site_hostname)
+
+ .connection-prompt__column.connection-prompt__column-sep
+ = fa_icon 'link'
+
+ .connection-prompt__column
+ = image_tag @proof.badge.avatar_url, size: 96, class: 'account__avatar'
+
+ %p= t('identity_proofs.i_am_html', username: content_tag(:strong, @proof.provider_username), service: @proof.provider.capitalize)
+
+ .connection-prompt__post
+ = f.input :post_status, label: t('identity_proofs.publicize_checkbox'), as: :boolean, wrapper: :with_label, :input_html => { checked: true }
+
+ = f.input :status_text, as: :text, input_html: { value: t('identity_proofs.publicize_toot', username: @proof.provider_username, service: @proof.provider.capitalize, url: @proof.badge.proof_url), rows: 4 }
+
+ = f.button :button, t('identity_proofs.authorize'), type: :submit
+ = link_to t('simple_form.no'), settings_identity_proofs_url, class: 'button negative'
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/notifications/show.html.haml b/app/views/settings/notifications/show.html.haml
index 8aaac043b..6ec57b502 100644
--- a/app/views/settings/notifications/show.html.haml
+++ b/app/views/settings/notifications/show.html.haml
@@ -14,6 +14,7 @@
- if current_user.staff?
= ff.input :report, as: :boolean, wrapper: :with_label
+ = ff.input :pending_account, as: :boolean, wrapper: :with_label
.fields-group
= f.simple_fields_for :notification_emails, hash_to_object(current_user.settings.notification_emails) do |ff|
diff --git a/app/views/settings/preferences/show.html.haml b/app/views/settings/preferences/show.html.haml
index 3abc999dc..5ee17dcd2 100644
--- a/app/views/settings/preferences/show.html.haml
+++ b/app/views/settings/preferences/show.html.haml
@@ -6,6 +6,7 @@
%li= link_to t('preferences.publishing'), '#settings_publishing'
%li= link_to t('preferences.other'), '#settings_other'
%li= link_to t('preferences.web'), '#settings_web'
+ %li= link_to t('settings.notifications'), settings_notifications_path
= simple_form_for current_user, url: settings_preferences_path, html: { method: :put } do |f|
= render 'shared/error_messages', object: current_user
@@ -28,12 +29,17 @@
= f.input :setting_default_federation, as: :boolean, wrapper: :with_label
+ %hr#settings_other/
+
.fields-group
= f.input :setting_noindex, as: :boolean, wrapper: :with_label
.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/shared/_og.html.haml b/app/views/shared/_og.html.haml
index 802d8c41d..67238fc8b 100644
--- a/app/views/shared/_og.html.haml
+++ b/app/views/shared/_og.html.haml
@@ -8,7 +8,7 @@
= opengraph 'og:type', 'website'
= opengraph 'og:title', @instance_presenter.site_title
= opengraph 'og:description', description
-= opengraph 'og:image', full_asset_url(thumbnail&.file&.url || asset_pack_path('preview.jpg', protocol: :request))
+= opengraph 'og:image', full_asset_url(thumbnail&.file&.url || asset_pack_path('media/images/preview.jpg', protocol: :request))
= opengraph 'og:image:width', thumbnail ? thumbnail.meta['width'] : '1200'
= opengraph 'og:image:height', thumbnail ? thumbnail.meta['height'] : '630'
= opengraph 'twitter:card', 'summary_large_image'
diff --git a/app/views/stream_entries/_detailed_status.html.haml b/app/views/stream_entries/_detailed_status.html.haml
index a485c9210..297618254 100644
--- a/app/views/stream_entries/_detailed_status.html.haml
+++ b/app/views/stream_entries/_detailed_status.html.haml
@@ -22,7 +22,10 @@
%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.preloadable_poll
+ = react_component :poll, disabled: true, poll: ActiveModelSerializers::SerializableResource.new(status.preloadable_poll, serializer: REST::PollSerializer, scope: current_user, scope_name: :current_user).as_json do
+ = render partial: 'stream_entries/poll', locals: { status: status, poll: status.preloadable_poll, autoplay: autoplay }
+ - 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 do
@@ -39,7 +42,7 @@
= 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
diff --git a/app/views/stream_entries/_poll.html.haml b/app/views/stream_entries/_poll.html.haml
new file mode 100644
index 000000000..ba34890df
--- /dev/null
+++ b/app/views/stream_entries/_poll.html.haml
@@ -0,0 +1,27 @@
+- show_results = (user_signed_in? && poll.voted?(current_account)) || poll.expired?
+
+.poll
+ %ul
+ - poll.loaded_options.each do |option|
+ %li
+ - if show_results
+ - percent = poll.votes_count > 0 ? 100 * option.votes_count / poll.votes_count : 0
+ %span.poll__chart{ style: "width: #{percent}%" }
+
+ %label.poll__text><
+ %span.poll__number= percent.round
+ = Formatter.instance.format_poll_option(status, option, autoplay: autoplay)
+ - else
+ %label.poll__text><
+ %span.poll__input{ class: poll.multiple? ? 'checkbox' : nil}><
+ = Formatter.instance.format_poll_option(status, option, autoplay: autoplay)
+ .poll__footer
+ - unless show_results
+ %button.button.button-secondary{ disabled: true }
+ = t('statuses.poll.vote')
+
+ %span= t('statuses.poll.total_votes', count: poll.votes_count)
+
+ - unless poll.expires_at.nil?
+ ·
+ %span= l poll.expires_at
diff --git a/app/views/stream_entries/_simple_status.html.haml b/app/views/stream_entries/_simple_status.html.haml
index 26c11db53..4c184aae7 100644
--- a/app/views/stream_entries/_simple_status.html.haml
+++ b/app/views/stream_entries/_simple_status.html.haml
@@ -26,7 +26,10 @@
%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.preloadable_poll
+ = react_component :poll, disabled: true, poll: ActiveModelSerializers::SerializableResource.new(status.preloadable_poll, serializer: REST::PollSerializer, scope: current_user, scope_name: :current_user).as_json do
+ = render partial: 'stream_entries/poll', locals: { status: status, poll: status.preloadable_poll, autoplay: autoplay }
+ - 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 do
diff --git a/app/views/tags/show.html.haml b/app/views/tags/show.html.haml
index 18de48eea..cf4246822 100644
--- a/app/views/tags/show.html.haml
+++ b/app/views/tags/show.html.haml
@@ -2,6 +2,7 @@
= "##{@tag.name}"
- content_for :header_tags do
+ %meta{ name: 'robots', content: 'noindex' }/
%link{ rel: 'alternate', type: 'application/rss+xml', href: tag_url(@tag, format: 'rss') }/
%script#initial-state{ type: 'application/json' }!= json_escape(@initial_state_json)
diff --git a/app/views/user_mailer/backup_ready.html.haml b/app/views/user_mailer/backup_ready.html.haml
index d5a4b8b48..85140b08b 100644
--- a/app/views/user_mailer/backup_ready.html.haml
+++ b/app/views/user_mailer/backup_ready.html.haml
@@ -17,7 +17,7 @@
%tbody
%tr
%td
- = image_tag full_pack_url('icon_file_download.png'), alt: ''
+ = image_tag full_pack_url('media/images/mailer/icon_file_download.png'), alt: ''
%h1= t 'user_mailer.backup_ready.title'
diff --git a/app/views/user_mailer/confirmation_instructions.html.haml b/app/views/user_mailer/confirmation_instructions.html.haml
index f75f7529a..39a83faff 100644
--- a/app/views/user_mailer/confirmation_instructions.html.haml
+++ b/app/views/user_mailer/confirmation_instructions.html.haml
@@ -17,7 +17,7 @@
%tbody
%tr
%td
- = image_tag full_pack_url('icon_email.png'), alt: ''
+ = image_tag full_pack_url('media/images/mailer/icon_email.png'), alt: ''
%h1= t 'devise.mailer.confirmation_instructions.title'
@@ -36,7 +36,7 @@
%tbody
%tr
%td.column-cell.text-center
- %p= t 'devise.mailer.confirmation_instructions.explanation', host: site_hostname
+ %p= t @resource.approved? ? 'devise.mailer.confirmation_instructions.explanation' : 'devise.mailer.confirmation_instructions.explanation_when_pending', host: site_hostname
%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 65b4626c6..aad91cd9d 100644
--- a/app/views/user_mailer/confirmation_instructions.text.erb
+++ b/app/views/user_mailer/confirmation_instructions.text.erb
@@ -2,7 +2,7 @@
===
-<%= t 'devise.mailer.confirmation_instructions.explanation', host: site_hostname %>
+<%= t @resource.approved? ? 'devise.mailer.confirmation_instructions.explanation' : 'devise.mailer.confirmation_instructions.explanation_when_pending', host: site_hostname %>
=> <%= confirmation_url(@resource, confirmation_token: @token, redirect_to_app: @resource.created_by_application ? 'true' : nil) %>
diff --git a/app/views/user_mailer/email_changed.html.haml b/app/views/user_mailer/email_changed.html.haml
index 0802aaf96..7e91e87ad 100644
--- a/app/views/user_mailer/email_changed.html.haml
+++ b/app/views/user_mailer/email_changed.html.haml
@@ -17,7 +17,7 @@
%tbody
%tr
%td
- = image_tag full_pack_url('icon_email.png'), alt: ''
+ = image_tag full_pack_url('media/images/mailer/icon_email.png'), alt: ''
%h1= t 'devise.mailer.email_changed.title'
%p.lead= t 'devise.mailer.email_changed.explanation'
diff --git a/app/views/user_mailer/password_change.html.haml b/app/views/user_mailer/password_change.html.haml
index 26314a217..559abf027 100644
--- a/app/views/user_mailer/password_change.html.haml
+++ b/app/views/user_mailer/password_change.html.haml
@@ -17,7 +17,7 @@
%tbody
%tr
%td
- = image_tag full_pack_url('icon_lock_open.png'), alt: ''
+ = image_tag full_pack_url('media/images/mailer/icon_lock_open.png'), alt: ''
%h1= t 'devise.mailer.password_change.title'
%p.lead= t 'devise.mailer.password_change.explanation'
diff --git a/app/views/user_mailer/reconfirmation_instructions.html.haml b/app/views/user_mailer/reconfirmation_instructions.html.haml
index e3be8e295..7f10ba94f 100644
--- a/app/views/user_mailer/reconfirmation_instructions.html.haml
+++ b/app/views/user_mailer/reconfirmation_instructions.html.haml
@@ -17,7 +17,7 @@
%tbody
%tr
%td
- = image_tag full_pack_url('icon_email.png'), alt: ''
+ = image_tag full_pack_url('media/images/mailer/icon_email.png'), alt: ''
%h1= t 'devise.mailer.reconfirmation_instructions.title'
%p.lead= t 'devise.mailer.reconfirmation_instructions.explanation'
diff --git a/app/views/user_mailer/reset_password_instructions.html.haml b/app/views/user_mailer/reset_password_instructions.html.haml
index 5d9ce6a75..eeed38c9e 100644
--- a/app/views/user_mailer/reset_password_instructions.html.haml
+++ b/app/views/user_mailer/reset_password_instructions.html.haml
@@ -17,7 +17,7 @@
%tbody
%tr
%td
- = image_tag full_pack_url('icon_lock_open.png'), alt: ''
+ = image_tag full_pack_url('media/images/mailer/icon_lock_open.png'), alt: ''
%h1= t 'devise.mailer.reset_password_instructions.title'
%p.lead= t 'devise.mailer.reset_password_instructions.explanation'
diff --git a/app/views/user_mailer/warning.html.haml b/app/views/user_mailer/warning.html.haml
index c5e1f5a28..72ea5e5d2 100644
--- a/app/views/user_mailer/warning.html.haml
+++ b/app/views/user_mailer/warning.html.haml
@@ -17,7 +17,7 @@
%tbody
%tr
%td
- = image_tag full_pack_url('icon_warning.png'), alt: ''
+ = image_tag full_pack_url('media/images/mailer/icon_warning.png'), alt: ''
%h1= t "user_mailer.warning.title.#{@warning.action}"
diff --git a/app/views/user_mailer/welcome.html.haml b/app/views/user_mailer/welcome.html.haml
index 4a5788bf6..1f75ff48a 100644
--- a/app/views/user_mailer/welcome.html.haml
+++ b/app/views/user_mailer/welcome.html.haml
@@ -17,7 +17,7 @@
%tbody
%tr
%td
- = image_tag full_pack_url('icon_done.png'), alt: ''
+ = image_tag full_pack_url('media/images/mailer/icon_done.png'), alt: ''
%h1= t 'user_mailer.welcome.title', name: @resource.account.username
%p.lead= t 'user_mailer.welcome.explanation'
diff --git a/app/workers/activitypub/distribute_poll_update_worker.rb b/app/workers/activitypub/distribute_poll_update_worker.rb
new file mode 100644
index 000000000..5eaca6fda
--- /dev/null
+++ b/app/workers/activitypub/distribute_poll_update_worker.rb
@@ -0,0 +1,65 @@
+# frozen_string_literal: true
+
+class ActivityPub::DistributePollUpdateWorker
+ include Sidekiq::Worker
+
+ sidekiq_options queue: 'push', unique: :until_executed, retry: 0
+
+ def perform(status_id)
+ @status = Status.find(status_id)
+ @account = @status.account
+
+ return unless @status.preloadable_poll
+
+ ActivityPub::DeliveryWorker.push_bulk(inboxes) do |inbox_url|
+ [payload, @account.id, inbox_url]
+ end
+
+ relay! if relayable?
+ rescue ActiveRecord::RecordNotFound
+ true
+ end
+
+ private
+
+ def relayable?
+ @status.public_visibility?
+ end
+
+ def inboxes
+ return @inboxes if defined?(@inboxes)
+
+ @inboxes = [@status.mentions, @status.reblogs, @status.preloadable_poll.votes].flat_map do |relation|
+ relation.includes(:account).map do |record|
+ record.account.preferred_inbox_url if !record.account.local? && record.account.activitypub?
+ end
+ end
+
+ @inboxes.concat(@account.followers.inboxes) unless @status.direct_visibility?
+ @inboxes.uniq!
+ @inboxes.compact!
+ @inboxes
+ end
+
+ def signed_payload
+ Oj.dump(ActivityPub::LinkedDataSignature.new(unsigned_payload).sign!(@account))
+ end
+
+ def unsigned_payload
+ ActiveModelSerializers::SerializableResource.new(
+ @status,
+ serializer: ActivityPub::UpdatePollSerializer,
+ 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|
+ [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..54d98f228
--- /dev/null
+++ b/app/workers/activitypub/fetch_replies_worker.rb
@@ -0,0 +1,14 @@
+# 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)
+ rescue ActiveRecord::RecordNotFound
+ true
+ 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/distribution_worker.rb b/app/workers/distribution_worker.rb
index f423d43ae..4e20ef31b 100644
--- a/app/workers/distribution_worker.rb
+++ b/app/workers/distribution_worker.rb
@@ -4,7 +4,13 @@ class DistributionWorker
include Sidekiq::Worker
def perform(status_id)
- FanOutOnWriteService.new.call(Status.find(status_id))
+ RedisLock.acquire(redis: Redis.current, key: "distribute:#{status_id}") do |lock|
+ if lock.acquired?
+ FanOutOnWriteService.new.call(Status.find(status_id))
+ else
+ raise Mastodon::RaceConditionError
+ end
+ end
rescue ActiveRecord::RecordNotFound
true
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..616da6da9 100644
--- a/app/workers/import/relationship_worker.rb
+++ b/app/workers/import/relationship_worker.rb
@@ -5,19 +5,26 @@ class Import::RelationshipWorker
sidekiq_options queue: 'pull', retry: 8, dead: false
- def perform(account_id, target_account_uri, relationship)
+ def perform(account_id, target_account_uri, relationship, options = {})
from_account = Account.find(account_id)
target_account = ResolveAccountService.new.call(target_account_uri)
+ options.symbolize_keys!
return if target_account.nil?
case relationship
when 'follow'
- FollowService.new.call(from_account, target_account.acct)
+ FollowService.new.call(from_account, target_account, options)
+ 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)
+ MuteService.new.call(from_account, target_account, options)
+ 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/poll_expiration_notify_worker.rb b/app/workers/poll_expiration_notify_worker.rb
new file mode 100644
index 000000000..e08f0c249
--- /dev/null
+++ b/app/workers/poll_expiration_notify_worker.rb
@@ -0,0 +1,24 @@
+# frozen_string_literal: true
+
+class PollExpirationNotifyWorker
+ include Sidekiq::Worker
+
+ sidekiq_options unique: :until_executed
+
+ def perform(poll_id)
+ poll = Poll.find(poll_id)
+
+ # Notify poll owner and remote voters
+ if poll.local?
+ ActivityPub::DistributePollUpdateWorker.perform_async(poll.status.id)
+ NotifyService.new.call(poll.account, poll)
+ end
+
+ # Notify local voters
+ poll.votes.includes(:account).map(&:account).select(&:local?).each do |account|
+ NotifyService.new.call(account, poll)
+ end
+ rescue ActiveRecord::RecordNotFound
+ true
+ 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/babel.config.js b/babel.config.js
index a506ad8ce..55efafc40 100644
--- a/babel.config.js
+++ b/babel.config.js
@@ -17,7 +17,7 @@ module.exports = (api) => {
['@babel/proposal-object-rest-spread', { useBuiltIns: true }],
['@babel/proposal-decorators', { legacy: true }],
'@babel/proposal-class-properties',
- ['react-intl', { messagesDir: './build/messages' }],
+ ['react-intl', { messagesDir: './build/messages/' }],
'preval',
],
};
diff --git a/bin/webpack b/bin/webpack
index 465832722..008ecb22f 100755
--- a/bin/webpack
+++ b/bin/webpack
@@ -12,4 +12,8 @@ require "bundler/setup"
require "webpacker"
require "webpacker/webpack_runner"
-Webpacker::WebpackRunner.run(ARGV)
+
+APP_ROOT = File.expand_path("..", __dir__)
+Dir.chdir(APP_ROOT) do
+ Webpacker::WebpackRunner.run(ARGV)
+end
diff --git a/bin/webpack-dev-server b/bin/webpack-dev-server
index faa69f078..a931a9b7f 100755
--- a/bin/webpack-dev-server
+++ b/bin/webpack-dev-server
@@ -12,4 +12,8 @@ require "bundler/setup"
require "webpacker"
require "webpacker/dev_server_runner"
-Webpacker::DevServerRunner.run(ARGV)
+
+APP_ROOT = File.expand_path("..", __dir__)
+Dir.chdir(APP_ROOT) do
+ Webpacker::DevServerRunner.run(ARGV)
+end
diff --git a/config/application.rb b/config/application.rb
index b4a39b5c8..74006f5fa 100644
--- a/config/application.rb
+++ b/config/application.rb
@@ -40,6 +40,7 @@ module Mastodon
:ar,
:ast,
:bg,
+ :bn,
:ca,
:co,
:cs,
@@ -53,8 +54,10 @@ module Mastodon
:fa,
:fi,
:fr,
+ :ga,
:gl,
:he,
+ :hi,
:hr,
:hu,
:hy,
@@ -63,7 +66,11 @@ module Mastodon
:it,
:ja,
:ka,
+ :kk,
:ko,
+ :lt,
+ :lv,
+ :ms,
:nl,
:no,
:oc,
@@ -74,6 +81,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/database.yml b/config/database.yml
index 82e560515..c10bff6b2 100644
--- a/config/database.yml
+++ b/config/database.yml
@@ -3,6 +3,7 @@ default: &default
pool: <%= ENV["DB_POOL"] || ENV['MAX_THREADS'] || 5 %>
timeout: 5000
encoding: unicode
+ sslmode: <%= ENV['DB_SSLMODE'] || "prefer" %>
development:
<<: *default
@@ -31,3 +32,4 @@ production:
host: <%= ENV['DB_HOST'] || 'localhost' %>
port: <%= ENV['DB_PORT'] || 5432 %>
prepared_statements: <%= ENV['PREPARED_STATEMENTS'] || 'true' %>
+
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/active_model_serializers.rb b/config/initializers/active_model_serializers.rb
index 0e69e1d96..329a5fb2c 100644
--- a/config/initializers/active_model_serializers.rb
+++ b/config/initializers/active_model_serializers.rb
@@ -3,3 +3,22 @@ ActiveModelSerializers.config.tap do |config|
end
ActiveSupport::Notifications.unsubscribe(ActiveModelSerializers::Logging::RENDER_EVENT)
+
+class ActiveModel::Serializer::Reflection
+ # We monkey-patch this method so that when we include associations in a serializer,
+ # the nested serializers can send information about used contexts upwards back to
+ # the root. We do this via instance_options because the nesting can be dynamic.
+ def build_association(parent_serializer, parent_serializer_options, include_slice = {})
+ serializer = options[:serializer]
+
+ parent_serializer_options.merge!(named_contexts: serializer._named_contexts, context_extensions: serializer._context_extensions) if serializer.respond_to?(:_named_contexts)
+
+ association_options = {
+ parent_serializer: parent_serializer,
+ parent_serializer_options: parent_serializer_options,
+ include_slice: include_slice,
+ }
+
+ ActiveModel::Serializer::Association.new(self, association_options)
+ end
+end
diff --git a/config/initializers/omniauth.rb b/config/initializers/omniauth.rb
index 254e751d4..e8d7697a1 100644
--- a/config/initializers/omniauth.rb
+++ b/config/initializers/omniauth.rb
@@ -14,7 +14,7 @@ Devise.setup do |config|
cas_options[:host] = ENV['CAS_HOST'] if ENV['CAS_HOST']
cas_options[:port] = ENV['CAS_PORT'] if ENV['CAS_PORT']
cas_options[:ssl] = ENV['CAS_SSL'] == 'true' if ENV['CAS_SSL']
- cas_options[:validate_url] = ENV['CAS_VALIDATE_URL'] if ENV['CAS_VALIDATE_URL']
+ cas_options[:service_validate_url] = ENV['CAS_VALIDATE_URL'] if ENV['CAS_VALIDATE_URL']
cas_options[:callback_url] = ENV['CAS_CALLBACK_URL'] if ENV['CAS_CALLBACK_URL']
cas_options[:logout_url] = ENV['CAS_LOGOUT_URL'] if ENV['CAS_LOGOUT_URL']
cas_options[:login_url] = ENV['CAS_LOGIN_URL'] if ENV['CAS_LOGIN_URL']
diff --git a/config/initializers/rack_attack.rb b/config/initializers/rack_attack.rb
index 28201cc64..ae3eede66 100644
--- a/config/initializers/rack_attack.rb
+++ b/config/initializers/rack_attack.rb
@@ -57,6 +57,10 @@ class Rack::Attack
req.authenticated_user_id if req.post? && req.path.start_with?('/api/v1/media')
end
+ throttle('throttle_media_proxy', limit: 30, period: 30.minutes) do |req|
+ req.ip if req.path.start_with?('/media_proxy')
+ end
+
throttle('throttle_api_sign_up', limit: 5, period: 30.minutes) do |req|
req.ip if req.post? && req.path == '/api/v1/accounts'
end
diff --git a/config/locales/activerecord.ca.yml b/config/locales/activerecord.ca.yml
index 39f6839aa..19e39b5e7 100644
--- a/config/locales/activerecord.ca.yml
+++ b/config/locales/activerecord.ca.yml
@@ -1,6 +1,9 @@
---
ca:
activerecord:
+ attributes:
+ status:
+ owned_poll: Enquesta
errors:
models:
account:
diff --git a/config/locales/activerecord.co.yml b/config/locales/activerecord.co.yml
index af28d108f..0a9a936dd 100644
--- a/config/locales/activerecord.co.yml
+++ b/config/locales/activerecord.co.yml
@@ -1,6 +1,10 @@
---
co:
activerecord:
+ attributes:
+ poll:
+ expires_at: Fine
+ options: Scelte
errors:
models:
account:
diff --git a/config/locales/activerecord.cs.yml b/config/locales/activerecord.cs.yml
index 838dee15f..57240a19e 100644
--- a/config/locales/activerecord.cs.yml
+++ b/config/locales/activerecord.cs.yml
@@ -1,6 +1,10 @@
---
cs:
activerecord:
+ attributes:
+ poll:
+ expires_at: Uzávěrka
+ options: Volby
errors:
models:
account:
diff --git a/config/locales/activerecord.da.yml b/config/locales/activerecord.da.yml
index 5e7266ef1..8e9db715b 100644
--- a/config/locales/activerecord.da.yml
+++ b/config/locales/activerecord.da.yml
@@ -1,6 +1,9 @@
---
da:
activerecord:
+ attributes:
+ status:
+ owned_poll: Afstemning
errors:
models:
account:
diff --git a/config/locales/activerecord.de.yml b/config/locales/activerecord.de.yml
index 7d09856d7..ce465545b 100644
--- a/config/locales/activerecord.de.yml
+++ b/config/locales/activerecord.de.yml
@@ -1,6 +1,12 @@
---
de:
activerecord:
+ attributes:
+ poll:
+ expires_at: Frist
+ options: Wahlen
+ status:
+ owned_poll: Umfrage
errors:
models:
account:
diff --git a/config/locales/activerecord.el.yml b/config/locales/activerecord.el.yml
index 86672b21d..abeca78ac 100644
--- a/config/locales/activerecord.el.yml
+++ b/config/locales/activerecord.el.yml
@@ -1,6 +1,12 @@
---
el:
activerecord:
+ attributes:
+ poll:
+ expires_at: Προθεσμία
+ options: Επιλογές
+ status:
+ owned_poll: Ψηφοφορία
errors:
models:
account:
diff --git a/config/locales/activerecord.en.yml b/config/locales/activerecord.en.yml
index 428aaf727..8533418cc 100644
--- a/config/locales/activerecord.en.yml
+++ b/config/locales/activerecord.en.yml
@@ -1,6 +1,10 @@
---
en:
activerecord:
+ attributes:
+ poll:
+ expires_at: Deadline
+ options: Choices
errors:
models:
account:
diff --git a/config/locales/activerecord.fa.yml b/config/locales/activerecord.fa.yml
index 1cd50eec7..0cc6c12d7 100644
--- a/config/locales/activerecord.fa.yml
+++ b/config/locales/activerecord.fa.yml
@@ -1,6 +1,9 @@
---
fa:
activerecord:
+ attributes:
+ status:
+ owned_poll: رأیگیری
errors:
models:
account:
diff --git a/config/locales/activerecord.fr.yml b/config/locales/activerecord.fr.yml
index c4b04c73a..e26e02592 100644
--- a/config/locales/activerecord.fr.yml
+++ b/config/locales/activerecord.fr.yml
@@ -1,6 +1,10 @@
---
fr:
activerecord:
+ attributes:
+ poll:
+ expires_at: Date butoir
+ options: Choix
errors:
models:
account:
diff --git a/config/locales/activerecord.gl.yml b/config/locales/activerecord.gl.yml
index e38131454..3792f3476 100644
--- a/config/locales/activerecord.gl.yml
+++ b/config/locales/activerecord.gl.yml
@@ -1,6 +1,12 @@
---
gl:
activerecord:
+ attributes:
+ poll:
+ expires_at: Caducidade
+ options: Opcións
+ status:
+ owned_poll: Sondaxe
errors:
models:
account:
diff --git a/config/locales/activerecord.ja.yml b/config/locales/activerecord.ja.yml
index 7bc4fc308..ce147819a 100644
--- a/config/locales/activerecord.ja.yml
+++ b/config/locales/activerecord.ja.yml
@@ -2,6 +2,9 @@
ja:
activerecord:
attributes:
+ poll:
+ expires_at: 期限
+ options: 項目
user:
email: メールアドレス
errors:
@@ -9,8 +12,8 @@ ja:
account:
attributes:
username:
- invalid: アルファベット・数値・アンダーバー(_)で入力してください
+ invalid: アルファベット・数字・アンダーバーの組み合わせで入力してください
status:
attributes:
reblog:
- taken: のブーストはすでに存在します
+ taken: は既にブーストされています
diff --git a/config/locales/activerecord.kk.yml b/config/locales/activerecord.kk.yml
new file mode 100644
index 000000000..fba2e6054
--- /dev/null
+++ b/config/locales/activerecord.kk.yml
@@ -0,0 +1,17 @@
+---
+kk:
+ activerecord:
+ attributes:
+ poll:
+ expires_at: Дедлайн
+ options: Таңдаулар
+ errors:
+ models:
+ account:
+ attributes:
+ username:
+ invalid: тек әріптер, сандар және асты сызылған таңбалар
+ status:
+ attributes:
+ reblog:
+ taken: жазбасы бұрыннан бар
diff --git a/config/locales/activerecord.nl.yml b/config/locales/activerecord.nl.yml
index eeabab34a..31348b18f 100644
--- a/config/locales/activerecord.nl.yml
+++ b/config/locales/activerecord.nl.yml
@@ -1,6 +1,12 @@
---
nl:
activerecord:
+ attributes:
+ poll:
+ expires_at: Deadline
+ options: Keuzes
+ status:
+ owned_poll: Poll
errors:
models:
account:
diff --git a/config/locales/activerecord.oc.yml b/config/locales/activerecord.oc.yml
index cdf0fa0ac..1157d9769 100644
--- a/config/locales/activerecord.oc.yml
+++ b/config/locales/activerecord.oc.yml
@@ -1,6 +1,10 @@
---
oc:
activerecord:
+ attributes:
+ poll:
+ expires_at: Data limita
+ options: Opcions
errors:
models:
account:
diff --git a/config/locales/activerecord.pt-BR.yml b/config/locales/activerecord.pt-BR.yml
index d2519fe90..ddea7bbb4 100644
--- a/config/locales/activerecord.pt-BR.yml
+++ b/config/locales/activerecord.pt-BR.yml
@@ -1,6 +1,9 @@
---
pt-BR:
activerecord:
+ attributes:
+ status:
+ owned_poll: enquete
errors:
models:
account:
diff --git a/config/locales/activerecord.ru.yml b/config/locales/activerecord.ru.yml
index 2a2d62a7e..d4529428a 100644
--- a/config/locales/activerecord.ru.yml
+++ b/config/locales/activerecord.ru.yml
@@ -1,6 +1,10 @@
---
ru:
activerecord:
+ attributes:
+ poll:
+ expires_at: Крайний срок
+ options: Варианты
errors:
models:
account:
diff --git a/config/locales/activerecord.sk.yml b/config/locales/activerecord.sk.yml
index 9ae71fa9a..9d59edd5b 100644
--- a/config/locales/activerecord.sk.yml
+++ b/config/locales/activerecord.sk.yml
@@ -1,6 +1,12 @@
---
sk:
activerecord:
+ attributes:
+ poll:
+ expires_at: Uzávierka
+ options: Voľby
+ status:
+ owned_poll: Anketa
errors:
models:
account:
@@ -10,4 +16,4 @@ sk:
status:
attributes:
reblog:
- taken: status už existuje
+ taken: príspevku už existuje
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.th.yml b/config/locales/activerecord.th.yml
index 2a41f4bce..7890ed80c 100644
--- a/config/locales/activerecord.th.yml
+++ b/config/locales/activerecord.th.yml
@@ -6,8 +6,8 @@ th:
account:
attributes:
username:
- invalid: only letters, numbers and underscores
+ invalid: ตัวอักษร, ตัวเลข และขีดล่างเท่านั้น
status:
attributes:
reblog:
- taken: of status already exists
+ taken: มีสถานะอยู่แล้ว
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/activerecord.zh_Hant.yml b/config/locales/activerecord.zh_Hant.yml
new file mode 100644
index 000000000..730ab3a51
--- /dev/null
+++ b/config/locales/activerecord.zh_Hant.yml
@@ -0,0 +1,15 @@
+zh_Hant:
+ activerecord:
+ attributes:
+ status:
+ owned_poll: 投票
+ errors:
+ models:
+ account:
+ attributes:
+ username:
+ invalid: 只允許使用字母、數字和底線
+ status:
+ attributes:
+ reblog:
+ taken: 的嘟文已經存在
diff --git a/config/locales/ar.yml b/config/locales/ar.yml
index 08f5578ba..fe49ac7f6 100644
--- a/config/locales/ar.yml
+++ b/config/locales/ar.yml
@@ -7,7 +7,6 @@ ar:
administered_by: 'يُديره :'
api: واجهة برمجة التطبيقات
apps: تطبيقات الأجهزة المحمولة
- closed_registrations: التسجيلات في مثيل الخادوم هذا مُغلقة حاليًا. غير أنه بامكانك العثور على خادم آخر لإنشاء حسابك و مِن ثم النفاذ إلى نفس الشبكة مِن هناك.
contact: للتواصل معنا
contact_missing: لم يتم تعيينه
contact_unavailable: غير متوفر
@@ -15,19 +14,9 @@ ar:
extended_description_html: |
مكان جيد للقواعد
لم يتم بعد إدخال الوصف الطويل.
- features:
- humane_approach_body: تعلُّمًا مِن فشل الشبكات الأخرى، غاية ماستدون هي بلوغ الخيارات الأخلاقية في التصميم لمُحارَبة إسائة إستعمال شبكات التواصل الإجتماعية.
- humane_approach_title: أسلوب يُعيد الإعتبار للفَرد
- not_a_product_body: ماستدون ليس شبكة تجارية. لا يحتوي على إعلانات و لا يقوم باستغلال البيانات و لا هو بِبُستان مُسيَّج. لا تحكم فيه وليس له أية هيئةٍ مركزيةٍ.
- not_a_product_title: إنك فرد و لست سلعة
- real_conversation_body: يُمكنكم التعبير عن آرائكم بكل حرية بفضل 500 حرف و انتقاء دقيق للمحتوى و الوسائط بفضل أدوات التحذير التي هي بين أيديكم.
- real_conversation_title: مبني لتحقيق تواصل حقيقي
- within_reach_body: إبقوا على اتصال دائم بأصدقائكم حيثما كانوا عبر عدة تطبيقات لنظام آي أواس و أندرويد و عدة منصات أخرى بفضل واجهة برمجية للتطبيقات و بيئة صديقة للتطوير.
- within_reach_title: في مُتناوَل يدك دائمًا
generic_description: "%{domain} هو سيرفر من بين سيرفرات الشبكة"
hosted_on: ماستدون مُستضاف على %{domain}
learn_more: تعلم المزيد
- other_instances: خوادم أخرى
privacy_policy: سياسة الخصوصية
source_code: الشفرة المصدرية
status_count_after:
@@ -195,6 +184,7 @@ ar:
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}"
@@ -318,6 +308,8 @@ ar:
back_to_account: العودة إلى الحساب
title: "%{acct} مُتابِعون"
instances:
+ by_domain: النطاق
+ delivery_available: التسليم متوفر
known_accounts:
few: "%{count} حسابات معروفة"
many: "%{count} حسابات معروفة"
@@ -424,9 +416,6 @@ ar:
min_invite_role:
disabled: لا أحد
title: المستخدِمون المصرح لهم لإرسال الدعوات
- open:
- desc_html: السماح للجميع بإنشاء حساب
- title: فتح التسجيل
show_known_fediverse_at_about_page:
desc_html: عند التثبت ، سوف تظهر toots من جميع fediverse المعروفة على عرض مسبق. وإلا فإنه سيعرض فقط toots المحلية.
title: إظهار الفيديفرس الموحَّد في خيط المُعايَنة
@@ -509,7 +498,6 @@ ar:
warning: كن حذرا مع هذه البيانات. لا تقم أبدا بمشاركتها مع الآخَرين !
your_token: رمز نفاذك
auth:
- agreement_html: بمجرد النقر على "التسجيل" أسفله، فإنك تُصرِّح قبول
قواعد مثيل الخادوم و
شروط الخدمة التي نوفرها لك.
change_password: الكلمة السرية
confirm_email: تأكيد عنوان البريد الإلكتروني
delete_account: حذف حساب
@@ -521,13 +509,11 @@ ar:
logout: خروج
migrate_account: الإنتقال إلى حساب آخر
migrate_account_html: إن كنت ترغب في تحويل هذا الحساب نحو حساب آخَر، يُمكِنُك
إعداده هنا.
- or: أو
or_log_in_with: أو قم بتسجيل الدخول بواسطة
providers:
cas: CAS
saml: SAML
register: إنشاء حساب
- register_elsewhere: التسجيل على خادوم آخَر
resend_confirmation: إعادة إرسال تعليمات التأكيد
reset_password: إعادة تعيين كلمة المرور
security: الأمان
@@ -597,10 +583,13 @@ ar:
size: الحجم
blocks: قمت بحظر
csv: CSV
+ domain_blocks: النطاقات المحظورة
follows: أنت تتبع
lists: القوائم
mutes: قُمتَ بكتم
storage: ذاكرة التخزين
+ featured_tags:
+ add_new: إضافة واحد
filters:
contexts:
home: الخيط الزمني الرئيسي
@@ -617,15 +606,6 @@ ar:
title: عوامل التصفية
new:
title: إضافة عامل تصفية جديد
- followers:
- domain: النطاق
- followers_count: عدد المتابِعين
- lock_link: قم بتجميد حسابك
- purge: تنحية من بين متابعيك
- success: جارية عملية حظر المتابِعين بسلاسة من %{count} نطاقات أخرى ...
- true_privacy_html: تذكر دائمًا أنّ
الخصوصية التامة لا يمكن بلوغها إلّا بالتعمية و التشفير من طرف إلى آخَر.
- unlocked_warning_html: يمكن لأي كان متابعة حسابك و الإطلاع مباشرة على تبويقاتك. إستخدِم %{lock_link} لمُعاينة أو رفض طلبات المتابِعين الجُدُد.
- unlocked_warning_title: إنّ حسابك غير مقفل
footer:
developers: المطورون
more: المزيد …
@@ -642,10 +622,16 @@ ar:
two: هناك شيء ما ليس على ما يرام! يُرجى مراجعة الأخطاء الـ %{count} أدناه
zero: هناك شيء ما ليس على ما يرام! يُرجى مراجعة الأخطاء الـ %{count} أدناه
imports:
+ modes:
+ merge: دمج
+ merge_long: الإبقاء علي التسجيلات الحالية وإضافة الجديدة
+ overwrite: إعادة الكتابة
+ overwrite_long: استبدال التسجيلات الحالية بالجديدة
preface: بإمكانك استيراد بيانات قد قُمتَ بتصديرها مِن مثيل خادوم آخَر، كقوائم المستخدِمين الذين كنتَ تتابِعهم أو قُمتَ بحظرهم.
success: تم تحميل بياناتك بنجاح وسيتم معالجتها في الوقت المناسب
types:
blocking: قائمة المحظورين
+ domain_blocking: قائمة النطاقات المحظورة
following: قائمة المستخدمين المتبوعين
muting: قائمة الكتم
upload: تحميل
@@ -760,6 +746,16 @@ ar:
no_account_html: أليس عندك حساب بعدُ ؟ يُمْكنك
التسجيل مِن هنا
proceed: أكمل المتابعة
prompt: 'إنك بصدد متابعة :'
+ remote_interaction:
+ favourite:
+ proceed: المواصلة إلى المفضلة
+ prompt: 'ترغب في إضافة هذا التبويق إلى مفضلتك:'
+ reblog:
+ proceed: المواصلة إلى الترقية
+ prompt: 'ترغب في ترقية هذا التبويق:'
+ reply:
+ proceed: المواصلة إلى الرد
+ prompt: 'ترغب في الرد على هذا التبويق:'
remote_unfollow:
error: خطأ
title: العنوان
@@ -812,14 +808,11 @@ ar:
development: التطوير
edit_profile: تعديل الملف الشخصي
export: تصدير البيانات
- followers: المتابِعون المُرَخّصون
import: إستيراد
migrate: تهجير الحساب
notifications: الإخطارات
preferences: التفضيلات
- settings: الإعدادات
two_factor_authentication: المُصادقة بخُطوَتَيْن
- your_apps: تطبيقاتك
statuses:
attached:
description: 'مُرفَق : %{attached}'
@@ -902,6 +895,8 @@ ar:
review_server_policies: مراجعة شروط السيرفر
subject:
disable: تم تجميد حسابك %{acct}
+ none: تحذير إلى %{acct}
+ suspend: لقد تم تعليق حسابك %{acct}
title:
disable: الحساب مُجمَّد
none: تحذير
diff --git a/config/locales/ast.yml b/config/locales/ast.yml
index 78ad796a0..7a51be7cf 100644
--- a/config/locales/ast.yml
+++ b/config/locales/ast.yml
@@ -12,12 +12,6 @@ ast:
extended_description_html: |
Un llugar bonu pa les regles
Entá nun se configuró la descripción estendida.
- features:
- humane_approach_title: Una visión más humana
- not_a_product_body: Mastodon nun ye una rede comercial, nun hai anuncios, nun recueye datos o nun pon muries a xardinos. Nin siquier tien una autoridá central.
- not_a_product_title: Yes una persona, non un productu
- real_conversation_title: Fechu pa conversaciones de verdá
- within_reach_title: Siempres al algame
hosted_on: Mastodon ta agospiáu en %{domain}
learn_more: Deprendi más
source_code: Códigu fonte
@@ -129,7 +123,6 @@ ast:
invalid_url: La URL apurrida nun ye válida
warning: Ten curiáu con estos datos, ¡enxamás nun los compartas con naide!
auth:
- agreement_html: Faciendo clic en «Aniciar sesión» aceutes siguir
les regles de la instancia y
los nuesos términos del serviciu.
change_password: Contraseña
delete_account: Desaniciu de la cuenta
delete_account_html: Si deseyes desaniciar la to cuenta, pues
siguir equí. Va pidísete la confirmación.
@@ -141,7 +134,6 @@ ast:
cas: CAS
saml: SAML
register: Rexistrase
- register_elsewhere: Rexistrase n'otru sirvidor
security: Seguranza
authorize_follow:
already_following: Yá tas siguiendo a esta cuenta
@@ -189,10 +181,6 @@ ast:
title: Peñeres
new:
title: Amestar una peñera nueva
- followers:
- domain: Dominiu
- followers_count: Númberu de siguidores
- purge: Desaniciar de los siguidores
generic:
changes_saved_msg: "¡Los cambeos guardáronse con ésitu!"
save_changes: Guardar cambeos
@@ -309,11 +297,9 @@ ast:
back: Volver a Mastodon
edit_profile: Edición del perfil
export: Esportación de datos
- followers: Siguidores autorizaos
import: Importación
notifications: Avisos
preferences: Preferencies
- settings: Axustes
two_factor_authentication: Autenticación en dos pasos
statuses:
attached:
diff --git a/config/locales/bg.yml b/config/locales/bg.yml
index 4de5b1e22..57aa6f87e 100644
--- a/config/locales/bg.yml
+++ b/config/locales/bg.yml
@@ -3,9 +3,7 @@ bg:
about:
about_mastodon_html: Mastodon е
безплатен сървър с
отворен код за социални мрежи. Като
децентрализирана алтернатива на комерсиалните платформи, той позволява избягването на риска от монополизация на твоята комуникация от единични компании. Изберете си сървър, на който се доверявате, и ще можете да контактувате с всички останали. Всеки може да пусне Mastodon и лесно да вземе участие в
социалната мрежа.
about_this: За тази инстанция
- closed_registrations: В момента регистрациите за тази инстанция са затворени.
contact: За контакти
- other_instances: Други инстанции
source_code: Програмен код
status_count_after: публикации
status_count_before: Написали
@@ -124,7 +122,6 @@ bg:
export: Експортиране на данни
import: Импортиране
preferences: Предпочитания
- settings: Настройки
two_factor_authentication: Двустепенно удостоверяване
statuses:
open_in_web: Отвори в уеб
diff --git a/config/locales/bn.yml b/config/locales/bn.yml
new file mode 100644
index 000000000..b4eb012f5
--- /dev/null
+++ b/config/locales/bn.yml
@@ -0,0 +1,141 @@
+---
+bn:
+ about:
+ about_hashtag_html: এগুলো প্রকাশ্য লেখা যার হ্যাশট্যাগ
#%{hashtag}। আপনি এগুলোর ব্যবহার বা সাথে যুক্ত হতে পারবেন যদি আপনার যুক্তবিশ্বের কোথাও নিবন্ধন থেকে থাকে।
+ about_mastodon_html: মাস্টাডন উন্মুক্ত ইন্টারনেটজালের নিয়ম এবং স্বাধীন ও মুক্ত উৎসের সফটওয়্যারের ভিত্তিতে তৈরী একটি সামাজিক যোগাযোগ মাধ্যম। এটি ইমেইলের মত বিকেন্দ্রীভূত।
+ about_this: কি
+ active_count_after: চালু
+ active_footnote: মাসিক সক্রিয় ব্যবহারকারী
+ administered_by: 'পরিচালনা করছেন:'
+ api: সফটওয়্যার তৈরীর নিয়ম (API)
+ apps: মোবাইল অ্যাপ
+ apps_platforms: মাস্টাডন আইওএস, এন্ড্রোইড বা অন্য মাধ্যমে ব্যবহার করুন
+ browse_directory: একটি ব্যবহারকারীদের তালিকা দেখুন এবং পছন্দ অনুসারে খুজুন
+ browse_public_posts: মাস্টাডনে নতুন প্রকাশ্য লেখাগুলো সরাসরি দেখুন
+ contact: যোগাযোগ
+ contact_missing: নেই
+ contact_unavailable: প্রযোজ্য নয়
+ discover_users: ব্যবহারকারীদের দেখুন
+ documentation: ব্যবহারবিলি
+ extended_description_html: |
+
নিয়মের জন্য উপযুক্ত জায়গা
+
বিস্তারিত বিবরণ এখনো যুক্ত করা হয়নি
+ federation_hint_html: "%{instance}তে একটা নিবন্ধন থাকলে আপনি যেকোনো মাস্টাডন বা এধরণের অন্যান্য সার্ভারের মানুষের সাথে যুক্ত হতে পারবেন ।"
+ generic_description: নেটওয়ার্কের ভেতরে %{domain} একটি সার্ভার
+ get_apps: মোবাইল এপ্প একটা ব্যবহার করতে পারেন
+ hosted_on: এই মাস্টাডনটি আছে %{domain} এ
+ learn_more: বিস্তারিত জানুন
+ privacy_policy: গোপনীয়তা নীতি
+ see_whats_happening: কী কী হচ্ছে দেখুন
+ server_stats: 'সার্ভারের অবস্থা:'
+ source_code: আসল তৈরীপত্র
+ status_count_after:
+ one: অবস্থা
+ other: স্থিতিগুলি
+ status_count_before: কে লিখেছে
+ tagline: পরিচিতজনদের সাথে যুক্ত হন এবং নতুনদের সাথে পরিচিত হন
+ terms: ব্যবহারের শর্তাবলী
+ user_count_after:
+ one: ব্যবহারকারী
+ other: জনের
+ user_count_before: বাসা
+ what_is_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:
+ approve: অনুমোদন দিন
+ are_you_sure: আপনি কি নিশ্চিত ?
+ avatar: অবতার
+ by_domain: ওয়েবসাইট/কার্যক্ষেত্র
+ change_email:
+ changed_msg: নিবন্ধনের ইমেইল সঠিকভাবে পরিবর্তন হয়েছে!
+ current_email: এখনকার ইমেইল
+ label: ইমেইল পরিবর্তন
+ new_email: নতুন ইমেইল
+ submit: ইমেইল পরিবর্তন
+ title: "%{username} এর ইমেইল পরিবর্তন"
+ confirm: নিশ্চিত করুন
+ confirmed: নিশ্চিত হয়েছে
+ confirming: নিশ্চিত করা হচ্ছে
+ deleted: মুছে ফেলা হয়েছে
+ demote: নিচের পদে দিন
+ disable: বন্ধ করুন
+ disable_two_factor_authentication: দুই পদ্ধতির প্রমাণীকরণ(2FA) বন্ধ করুন
+ disabled: বন্ধ করা হয়েছে
+ display_name: দেখানোর জন্য নাম
+ domain: ওয়েবসাইট/কার্যক্ষেত্র
+ edit: বদলান
+ email: ইমেইল
+ email_status: ইমেইলের অবস্থা
+ enable: চালু করুন
+ enabled: চালু করুন
+ feed_url: সম্মিলিত(feed) লিংক
+ followers: অনুসরকারীরা
+ followers_url: অনুসরণকারীদের লিংক
+ follows: অনুসরণ করে
+ header: শিরোলেখা
+ inbox_url: চিঠি পাওয়ার বক্স লিংক
+ invited_by: আমন্ত্রণ করেছে
+ ip: আইপি(IP)
+ joined: যোগ দিয়েছে
+ location:
+ all: সব
+ local: স্থানীয়
+ remote: দূরবর্তী
+ title: জায়গা
+ login_status: নিবন্ধনধারীভাবে প্রবেশের অবস্থা
+ media_attachments: ছবি/ভিডিও যুক্ত
+ memorialize: স্মরণিকা বানান
+ moderation:
+ active: চালু
+ all: সব
+ pending: অপেক্ষিত আছে
+ silenced: নীরব করা হয়েছে
+ suspended: স্থগিত করা হয়েছে
+ title: প্রশাসনা
+ moderation_notes: প্রশাসনের কিছু লেখা
+ most_recent_activity: সর্বশেষ কার্যক্রম
+ most_recent_ip: সর্বশেষ আইপি(IP)
+ no_limits_imposed: কোন সীমা আরোপ করা নেই
+ not_subscribed: সাবস্ক্রাইব নেই
+ outbox_url: চিঠি পাঠানোর বাক্স লিংক
+ pending: পয্র্যবেক্ষণের অপেক্ষায় আছে
+ perform_full_suspension: বাতিল করা
+ verification:
+ verification: সত্যতা নির্ধারণ
diff --git a/config/locales/ca.yml b/config/locales/ca.yml
index f5245bd98..17a5d9d0c 100644
--- a/config/locales/ca.yml
+++ b/config/locales/ca.yml
@@ -4,36 +4,36 @@ ca:
about_hashtag_html: Aquests són toots públics etiquetats amb
#%{hashtag}. Pots interactuar amb ells si tens un compte a qualsevol lloc del fediverse.
about_mastodon_html: Mastodon és una xarxa social basada en protocols web oberts i en programari lliure i de codi obert. Està descentralitzat com el correu electrònic.
about_this: Quant a
+ active_count_after: actiu
+ active_footnote: Usuaris actius mensuals (UAM)
administered_by: 'Administrat per:'
api: API
apps: Apps mòbil
- closed_registrations: Actualment, el registre està tancat en aquesta instància. Malgrat això! Pots trobar una altra instància per fer-te un compte i obtenir accés a la mateixa xarxa des d'allà.
+ apps_platforms: Utilitza Mastodon des de iOS, Android i altres plataformes
+ browse_directory: Navega per el directori de perfils i filtra segons interessos
+ browse_public_posts: Navega per una transmissió en directe de publicacions públiques a Mastodon
contact: Contacte
contact_missing: No configurat
contact_unavailable: N/D
+ discover_users: Descobreix usuaris
documentation: Documentació
extended_description_html: |
Un bon lloc per les regles
Encara no s'ha configurat la descripció ampliada.
- features:
- humane_approach_body: Aprenent dels errors d'altres xarxes, Mastodon té com a objectiu fer eleccions ètiques de disseny per a combatre el mal ús de les xarxes socials.
- humane_approach_title: Un enfocament més humà
- not_a_product_body: Mastodon no és una xarxa comercial. Sense publicitat, sense mineria de dades, sense jardins emmurallats. No hi ha cap autoritat central.
- not_a_product_title: Ets una persona, no un producte
- real_conversation_body: Amb 500 caràcters a la teva disposició i suport per a continguts granulars i avisos multimèdia, pots expressar-te de la manera que vulguis.
- real_conversation_title: Construït per a converses reals
- within_reach_body: Diverses aplicacions per a iOS, Android i altres plataformes gràcies a un ecosistema API amable amb el desenvolupador, et permet mantenir-te al dia amb els amics en qualsevol lloc..
- within_reach_title: Sempre a l'abast
+ federation_hint_html: Amb un compte de %{instance} podràs seguir persones de qualsevol servidor Mastodon i altres.
generic_description: "%{domain} és un servidor a la xarxa"
+ get_apps: Prova una aplicació mòbil
hosted_on: Mastodon allotjat a %{domain}
learn_more: Més informació
- other_instances: Altres instàncies
privacy_policy: Política de privacitat
+ see_whats_happening: Mira què està passant
+ server_stats: 'Estadístiques del servidor:'
source_code: Codi font
status_count_after:
one: estat
other: estats
status_count_before: Que han escrit
+ tagline: Segueix els teus amics i descobreix-ne de nous
terms: Termes del servei
user_count_after:
one: usuari
@@ -79,6 +79,7 @@ ca:
delete: Suprimeix
destroyed_msg: Nota de moderació destruïda amb èxit!
accounts:
+ approve: Aprova
are_you_sure: N'estàs segur?
avatar: Avatar
by_domain: Domini
@@ -124,6 +125,7 @@ ca:
moderation:
active: Actiu
all: Tot
+ pending: Pendent
silenced: Silenciat
suspended: Suspès
title: Moderació
@@ -133,6 +135,7 @@ ca:
no_limits_imposed: Sense límits imposats
not_subscribed: No subscrit
outbox_url: URL de la bústia de sortida
+ pending: Revisió pendent
perform_full_suspension: Suspèn
profile_url: URL del perfil
promote: Promociona
@@ -140,12 +143,13 @@ ca:
public: Públic
push_subscription_expires: La subscripció PuSH expira
redownload: Actualitza el perfil
+ reject: Rebutja
remove_avatar: Eliminar avatar
remove_header: Treu la capçalera
resend_confirmation:
- already_confirmed: Este usuario ya está confirmado
+ already_confirmed: Aquest usuari ja està confirmat
send: Reenviar el correu electrònic de confirmació
- success: "¡Correo electrónico de confirmación enviado con éxito!"
+ success: Correu electrònic de confirmació enviat amb èxit!
reset: Reinicialitza
reset_password: Restableix la contrasenya
resubscribe: Torna a subscriure
@@ -241,6 +245,7 @@ ca:
feature_profile_directory: Directori de perfils
feature_registrations: Registres
feature_relay: Relay de la Federació
+ feature_timeline_preview: Vista previa de línia de temps
features: Característiques
hidden_service: Federació amb serveis ocults
open_reports: informes oberts
@@ -289,7 +294,7 @@ ca:
undo: Desfés
undo: Desfés el bloqueig del domini
email_domain_blocks:
- add_new: Afegeix
+ add_new: Afegir nou
created_msg: S'ha creat el bloc de domini de correu electrònic
delete: Suprimeix
destroyed_msg: S'ha eliminat correctament el bloc del domini de correu
@@ -302,6 +307,7 @@ ca:
back_to_account: Tornar al compte
title: Seguidors de %{acct}
instances:
+ by_domain: Domini
delivery_available: El lliurament està disponible
known_accounts:
one: "%{count} compte conegut"
@@ -311,10 +317,10 @@ ca:
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_blocked_by_us: Bloquejats per nosaltres
+ total_followed_by_them: Seguits per ells
+ total_followed_by_us: Seguits per nosaltres
+ total_reported: Informes sobre ells
total_storage: Adjunts multimèdia
invites:
deactivate_all: Desactiva-ho tot
@@ -331,7 +337,7 @@ ca:
disable: Inhabilita
disabled: Desactivat
enable: Activat
- enable_hint: Una vegada habilitat, el teu servidor es subscriurà a tots els toots públics d'aquest relay i començarà a enviar-hi tots els toots públics d'aquest servidor.
+ enable_hint: Una vegada habilitat el teu servidor es subscriurà a tots els toots públics d'aquest relay i començarà a enviar-hi tots els toots públics d'aquest servidor.
enabled: Activat
inbox_url: URL del Relay
pending: S'està esperant l'aprovació del relay
@@ -380,20 +386,20 @@ ca:
desc_html: Separa diversos noms d'usuari amb comes. Només funcionaran els comptes locals i desblocats. El valor predeterminat quan està buit és tots els administradors locals.
title: El seguiment per defecte per als usuaris nous
contact_information:
- email: Introdueix una adreça de correu electrònic píblica
+ email: Introdueix una adreça de correu electrònic pública
username: Nom d'usuari del contacte
custom_css:
desc_html: Modifica l'aspecte amb CSS carregat a cada pàgina
title: CSS personalitzat
hero:
- desc_html: Es mostra en pàgina frontal. Recomanat 600x100px al menys. Si no es configura es mostrarà el de la instància
+ desc_html: Es mostra en pàgina frontal. Recomanat al menys 600x100px. Si no es configura es mostrarà el del servidor
title: Imatge d’heroi
mascot:
desc_html: Es mostra a diverses pàgines. Es recomana com a mínim 293 × 205px. Si no està configurat, torna a la mascota predeterminada
title: Imatge de la mascota
peers_api_enabled:
- desc_html: Els noms de domini que ha trobat aquesta instància al fediverse
- title: Publica la llista d'instàncies descobertes
+ desc_html: Els noms de domini que aquest servidor ha trobat al fedivers
+ title: Publica la llista de servidors descoberts
preview_sensitive_media:
desc_html: Les visualitzacions prèvies d'enllaços d'altres llocs web mostraran una miniatura encara que els mitjans de comunicació estiguin marcats com a sensibles
title: Mostra els mitjans sensibles a les previsualitzacions d'OpenGraph
@@ -410,9 +416,12 @@ ca:
min_invite_role:
disabled: Ningú
title: Permet les invitacions de
- open:
- desc_html: Permet que qualsevol pugui crear un compte
- title: Registre obert
+ registrations_mode:
+ modes:
+ approved: Es requereix l’aprovació per registrar-se
+ none: Ningú no pot registrar-se
+ open: Qualsevol pot registrar-se
+ title: Mode de registres
show_known_fediverse_at_about_page:
desc_html: Quan s'activa, mostrarà tots els toots de tot el fedivers conegut en vista prèvia. En cas contrari, només es mostraran toots locals.
title: Mostra el fedivers conegut en vista prèvia de la línia de temps
@@ -421,20 +430,20 @@ ca:
title: Mostra insígnia de personal
site_description:
desc_html: Paràgraf introductori a la pàgina principal i en etiquetes meta. Pots utilitzar etiquetes HTML, en particular
<a>
i
<em>
.
- title: Descripció de la instància
+ title: Descripció del servidor
site_description_extended:
- desc_html: Un bon lloc per al codi de conducta, regles, directrius i altres coses que distingeixen la vostra instància. Pots utilitzar etiquetes HTML
+ desc_html: Un bon lloc per al codi de conducta, regles, directrius i altres coses que distingeixen el teu servidor. Pots utilitzar etiquetes HTML
title: Descripció ampliada del lloc
site_short_description:
- desc_html: Es mostra a la barra lateral i a metaetiquetes. Descriu en un únic paràgraf què és Mastodon i què fa que aquest servidor sigui especial. Si està buit, s'estableix per defecte la descripció de la instància.
- title: Descripció curta de l’instància
+ desc_html: Es mostra a la barra lateral i a metaetiquetes. Descriu en un únic paràgraf què és Mastodon i què fa que aquest servidor sigui especial. Si està buit, s'estableix per defecte la descripció del servidor.
+ title: Descripció curta del servidor
site_terms:
desc_html: Pots escriure la teva pròpia política de privadesa, els termes del servei o d'altres normes legals. Pots utilitzar etiquetes HTML
title: Termes del servei personalitzats
- site_title: Nom de la instància
+ site_title: Nom del servidor
thumbnail:
desc_html: S'utilitza per obtenir visualitzacions prèvies a través d'OpenGraph i API. Es recomana 1200x630px
- title: Miniatura de la Instància
+ title: Miniatura del servidor
timeline_preview:
desc_html: Mostra la línia de temps pública a la pàgina inicial
title: Vista prèvia de la línia de temps
@@ -475,6 +484,9 @@ ca:
edit_preset: Edita l'avís predeterminat
title: Gestiona les configuracions predefinides dels avisos
admin_mailer:
+ new_pending_account:
+ body: A continuació trobaràs els detalls del compte nou. Pots aprovar o rebutjar aquest registre.
+ subject: Nou compte per a revisar a %{instance} (%{username})
new_report:
body: "%{reporter} ha informat de %{target}"
body_remote: Algú des de el domini %{domain} ha informat sobre %{target}
@@ -495,8 +507,9 @@ ca:
warning: Aneu amb compte amb aquestes dades. No les compartiu mai amb ningú!
your_token: El teu identificador d'accés
auth:
- agreement_html: Al fer clic en "Registre" acceptes respectar
els nostres termes del servei i
la nostra política de privadesa.
+ apply_for_account: Demana una invitació
change_password: Contrasenya
+ checkbox_agreement_html: Estic d'acord amb les
normes del servidor i
els termes del servei
confirm_email: Confirmar correu electrònic
delete_account: Suprimeix el compte
delete_account_html: Si vols suprimir el compte pots
fer-ho aquí. Se't demanarà confirmació.
@@ -507,17 +520,17 @@ ca:
logout: Tanca sessió
migrate_account: Mou a un compte diferent
migrate_account_html: Si vols redirigir aquest compte a un altre diferent, el pots
configurar aquí.
- or: o
or_log_in_with: O inicia sessió amb
providers:
cas: CAS
saml: SAML
register: Registre
- register_elsewhere: Registra't en un altre servidor
+ registration_closed: "%{instance} no accepta nous membres"
resend_confirmation: Torna a enviar el correu de confirmació
reset_password: Restableix la contrasenya
security: Seguretat
set_new_password: Estableix una contrasenya nova
+ trouble_logging_in: Problemes per iniciar la sessió?
authorize_follow:
already_following: Ja estàs seguint aquest compte
error: Malauradament, ha ocorregut un error cercant el compte remot
@@ -549,7 +562,7 @@ ca:
description_html: Això eliminarà de forma
irreversible i permanent el contingut del teu compte i el desactivarà. El teu nom d'usuari romandrà reservat per evitar que algú volgués fer-se passar per tu.
proceed: Suprimeix el compte
success_msg: El compte s'ha eliminat correctament
- warning_html: Només és garantida l'eliminació d'aquesta particular instància. El contingut que s'ha compartit àmpliament deixa petjades. Els servidors fora de línia i els que ja no estan subscrits no actualitzaran les seves bases de dades.
+ warning_html: Només és garantida l'eliminació del contingut d'aquest servidor en particular. El contingut que s'ha compartit àmpliament deixa petjades. Els servidors fora de línia i els que ja no estan subscrits no actualitzaran les seves bases de dades.
warning_title: Disponibilitat de contingut disseminat
directories:
directory: Directori de perfils
@@ -563,7 +576,7 @@ ca:
other: "%{count} gent"
errors:
'403': No tens permís per a veure aquesta pàgina.
- '404': La pàgina que estàs cercant no existeix.
+ '404': La pàgina que estàs cercant no és aquí.
'410': La pàgina que estàs cercant ja no existeix.
'422':
content: La verificació de seguretat ha fallat. Tens les galetes blocades?
@@ -573,11 +586,14 @@ ca:
content: Ho sentim, però alguna cosa ha fallat a la nostra banda.
title: Aquesta pàgina no es correcta
noscript_html: Per a utilitzar Mastodon, activa el JavaScript. També pots provar una de les
aplicacions natives de Mastodon per a la vostra plataforma.
+ existing_username_validator:
+ not_found: no s'ha pogut trobar cap usuari local amb aquest nom d'usuari
+ not_found_multiple: no s'ha pogut trobar %{usernames}
exports:
archive_takeout:
date: Data
download: Descarrega l’arxiu
- hint_html: Pots sol·licitar un arxiu dels teus
toots i els fitxers multimèdia pujats. Les dades exportades tindran el format ActivityPub, llegible per qualsevol programari compatible. Pots sol·licitar un arxiu cada 7 dies.
+ hint_html: Pots sol·licitar un arxiu dels teus
toots i dels fitxers multimèdia pujats. Les dades exportades tindran el format ActivityPub, llegible per qualsevol programari compatible. Pots sol·licitar un arxiu cada 7 dies.
in_progress: Compilant el teu arxiu...
request: Sol·licita el teu arxiu
size: Tamany
@@ -588,6 +604,10 @@ ca:
lists: Llistes
mutes: Persones silenciades
storage: Emmagatzematge
+ featured_tags:
+ add_new: Afegir nova
+ errors:
+ limit: Ja has mostrat la quantitat màxima d'etiquetes
filters:
contexts:
home: Línia de temps Inici
@@ -604,34 +624,50 @@ ca:
title: Filtres
new:
title: Afegir nou filtre
- followers:
- domain: Domini
- explanation_html: Si desitges garantir la privacitat de les teves publicacions, has de ser conscient de qui t'està seguint.
Les publicacions privades es lliuren a totes les instàncies on tens seguidors . És possible que vulguis revisar-los i eliminar seguidors si no confies en que la teva privacitat sigui respectada pel personal o el programari d'aquestes instàncies.
- followers_count: Nombre de seguidors
- lock_link: Bloca el teu compte
- purge: Elimina dels seguidors
- success:
- one: En el procés de bloqueig suau de seguidors d'un domini...
- other: En el procés de bloqueig suau de seguidors de %{count} dominis...
- true_privacy_html: Considera que
la autèntica privacitat només es pot aconseguir amb xifratge d'extrem a extrem.
- unlocked_warning_html: Tothom pot seguir-te per a veure inmediatament les teves publicacions privades. %{lock_link} per poder revisar i rebutjar seguidors.
- unlocked_warning_title: El teu compte no està blocat
footer:
developers: Desenvolupadors
more: Més…
resources: Recursos
generic:
+ all: Tot
changes_saved_msg: Els canvis s'han desat correctament!
copy: Copia
+ order_by: Ordena per
save_changes: Desa els canvis
validation_errors:
one: Alguna cosa no va bé! Si us plau, revisa l'error
other: Alguna cosa no va bé! Si us plau, revisa %{count} errors més a baix
+ html_validator:
+ invalid_markup: 'conté HTML markup no vàlid: %{error}'
+ identity_proofs:
+ active: Actiu
+ authorize: Sí, autoritza
+ authorize_connection_prompt: Autoritzar aquesta connexió criptogràfica?
+ errors:
+ failed: Ha fallat la connexió criptogràfica. Torna-ho a provar des de %{provider}.
+ keybase:
+ invalid_token: Els tokens de Keybase són hashs de signatures i han de tenir 66 caràcters hexadecimals
+ verification_failed: Keybase no reconeix aquest token com a signatura del usuari de Keybase %{kb_username}. Si us plau prova des de Keybase.
+ wrong_user: No es pot crear una prova per a %{proving} mentre es connectava com a %{current}. Inicia sessió com a %{proving} i prova de nou.
+ explanation_html: Aquí pots connectar criptogràficament les teves altres identitats com ara el teu perfil de Keybase. Això permet que altres persones t'envïin missatges xifrats i continguts de confiança que els hi enviess.
+ i_am_html: Sóc %{username} a %{service}.
+ identity: Identitat
+ inactive: Inactiu
+ publicize_checkbox: 'I tooteja això:'
+ publicize_toot: 'Està provat! Sóc %{username} a %{service}: %{url}'
+ status: Estat de verificació
+ view_proof: Veure la prova
imports:
- preface: Pots importar algunes dades, com ara totes les persones que estàs seguint o blocant, en el teu compte en aquesta instància, des de fitxers exportats en una altra instància.
+ modes:
+ merge: Fusionar
+ merge_long: Mantenir els registres existents i afegir-ne de nous
+ overwrite: Sobreescriu
+ overwrite_long: Reemplaça els registres actuals amb els nous
+ preface: Pots importar algunes les dades que has exportat des d'un altre servidor, com ara el llistat de les persones que estàs seguint o bloquejant.
success: Les dades s'han rebut correctament i es processaran en breu
types:
blocking: Llista de blocats
+ domain_blocking: Llistat de dominis bloquejats
following: Llista de seguits
muting: Llista d'apagats
upload: Carregar
@@ -653,7 +689,7 @@ ca:
one: 1 ús
other: "%{count} usos"
max_uses_prompt: Sense limit
- prompt: Genera i comparteix enllaços amb altres persones per donar accés a aquesta instància
+ prompt: Genera i comparteix enllaços amb altres persones per donar accés a aquest servidor
table:
expires_at: Caduca
uses: Usos
@@ -723,11 +759,34 @@ ca:
older: Més vell
prev: Enrere
truncate: "…"
+ polls:
+ errors:
+ already_voted: Ja has votat en aquesta enquesta
+ duplicate_options: Conté opcions duplicades
+ duration_too_long: està massa lluny en el futur
+ duration_too_short: és massa aviat
+ expired: L'enquesta ja ha finalitzat
+ over_character_limit: no pot ser superior a %{max} caràcters cadascun
+ too_few_options: ha de tenir més d'una opció
+ too_many_options: no pot contenir més de %{max} opcions
preferences:
languages: Llengues
other: Altre
publishing: Publicació
web: Web
+ relationships:
+ activity: Activitat del compte
+ dormant: Inactiu
+ last_active: Darrer actiu
+ most_recent: Més recent
+ moved: Mogut
+ mutual: Mútua
+ primary: Primari
+ relationship: Relació
+ remove_selected_domains: Elimina tots els seguidors dels dominis seleccionats
+ remove_selected_followers: Elimina els seguidors seleccionats
+ remove_selected_follows: Deixa de seguir als usuaris seleccionats
+ status: Estat del compte
remote_follow:
acct: Escriu el teu usuari@domini des del qual vols seguir
missing_resource: No s'ha pogut trobar la URL de redirecció necessaria per al compte
@@ -801,14 +860,14 @@ ca:
development: Desenvolupament
edit_profile: Editar perfil
export: Exportar informació
- followers: Seguidors autoritzats
+ featured_tags: Etiquetes destacades
+ identity_proofs: Proves d'identitat
import: Importar
migrate: Migració del compte
notifications: Notificacions
preferences: Preferències
- settings: Configuració
+ relationships: Seguits i seguidors
two_factor_authentication: Autenticació de dos factors
- your_apps: Les teves aplicacions
statuses:
attached:
description: 'Adjunt: %{attached}'
@@ -828,9 +887,14 @@ ca:
over_character_limit: Límit de caràcters de %{max} superat
pin_errors:
limit: Ja has fixat el màxim nombre de toots
- ownership: El toot d'algú altre no es pot fixar
+ ownership: No es pot fixar el toot d'algú altre
private: No es pot fixar el toot no públic
reblog: No es pot fixar un impuls
+ poll:
+ total_votes:
+ one: "%{count} vot"
+ other: "%{count} vots"
+ vote: Vota
show_more: Mostrar més
sign_in_to_participate: Inicia la sessió per participar a la conversa
title: '%{name}: "%{quote}"'
@@ -929,9 +993,9 @@ ca:
Originalment adaptat des del Discourse privacy policy.
title: "%{instance} Condicions del servei i política de privadesa"
themes:
- contrast: Alt contrast
- default: Mastodon
- mastodon-light: Mastodon (clar)
+ contrast: Mastodon (Alt contrast)
+ default: Mastodon (Fosc)
+ mastodon-light: Mastodon (Clar)
time:
formats:
default: "%b %d, %Y, %H:%M"
@@ -980,7 +1044,7 @@ ca:
final_action: Comença a publicar
final_step: 'Comença a publicar! Fins i tot sense seguidors, els altres poden veure els teus missatges públics, per exemple, a la línia de temps local i a les etiquetes ("hashtags"). És possible que vulguis presentar-te amb l''etiqueta #introductions.'
full_handle: El teu nom d'usuari sencer
- full_handle_hint: Això és el que has de dir als teus amics perquè puguin enviar-te missatges o seguir-te des d'una altra instància.
+ full_handle_hint: Això és el que has de dir als teus amics perquè puguin enviar-te missatges o seguir-te des d'un altre servidor.
review_preferences_action: Canviar preferències
review_preferences_step: Assegura't d'establir les teves preferències, com ara els correus electrònics que vols rebre o el nivell de privadesa per defecte que t'agradaria que tinguin les teves entrades. Si no tens malaltia de moviment, pots optar per habilitar la reproducció automàtica de GIF.
subject: Benvingut/da a Mastodon
diff --git a/config/locales/co.yml b/config/locales/co.yml
index a7264e754..1b0d8ff6a 100644
--- a/config/locales/co.yml
+++ b/config/locales/co.yml
@@ -4,36 +4,36 @@ co:
about_hashtag_html: Quessi sò statuti pubblichi taggati cù
#%{hashtag}. Pudete interagisce cù elli sì voi avete un contu in qualche parte di u fediverse.
about_mastodon_html: Mastodon ghjè una rete suciale custruita incù prutucolli web aperti è lugiziali liberi. Hè decentralizatu cumu l’e-mail.
about_this: À prupositu
+ active_count_after: attivi
+ active_footnote: Utilizatori Attivi Mensili (UAM)
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à.
+ apps_platforms: Utilizà Mastodon dapoi à iOS, Android è altre piattaforme
+ browse_directory: Navigà un'annuariu di i prufili è filtra per interessi
+ browse_public_posts: Navigà un flussu di i statuti publichi nant'à Mastodon
contact: Cuntattu
contact_missing: Mancante
contact_unavailable: Micca dispunibule
+ discover_users: Scopre utilizatori
documentation: Ducumentazione
extended_description_html: |
Una bona piazza per e regule
A descrizzione stesa ùn hè micca stata riempiuta.
- features:
- humane_approach_body: Mastodon hà amparatu da i sbagli di l’altre rete suciale, è prova à fà scelte di cuncezzione più etiche per luttà contr’à l’abusu di i media suciali.
- humane_approach_title: Una mentalità più umana
- not_a_product_body: Mastodon ùn hè micca una rete cummerciale. Micca pubblicità, micca pruspizzione di dati, micca ambienti chjosi, è micca auturità centrale.
- not_a_product_title: Site una parsona, micca un pruduttu
- real_conversation_body: Cù 500 caratteri dispunibuli, diffusione persunalizata di u cuntinutu è avertimenti per media sensibili, pudete cumunicà cum’è voi vulete.
- real_conversation_title: Fattu per una vera cunversazione
- within_reach_body: Parechje app per iOS, Android è altre piattaforme, create cù un sistemu d’API accessibile à i prugrammatori, vi permettenu d’avè accessu à i vostri amichi senza prublemi.
- within_reach_title: Sempre accessibile
+ federation_hint_html: Cù un contu nant'à %{instance} puderete siguità ghjente da tutti i servori Mastodon è ancu più d'altri.
generic_description: "%{domain} hè un servore di a rete"
+ get_apps: Pruvà un'applicazione di telefuninu
hosted_on: Mastodon allughjatu nant’à %{domain}
learn_more: Amparà di più
- other_instances: Lista di l’istanze
privacy_policy: Pulitica di vita privata
+ see_whats_happening: Vede cio chì si passa
+ server_stats: 'Statistiche di u servore:'
source_code: Codice di fonte
status_count_after:
one: statutu
other: statuti
status_count_before: chì anu pubblicatu
+ tagline: Siguità amichi è scopre ancu di più altri
terms: Cundizione di u serviziu
user_count_after:
one: utilizatore
@@ -68,6 +68,7 @@ co:
admin: Amministratore
bot: Bot
moderator: Muderatore
+ unavailable: Prufile micca dispunibule
unfollow: Ùn siguità più
admin:
account_actions:
@@ -79,6 +80,8 @@ co:
delete: Toglie
destroyed_msg: Nota di muderazione sguassata!
accounts:
+ approve: Appruvà
+ approve_all: Appruvà tutti
are_you_sure: Site sicuru·a?
avatar: Ritrattu di prufile
by_domain: Duminiu
@@ -124,15 +127,18 @@ co:
moderation:
active: Attivu
all: Tutti
+ pending: In attesa
silenced: Silenzati
suspended: Suspesi
title: Muderazione
moderation_notes: Note di muderazione
most_recent_activity: Attività più ricente
most_recent_ip: IP più ricente
+ no_account_selected: Nisun contu hè statu cambiatu postu ch'ùn c'eranu micca selezziunati
no_limits_imposed: Nisuna limita imposta
not_subscribed: Micca abbunatu
outbox_url: URL di l’outbox
+ pending: In attesa di rivista
perform_full_suspension: Suspende
profile_url: URL di u prufile
promote: Prumove
@@ -140,6 +146,8 @@ co:
public: Pubblicu
push_subscription_expires: Spirata di l’abbunamentu PuSH
redownload: Mette à ghjornu u prufile
+ reject: Righjittà
+ reject_all: Righjittà tutti
remove_avatar: Toglie l’avatar
remove_header: Toglie l'intistatura
resend_confirmation:
@@ -241,6 +249,7 @@ co:
feature_profile_directory: Annuariu di i prufili
feature_registrations: Arregistramenti
feature_relay: Ripetitore di federazione
+ feature_timeline_preview: Vista di a linea pubblica
features: Funziunalità
hidden_service: Federazione cù servizii piattati
open_reports: signalamenti aperti
@@ -302,6 +311,7 @@ co:
back_to_account: Rivene à u Contu
title: Abbunati à %{acct}
instances:
+ by_domain: Duminiu
delivery_available: Rimessa dispunibule
known_accounts:
one: "%{count} contu cunnisciutu"
@@ -324,6 +334,8 @@ co:
expired: Spirati
title: Filtrà
title: Invitazione
+ pending_accounts:
+ title: Conti in attesa (%{count})
relays:
add_new: Aghjustà un ripetitore
delete: Sguassà
@@ -386,14 +398,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
@@ -410,9 +422,12 @@ co:
min_invite_role:
disabled: Nisunu
title: Auturizà l’invitazione da
- open:
- desc_html: Auturizà tuttu u mondu à creà un contu quì
- title: Apre l’arregistramenti
+ registrations_mode:
+ modes:
+ approved: Apprubazione necessaria per arregistrassi
+ none: Nimu ùn pò arregistrassi
+ open: Tutt'ognunu pò arregistrassi
+ title: Modu d'arregistramenti
show_known_fediverse_at_about_page:
desc_html: Quandu ghjè selezziunatu, statuti di tuttu l’istanze cunnisciute saranu affissati indè a vista di e linee. Altrimente soli i statuti lucali saranu mustrati.
title: Vedde tuttu u fediverse cunnisciutu nant’a vista di e linee
@@ -421,20 +436,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
@@ -475,6 +490,9 @@ co:
edit_preset: Cambià a preselezzione d'avertimentu
title: Amministrà e preselezzione d'avertimentu
admin_mailer:
+ new_pending_account:
+ body: I ditagli di u novu contu sò quì sottu. Pudete appruvà o righjittà a dumanda.
+ subject: Novu contu in attesa di rivista nant'à %{instance} (%{username})
new_report:
body: "%{reporter} hà palisatu %{target}"
body_remote: Qualch’unu da %{domain} hà palisatu %{target}
@@ -495,8 +513,9 @@ 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.
+ apply_for_account: Dumandà un'invitazione
change_password: Chjave d’accessu
+ checkbox_agreement_html: Sò d'accunsentu cù e
regule di u servore è i
termini di u serviziu
confirm_email: Cunfirmà l’e-mail
delete_account: Sguassà u contu
delete_account_html: S’è voi vulete toglie u vostru contu
ghjè quì. Duverete cunfirmà a vostra scelta.
@@ -507,17 +526,17 @@ co:
logout: Scunnettassi
migrate_account: Cambià di contu
migrate_account_html: S’è voi vulete riindirizà stu contu versu un’altru,
ghjè pussibule quì.
- or: o
or_log_in_with: O cunnettatevi cù
providers:
cas: CAS
saml: SAML
register: Arregistrassi
- register_elsewhere: Arregistrassi altrò
+ registration_closed: "%{instance} ùn accetta micca novi socii"
resend_confirmation: Rimandà l’istruzzioni di cunfirmazione
reset_password: Cambià a chjave d’accessu
security: Sicurità
set_new_password: Creà una nova chjave d’accessu
+ trouble_logging_in: Difficultà per cunnettavi?
authorize_follow:
already_following: Site digià abbunatu·a à stu contu
error: Peccatu, c’hè statu un prublemu ricercandu u contu
@@ -549,19 +568,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
@@ -570,11 +592,14 @@ co:
content: Scusate, mà c’hè statu un prublemu cù u nostru servore.
title: Sta pagina ùn hè curretta
noscript_html: Mastodon nant’à u web hà bisognu di JavaScript per funziunà. Pudete ancu pruvà
l’applicazione native per a vostra piattaforma.
+ existing_username_validator:
+ not_found: ùn si pudeva micca truvà un'utilizatore lucale cù stu cugnome
+ not_found_multiple: ùn si pudeva micca truvà %{usernames}
exports:
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
@@ -585,6 +610,10 @@ co:
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
@@ -601,34 +630,50 @@ co:
title: Filtri
new:
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.
- followers_count: Numeru d’abbunati
- lock_link: Rendete u contu privatu
- purge: Toglie di a lista d’abbunati
- success:
- one: Suppressione di l’abbunati d’un duminiu...
- other: Suppressione di l’abbunati da %{count} duminii...
- true_privacy_html: Ùn vi scurdate chì
una vera cunfidenzialità pò solu esse ottenuta cù crittografia da un capu à l’altru.
- unlocked_warning_html: Tuttu u mondu pò seguitavi è vede i vostri statuti privati. %{lock_link} per pudè cunfirmà o righjittà abbunamenti.
- unlocked_warning_title: U vostru contu hè pubblicu
footer:
developers: Sviluppatori
more: Di più…
resources: Risorze
generic:
+ all: Tuttu
changes_saved_msg: Cambiamenti salvati!
copy: Cupià
+ order_by: Urdinà da
save_changes: Salvà e mudificazione
validation_errors:
one: Qualcosa ùn và bè! Verificate u prublemu quì sottu
other: Qualcosa ùn và bè! Verificate %{count} prublemi quì sottu
+ html_validator:
+ invalid_markup: 'cuntene codice HTML invalidu: %{error}'
+ identity_proofs:
+ active: Attiva
+ authorize: Ié, auturizà
+ authorize_connection_prompt: Auturizà sta cunnessione crittograffica?
+ errors:
+ failed: A cunnessione crittograffica s'hè fiascata. Ripruvate da %{provider}.
+ keybase:
+ invalid_token: E fiscie Keybase sò hash di firme è duvenu fà 66 caratteri esadecimali (0-9 A-F)
+ verification_failed: Keybase ùn ricunosce micca sta fiscia cum'una firma di l'utilizatore Keybase %{kb_username}. Ripruvate da Keybase.
+ wrong_user: Ùn si pò micca creà una prova per %{proving} mentre chì site cunnettatu·a cum'è %{current}. Cunnettatevi cum'è %{proving} è ripruvate.
+ explanation_html: Quì pudete cunnettà crittografficamente e vostre altre identità, cum'è per esempiu un prufile Keybase. Quessu permette à d'altre persone di mandà vi missaghji crittati, è d'affiducià i cuntinuti chì mandate.
+ i_am_html: Sò %{username} nant'à %{service}.
+ identity: Identità
+ inactive: Inattiva
+ publicize_checkbox: 'È mandà stu statutu:'
+ publicize_toot: 'Hè pruvata! Sò %{username} nant’à %{service}: %{url}'
+ status: Statutu di a verificazione
+ view_proof: Vede a prova
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à
@@ -650,7 +695,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
@@ -720,11 +765,34 @@ co:
older: Più vechju
prev: Nanzu
truncate: "…"
+ polls:
+ errors:
+ already_voted: Avete digià vutatu nant'à stu scandagliu
+ duplicate_options: cuntene uzzione doppie
+ duration_too_long: hè troppu luntanu indè u futuru
+ duration_too_short: hè troppu prossimu
+ expired: U scandagliu hè digià finitu
+ over_character_limit: ùn ponu micca esse più longhi chè %{max} caratteri
+ too_few_options: deve avè più d'un'uzzione
+ too_many_options: ùn pò micca avè più di %{max} uzzione
preferences:
languages: Lingue
other: Altre
publishing: Pubblicazione
web: Web
+ relationships:
+ activity: Attività di u contu
+ dormant: Inattivu
+ last_active: Ultima attività
+ most_recent: Più ricente
+ moved: Spiazzatu
+ mutual: Mutuale
+ primary: Primariu
+ relationship: Rilazione
+ remove_selected_domains: Toglie tutti l'abbunati da i dumini selezziunati
+ remove_selected_followers: Toglie l'abbunati selezziunati
+ remove_selected_follows: Ùn siguità più l'utilizatori selezziunati
+ status: Statutu di u contu
remote_follow:
acct: Entrate u vostru cugnome@istanza da induve vulete siguità stu contu
missing_resource: Ùn avemu pussutu à truvà l’indirizzu di ridirezzione
@@ -792,20 +860,23 @@ co:
revoke_success: Sessione rivucata
title: Sessioni
settings:
+ account: Contu
+ account_settings: Parametri di u contu
authorized_apps: Applicazione auturizate
back: Ritornu nant’à Mastodon
delete: Suppressione di u contu
development: Sviluppu
edit_profile: Mudificà u prufile
export: Spurtazione d’infurmazione
- followers: Abbunati auturizati
+ featured_tags: Hashtag in vista
+ identity_proofs: Prove d'identità
import: Impurtazione
+ import_and_export: Impurtazione è spurtazione
migrate: Migrazione di u contu
notifications: Nutificazione
preferences: Priferenze
- settings: Parametri
+ relationships: Abbunamenti è abbunati
two_factor_authentication: Identificazione à dui fattori
- your_apps: E vostre applicazione
statuses:
attached:
description: 'Aghjuntu: %{attached}'
@@ -828,6 +899,11 @@ co:
ownership: Pudete puntarulà solu unu di i vostri propii statuti
private: Ùn pudete micca puntarulà un statutu ch’ùn hè micca pubblicu
reblog: Ùn pudete micca puntarulà una spartera
+ poll:
+ total_votes:
+ one: "%{count} votu"
+ other: "%{count} voti"
+ vote: Vutà
show_more: Vede di più
sign_in_to_participate: Cunnettatevi per participà à a cunversazione
title: '%{name}: "%{quote}"'
@@ -926,9 +1002,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"
diff --git a/config/locales/cs.yml b/config/locales/cs.yml
index 424ec3dab..ca456b7ef 100644
--- a/config/locales/cs.yml
+++ b/config/locales/cs.yml
@@ -1,44 +1,44 @@
---
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_hashtag_html: Tohle jsou veřejné tooty označené hashtagem
#%{hashtag}. Pokud máte účet kdekoliv ve fedivesmíru, 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 decentralizovaná jako e-mail.
- about_this: O této instanci
- administered_by: 'Instanci spravuje:'
+ about_this: O tomto serveru
+ active_count_after: aktivních
+ active_footnote: Měsíční aktivní uživatelé (MAU)
+ 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ě.
+ apps_platforms: Používejte Mastodon z iOS, Androidu a jiných platforem
+ browse_directory: Prozkoumejte adresář profilů a filtrujte dle zájmů
+ browse_public_posts: Prozkoumejte živý proud veřejných příspěvků na Mastodonu
contact: Kontakt
contact_missing: Nenastaveno
contact_unavailable: Neuvedeno
+ discover_users: Objevujte uživatele
documentation: Dokumentace
extended_description_html: |
Dobré místo pro pravidla
Rozšířený popis ještě nebyl nastaven.
- features:
- humane_approach_body: Mastodon se učí z chyb jiných sociálních sítí a volením etických rozhodnutí při designu se snaží bojovat s jejich zneužíváním.
- humane_approach_title: Lidštější přístup
- not_a_product_body: Mastodon není komerční síť. Žádné reklamy, žádné dolování dat, žádné hranice. Žádná centrální autorita.
- not_a_product_title: Jste osoba, ne produkt
- real_conversation_body: S 500 znaky k vaší dispozici a podporou pro varování o obsahu a médiích se můžete vyjadřovat tak, jak chcete.
- real_conversation_title: Vytvořen pro opravdovou konverzaci
- 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
+ federation_hint_html: S účtem na %{instance} můžete sledovat lidi na jakémkoliv serveru Mastodon a jiných službách.
generic_description: "%{domain} je jedním ze serverů v síti"
- hosted_on: Instance Mastodon na adrese %{domain}
+ get_apps: Vyzkoušejte mobilní aplikaci
+ hosted_on: Mastodon na adrese %{domain}
learn_more: Zjistit více
- other_instances: Seznam instancí
privacy_policy: Zásady soukromí
+ see_whats_happening: Podívejte se, co se děje
+ server_stats: 'Statistika serveru:'
source_code: Zdrojový kód
status_count_after:
- few: příspěvky
- one: příspěvek
- other: příspěvků
+ few: tooty
+ one: toot
+ other: tootů
status_count_before: Kteří napsali
+ tagline: Sledujte své přátele a objevujte nové
terms: Podmínky používání
user_count_after:
- few: uživatelů
- one: uživatele
+ few: uživatelé
+ one: uživatel
other: uživatelů
user_count_before: Domov
what_is_mastodon: Co je Mastodon?
@@ -46,15 +46,15 @@ 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í
link_verified_on: Vlastnictví tohoto odkazu bylo zkontrolováno %{date}
media: Média
- moved_html: 'Účet %{name} byl přesunut na %{new_profile_link}:'
+ moved_html: "%{name} se přesunul/a na %{new_profile_link}:"
network_hidden: Tato informace není k dispozici
nothing_here: Tady nic není!
people_followed_by: Lidé, které sleduje %{name}
@@ -72,17 +72,20 @@ cs:
admin: Administrátor
bot: Robot
moderator: Moderátor
+ unavailable: Profil nedostupný
unfollow: Přestat sledovat
admin:
account_actions:
action: Vykonat akci
- title: Vykonat moderační akci pro účet %{acct}
+ title: Vykonat moderátorskou akci pro účet %{acct}
account_moderation_notes:
create: Zanechat poznámku
- created_msg: Poznámka moderátora byla úspěšně vytvořena!
+ created_msg: Moderátorská poznámka byla úspěšně vytvořena!
delete: Smazat
- destroyed_msg: Poznámka moderátora byla úspěšně zničena!
+ destroyed_msg: Moderátorská poznámka byla úspěšně zničena!
accounts:
+ approve: Schválit
+ approve_all: Schválit vše
are_you_sure: Jste si jistý/á?
avatar: Avatar
by_domain: Doména
@@ -109,16 +112,16 @@ 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
+ header: Záhlaví
+ inbox_url: URL příchozí schránky
invited_by: Pozván/a uživatelem
ip: IP
joined: Připojil/a se
location:
- all: Vše
+ all: Všechny
local: Místní
remote: Vzdálené
title: Umístění
@@ -128,15 +131,18 @@ cs:
moderation:
active: Aktivní
all: Vše
+ pending: Čekající
silenced: Utišen/a
suspended: Pozastaven/a
- title: Moderace
- moderation_notes: Moderační poznámky
+ title: Moderování
+ moderation_notes: Moderátorské poznámky
most_recent_activity: Nejnovější aktivita
most_recent_ip: Nejnovější IP
+ no_account_selected: Nebyl změněn žádný účet, neboť žádný nebyl zvolen
no_limits_imposed: Nejsou nastavena žádná omezení
not_subscribed: Neodebírá
- outbox_url: URL odchozích zpráv
+ outbox_url: URL odchozí schránky
+ pending: Čeká na posouzení
perform_full_suspension: Pozastavit
profile_url: URL profilu
promote: Povýšit
@@ -144,30 +150,32 @@ cs:
public: Veřejný
push_subscription_expires: Odebírání PuSH expiruje
redownload: Obnovit profil
+ reject: Zamítnout
+ reject_all: Zamítnout vše
remove_avatar: Odstranit avatar
- remove_header: Odstranit hlavičku
+ remove_header: Odstranit záhlaví
resend_confirmation:
already_confirmed: Tento uživatel je již potvrzen
send: Znovu odeslat potvrzovací e-mail
success: Potvrzovací e-mail byl úspěšně odeslán!
- reset: Resetovat
+ reset: Obnovit
reset_password: Obnovit heslo
resubscribe: Znovu odebírat
role: Oprávnění
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ých přijatých zpráv
+ shared_inbox_url: URL sdílené příchozí schránky
show:
created_reports: Vytvořená nahlášení
targeted_reports: Nahlášeni ostatními
silence: Utišit
silenced: Utišen/a
- statuses: Příspěvky
+ statuses: Tooty
subscribe: Odebírat
suspended: Pozastaven/a
title: Účty
@@ -191,8 +199,8 @@ cs:
destroy_custom_emoji: "%{name} zničil/a emoji %{target}"
destroy_domain_block: "%{name} odblokoval/a doménu %{target}"
destroy_email_domain_block: "%{name} odebral/a e-mailovou doménu %{target} z černé listiny"
- destroy_status: "%{name} odstranil/a příspěvek uživatele %{target}"
- disable_2fa_user: "%{name} vypnul/a požadavek pro dvoufaktorovou autentikaci pro uživatele %{target}"
+ destroy_status: "%{name} odstranil/a toot uživatele %{target}"
+ disable_2fa_user: "%{name} vypnul/a dvoufázové ověřování pro uživatele %{target}"
disable_custom_emoji: "%{name} zakázal/a emoji %{target}"
disable_user: "%{name} zakázal/a přihlašování pro uživatele %{target}"
enable_custom_emoji: "%{name} povolil/a emoji %{target}"
@@ -201,7 +209,7 @@ cs:
promote_user: "%{name} povýšil/a uživatele %{target}"
remove_avatar_user: "%{name} odstranil/a avatar uživatele %{target}"
reopen_report: "%{name} znovuotevřel/a nahlášení %{target}"
- reset_password_user: "%{name} resetoval/a heslo uživatele %{target}"
+ reset_password_user: "%{name} obnovil/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} pozastavil/a účet uživatele %{target}"
@@ -209,8 +217,8 @@ cs:
unsilence_account: "%{name} odtišil/a účet 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)"
+ update_status: "%{name} aktualizoval/a toot uživatele %{target}"
+ deleted_status: "(smazaný toot)"
title: Záznam auditu
custom_emojis:
by_domain: Doména
@@ -225,15 +233,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
@@ -245,6 +253,7 @@ cs:
feature_profile_directory: Adresář profilů
feature_registrations: Registrace
feature_relay: Federovací most
+ feature_timeline_preview: Náhled časové osy
features: Vlastnosti
hidden_service: Federace se skrytými službami
open_reports: otevřená hlášení
@@ -266,7 +275,7 @@ cs:
domain: Doména
new:
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.
+ hint: Blokace domény nezakáže vytváření záznamů účtů v databázi, ale bude na tyto účty zpětně a automaticky aplikovat specifické metody moderování.
severity:
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é
@@ -274,14 +283,14 @@ cs:
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. Nepodstatné pro pozastavení
+ reject_media_hint: Odstraní lokálně uložené mediální soubory a odmítne jejich stahování 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é
+ silence: utišeno
+ suspend: pozastaveno
show:
affected_accounts:
few: "%{count} účty v databázi byly ovlivněny"
@@ -301,39 +310,42 @@ cs:
domain: Doména
new:
create: Přidat doménu
- title: Nový e-mail pro zablokování
+ title: Nová položka pro černou listinu e-mailů
title: Černá listina e-mailů
followers:
back_to_account: Zpět na účet
- title: Sledovatelé uživatele %{acct}
+ title: Sledující uživatele %{acct}
instances:
+ by_domain: Doména
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
+ all: Všechny
limited: Omezené
- title: Moderace
+ title: Moderování
title: Federace
total_blocked_by_us: Blokované námi
- total_followed_by_them: Sledované jím
+ total_followed_by_them: Sledované jimi
total_followed_by_us: Sledované námi
- total_reported: Nahlášení o něm
+ total_reported: Nahlášení o nich
total_storage: Mediální přílohy
invites:
deactivate_all: Deaktivovat vše
filter:
- all: Vše
+ all: Všechny
available: Dostupné
expired: Vypršelé
title: Filtrovat
title: Pozvánky
+ pending_accounts:
+ title: Čekající účty (%{count})
relays:
add_new: Přidat nový most
delete: Smazat
- description_html: "
Federovací most je přechodný server, který vyměňuje velká množství veřejných tootů mezi servery, které z něj odebírají a poblikují na něj.
Může pomoci malým a středně velkým serverům objevovat obsah z fediverse, což by jinak vyžadovalo, aby místní uživatelé manuálně sledovali jiné lidi na vzdálených serverech."
+ description_html: "
Federovací most je přechodný server, který vyměňuje velká množství veřejných tootů mezi servery, které z něj odebírají a publikují na něj.
Může pomoci malým a středně velkým serverům objevovat obsah z fedivesmíru, což by jinak vyžadovalo, aby místní uživatelé manuálně sledovali jiné lidi na vzdálených serverech."
disable: Zakázat
disabled: Zakázáno
enable: Povolit
@@ -366,7 +378,7 @@ cs:
create_and_resolve: Vyřešit s poznámkou
create_and_unresolve: Znovu otevřít s poznámkou
delete: Smazat
- placeholder: Popište, jaké akce byly vykonány, nebo jakékoliv jiné související aktuality...
+ placeholder: Popište, jaké akce byly vykonány, nebo jakékoliv jiné související aktuality…
reopen: Znovu otevřít nahlášení
report: 'Nahlásit #%{id}'
reported_account: Nahlášený účet
@@ -380,26 +392,26 @@ cs:
updated_at: Aktualizováno
settings:
activity_api_enabled:
- desc_html: Počty lokálně publikovaných příspěvků, aktivních uživatelů a nových registrací, v týdenních intervalech
+ desc_html: Počty lokálně publikovaných tootů, aktivních uživatelů a nových registrací, v týdenních intervalech
title: Publikovat hromadné statistiky o uživatelské aktivitě
bootstrap_timeline_accounts:
- desc_html: Je-li uživatelskch jmen více, oddělujte je čárkami. Lze zadat pouze místní a odemknuté účty. Je-li tohle prázdné, jsou výchozí hodnotou všichni místní administrátoři.
+ desc_html: Je-li uživatelských jmen více, oddělujte je čárkami. Lze zadat pouze místní a odemknuté účty. Je-li tohle prázdné, jsou výchozí hodnotou všichni místní administrátoři.
title: Výchozí sledovaní pro nové uživatele
contact_information:
email: Pracovní e-mail
- username: Uživatelské jméno kontaktu
+ username: Uživatelské jméno pro kontaktování
custom_css:
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 fedivesmíru
+ 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
@@ -416,31 +428,34 @@ cs:
min_invite_role:
disabled: Nikdo
title: Povolit pozvánky od
- open:
- desc_html: Dovolit každému vytvořit si účet
- title: Zpřístupnit registraci
+ registrations_mode:
+ modes:
+ approved: Pro registraci je vyžadováno schválení
+ none: Nikdo se nemůže registrovat
+ open: Kdokoliv se může registrovat
+ title: Režim registrací
show_known_fediverse_at_about_page:
- desc_html: Je-li toto zapnuto, zobrazí se v náhledu tooty ze všech známých serverů na fediverse. Jinak budou zobrazeny pouze místní tooty.
- title: Zobrazit celou známou fediverse na náhledu časové osy
+ desc_html: Je-li tohle zapnuto, zobrazí se v náhledu tooty z celého známého fedivesmíru. Jinak budou zobrazeny pouze místní tooty.
+ title: Zobrazit na náhledu časové osy celý známý fedivesmír
show_staff_badge:
desc_html: Zobrazit na stránce uživatele odznak člena personálu
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
+ desc_html: Úvodní odstavec v API. 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 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
- title: Vlastní doplňující informace
+ 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í rozšířené 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.
+ 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
@@ -448,15 +463,15 @@ cs:
statuses:
back_to_account: Zpět na stránku účtu
batch:
- delete: Vymazat
+ delete: Smazat
nsfw_off: Označit, že není citlivý
nsfw_on: Označit jako citlivý
failed_to_execute: Nepodařilo se vykonat
media:
title: Média
no_media: Žádná média
- no_status_selected: Nebyly změněny žádné příspěvky, neboť žádné nebyly vybrány
- title: Příspěvky účtu
+ no_status_selected: Nebyly změněny žádné tooty, neboť žádné nebyly vybrány
+ title: Tooty účtu
with_media: S médii
subscriptions:
callback_url: Zpáteční URL
@@ -478,9 +493,12 @@ cs:
add_new: Přidat nové
delete: Smazat
edit: Upravit
- edit_preset: Upravit přednastavení pro varování
- title: Spravovat přednastavení pro varování
+ edit_preset: Upravit předlohu pro varování
+ title: Spravovat předlohy pro varování
admin_mailer:
+ new_pending_account:
+ body: Detaily nového účtu jsou uvedeny níže. Můžete tento požadavek schválit nebo zamítnout.
+ subject: Nový účet čekající na posouzení na %{instance} (%{username})
new_report:
body: "%{reporter} nahlásil/a uživatele %{target}"
body_remote: Někdo z %{domain} nahlásil uživatele %{target}
@@ -491,7 +509,7 @@ cs:
settings: 'Změnit volby e-mailu: %{link}'
view: 'Zobrazit:'
view_profile: Zobrazit profil
- view_status: Zobrazit příspěvek
+ view_status: Zobrazit toot
applications:
created: Aplikace úspěšně vytvořena
destroyed: Aplikace úspěšně smazána
@@ -501,29 +519,30 @@ 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í.
+ apply_for_account: Vyžádat si pozvánku
change_password: Heslo
+ checkbox_agreement_html: Souhlasím s
pravidly serveru a
podmínkami používání
confirm_email: Potvrdit e-mail
delete_account: Odstranit účet
delete_account_html: Chcete-li odstranit svůj účet,
pokračujte zde. Budete požádán/a o potvrzení.
didnt_get_confirmation: Neobdržel/a jste pokyny pro potvrzení?
forgot_password: Zapomněl/a jste heslo?
- invalid_reset_password_token: Token na obnovu hesla je buď neplatný, nebo vypršel. Prosím vyžádejte si nový.
+ invalid_reset_password_token: Token pro obnovení hesla je buď neplatný, nebo vypršel. Prosím vyžádejte si nový.
login: Přihlásit
logout: Odhlásit
migrate_account: Přesunout se na jiný účet
migrate_account_html: Chcete-li přesměrovat tento účet na jiný, můžete to
nastavit zde.
- or: nebo
or_log_in_with: Nebo se přihlaste pomocí
providers:
cas: CAS
saml: SAML
register: Registrovat
- register_elsewhere: Registrovat na jiném serveru
+ registration_closed: "%{instance} nepřijímá nové členy"
resend_confirmation: Znovu odeslat pokyny pro potvrzení
reset_password: Obnovit heslo
security: Zabezpečení
set_new_password: Nastavit nové heslo
+ trouble_logging_in: Problémy s přihlašováním?
authorize_follow:
already_following: Tento účet již sledujete
error: Při hledání vzdáleného účtu bohužel nastala chyba
@@ -555,12 +574,12 @@ 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 sledovatelů (%{min_followers}) pro uvedení.
+ 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!
@@ -570,22 +589,25 @@ cs:
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':
- content: Omlouváme se, ale něco se pokazilo u nás.
+ content: Omlouváme se, ale něco se u nás pokazilo.
title: Tato stránka není správná
noscript_html: Pro použití webové aplikace Mastodon prosím povolte JavaScript. Nebo zkuste jednu z
nativních aplikací pro Mastodon pro vaši platformu.
+ existing_username_validator:
+ not_found: nelze najít místního uživatele s tímto uživatelským jménem
+ not_found_multiple: nelze najít %{usernames}
exports:
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í.
- in_progress: Kompiluji váš 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í.
+ in_progress: Kompiluji váš archiv…
request: Vyžádat svůj archiv
size: Velikost
blocks: Blokujete
@@ -593,13 +615,17 @@ cs:
domain_blocks: Blokace domén
follows: Sledujete
lists: Seznamy
- mutes: Ignorujete
+ mutes: Skryl/a jste
storage: Paměť médií
+ featured_tags:
+ add_new: Přidat nový
+ errors:
+ limit: Již jste zvýraznil/a maximální počet hashtagů
filters:
contexts:
home: Domovská časová osa
notifications: Oznámení
- public: Veřejný časové osy
+ public: Veřejné časové osy
thread: Konverzace
edit:
title: Upravit filtr
@@ -611,36 +637,51 @@ cs:
title: Filtry
new:
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ů
- lock_link: Zamkněte svůj účet
- purge: Odstranit ze sledovatelů
- success:
- few: V průběhu blokování sledovatelů ze %{count} domén...
- one: V průběhu blokování sledovatelů z jedné domény...
- other: V průběhu blokování sledovatelů z %{count} domén...
- true_privacy_html: Berte prosím na vědomí, že
skutečného soukromí se dá dosáhnout pouze za pomoci end-to-end šifrování.
- unlocked_warning_html: Kdokoliv vás může sledovat a okamžitě vidět vaše soukromé příspěvky. %{lock_link}, abyste mohl/a zkontrolovat a odmítnout sledovatele.
- unlocked_warning_title: Váš účet není zamknutý
footer:
developers: Vývojáři
more: Více…
resources: Zdroje
generic:
+ all: Všechny
changes_saved_msg: Změny byly úspěšně uloženy!
copy: Kopírovat
+ order_by: Seřadit od
save_changes: Uložit změny
validation_errors:
few: Něco ještě není úplně v pořádku! Prosím zkontrolujte %{count} chyby níže
one: Něco ještě není úplně v pořádku! Prosím zkontrolujte chybu níže
other: Něco ještě není úplně v pořádku! Prosím zkontrolujte %{count} chyb níže
+ html_validator:
+ invalid_markup: 'obsahuje neplatný HTML kód: %{error}'
+ identity_proofs:
+ active: Aktivní
+ authorize: Ano, autorizovat
+ authorize_connection_prompt: Autorizovat toto kryptografické spojení?
+ errors:
+ failed: Kryptografické spojení selhalo. Prosím zkuste to znovu z %{provider}.
+ keybase:
+ invalid_token: Tokeny Keybase jsou hashe podpisů a musí být 66 znaků dlouhé
+ verification_failed: Keybase nerozpoznává tento token jako podpis uživatele %{kb_username} na Keybase. Prosím zkuste to znovu z Keybase.
+ wrong_user: Nelze vytvořit důkaz pro uživatele %{proving}, zatímco jste přihlášen/a jako %{current}. Přihlaste se jako %{proving} a zkuste to znovu.
+ explanation_html: Zde můžete kryptograficky připojit vaše ostatní identity, například profil Keybase. To dovolí jiným lidem vám posílat šifrované zprávy a důvěřovat obsahu, který jim pošlete.
+ i_am_html: Na %{service} jsem %{username}.
+ identity: Identita
+ inactive: Neaktivní
+ publicize_checkbox: 'A tootnout tohle:'
+ publicize_toot: 'Je to dokázáno! Na %{service} jsem %{username}: %{url}'
+ status: Stav ověření
+ view_proof: Zobrazit důkaz
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
@@ -651,7 +692,7 @@ cs:
expires_in:
'1800': 30 minut
'21600': 6 hodin
- '3600': 1 hodina
+ '3600': 1 hodinu
'43200': 12 hodin
'604800': 1 týden
'86400': 1 den
@@ -663,51 +704,51 @@ 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í
- title: Pozvěte lidi
+ title: Pozvat lidi
lists:
errors:
limit: Dosáhl/a jste maximálního počtu seznamů
media_attachments:
validations:
- images_and_video: K příspěvku, který již obsahuje obrázky, nelze připojit video
+ images_and_video: K tootu, který již obsahuje obrázky, nelze připojit video
too_many: Nelze připojit více než 4 soubory
migrations:
acct: přezdívka@doména nového účtu
currently_redirecting: 'Váš profil má nastaveno přesměrování na:'
proceed: Uložit
- updated_msg: Vaše nastavení migrace účtu bylo úspěšně aktualizováno!
+ updated_msg: Vaše nastavení přesunutí účtu bylo úspěšně aktualizováno!
moderation:
- title: Moderace
+ title: Moderování
notification_mailer:
digest:
action: Zobrazit všechna oznámení
body: Zde najdete stručný souhrn zpráv, které jste zmeškal/a od vaší poslední návštěvy %{since}
mention: "%{name} vás zmínil/a v:"
new_followers_summary:
- few: Navíc jste získal/a %{count} nové sledovatele, zatímco jste byl/a pryč! Skvělé!
- one: Navíc jste získal/a jednoho nového sledovatele, zatímco jste byl/a pryč! Hurá!
- other: Navíc jste získal/a %{count} nových sledovatelů, zatímco jste byl/a pryč! Úžasné!
+ 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"
other: "%{count} nových oznámení od vaší poslední návštěvy \U0001F418"
- title: Ve vaší nepřítomnosti...
+ title: Ve vaší nepřítomnosti…
favourite:
- body: 'Váš příspěvek si oblíbil/a %{name}:'
- subject: "%{name} si oblíbil/a váš příspěvek"
+ body: 'Váš toot si oblíbil/a %{name}:'
+ subject: "%{name} si oblíbil/a váš toot"
title: Nové oblíbení
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
@@ -715,9 +756,9 @@ cs:
subject: Byl/a jste zmíněn/a uživatelem %{name}
title: Nová zmínka
reblog:
- body: 'Váš příspěvek byl boostnutý uživatelem %{name}:'
- subject: "%{name} boostnul/a váš příspěvek"
- title: Nové boostnutí
+ body: 'Váš toot byl boostnutý uživatelem %{name}:'
+ subject: "%{name} boostnul/a váš toot"
+ title: Nový boost
number:
human:
decimal_units:
@@ -728,17 +769,41 @@ cs:
quadrillion: bld
thousand: tis
trillion: bil
+ unit: ''
pagination:
newer: Novější
next: Další
older: Starší
prev: Před
truncate: "…"
+ polls:
+ errors:
+ already_voted: V této anketě jste již hlasoval/a
+ duplicate_options: obsahuje duplicitní položky
+ duration_too_long: je příliš daleko v budoucnosti
+ duration_too_short: je příliš brzy
+ expired: Anketa již skončila
+ over_character_limit: nesmí být každá delší než %{max} znaků
+ too_few_options: musí mít více než jednu položku
+ too_many_options: nesmí obsahovat více než %{max} položky
preferences:
languages: Jazyky
other: Ostatní
publishing: Publikování
web: Web
+ relationships:
+ activity: Aktivita účtu
+ dormant: Nečinné
+ last_active: Naposledy aktivních
+ most_recent: Naposledy přidaných
+ moved: Přesunuté
+ mutual: Vzájemné
+ primary: Primární
+ relationship: Vztah
+ remove_selected_domains: Odstranit všechny sledující ze zvolených domén
+ remove_selected_followers: Odstranit zvolené sledující
+ remove_selected_follows: Přestat sledovat zvolené uživatele
+ status: Stav účtu
remote_follow:
acct: Napište svou přezdívku@doménu, ze které chcete jednat
missing_resource: Nemůžeme najít požadované přesměrovací URL pro váš účet
@@ -787,17 +852,17 @@ cs:
weibo: Weibo
current_session: Aktuální relace
description: "%{browser} na %{platform}"
- explanation: Toto jsou webové prohlížeče aktuálně přihlášené na váš účet Mastodon.
+ explanation: Tohle jsou webové prohlížeče aktuálně přihlášené na váš účet Mastodon.
ip: IP
platforms:
adobe_air: Adobe Air
- android: Android
+ android: Androidu
blackberry: Blackberry
chrome_os: Chrome OS
firefox_os: Firefox OS
ios: iOS
- linux: Linux
- mac: Mac
+ linux: Linuxu
+ mac: Macu
other: neznámé platformě
windows: Windows
windows_mobile: Windows Mobile
@@ -806,20 +871,25 @@ cs:
revoke_success: Relace úspěšně zamítnuta
title: Relace
settings:
+ account: Účet
+ account_settings: Nastavení účtu
+ appearance: Vzhled
authorized_apps: Autorizované aplikace
back: Zpět na Mastodon
delete: Smazání účtu
development: Vývoj
edit_profile: Upravit profil
export: Export dat
- followers: Autorizovaní sledovatelé
+ featured_tags: Zvýrazněné hashtagy
+ identity_proofs: Důkazy identity
import: Import
+ import_and_export: Import a export
migrate: Přesunutí účtu
notifications: Oznámení
preferences: Předvolby
- settings: Nastavení
- two_factor_authentication: Dvoufaktorové ověřování
- your_apps: Vaše aplikace
+ profile: Profil
+ relationships: Sledovaní a sledující
+ two_factor_authentication: Dvoufázové ověřování
statuses:
attached:
description: 'Přiloženo: %{attached}'
@@ -844,17 +914,23 @@ cs:
limit: Už jste si připnul/a maximální počet tootů
ownership: Nelze připnout toot někoho jiného
private: Nelze připnout neveřejné tooty
- reblog: Nelze připnout boostnutí
+ reblog: Nelze připnout boost
+ poll:
+ total_votes:
+ few: "%{count} hlasy"
+ one: "%{count} hlas"
+ other: "%{count} hlasů"
+ vote: Hlasovat
show_more: Zobrazit více
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
@@ -865,9 +941,9 @@ cs:
Jaké informace sbíráme?
- - 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.
+ - 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 obrázek záhlaví. Uživatelské i zobrazované jméno, životopis, profilová fotografie a obrázek záhlaví jsou vždy uvedeny veřejně.
+ - 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. Upřímně se snažíme 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.
@@ -879,7 +955,7 @@ cs:
- K poskytnutí základních funkcí Mastodonu. Interagovat s obsahem od jiných lidí a přispívat svým vlastním obsahem můžete pouze, pokud jste přihlášeni. Můžete například sledovat jiné lidi a zobrazit si jejich kombinované příspěvky ve vaší vlastní personalizované časové ose.
- - Pro pomoc moderaci komunity, například porovnáním vaší IP adresy s dalšími známými adresami pro určení vyhýbání se zákazům či jiných přestupků.
+ - Pro pomoc moderování komunity, například porovnáním vaší IP adresy s dalšími známými adresami pro určení vyhýbání se zákazům či jiných přestupků.
- E-mailová adresa, kterou nám poskytnete, může být použita pro zasílání informací, oznámení o interakcích jiných uživatelů s vaším obsahem nebo přijatých zprávách a k odpovědím na dotazy a/nebo další požadavky či otázky.
@@ -887,20 +963,20 @@ cs:
Jak vaše informace chráníme?
-
Implenentujeme různá bezpečnostní opatření pro udržování bezpečnosti vašich osobních dat, když zadáváte, odesíláte, či přistupujete k vašim osobním datům. Mimo jiné je vaše relace v prohlížeči, jakož i provoz mezi vašimi aplikacemi a API, zabezpečena pomocí SSL, a vaše heslo je hashováno pomocí silného jednosměrného algoritmu. Pro větší zabezpečení vašeho účtu můžete povolit dvoufaktorovou autentikaci.
+
Implenentujeme různá bezpečnostní opatření pro udržování bezpečnosti vašich osobních dat, když zadáváte, odesíláte, či přistupujete k vašim osobním datům. Mimo jiné je vaše relace v prohlížeči, jakož i provoz mezi vašimi aplikacemi a API, zabezpečena pomocí SSL, a vaše heslo je hashováno pomocí silného jednosměrného algoritmu. Pro větší zabezpečení vašeho účtu můžete povolit dvoufázové ověřování.
Jaké jsou naše zásady o uchovávání údajů?
-
Budeme se snažit:
+
Budeme se upřímně snažit:
- Uchovávat serverové záznamy obsahující IP adresy všech požadavků pro tento server, pokud se takové záznamy uchovávají, maximálně 90 dní.
- Uchovávat IP adresy související s registrovanými uživateli maximálně 12 měsíců.
-
Kdykoliv si můžete vyžádat a stáhnout archiv vašeho obsahu, včetně vašich příspěvků, mediálních příloh, profilové fotografie a hlavičkového obrázku.
+
Kdykoliv si můžete vyžádat a stáhnout archiv vašeho obsahu, včetně vašich příspěvků, mediálních příloh, profilové fotografie a obrázku záhlaví.
Kdykoliv můžete nenávratně smazat váš účet.
@@ -908,7 +984,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.
@@ -918,15 +994,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.
@@ -943,29 +1019,29 @@ 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:
default: "%d. %b %Y, %H:%M"
month: "%b %Y"
two_factor_authentication:
- code_hint: Pro potvrzení zadejte kód vygenerovaný vaší autentikační aplikací
- description_html: Povolíte-li
dvoufaktorové ověřování, budete při přihlášení potřebovat telefon, který vám vygeneruje přístupové tokeny, které musíte zadat.
+ code_hint: Pro potvrzení zadejte kód vygenerovaný vaší ověřovací aplikací
+ description_html: Povolíte-li
dvoufázové ověřování, budete při přihlášení potřebovat telefon, který vám vygeneruje přístupové tokeny, které musíte zadat.
disable: Zakázat
enable: Povolit
- enabled: Dvoufaktorové ověřování je povoleno
- enabled_success: Dvoufaktorové ověřování bylo úspěšně povoleno
+ enabled: Dvoufázové ověřování je povoleno
+ enabled_success: Dvoufázové ověřování bylo úspěšně povoleno
generate_recovery_codes: Vygenerovat záložní kódy
instructions_html: "
Naskenujte tento QR kód Google Authenticatorem nebo jinou TOTP aplikací na vašem telefonu. Od teď bude tato aplikace generovat tokeny, které budete muset zadat při přihlášení."
lost_recovery_codes: Záložní kódy vám dovolí dostat se k vašemu účtu, pokud ztratíte telefon. Ztratíte-li záložní kódy, můžete je zde znovu vygenerovat. Vaše staré záložní kódy budou zneplatněny.
manual_instructions: 'Nemůžete-li oskenovat QR kód a je potřeba ho zadat ručně, zde je tajemství v prostém textu:'
recovery_codes: Záložní kódy pro obnovu
- recovery_codes_regenerated: Záložní kódy byly úspěšně znovu vygenerované
+ recovery_codes_regenerated: Záložní kódy byly úspěšně znovu vygenerovány
recovery_instructions_html: Ztratíte-li někdy přístup k vašemu telefonu, můžete k získání přístupu k účtu použít jeden ze záložních kódů.
Uchovávejte tyto kódy v bezpečí. Můžete si je například vytisknout a uložit je mezi jiné důležité dokumenty.
setup: Nastavit
- wrong_code: Zadaný kód byl neplatný! Je serverový čas a čas na zařízení správný?
+ wrong_code: Zadaný kód byl neplatný! Je čas na serveru a na zařízení správný?
user_mailer:
backup_ready:
explanation: Vyžádal/a jste si úplnou zálohu svého účtu Mastodon. Nyní je připravena ke stažení!
@@ -975,7 +1051,7 @@ cs:
explanation:
disable: Zatímco je váš účet zmražen, zůstávají data vašeho účtu nedotčená, ale nemůžete vykonávat žádné akce, dokud nebude odemčen.
silence: Zatímco je váš účet omezen, mohou vaše tooty na tomto serveru vidět pouze lidé, kteří váš již sledují, a můžete být vyloučen/a z různých veřejných výpisů. Ostatní vás však pořád mohou manuálně sledovat.
- suspend: Váš účet byl pozastaven a všechny vaše tooty a vaše nahrané mediální soubory byly nenávratně odstraněny z tohoto serveru a serverů, na kterých jste měl/a sledovatele.
+ 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
@@ -989,25 +1065,25 @@ cs:
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 záhlaví, 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_action: Začít psát
+ final_step: 'Začněte psát! I když nemáte sledující, mohou vaše zprávy vidět jiní lidé, například na místní časové ose a v hashtazích. 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
tip_federated_timeline: Federovaná časová osa je náhled celé sítě Mastodon. Zahrnuje ovšem pouze lidi, které sledují vaši sousedé, takže není úplná.
tip_following: Administrátora/y serveru sledujete automaticky. Chcete-li najít další zajímavé lidi, podívejte se na místní a federované časové osy.
- tip_local_timeline: Místní časová osa je náhled lidí na %{instance}. Toto jsou vaši nejbližší sousedé!
+ tip_local_timeline: Místní časová osa je náhled lidí na %{instance}. Tohle jsou vaši nejbližší sousedé!
tip_mobile_webapp: Pokud vám váš mobilní prohlížeč nabídne přidat si Mastodon na vaši domovskou obrazovku, můžete dostávat oznámení. V mnoha ohledech to funguje jako nativní aplikace!
tips: Tipy
title: Vítejte na palubě, %{name}!
users:
follow_limit_reached: Nemůžete sledovat více než %{limit} lidí
invalid_email: E-mailová adresa je neplatná
- invalid_otp_token: Neplatný kód pro dvoufaktorovou autentikaci
+ invalid_otp_token: Neplatný kód pro dvoufázové ověřování
otp_lost_help_html: Pokud jste ztratil/a přístup k oběma, můžete se spojit %{email}
seamless_external_login: Jste přihlášen/a přes externí službu, nastavení hesla a e-mailu proto nejsou dostupná.
signed_in_as: 'Přihlášen/a jako:'
diff --git a/config/locales/cy.yml b/config/locales/cy.yml
index 53b474c16..f365f7173 100644
--- a/config/locales/cy.yml
+++ b/config/locales/cy.yml
@@ -7,7 +7,6 @@ cy:
administered_by: 'Gweinyddir gan:'
api: API
apps: Apiau symudol
- closed_registrations: Mae cofrestru wedi cau ar yr achos hwn ar hyn o bryd. Fodd bynnag, mae modd ffeindio achos arall er mwyn creu cyfrif arno a chael mynediad at union yr un rhwydwaith o'r man hwnnw.
contact: Cyswllt
contact_missing: Heb ei osod
contact_unavailable: Ddim yn berthnasol
@@ -15,19 +14,9 @@ cy:
extended_description_html: |
Lle da ar gyfer rheolau
Nid yw'r disgrifiad estynedig wedi ei osod eto.
- features:
- humane_approach_body: Gan ddysgu o fethiannau rhwydweithiau eraill, mae Mastodon yn anelu i wneud penderfyniadau dylunio moesol i ymladd camddefnydd o gyfryngau cymdeithasol.
- humane_approach_title: Agwedd fwy dynol
- not_a_product_body: Nid yw Mastodon yn rwydwaith masnachol. Nid oes hysbysebion, cloddio data na gerddi caeedig. Nid oes awdurdod canolog.
- not_a_product_title: Rwyt yn berson, nid yn beth
- real_conversation_body: Gyda'r modd i ddefnyddio hyd at 500 o nodau a chefnogaeth ar gyfer cynnwys gronynnol a rhybuddion cyfryngau, mae modd i chi fynegi'ch hun yn y ffordd yr hoffech chi.
- real_conversation_title: Wedi ei adeiladu ar gyfer sgyrsiau go iawn
- within_reach_body: Nifer o apiau ar gyfer iOS, Android, a nifer blatfformau eraill diolch i amgylchedd API hygyrch i ddatblygwyr sy'n caniatau i chi gadw mewn cysylltiad a'ch ffrindiau o unrhywle.
- within_reach_title: Bob tro o fewn gafael
generic_description: Mae %{domain} yn un gweinydd yn y rhwydwaith
hosted_on: Mastodon wedi ei weinyddu ar %{domain}
learn_more: Dysu mwy
- other_instances: Rhestr achosion
privacy_policy: Polisi preifatrwydd
source_code: Cod ffynhonnell
status_count_after:
@@ -60,6 +49,7 @@ cy:
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}:'
@@ -87,6 +77,7 @@ cy:
admin:
account_actions:
action: Cyflawni gweithred
+ title: Perfformio cymedroli ar %{acct}
account_moderation_notes:
create: Gadael nodyn
created_msg: Crewyd nodyn cymedroli yn llwyddiannus!
@@ -155,6 +146,7 @@ cy:
push_subscription_expires: Tanysgrifiad PuSH yn dod i ben
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
@@ -172,8 +164,8 @@ cy:
search: Chwilio
shared_inbox_url: URL Mewnflwch wedi ei rannu
show:
- created_reports: Adroddiadau a grewyd gan y cyfri hwn
- targeted_reports: Adroddiadau am y cyfri hwn
+ created_reports: Adroddiadau a wnaed
+ targeted_reports: Adroddwyd gan eraill
silence: Tawelu
silenced: Tawelwyd
statuses: Statysau
@@ -192,6 +184,7 @@ cy:
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}
@@ -250,6 +243,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
@@ -267,7 +261,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
@@ -284,14 +278,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
+ 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
- undo: Dadwneud
+ undo: Dadwneud bloc parth
email_domain_blocks:
add_new: Ychwanegu
created_msg: Llwyddwyd i ychwanegu parth e-bost i'r gosbrestr
@@ -302,11 +307,29 @@ 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:
+ by_domain: Parth
+ 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:
@@ -388,6 +411,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
@@ -398,9 +424,6 @@ cy:
min_invite_role:
disabled: Neb
title: Caniatau gwahoddiadau gan
- open:
- desc_html: Caniatau i unrhywun greu cyfrif
- title: Agor cofrestru
show_known_fediverse_at_about_page:
desc_html: Wedi'i ddewis, bydd yn dangos rhagolwg o dŵtiau o'r holl ffedysawd. Fel arall bydd ond yn dangos tŵtiau lleol.
title: Dangos ffedysawd hysbys ar ragolwg y ffrwd
@@ -450,11 +473,18 @@ cy:
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
+ edit_preset: Golygu rhagosodiad rhybudd
+ title: Rheoli rhagosodiadau rhybudd
admin_mailer:
new_report:
body: Mae %{reporter} wedi cwyno am %{target}
@@ -476,7 +506,6 @@ cy:
warning: Byddwch yn ofalus a'r data hyn. Peidiwch a'i rannu byth!
your_token: Eich tocyn mynediad
auth:
- agreement_html: Wrth glicio "Cofrestru" isod yr ydych yn cytuno i ddilyn
y rheolau ar gyfer yr achos hwn a
ein termau gwasanaeth.
change_password: Cyfrinair
confirm_email: Cadarnhau e-bost
delete_account: Dileu cyfrif
@@ -488,13 +517,11 @@ cy:
logout: Allgofnodi
migrate_account: Symud i gyfrif gwahanol
migrate_account_html: Os hoffech chi ailgyfeirio'r cyfrif hwn at un gwahanol, mae modd
ei ffurfweddu yma.
- or: neu
or_log_in_with: Neu logiwch mewn a
providers:
cas: CAS
saml: SAML
register: Cofrestru
- register_elsewhere: Cofrestru ar weinydd gwahanol
resend_confirmation: Ailanfon cyfarwyddiadau cadarnhau
reset_password: Ailosod cyfrinair
security: Diogelwch
@@ -532,6 +559,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.
@@ -554,9 +595,15 @@ 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
+ featured_tags:
+ add_new: Ychwanegu
+ errors:
+ limit: Yr ydych yn barod wedi cynnwys yr uchafswm o hashnodau
filters:
contexts:
home: Ffrwd gartref
@@ -573,16 +620,6 @@ cy:
title: Hidlyddion
new:
title: Ychwanegu hidlydd newydd
- followers:
- domain: Parth
- explanation_html: Os ydych am sicrhau preifatrwydd eich tŵtiau, rhaid i chi fod yn ymwybodol o bwy sy'n eich dilyn.
Mae eich tŵtiau preifat yn cael eu hanfon at bob achos lle mae gennych ddilynwyr. Efallai hoffech chi i'w hadolygu o bryd i'w gilydd, a chael gwared ar ddilynwyr os nad ydych yn credu i'r staff neu'r meddalwedd ar yr achosion hynny barchu eich preifatrwydd.
- 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...
- 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
footer:
developers: Datblygwyr
more: Mwy…
@@ -591,8 +628,17 @@ 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:
+ modes:
+ merge: Cyfuno
+ merge_long: Cadw'r cofnodau presennol ac ychwanegu rhai newydd
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
types:
@@ -614,7 +660,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:
@@ -640,8 +692,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}:'
@@ -744,18 +808,21 @@ cy:
development: Datblygu
edit_profile: Golygu proffil
export: Allforio data
- followers: Dilynwyr awdurdodedig
import: Mewnforio
migrate: Mudo cyfrif
notifications: Hysbysiadau
preferences: Dewisiadau
- settings: Gosodiadau
two_factor_authentication: Awdurdodi dau-gam
- your_apps: Eich rhaglenni
statuses:
attached:
description: 'Ynghlwm: %{attached}'
- image: "%{count} o luniau"
+ 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"
@@ -765,7 +832,13 @@ cy:
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}
@@ -901,6 +974,14 @@ cy:
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
@@ -912,7 +993,7 @@ cy:
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 ca4ff32da..0787db621 100644
--- a/config/locales/da.yml
+++ b/config/locales/da.yml
@@ -7,7 +7,7 @@ da:
administered_by: 'Administreret af:'
api: API
apps: Apps til mobilen
- closed_registrations: Registreringer er på nuværrende tidspunkt lukkede for denne instans. Du kan dog finde andre instanser du kan oprette dig på og få adgang til det samme netværk derfra.
+ apps_platforms: Brug Mastodon på iOS, Android og andre platformer
contact: Kontakt
contact_missing: Ikke sat
contact_unavailable: Ikke tilgængeligt
@@ -15,19 +15,9 @@ da:
extended_description_html: |
Et godt sted for regler
Den udvidede beskrivelse er endnu ikke blevet opsat.
- features:
- humane_approach_body: Ved at lære fra fejl fra andre netværk, sigter Mastodon for at tage etisk designmæssig valg for at bekæmpe misbrug af sociale medier.
- humane_approach_title: En mere human tilgang
- not_a_product_body: Mastodon er ikke et kommercielt netværk. Ingen reklamer, ingen datamining, ingen indhegnet haver. Der er ingen central regering.
- not_a_product_title: Du er en person, ikke et produkt
- real_conversation_body: Med 500 tegn til din rådighed og understøttelse af granulært indhold og medie advarsler, kan du udtrykke dig på en hvilken som helst måde du ønsker.
- real_conversation_title: Bygget til rigtige samtaler
- within_reach_body: Adskillige apps for iOS, Android og andre platforme takket være et udviklervenligt API økosystem tillader dig at holde kontakten med dine venner hvor som helst.
- within_reach_title: Altid indenfor rækkevidde
generic_description: "%{domain} er en server i netværket"
hosted_on: Mostodon hostet på %{domain}
learn_more: Lær mere
- other_instances: Liste over instanser
privacy_policy: Privatlivspolitik
source_code: Kildekode
status_count_after:
@@ -131,7 +121,7 @@ da:
protocol: Protokol
public: Offentligt
push_subscription_expires: PuSH abonnement udløber
- redownload: Opdater profilbillede
+ redownload: Opdater profil
remove_avatar: Fjern profilbillede
resend_confirmation:
already_confirmed: Denne bruger er allerede blevet bekræftet
@@ -150,8 +140,8 @@ da:
search: Søg
shared_inbox_url: Link til delt indbakke
show:
- created_reports: Anmeldelser oprettet af denne konto
- targeted_reports: Anmeldelser fra denne konto
+ created_reports: Anmeldelser oprettet
+ targeted_reports: Anmeldelser fra andre
silence: Dæmp
silenced: Dæmpet
statuses: Statusser
@@ -243,7 +233,7 @@ da:
week_users_active: aktive denne uge
week_users_new: brugere denne uge
domain_blocks:
- add_new: Tilføj ny
+ add_new: Tilføj ny domain block
created_msg: Domæne blokade bliver nu behandlet
destroyed_msg: Domæne blokade er blevet annulleret
domain: Domæne
@@ -268,7 +258,7 @@ da:
suspend: Fjern udelukkelsen af alle eksisterende konti fra dette domæne
title: Annuller domæne blokeringen for domænet %{domain}
undo: Fortryd
- undo: Fortryd
+ undo: Fortryd domain block
email_domain_blocks:
add_new: Tilføj ny
created_msg: Tilføjede succesfuldt email domænet til sortliste
@@ -282,7 +272,7 @@ da:
followers:
back_to_account: Tilbage til konto
instances:
- title: Kendte instanser
+ title: Førderation
invites:
deactivate_all: Deaktiver alle
filter:
@@ -353,11 +343,11 @@ da:
desc_html: Ændre udseendet med CSS indlæst på hver side
title: Brugerdefineret CSS
hero:
- desc_html: Vist på forsiden. Mindst 600x100px anbefales. Hvis ikke sat, vil dette falde tilbage til billedet for instansen
+ desc_html: Vist på forsiden. Mindst 600x100px anbefales. Hvis ikke sat, vil dette falde tilbage til billedet fra serveren
title: Billede af helt
peers_api_enabled:
- desc_html: Domæne navne denne instans er stødt på i fediverset
- title: Udgiv liste over opdagede instanser
+ desc_html: Domæne navne denne server er stødt på i fediverset
+ title: Udgiv liste over opdagede server
preview_sensitive_media:
desc_html: Forhåndsvisninger af links på andre websider vil vise et miniaturebillede selv hvis mediet er markeret som følsomt
title: Vis følsomt medie i OpenGraph forhåndsvisninger
@@ -371,9 +361,6 @@ da:
min_invite_role:
disabled: Ingen
title: Tillad invitationer af
- open:
- desc_html: Tillad alle at oprette en konto
- title: Åben registrering
show_known_fediverse_at_about_page:
desc_html: Når slået til, vil det vise trut fra hele det kendte fedivers på forhåndsvisning. Ellers vil det kun vise lokale trut.
title: Vis kendte fedivers på tidslinje forhåndsvisning
@@ -382,20 +369,20 @@ da:
title: Vis personale emblem
site_description:
desc_html: Introduktions afsnit på forsiden. Beskriv hvad der gør denne Mastodon server speciel og alt andet vigtigt. Du kan bruge HTML tags, især
<a>
og
<em>
.
- title: Beskrivelse af instans
+ title: Beskrivelse af serveren
site_description_extended:
- desc_html: Et godt sted for placering af adfærdskodes, regler, retningslinjer og andre ting der gør din instans unik. Du kan bruge HTML tags
+ desc_html: Et godt sted for placering af adfærdskodes, regler, retningslinjer og andre ting der gør din server unik. Du kan bruge HTML tags
title: Brugerdefineret udvidet information
site_short_description:
- desc_html: Vist på sidelinjen og meta tags. Beskriv hvad Mastodon er og hvad der gør denne server speciel i et enkelt afsnit. Hvis tomt, vil standard være beskrivelsen af instansen.
- title: Kort beskrivelse af instans
+ desc_html: Vist på sidelinjen og meta tags. Beskriv hvad Mastodon er og hvad der gør denne server speciel i et enkelt afsnit. Hvis tomt, vil standard være beskrivelsen af serveren.
+ title: Kort beskrivelse af serveren
site_terms:
desc_html: Du kan skrive din egen privatlivpolitik, servicevilkår, eller lignende. Du kan bruge HTML tags
title: Brugerdefineret servicevilkår
- site_title: Navn på instans
+ site_title: Navn af serveren
thumbnail:
desc_html: Brugt til forhåndsvisninger via OpenGraph og API. 1200x630px anbefales
- title: Miniaturebillede for instans
+ title: Miniaturebillede for serveren
timeline_preview:
desc_html: Vis offentlig tidslinje på landingssiden
title: Tidslinje forhåndsvisning
@@ -445,7 +432,6 @@ da:
warning: Vær meget forsigtig med disse data. Del dem aldrig med nogen!
your_token: Din adgangs token
auth:
- agreement_html: Ved at oprette dig erklærer du dig enig i at følge
instanses regler og
vores servicevilkår.
change_password: Kodeord
confirm_email: Bekræft email
delete_account: Slet konto
@@ -457,13 +443,11 @@ da:
logout: Log ud
migrate_account: Flyt til en anden konto
migrate_account_html: Hvis du ønsker at omdirigere denne konto til en anden, kan du
gøre det her.
- or: eller
or_log_in_with: Eller log in med
providers:
cas: CAS
saml: SAML
register: Opret dig
- register_elsewhere: Opret dig på en anden server
resend_confirmation: Gensend bekræftelses instrukser
reset_password: Nulstil kodeord
security: Sikkerhed
@@ -499,7 +483,7 @@ da:
description_html: Dette vil
permanent, uigenkaldeligt fjerne indhold fra din konto samt deaktivere den. Dit brugernavn vil forblive reserveret for at forhindre fremtidige efterligninger.
proceed: Slet konto
success_msg: Din konto er nu blevet slettet
- warning_html: Kun sletning af indhold fra denne specifikke instans er garanteret. Indhold der er blevet delt rundt omkring vil sandsynligvis efterlade spor. Offline servere og servere der ikke længere abonnerer på dine opdateringer vil ikke opdatere deres databaser.
+ warning_html: Kun sletning af indhold fra denne specifikke server er garanteret. Indhold der er blevet delt rundt omkring vil sandsynligvis efterlade spor. Offline servere og servere der ikke længere abonnerer på dine opdateringer vil ikke opdatere deres databaser.
warning_title: Tilgængelighed af delt indhold
errors:
'403': Du har ikke tilladelse til at se denne side.
@@ -542,18 +526,6 @@ da:
title: Filtrer
new:
title: Tilføj nyt filter
- followers:
- domain: Domæne
- explanation_html: Hvis du vil sikre dig privatliv over dine statusser, skal du være klar over hvem der følger dig.
Dine private statusser leveres til alle instanser som du har følger fra. Det kan være en ide at gennemgå dem, og fjerne følgere hvis du ikke føler dit privatliv respekteres af personalet eller software fra disse instanser.
- followers_count: Antal følgere
- lock_link: Lås din konto
- purge: Fjern fra følgere
- success:
- one: I gang med at soft-blokere følgere fra et domæne...
- other: I gang med at soft-blokere følgere fra %{count} domæner...
- true_privacy_html: Husk på, at
sand privatliv kan kun opnås via end-to-end kryptering.
- unlocked_warning_html: Alle kan følge dig med det samme for at se dine private statusser. %{lock_link} for at være i stand til at gennemse og afvise følgere.
- unlocked_warning_title: Din konto er ikke låst
footer:
developers: Udviklere
more: Mere…
@@ -566,7 +538,7 @@ da:
one: Der er noget der ikke er helt som det bør være! Tag lige et kig på følgende fejl forneden
other: Der er noget der ikke er helt som det bør være! Tag lige et kig på følgende %{count} fejl forneden
imports:
- preface: Du kan importere data du har eksporteret fra en anden instans, så som en liste over folk du følger eller blokerer.
+ preface: Du kan importere data du har eksporteret fra en anden server, så som en liste over folk du følger eller blokerer.
success: Dine data blev succesfuldt uploaded og vil nu blive behandlet hurtigst muligt
types:
blocking: Blokeringsliste
@@ -591,7 +563,7 @@ da:
one: 1 benyttelse
other: "%{count} benyttelser"
max_uses_prompt: Ubegrænset
- prompt: Generer og del links med andre for at give dem adgang til denne instans
+ prompt: Generer og del links med andre for at give dem adgang til denne server
table:
expires_at: Udløber
uses: Benyttelser
@@ -724,14 +696,11 @@ da:
development: Udvikling
edit_profile: Rediger profil
export: Data eksportering
- followers: Godkendte følgere
import: Importer
migrate: Konto migrering
notifications: Notifikationer
preferences: Præferencer
- settings: Indstillinger
two_factor_authentication: To-faktor godkendelse
- your_apps: Dine applikationer
statuses:
attached:
description: 'Vedhæftede: %{attached}'
@@ -772,9 +741,9 @@ da:
body_html: "
Privatlivspolitik
\n
Hvilke information indsamler vi?
\n\n
\n - Grundlæggende kontoinformation : Hvis du registrerer dig på denne server, bliver du måske bedt om at indtaste et brugernavn, en e-mail-adresse og et kodeord. Du kan også indtaste yderligere profiloplysninger, såsom et visningsnavn og biografi, og uploade et profilbillede og headerbillede. Brugernavnet, visningsnavnet, biografien, profilbilledet og hovedbilledet vises altid offentligt.
\n - Stillinger, følgende og andre offentlige oplysninger : Listen over personer du følger er offentliggjort, det samme gælder for dine tilhængere. Når du sender en besked, gemmes datoen og klokkeslættet såvel som det program, du sendte beskeden fra. Meddelelser kan indeholde medievedhæftninger, som f.eks. Billeder og videoer. Offentlige og unoterede indlæg er offentligt tilgængelige. Når du har et indlæg på din profil, er det også offentligt tilgængelig information. Dine indlæg leveres til dine tilhængere, i nogle tilfælde betyder det, at de leveres til forskellige servere, og der gemmes kopier der. Når du sletter indlæg, leveres det også til dine tilhængere. Handlingen med reblogging eller favorisering af et andet indlæg er altid offentligt.
\n - Direkte og efterfølger-kun indlæg em>: Alle indlæg gemmes og behandles på serveren. Følgere-kun indlæg leveres til dine tilhængere og brugere, der er nævnt i dem, og direkte indlæg leveres kun til brugere nævnt i dem. I nogle tilfælde betyder det, at de leveres til forskellige servere, og der gemmes kopier der. Vi gør en god tro for at begrænse adgangen til disse stillinger kun til autoriserede personer, men andre servere kan undlade at gøre det. Derfor er det vigtigt at gennemgå de servere, dine tilhængere tilhører. Du kan skifte en mulighed for at godkende og afvise nye følgere manuelt i indstillingerne. Vær opmærksom på, at operatørerne af serveren og enhver modtagende server muligvis kan se sådanne meddelelser , og at modtagere muligvis skærmbilleder, kopierer eller på anden vis deler dem igen. Del ikke nogen farlig information over Mastodon.
\n - IP'er og andre metadata : Når du logger ind, registrerer vi den IP-adresse, du logger ind fra, samt navnet på din browser-applikation. Alle indloggede sessioner er tilgængelige til din anmeldelse og tilbagekaldelse i indstillingerne. Den seneste anvendte IP-adresse gemmes i op til 12 måneder. Vi kan også beholde serverlogfiler, som indeholder IP-adressen til hver anmodning til vores server.
\n
\n\n
\n\n
Hvad bruger vi dine oplysninger til?
\n\n
Enhver af de oplysninger, vi indsamler fra dig, kan bruges på følgende måder:
\n\n
\n - At levere kernen funktionalitet Mastodon. Du kan kun interagere med andres indhold og indsende dit eget indhold, når du er logget ind. Du kan f.eks. Følge andre personer for at se deres kombinerede indlæg på din egen personlige tidslinje.
\n - For at hjælpe moderering af samfundet, f.eks. sammenligning af din IP-adresse med andre kendte, for at bestemme forbud mod unddragelse eller andre overtrædelser.
\n - Den e-mail-adresse, du angiver, kan bruges til at sende dig oplysninger, meddelelser om andre personer, der interagerer med dit indhold eller sender dig beskeder, og for at svare på henvendelser og / eller andre forespørgsler eller spørgsmål.
\n
\n\n
\n\n
Hvordan beskytter vi dine oplysninger?
\n\n
Vi implementerer en række sikkerhedsforanstaltninger for at opretholde sikkerheden for dine personlige oplysninger, når du indtaster, indsender eller har adgang til dine personlige oplysninger. Bl.a. er din browsersession samt trafikken mellem dine applikationer og API'en sikret med SSL, og din adgangskode er hashed ved hjælp af en stærk envejsalgoritme. Du kan muligvis aktivere tofaktors godkendelse for yderligere at sikre adgang til din konto.
\n\n
\n\n
Hvad er vores data retention politik?
\n\n
Vi vil gøre en god tro indsats for at:
\n\n
\n - Behold serverlogfiler, der indeholder IP-adressen på alle anmodninger til denne server, for så vidt som sådanne logfiler holdes, ikke mere end 90 dage.
\n - Behold de IP-adresser, der er forbundet med registrerede brugere, ikke mere end 12 måneder.
\n
\n\n
Du kan anmode om og downloade et arkiv af dit indhold, herunder dine indlæg, medievedhæftninger, profilbillede og headerbillede.
\n\n
Du kan til enhver tid slette din konto.
\n\n
\n\n
Bruger vi cookies?
\n\n
Ja. Cookies er små filer, som et websted eller dets tjenesteudbyder overfører til din computers harddisk via din webbrowser (hvis du tillader det). Disse cookies gør det muligt for webstedet at genkende din browser og, hvis du har en registreret konto, associerer den med din registrerede konto.
\n\n
Vi bruger cookies til at forstå og gemme dine præferencer til fremtidige besøg.
\n\n
\n\n
Viser vi nogen information til eksterne parter?
\n\n
Vi sælger ikke, handler eller på anden måde overfører dine personlige identificerbare oplysninger til eksterne parter. Dette omfatter ikke tillid til tredjeparter, der hjælper os med at drive vores hjemmeside, udføre vores forretning eller servicere dig, så længe parterne er enige om at holde disse oplysninger fortrolige. Vi kan også frigive dine oplysninger, når vi mener, at udgivelsen er hensigtsmæssig for at overholde loven, håndhæve vores webstedspolitikker eller beskytte vores eller andre rettigheder, ejendom eller sikkerhed.
\n\n
Dit offentlige indhold kan downloades af andre servere i netværket. Dine offentlige og efterfølger-kun indlæg leveres til de servere, hvor dine tilhængere er bosat, og direkte meddelelser leveres til modtagerens servere, for så vidt som disse tilhængere eller modtagere opholder sig på en anden server end dette.
\n\n
Når du autoriserer et program til at bruge din konto, afhænger det af omfanget af tilladelser, du godkender, det kan få adgang til dine offentlige profiloplysninger, din følgende liste, dine tilhængere, dine lister, alle dine indlæg og dine favoritter. Applikationer kan aldrig få adgang til din e-mail-adresse eller adgangskode.
\n\n
\n\n
Bebyggelse af børn
\n\n
Hvis denne server er i EU eller EØS: Vores websted, produkter og tjenester er alle rettet mod personer, der er mindst 16 år gamle. Hvis du er under 16 år, skal du ikke bruge dette websted efter kravene i GDPR ( Generel databeskyttelsesforordning ). .
\n\n
Hvis denne server er i USA: Vores websted, produkter og tjenester er alle rettet mod personer, der er mindst 13 år. Hvis du er under 13 år, skal du ikke bruge kravene i COPPA ( Børns online beskyttelse af personlige oplysninger ) dette websted.
\n\n
Lovkrav kan være anderledes, hvis denne server er i en anden jurisdiktion.
\n\n
\n\n
Ændringer i vores privatlivspolitik
\n\n
Hvis vi beslutter os for at ændre vores privatlivspolitik, vil vi sende disse ændringer på denne side.
\n\n
Dette dokument er CC-BY-SA. Det blev senest opdateret 7. marts 2018.
\n\n
Oprindelig tilpasset fra Discourse privacy policy .
\n"
title: Vilkår og privatlivpolitik for %{instance}
themes:
- contrast: Høj kontrast
- default: Mastodont
- mastodon-light: Mastodon (lys)
+ contrast: Mastodon (Høj kontrast)
+ default: Mastodont (Mørk)
+ mastodon-light: Mastodon (Lys)
time:
formats:
default: "%b %d, %Y, %H:%M"
@@ -807,7 +776,7 @@ da:
final_action: Kom igang med at poste
final_step: 'Start med at skrive opslag! Selv uden følgere vil dine offentlige beskeder kunne ses af andre, foreksempel på den lokale tidslinje og i hashtags. Måske kunne du tænke dig at introducere dig selv på #introductions hashtagget.'
full_handle: Dit fulde brugernavn
- full_handle_hint: Dette er hvad du vil fortælle dine venner så de kan sende dig beskeder eller følge dig fra andre instanser.
+ full_handle_hint: Dette er hvad du vil fortælle dine venner så de kan sende dig beskeder eller følge dig fra andre server.
review_preferences_action: Ændre præferencer
review_preferences_step: Vær sikker på at sætte dine præferencer, så som hvilke emails du kunne tænke dig at modtage, eller hvilket niveau af privatliv der skal være standard for dine opslag. Hvis du kunne tænke dig ikke at blive køresyg, kan du vælge at aktivere automatisk afspilning af GIFfer.
subject: Velkommen til Mastodon
diff --git a/config/locales/de.yml b/config/locales/de.yml
index f3276b4f7..7138b7269 100644
--- a/config/locales/de.yml
+++ b/config/locales/de.yml
@@ -3,37 +3,37 @@ de:
about:
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
+ about_this: Über diesen Server
+ active_count_after: aktiv
+ active_footnote: Monatlich Aktive User (MAU)
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.
+ apps_platforms: Benutze Mastodon auf iOS, Android und anderen Plattformen
+ browse_directory: Durchsuche ein Profilverzeichnis und filtere nach Interessen
+ browse_public_posts: Durchsuche eine Zeitleiste an öffentlichen Beiträgen auf Mastodon
contact: Kontakt
contact_missing: Nicht angegeben
contact_unavailable: N/A
+ discover_users: Benutzer entdecken
documentation: Dokumentation
extended_description_html: |
Ein guter Platz für Regeln
Die erweiterte Beschreibung wurde noch nicht aufgesetzt.
- features:
- humane_approach_body: Aus den Fehlern anderer Netzwerke lernend, zielt Mastodon darauf ab, mit ethischen Design-Entscheidungen den Missbrauch sozialer Medien zu verhindern.
- humane_approach_title: Ein menschlicherer Ansatz
- not_a_product_body: Mastodon ist kein kommerzielles Netzwerk. Keine Werbung, kein Abgraben deiner Daten, keine geschlossene Plattform. Es gibt keine Zentrale.
- not_a_product_title: Du bist ein Mensch und keine Ware
- real_conversation_body: Mit 500 Zeichen pro Beitrag und 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 es dir, dank unseres blühenden API-Ökosystems, dich von überall auf dem Laufenden zu halten.
- within_reach_title: Immer für dich da
+ federation_hint_html: Mit einem Account auf %{instance} wirst du in der Lage sein Nutzern auf irgendeinem Mastodon-Server und darüber hinaus zu folgen.
generic_description: "%{domain} ist ein Server im Netzwerk"
+ get_apps: Versuche eine mobile App
hosted_on: Mastodon, beherbergt auf %{domain}
learn_more: Mehr erfahren
- other_instances: Andere Instanzen
privacy_policy: Datenschutzerklärung
+ see_whats_happening: Finde heraus, was gerade in der Welt los ist
+ server_stats: 'Serverstatistiken:'
source_code: Quellcode
status_count_after:
one: Statusmeldung
other: Statusmeldungen
status_count_before: mit
+ tagline: Finde Freunde und entdecke neue
terms: Nutzungsbedingungen
user_count_after:
one: Benutzer:in
@@ -68,6 +68,7 @@ de:
admin: Admin
bot: Bot
moderator: Moderator
+ unavailable: Profil nicht verfügbar
unfollow: Entfolgen
admin:
account_actions:
@@ -79,6 +80,8 @@ de:
delete: Löschen
destroyed_msg: Moderationsnotiz erfolgreich gelöscht!
accounts:
+ approve: Aktzeptieren
+ approve_all: Alle aktzeptieren
are_you_sure: Bist du sicher?
avatar: Profilbild
by_domain: Domain
@@ -124,15 +127,18 @@ de:
moderation:
active: Aktiv
all: Alle
+ pending: Ausstehend
silenced: Stummgeschaltet
suspended: Gesperrt
title: Moderation
moderation_notes: Moderationsnotizen
most_recent_activity: Letzte Aktivität
most_recent_ip: Letzte IP-Adresse
+ no_account_selected: Keine Konten wurden verändert, da keine ausgewählt wurden
no_limits_imposed: Keine Limits eingesetzt
not_subscribed: Nicht abonniert
outbox_url: Postausgangs-URL
+ pending: Ausstehender Review
perform_full_suspension: Sperren
profile_url: Profil-URL
promote: Befördern
@@ -140,6 +146,8 @@ de:
public: Öffentlich
push_subscription_expires: PuSH-Abonnement läuft aus
redownload: Profil neu laden
+ reject: Ablehnen
+ reject_all: Alle ablehnen
remove_avatar: Profilbild entfernen
remove_header: Header entfernen
resend_confirmation:
@@ -241,6 +249,7 @@ de:
feature_profile_directory: Profilverzeichnis
feature_registrations: Registrierung
feature_relay: Föderations-Relay
+ feature_timeline_preview: Zeitleistenvorschau
features: Eigenschaften
hidden_service: Föderation mit versteckten Diensten
open_reports: Offene Meldungen
@@ -302,6 +311,7 @@ de:
back_to_account: Zurück zum Konto
title: "%{acct}'s Follower"
instances:
+ by_domain: Domain
delivery_available: Zustellung ist verfügbar
known_accounts:
one: "%{count} bekanntes Konto"
@@ -324,6 +334,8 @@ de:
expired: Ausgelaufen
title: Filter
title: Einladungen
+ pending_accounts:
+ title: Ausstehende Konten (%{count})
relays:
add_new: Neues Relay hinzufügen
delete: Löschen
@@ -386,14 +398,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
@@ -410,35 +422,38 @@ de:
min_invite_role:
disabled: Niemand
title: Einladungen erlauben von
- open:
- desc_html: Allen erlauben, ein Konto zu erstellen
- title: Registrierung öffnen
+ registrations_mode:
+ modes:
+ approved: Zustimmung benötigt zur Registrierung
+ none: Niemand kann sich registrieren
+ open: Jeder kann sich registrieren
+ title: Registrierungsmodus
show_known_fediverse_at_about_page:
- desc_html: Wenn aktiviert, wird es alle Beiträge aus dem bereits bekannten Teil des Fediversums auf der Startseite anzeigen. Andernfalls werden lokale Beitrage der Instanz angezeigt.
+ desc_html: Wenn aktiviert, wird es alle Beiträge aus dem bereits bekannten Teil des Fediversums auf der Startseite anzeigen. Andernfalls werden lokale Beitrage des Servers angezeigt.
title: Verwende öffentliche Zeitleiste für die Vorschau
show_staff_badge:
desc_html: Zeige Mitarbeiter-Badge auf Benutzerseite
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
+ desc_html: Einleitungsabschnitt auf der Frontseite. Beschreibe, was diesen Mastodon-Server ausmacht. Du kannst HTML-Tags benutzen, insbesondere
<a>
und
<em>
.
+ 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
- title: Erweiterte Beschreibung der Instanz
+ desc_html: Bietet sich für Verhaltenskodizes, Regeln, Richtlinien und weiteres an, was deinen Server auszeichnet. Du kannst HTML-Tags benutzen
+ title: Erweiterte Beschreibung des Servers
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
- title: Instanz-Einstellungen
+ title: Server-Einstellungen
statuses:
back_to_account: Zurück zum Konto
batch:
@@ -475,6 +490,9 @@ de:
edit_preset: Warnungsvorlage bearbeiten
title: Warnungsvorlagen verwalten
admin_mailer:
+ new_pending_account:
+ body: Die Details von diesem neuem Konto sind unten. Du kannst die Anfrage akzeptieren oder ablehnen.
+ subject: Neues Konto zur Überprüfung auf %{instance} verfügbar (%{username})
new_report:
body: "%{reporter} hat %{target} gemeldet"
body_remote: Jemand von %{domain} hat %{target} gemeldet
@@ -495,8 +513,9 @@ 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.
+ apply_for_account: Eine Einladung anfragen
change_password: Passwort
+ checkbox_agreement_html: Ich akzeptiere die
Server-Regeln und die
Nutzungsbedingungen
confirm_email: E-Mail bestätigen
delete_account: Konto löschen
delete_account_html: Falls du dein Konto löschen willst, kannst du
hier damit fortfahren. Du wirst um Bestätigung gebeten werden.
@@ -507,17 +526,17 @@ de:
logout: Abmelden
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:
cas: CAS
saml: SAML
register: Registrieren
- register_elsewhere: Registrieren auf einem anderen Server
+ registration_closed: "%{instance} akzeptiert keine neuen Mitglieder"
resend_confirmation: Bestätigungs-Mail erneut versenden
reset_password: Passwort zurücksetzen
security: Sicherheit
set_new_password: Neues Passwort setzen
+ trouble_logging_in: Schwierigkeiten beim Anmelden?
authorize_follow:
already_following: Du folgst diesem Konto bereits
error: Das Remote-Konto konnte nicht geladen werden
@@ -549,7 +568,7 @@ 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
@@ -563,8 +582,8 @@ de:
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
@@ -573,11 +592,14 @@ de:
content: Bitte verzeih, etwas ist bei uns schief gegangen.
title: Diese Seite ist kaputt
noscript_html: Bitte aktiviere JavaScript, um die Mastodon-Web-Anwendung zu verwenden. Alternativ kannst du auch eine der
nativen Mastodon-Anwendungen für deine Plattform probieren.
+ existing_username_validator:
+ not_found: kann lokalen Benutzer nicht mit diesem Nuternamen finden
+ not_found_multiple: kann %{usernames} nicht finden
exports:
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
@@ -588,6 +610,10 @@ de:
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
@@ -604,34 +630,50 @@ de:
title: Filter
new:
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.
- followers_count: Zahl der Folgenden
- lock_link: dein Konto sperrst
- purge: Von der Liste deiner Folgenden löschen
- success:
- one: Folgende von einer Domain werden soft-geblockt …
- other: Folgende von %{count} Domains werden soft-geblockt …
- true_privacy_html: Bitte beachte, dass
wirklicher Schutz deiner Privatsphäre nur durch Ende-zu-Ende-Verschlüsselung erreicht werden kann..
- unlocked_warning_html: Wer dir folgen will, kann dies jederzeit ohne deine vorige Einverständnis tun und erhält damit automatisch Zugriff auf deine privaten Beiträge. Wenn du %{lock_link}, kannst du vorab entscheiden, wer dir folgen darf und wer nicht.
- unlocked_warning_title: Dein Konto ist nicht gesperrt
footer:
developers: Entwickler
more: Mehr…
resources: Ressourcen
generic:
+ all: Alle
changes_saved_msg: Änderungen gespeichert!
copy: Kopieren
+ order_by: Sortieren nach
save_changes: Änderungen speichern
validation_errors:
one: Etwas ist noch nicht ganz richtig! Bitte korrigiere den Fehler
other: Etwas ist noch nicht ganz richtig! Bitte korrigiere %{count} Fehler
+ html_validator:
+ invalid_markup: 'enthält ungültiges HTML-Markup: %{error}'
+ identity_proofs:
+ active: Aktiv
+ authorize: Ja, autorisieren
+ authorize_connection_prompt: Diese kryptographische Verbindung autorisieren?
+ errors:
+ failed: Die kryptographische Verbindung ist fehlgeschlagen. Bitte versuche es nochmal von %{provider}.
+ keybase:
+ invalid_token: Keybase-Tokens sind Hashsignaturen und müssen 66 Hexadezimalzeichen lang sein
+ verification_failed: Keybase nimmt dieses Token nicht als Signatur für Keybase-Benutzer %{kb_username} an. Bitte versuche es nochmal über Keybase.
+ wrong_user: Kann keinen Beweis für %{proving} erstellen während du als %{current} angemeldet bist. Melde dich als %{proving} an und versuche es noch einmal.
+ explanation_html: Hier kannst du kryptographisch deine anderen Identitäten wie dein Keybase-Profil verbinden. Dadurch können andere Leute dir verschlüsselte Nachrichten senden und dem Inhalt, den sie dir senden, vertrauen.
+ i_am_html: Ich bin %{username} auf %{service}.
+ identity: Identität
+ inactive: Inaktiv
+ publicize_checkbox: 'Und poste das:'
+ publicize_toot: 'Es ist offiziell! Ich bin %{username} auf %{service}: %{url}'
+ status: Verifizierungsstatus
+ view_proof: Zeige Nachweis
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
@@ -653,7 +695,7 @@ 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
@@ -723,11 +765,34 @@ de:
older: Älter
prev: Zurück
truncate: "…"
+ polls:
+ errors:
+ already_voted: Du hast bereits für diese Umfrage abgestimmt
+ duplicate_options: enthält doppelte Einträge
+ duration_too_long: ist zu weit in der Zukunft
+ duration_too_short: ist zu früh
+ expired: Die Umfrage ist bereits vorbei
+ over_character_limit: kann nicht länger als jeweils %{max} Zeichen sein
+ too_few_options: muss mindestens einen Eintrag haben
+ too_many_options: kann nicht mehr als %{max} Einträge beinhalten
preferences:
languages: Sprachen
other: Weiteres
publishing: Beiträge
web: Web
+ relationships:
+ activity: Kontoaktivität
+ dormant: Inaktiv
+ last_active: Zuletzt aktiv
+ most_recent: Neuste
+ moved: Umgezogen
+ mutual: Bekannt
+ primary: Primär
+ relationship: Beziehung
+ remove_selected_domains: Entferne alle Follower von den ausgewählten Domains
+ remove_selected_followers: Entferne ausgewählte Follower
+ remove_selected_follows: Entfolge ausgewählte Benutzer
+ status: Kontostatus
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
@@ -795,20 +860,25 @@ de:
revoke_success: Sitzung erfolgreich geschlossen
title: Sitzungen
settings:
+ account: Konto
+ account_settings: Konto & Sicherheit
+ appearance: Bearbeiten
authorized_apps: Autorisierte Anwendungen
back: Zurück zu Mastodon
delete: Konto löschen
development: Entwicklung
edit_profile: Profil bearbeiten
export: Datenexport
- followers: Autorisierte Folgende
+ featured_tags: Empfohlene Hashtags
+ identity_proofs: Identitätsnachweise
import: Datenimport
+ import_and_export: Importieren und Exportieren
migrate: Konto-Umzug
notifications: Benachrichtigungen
preferences: Einstellungen
- settings: Einstellungen
+ profile: Profil
+ relationships: Folgende und Follower
two_factor_authentication: Zwei-Faktor-Auth
- your_apps: Deine Anwendungen
statuses:
attached:
description: 'Angehängt: %{attached}'
@@ -831,6 +901,11 @@ de:
ownership: Du kannst nur eigene Beiträge anheften
private: Du kannst nur öffentliche Beiträge anheften
reblog: Du kannst keine geteilten Beiträge anheften
+ poll:
+ total_votes:
+ one: "%{count} Stimme"
+ other: "%{count} Stimmen"
+ vote: Abstimmen
show_more: Mehr anzeigen
sign_in_to_participate: Melde dich an, um an der Konversation teilzuhaben
title: '%{name}: "%{quote}"'
@@ -852,7 +927,7 @@ de:
- Grundlegende Kontoinformationen: Wenn du dich auf diesem Server registrierst, wirst du darum gebeten, einen Benutzer:innen-Namen, eine E-Mail-Adresse und ein Passwort einzugeben. Du kannst auch zusätzliche Profilinformationen wie etwa einen Anzeigenamen oder eine Biografie eingeben und ein Profilbild oder ein Headerbild hochladen. Der Benutzer:innen-Name, der Anzeigename, die Biografie, das Profilbild und das Headerbild werden immer öffentlich angezeigt.
- - Beiträge, Folge- und andere öffentliche Informationen: Die Liste der Leute, denen du folgst, wird öffentlich gezeigt, das gleiche gilt für deine Folgenden (Follower). Sobald du eine Nachricht übermittelst, wird das Datum und die Uhrzeit gemeinsam mit der Information, welche Anwendung du dafür verwendet hast, gespeichert. Nachricht können Medienanhänge enthalten, etwa Bilder und Videos. Öffentliche und ungelistete Beiträge sind öffentlich verfügbar. Sobald du einen Beitrag auf deinem Profil featurest, sind dies auch öffentlich verfügbare Informationen. Deine Beiträge werden an deine Folgenden ausgeliefert, was in manchen Fällen bedeutet, dass sie an andere Server ausgeliefert werden und dort Kopien gespeichert werden. Sobald du Beiträge löschst, wird dies ebenso an deine Follower ausgeliefert. Die Handlungen des Teilens und Favorisieren eines anderen Beitrages ist immer öffentlich.
+ - Beiträge, Folge- und andere öffentliche Informationen: Die Liste der Leute, denen du folgst, wird öffentlich gezeigt, das gleiche gilt für deine Folgenden (Follower). Sobald du eine Nachricht übermittelst, wird das Datum und die Uhrzeit gemeinsam mit der Information, welche Anwendung du dafür verwendet hast, gespeichert. Nachricht können Medienanhänge enthalten, etwa Bilder und Videos. Öffentliche und ungelistete Beiträge sind öffentlich verfügbar. Sobald du einen Beitrag auf deinem Profil anpinnst, sind dies auch öffentlich verfügbare Informationen. Deine Beiträge werden an deine Folgenden ausgeliefert, was in manchen Fällen bedeutet, dass sie an andere Server ausgeliefert werden und dort Kopien gespeichert werden. Sobald du Beiträge löschst, wird dies ebenso an deine Follower ausgeliefert. Die Handlungen des Teilens und Favorisieren eines anderen Beitrages ist immer öffentlich.
- Direkte und "Nur Folgende"-Beiträge: Alle Beiträge werden auf dem Server gespeichert und verarbeitet. "Nur Folgende"-Beiträge werden an deine Folgenden und an Benutzer:innen, die du in ihnen erwähnst, ausgeliefert, direkte Beiträge nur an in ihnen erwähnte Benutzer:innen. In manchen Fällen bedeutet dass, dass sie an andere Server ausgeliefert werden und dort Kopien gespeichert werden. Wir bemühen uns nach bestem Wissen und Gewissen, den Zugriff auf diese Beiträge auf nur autorisierte Personen einzuschränken, jedoch könnten andere Server dabei scheitern. Deswegen ist es wichtig, die Server, zu denen deine Folgenden gehören, zu überprüfen. Du kannst eine Option in den Einstellungen umschalten, um neue Folgenden manuell anzunehmen oder abzuweisen. Bitte beachte, dass die Betreiber des Server und jedes empfangenden Servers solche Nachrichten anschauen könnten und dass Empfänger von diesen eine Bildschirmkopie erstellen könnten, sie kopieren oder anderweitig weiterverteilen könnten. Teile nicht irgendwelche gefährlichen Informationen über Mastodon.
- Internet Protocol-Adressen (IP-Adressen) und andere Metadaten: Sobald du dich anmeldest, erfassen wir sowohl die IP-Adresse, von der aus du dich anmeldest, als auch den Namen deine Browseranwendung. Alle angemeldeten Sitzungen (Sessions) sind für deine Überprüfung und Widerruf in den Einstellungen verfügbar. Die letzte verwendete IP-Adresse wird bis zu 12 Monate lang gespeichert. Wir könnten auch Serverprotokoll behalten, welche die IP-Adresse von jeder Anfrage an unseren Server enthalten.
@@ -888,7 +963,7 @@ de:
Du kannst ein Archiv deines Inhalts anfordern und herunterladen, inkludierend deiner Beiträge, Medienanhänge, Profilbilder und Headerbilder.
-
Du kannst dein Konto jederzeit unwiderruflich löschen.
+
Es ist in den meisten Fällen möglich dein Konto jederzeit eigenmächtig unwiderruflich zu löschen.
@@ -912,7 +987,7 @@ de:
Webseitenbenutzung durch Kinder
-
Wenn sich dieser Server in der EU oder im Europäischen Wirtschaftsraum befinden: Unsere Website, Produkte und Dienstleistungen sind alle an Leute gerichtet, die mindestens 16 Jahre als sind. Wenn du unter 16 bist, darfst du nach den Bestimmungen der DSGVO (Datenschutz-Grundverordnung) diese Webseite nicht benutzen.
+
Wenn sich dieser Server in der EU oder im Europäischen Wirtschaftsraum befindet: Unsere Website, Produkte und Dienstleistungen sind alle an Leute gerichtet, die mindestens 16 Jahre als sind. Wenn du unter 16 bist, darfst du nach den Bestimmungen der DSGVO (Datenschutz-Grundverordnung) diese Webseite nicht benutzen.
Wenn sich dieser Server in den USA befindet: Unsere Webseite, Produkte und Dienstleistungen sind alle an Leute gerichtet, die mindestens 13 Jahre alt sind. Wenn du unter 13 bist, darfst du nach den Bestimmungen des COPPA (Children's Online Privacy Protection Act, dt. "Gesetz zum Schutz der Privatsphäre von Kindern im Internet") diese Webseite nicht benutzen.
@@ -922,7 +997,7 @@ de:
Änderung an unserer Datenschutzerklärung
-
Wenn wir uns entscheiden, Änderungen an unserer Datenschutzerklärung vorzunehmen, werden wird diese Änderungen auf dieser Seite bekannt gegeben.
+
Wenn wir uns entscheiden, Änderungen an unserer Datenschutzerklärung vorzunehmen, werden wir diese Änderungen auf dieser Seite bekannt gegeben.
Dies ist eine Übersetzung, Irrtümer und Übersetzungsfehler vorbehalten. Im Zweifelsfall gilt die englische Originalversion.
@@ -931,9 +1006,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"
@@ -982,7 +1057,7 @@ de:
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
diff --git a/config/locales/devise.ca.yml b/config/locales/devise.ca.yml
index c41a218e1..aea361d0d 100644
--- a/config/locales/devise.ca.yml
+++ b/config/locales/devise.ca.yml
@@ -12,6 +12,7 @@ ca:
last_attempt: Tens un intent més, abans que es bloqui el compte.
locked: El compte s'ha blocat.
not_found_in_database: "%{authentication_keys} o contrasenya no vàlids."
+ pending: El teu compte encara està en revisió.
timeout: La sessió ha expirat. Inicia sessió una altra vegada per a continuar.
unauthenticated: Cal iniciar sessió o registrar-se abans de continuar.
unconfirmed: Has de confirmar l'adreça de correu electrònic abans de continuar.
@@ -20,17 +21,18 @@ ca:
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.
+ explanation_when_pending: Has sol·licitat una invitació a %{host} amb aquesta adreça de correu electrònic. Un cop confirmis la teva adreça de correu electrònic revisarem la teva sol·licitud. No es pot iniciar la sessió fins llavors. Si la teva sol·licitud és rebutjada les teves dades s’eliminaran, de manera que no s’exigirà cap altra acció. Si no has estat tu qui ha fet aquest sol·licitud si us plau ignora aquest correu electrònic.
+ extra_html: Si us plau consulta també
les regles del servidor i
les nostres condicions de servei.
subject: 'Mastodon: Instruccions de confirmació %{instance}'
title: Verifica l'adreça de correu
email_changed:
explanation: 'L''adreça de correu del teu compte s''està canviant a:'
- extra: Si no has canviat el teu correu electrònic, és probable que algú hagi accedit al teu compte. Si us plau, canvia la contrasenya immediatament o posa't en contacte amb l'administrador de la instància si no pots accedir al teu compte.
+ extra: Si no has canviat el teu correu electrònic és probable que algú hagi accedit al teu compte. Si us plau, canvia la contrasenya immediatament o posa't en contacte amb l'administrador del servidor si no pots accedir al teu compte.
subject: 'Mastodon: s''ha canviat l''adreça electrònica'
title: Adreça de correu electrònic nova
password_change:
explanation: S'ha canviat la contrasenya del teu compte.
- extra: Si no has canviat el teu correu electrònic, és probable que algú hagi accedit al teu compte. Si us plau, canvia la contrasenya immediatament o posa't en contacte amb l'administrador de la instància si no pots accedir al teu compte.
+ extra: Si no has canviat el teu correu electrònic, és probable que algú hagi accedit al teu compte. Si us plau, canvia la contrasenya immediatament o posa't en contacte amb l'administrador del servidor si no pots accedir al teu compte.
subject: 'Mastodon: Contrasenya canviada'
title: Contrasenya canviada
reconfirmation_instructions:
@@ -60,6 +62,7 @@ ca:
signed_up: Benvingut! T'has registrat amb èxit.
signed_up_but_inactive: T´has registrat amb èxit. No obstant, no podem identificar-te perquè el compte encara no s'ha activat.
signed_up_but_locked: T´has registrat amb èxit. No obstant, no podem identificar-te perquè el compte està blocat.
+ signed_up_but_pending: S'ha enviat un missatge amb un enllaç de confirmació a la teva adreça de correu electrònic. Després de que hagis fet clic a l'enllaç, revisarem la teva sol·licitud. Se't notificarà si s'aprova.
signed_up_but_unconfirmed: Un missatge amb un enllaç de confirmació ha estat enviat per correu electrònic. Si us plau segueixi l'enllaç per activar el seu compte.
update_needs_confirmation: Ha actualitzat el seu compte amb èxit, però necessitem verificar la nova adreça de correu. Si us plau comprovi el correu i segueixi l'enllaç per confirmar la nova adreça de correu.
updated: el seu compte ha estat actualitzat amb èxit.
diff --git a/config/locales/devise.co.yml b/config/locales/devise.co.yml
index 108a4ef11..16481737f 100644
--- a/config/locales/devise.co.yml
+++ b/config/locales/devise.co.yml
@@ -12,6 +12,7 @@ co:
last_attempt: Avete un’ultimu tintativu nanzu chì u vostru contu sia chjosu.
locked: U vostru contu hè chjosu.
not_found_in_database: L’ %{authentication_keys} o a chjave d’accessu ùn sò curretti.
+ pending: U vostru contu hè sempre in corsu di rivista.
timeout: A vostra sezzione hè spirata. Ricunnettatevi pè cuntinuà.
unauthenticated: Cunnettatevi o arregistratevi pè cuntinuà.
unconfirmed: Duvete cunfirmà u vostru contu pè cuntinuà.
@@ -20,17 +21,18 @@ co:
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.
+ explanation_when_pending: Avete dumandatu un'invitazione à %{host}, cù st'indirizzu e-mail. Una volta ch'ellu hè cunfirmatu, avemu da dà un'ochjata à a vostra dumanda. Ùn pudete micca cunnettavi nanz'à quessa. S'ella hè righjittata a vostra dumanda, i vostri dati saranu sguassati è ùn duverete fà nund'altru. S'ellu ùn era micca voi, pudete ignurà quess'e-mail.
+ 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:
@@ -60,6 +62,7 @@ co:
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.
+ signed_up_but_pending: Un missaghju cù un ligame di cunfirmazione hè statu mandatu à u vostr'indirizzu e-mail. Dop'à avè cliccatu u ligame, avemu da rivede a vostra dumanda - sarete nutificatu·a s'ella hè appruvata.
signed_up_but_unconfirmed: Un missaghju cù un ligame di cunfirmazione hè statu mandatu à u vostru indirizzu e-mail. Aprite stu ligame pè attivà u vostru contu. Pensate à verificà u cartulare di spam s’ellu ùn c’hè nunda.
update_needs_confirmation: U vostru contu hè statu messu à ghjornu mà duvemu verificà u vostru novu e-mail. Un missaghju cù un ligame di cunfirmazione hè statu mandatu. Pensate à verificà u cartulare di spam s’ellu ùn c’hè nunda.
updated: U vostru contu hè statu messu à ghjornu.
diff --git a/config/locales/devise.cs.yml b/config/locales/devise.cs.yml
index 850ff1fe8..bc9340605 100644
--- a/config/locales/devise.cs.yml
+++ b/config/locales/devise.cs.yml
@@ -3,15 +3,16 @@ cs:
devise:
confirmations:
confirmed: Vaše e-mailová adresa byla úspěšně ověřena.
- send_instructions: Za několik minut obdržíte e-mail s instrukcemi pro potvrzení vašeho účtu. Pokud tento e-mail neobdržíte, zkontrolujte si složku „spam“.
- send_paranoid_instructions: Pokud tato e-mailová adresa existuje v naší databázi, obdržíte za několik minut e-mail s instrukcemi pro potvrzení vašeho účtu. Pokud tento e-mail neobdržíte, zkontrolujte si složku „spam“.
+ send_instructions: Za několik minut obdržíte e-mail s instrukcemi pro potvrzení vašeho účtu. Pokud tento e-mail neobdržíte, prosím zkontrolujte si složku „spam“.
+ send_paranoid_instructions: Pokud vaše e-mailová adresa existuje v naší databázi, obdržíte za několik minut e-mail s instrukcemi pro potvrzení vaší e-mailové adresy. Pokud tento e-mail neobdržíte, prosím zkontrolujte si složku „spam“.
failure:
already_authenticated: Již jste přihlášen/a.
inactive: Váš účet ještě není aktivován.
- invalid: Neplatné %{authentication_keys} nebo heslo.
+ invalid: Neplatný %{authentication_keys} nebo heslo.
last_attempt: Máte ještě jeden pokus, než bude váš účet uzamčen.
locked: Váš účet je uzamčen.
not_found_in_database: Neplatné %{authentication_keys} nebo heslo.
+ pending: Váš účet je stále posuzován.
timeout: Vaše relace vypršela. Pro pokračování se prosím přihlaste znovu.
unauthenticated: Před pokračováním se musíte přihlásit nebo registrovat.
unconfirmed: Před pokračováním musíte potvrdit svůj e-mail.
@@ -19,18 +20,19 @@ cs:
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í.
+ 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, prosím ignorujte tento e-mail.
+ explanation_when_pending: S touto e-mailovou adresou jste si vyžádal/a pozvánku na %{host}. Jakmile svou e-mailovou adresu potvrdíte, posoudíme váš poadavek. Do té doby se nemůžete přihlásit. Pokud bude váš požadavek zamítnut, budou vaše data odstraněna, takže od vás nebude vyžadována žádná další akce. Pokud jste to nebyl/a vy, prosím ignorujte tento e-mail.
+ 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:
@@ -42,7 +44,7 @@ cs:
action: Změnit heslo
explanation: Vyžádal/a jste si pro svůj účet nové heslo.
extra: Pokud jste tohle nevyžádal/a, prosím ignorujte tento e-mail. Vaše heslo nebude změněno, dokud nepřejdete na výše uvedenou adresu a nevytvoříte si nové.
- subject: 'Mastodon: Instrukce pro obnovu hesla'
+ subject: 'Mastodon: Instrukce pro obnovení hesla'
title: Obnovení hesla
unlock_instructions:
subject: 'Mastodon: Instrukce pro odemčení účtu'
@@ -50,9 +52,9 @@ cs:
failure: Nelze vás ověřit z %{kind}, protože „%{reason}“.
success: Úspěšně ověřeno z účtu %{kind}.
passwords:
- no_token: Tuto stránku nemůžete navštívit, pokud nepřicházíte z e-mailu pro obnovu hesla. Pokud jste z něj přišel/la, ujistěte se, že jste použil/a celé URL z e-mailu.
- send_instructions: Pokud vaše e-mailová adresa existuje v naší databázi, obdržíte za pár minut ve vašem e-mailu odkaz pro obnovení hesla. Prosím zkontrolujte si složku spam, jestli jste tento e-mail neobdržel/a.
- send_paranoid_instructions: Pokud vaše e-mailová adresa existuje v naší databázi, obdržíte za pár minut ve vašem e-mailu odkaz pro obnovení hesla. Prosím zkontrolujte si složku spam, jestli jste tento e-mail neobdržel/a.
+ no_token: Tuto stránku nemůžete navštívit, pokud nepřicházíte z e-mailu pro obnovení hesla. Pokud z něj přicházíte, ujistěte se, že jste použil/a celé URL z e-mailu.
+ send_instructions: Pokud vaše e-mailová adresa existuje v naší databázi, obdržíte za několik minut ve vašem e-mailu odkaz pro obnovení hesla. Pokud tento e-mail neobdržíte, prosím zkontrolujte si složku „spam“.
+ send_paranoid_instructions: Pokud vaše e-mailová adresa existuje v naší databázi, obdržíte za několik minut ve vašem e-mailu odkaz pro obnovení hesla. Pokud tento e-mail neobdržíte, prosím zkontrolujte si složku „spam“.
updated: Vaše heslo bylo úspěšně změněno. Nyní jste přihlášen/a.
updated_not_active: Vaše heslo bylo úspěšně změněno.
registrations:
@@ -60,16 +62,17 @@ 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_pending: Na vaši e-mailovou adresu byla poslána zpráva s potvrzovacím odkazem. Poté, co kliknete na odkaz, posoudíme váš požadavek. Pokud bude schválen, budete informován/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. Pokud tento e-mail neobdržíte, 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ě.
signed_in: Přihlášení proběhlo úspěšně.
signed_out: Odhlášení proběhlo úspěšně.
unlocks:
- send_instructions: Za pár minut obdržíte e-mail s instrukcemi pro odemčení vašeho účtu. Prosím zkontrolujte si složku spam, jestli jste tento e-mail neobdržel/a.
- send_paranoid_instructions: Pokud váš účet existuje, obdržíte za pár minut e-mail s instrukcemi pro odemčení vašeho účtu. Prosím zkontrolujte si složku spam, jestli jste tento e-mail neobdržel/a.
+ send_instructions: Za několik minut obdržíte e-mail s instrukcemi pro odemčení vašeho účtu. Pokud tento e-mail neobdržíte, prosím zkontrolujte si složku „spam“.
+ send_paranoid_instructions: Pokud váš účet existuje, obdržíte za několik minut e-mail s instrukcemi pro odemčení vašeho účtu. Pokud tento e-mail neobdržíte, prosím zkontrolujte si složku „spam“.
unlocked: Váš účet byl úspěšně odemčen. Pro pokračování se prosím přihlaste.
errors:
messages:
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 56ae5183b..4816d6456 100644
--- a/config/locales/devise.da.yml
+++ b/config/locales/devise.da.yml
@@ -20,17 +20,17 @@ da:
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 fc41c9db5..bd573dc3e 100644
--- a/config/locales/devise.de.yml
+++ b/config/locales/devise.de.yml
@@ -12,6 +12,7 @@ de:
last_attempt: Du hast noch einen Versuch, bevor dein Konto gesperrt wird.
locked: Dein Konto ist gesperrt.
not_found_in_database: "%{authentication_keys} oder Passwort ungültig."
+ pending: Dein Konto wird immer noch überprüft.
timeout: Deine Sitzung ist abgelaufen. Bitte melde dich erneut an, um fortzufahren.
unauthenticated: Du musst dich anmelden oder registrieren, bevor du fortfahren kannst.
unconfirmed: Du musst deine E-Mail-Adresse bestätigen, bevor du fortfahren kannst.
@@ -20,17 +21,18 @@ de:
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.
+ explanation_when_pending: Du hast dich für eine Einladung bei %{host} mit dieser E-Mailadresse beworben. Sobald du deine E-Mailadresse bestätigst werden wir deine Anfrage überprüfen. Du kannst dich in dieser Zeit nicht anmelden. Wenn deine Anfrage abgelehnt wird, werden deine Daten entfernt, also wird keine weitere Handlung benötigt. Wenn du das nicht warst kannst du diese E-Mail ignorieren.
+ 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:
@@ -60,6 +62,7 @@ de:
signed_up: Willkommen! Du hast dich erfolgreich registriert.
signed_up_but_inactive: Du hast dich erfolgreich registriert. Wir konnten dich noch nicht anmelden, da dein Konto inaktiv ist.
signed_up_but_locked: Du hast dich erfolgreich registriert. Wir konnten dich noch nicht anmelden, da dein Konto gesperrt ist.
+ signed_up_but_pending: Eine Nachricht mit einem Bestätigungslink wurde an dich per E-Mail geschickt. Nachdem du diesen Link angeklickt hast werden wir deine Anfrage überprüfen. Du wirst benachrichtigt falls die Anfrage angenommen wurde.
signed_up_but_unconfirmed: Du hast dich erfolgreich registriert. Wir konnten dich noch nicht anmelden, da dein Konto noch nicht bestätigt ist. Du erhältst in Kürze eine E-Mail. Darin ist erklärt, wie du dein Konto freischalten kannst.
update_needs_confirmation: Deine Daten wurden aktualisiert, aber du musst deine neue E-Mail-Adresse bestätigen. Du erhältst in wenigen Minuten eine E-Mail. Darin ist erklärt, wie du die Änderung deiner E-Mail-Adresse abschließen kannst.
updated: Deine Daten wurden aktualisiert.
diff --git a/config/locales/devise.el.yml b/config/locales/devise.el.yml
index e9725d96b..0b5c68636 100644
--- a/config/locales/devise.el.yml
+++ b/config/locales/devise.el.yml
@@ -12,6 +12,7 @@ el:
last_attempt: Έχεις μια ακόμα προσπάθεια πριν κλειδωθεί ο λογαριασμός σου.
locked: Ο λογαριασμός σου κλειδώθηκε.
not_found_in_database: Λάθος %{authentication_keys} ή συνθηματικό.
+ pending: Εκκρεμεί η έγκριση του λογαριασμού σου.
timeout: Η τρέχουσα σύνδεσή σου έληξε. Παρακαλούμε συνδέσου ξανά για να συνεχίσεις.
unauthenticated: Πρέπει να συνδεθείς ή να εγγραφείς για να συνεχίσεις.
unconfirmed: Πρέπει να επιβεβαιώσεις τη διεύθυνση email σου για να συνεχίσεις.
@@ -20,6 +21,7 @@ el:
action: Επιβεβαίωσε διεύθυνση email
action_with_app: Επιβεβαίωση και επιστροφή στο %{app}
explanation: Δημιούργησες έναν λογαριασμό στο %{host} με αυτή τη διεύθυνση email. Με ένα κλικ θα τον ενεργοποιήσεις. Αν δεν το έκανες εσύ, παρακαλούμε αγνόησε αυτό το email.
+ explanation_when_pending: Έχεις υποβάλλει αίτηση πρόσκλησης στο %{host} με αυτή την ηλεκτρονική διεύθυνση email. Μόλις επιβεβαιώσεις το email σου, θα ελέγξουμε την αίτηση σου. Μέχρι τότε δε θα μπορεις να συνδεθείς. Αν απορριφθεί η αίτησή σου, τα στοιχεία σου θα αφαιρεθούν, άρα δε θα χρειαστεί να κάνεις κάτι επιπλέον. Αν δεν υπέβαλες εσύ την αίτηση, αγνόησε αυτό το email.
extra_html: Παρακαλούμε να διαβάσεις
του κανόνες αυτού του κόμβου και
τους όρους χρήσης της υπηρεσίας μας.
subject: 'Mastodon: Οδηγίες επιβεβαίωσης για %{instance}'
title: Επιβεβαίωσε διεύθυνση email
@@ -60,6 +62,7 @@ el:
signed_up: Καλώς ήρθες! Εγγράφηκες με επιτυχία.
signed_up_but_inactive: Εγγράφηκες με επιτυχία. Όμως δε μπορέσαμε να σε συνδέσουμε γιατί ο λογαριασμός σου δεν έχει ενεργοποιηθεί ακόμα.
signed_up_but_locked: Εγγράφηκες με επιτυχία. Όμως δε μπορέσαμε να σε συνδέσουμε γιατί ο λογαριασμός σου είναι κλειδωμένος.
+ signed_up_but_pending: Στάλθηκε στο email σου μήνυμα με ένα σύνδεσμο επιβεβαίωσης. Μόλις τον ακολουθήσεις θα ελέγξουμε την αίτηση σου. Θα ειδοποιήσεις εάν γίνει δεκτή.
signed_up_but_unconfirmed: Σου στείλαμε ένα μήνυμα με σύνδεσμο επιβεβαίωσης στη διεύθυνση email σου. Παρακαλούμε ακολούθησε το σύνδεσμο για να ενεργοποιήσεις το λογαριασμό σου. Παρακαλούμε έλεγξε το φάκελο με τα ανεπιθύμητα μηνύματα σου αν δεν το λάβεις.
update_needs_confirmation: Ενημέρωσες το λογαριασμό σου με επιτυχία αλλά χρειαζόμαστε να επιβεβαιώσουμε τη νέα διεύθυνση email σου. Παρακαλούμε έλεγξε τα email σου και ακολούθησε το σύνδεσμο για να την επιβεβαιώσεις. Παρακαλούμε έλεγξε το φάκελο με τα ανεπιθύμητα μηνύματα σου αν δεν το λάβεις.
updated: Ο λογαριασμός σου επιβεβαιώθηκε με επιτυχία.
diff --git a/config/locales/devise.en.yml b/config/locales/devise.en.yml
index bd0642b25..2930733c0 100644
--- a/config/locales/devise.en.yml
+++ b/config/locales/devise.en.yml
@@ -12,6 +12,7 @@ en:
last_attempt: You have one more attempt before your account is locked.
locked: Your account is locked.
not_found_in_database: Invalid %{authentication_keys} or password.
+ pending: Your account is still under review.
timeout: Your session expired. Please sign in again to continue.
unauthenticated: You need to sign in or sign up before continuing.
unconfirmed: You have to confirm your email address before continuing.
@@ -20,17 +21,18 @@ en:
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.
+ explanation_when_pending: You applied for an invite to %{host} with this email address. Once you confirm your e-mail address, we will review your application. You can't login until then. If your application is rejected, your data will be removed, so no further action will be required from you. If this wasn't you, please ignore this email.
+ 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:
@@ -60,6 +62,7 @@ en:
signed_up: Welcome! You have signed up successfully.
signed_up_but_inactive: You have signed up successfully. However, we could not sign you in because your account is not yet activated.
signed_up_but_locked: You have signed up successfully. However, we could not sign you in because your account is locked.
+ signed_up_but_pending: A message with a confirmation link has been sent to your email address. After you click the link, we will review your application. You will be notified if it is approved.
signed_up_but_unconfirmed: A message with a confirmation link has been sent to your email address. Please follow the link to activate your account. Please check your spam folder if you didn't receive this email.
update_needs_confirmation: You updated your account successfully, but we need to verify your new email address. Please check your email and follow the confirm link to confirm your new email address. Please check your spam folder if you didn't receive this email.
updated: Your account has been updated successfully.
diff --git a/config/locales/devise.eo.yml b/config/locales/devise.eo.yml
index 71dd6c1ef..b63815309 100644
--- a/config/locales/devise.eo.yml
+++ b/config/locales/devise.eo.yml
@@ -18,18 +18,19 @@ eo:
mailer:
confirmation_instructions:
action: Konfirmi retadreson
+ action_with_app: Konfirmi kaj reveni al %{app}
explanation: Vi kreis konton en %{host} per ĉi tiu retadreso. Nur klako restas por aktivigi ĝin. Se tio ne estis vi, bonvolu ignori ĉi tiun retmesaĝon.
- extra_html: Bonvolu rigardi
la regulojn de la nodo kaj
niajn uzkondiĉojn.
+ extra_html: Bonvolu rigardi
la regulojn de la servilo kaj
niajn uzkondiĉojn.
subject: 'Mastodon: Konfirmaj instrukcioj por %{instance}'
title: Konfirmi retadreson
email_changed:
explanation: 'La retadreso de via konto ŝanĝiĝas al:'
- extra: Se vi ne volis ŝanĝi vian retadreson, iu verŝajne aliris al via konto. Bonvolu tuj ŝanĝi vian pasvorton aŭ kontakti la administranton de la nodo, se vi estas blokita ekster via konto.
+ extra: Se vi ne volis ŝanĝi vian retadreson, iu verŝajne aliris al via konto. Bonvolu tuj ŝanĝi vian pasvorton aŭ kontakti la administranton de la servilo, se vi estas blokita ekster via konto.
subject: 'Mastodon: Retadreso ŝanĝita'
title: Nova retadreso
password_change:
explanation: La pasvorto de via konto estis ŝanĝita.
- extra: Se vi ne ŝanĝis vian pasvorton, iu verŝajne aliris al via konto. Bonvolu ŝanĝi vian pasvorton tuj aŭ kontakti la administranton de la nodo, se vi estas blokita ekster via konto.
+ extra: Se vi ne ŝanĝis vian pasvorton, iu verŝajne aliris al via konto. Bonvolu ŝanĝi vian pasvorton tuj aŭ kontakti la administranton de la servilo, se vi estas blokita ekster via konto.
subject: 'Mastodon: Pasvorto ŝanĝita'
title: Pasvorto ŝanĝita
reconfirmation_instructions:
diff --git a/config/locales/devise.eu.yml b/config/locales/devise.eu.yml
index 9893f5ba3..65046dc0f 100644
--- a/config/locales/devise.eu.yml
+++ b/config/locales/devise.eu.yml
@@ -20,17 +20,17 @@ eu:
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..963572e6b 100644
--- a/config/locales/devise.fa.yml
+++ b/config/locales/devise.fa.yml
@@ -12,13 +12,16 @@ fa:
last_attempt: پیش از آن که حساب شما قفل شود، یک فرصت دیگر دارید.
locked: حساب شما قفل شده است.
not_found_in_database: خطای %{authentication_keys} یا رمز نامعتبر.
+ pending: حساب شما همچنان در دست بررسی است.
timeout: مهلت این ورود شما به سر رسید. برای ادامه، دوباره وارد شوید.
unauthenticated: برای ادامه باید وارد شوید یا ثبت نام کنید.
unconfirmed: برای ادامه باید نشانی ایمیل خود را تأیید کنید.
mailer:
confirmation_instructions:
action: تأیید نشانی ایمیل
+ action_with_app: تأیید و بازگشت به %{app}
explanation: شما با این نشانی ایمیل حسابی در %{host} باز کردهاید. با یک کلیک میتوانید این حساب را فعال کنید. اگر شما چنین کاری نکردید، لطفاً این ایمیل را نادیده بگیرید.
+ explanation_when_pending: شما با این نشانی ایمیل برای %{host} درخواست دعوتنامه دادهاید. اگر ایمیل خود را تأیید کنید، ما درخواست شما را بررسی خواهیم کرد. تا وقتی بررسی تمام نشده، شما نمیتوانید به حساب خود وارد شوید. اگر درخواست شما رد شود، ما اطلاعاتی را که از شما داریم پاک خواهیم کرد پس نیازی به کاری از سمت شما نخواهد بود. اگر شما چنین درخواستی ندادهاید، لطفاً این ایمیل را نادیده بگیرید.
extra_html: لطفاً همچنین
قانونهای این سرور و
شرایط کاربری آن را ببینید.
subject: 'ماستدون: راهنمایی برای تأیید %{instance}'
title: تأیید نشانی ایمیل
@@ -59,6 +62,7 @@ fa:
signed_up: خوش آمدید! شما با موفقیت ثبت نام کردید.
signed_up_but_inactive: خوش آمدید! شما با موفقیت ثبت نام کردید. ولی هنوز وارد سیستم نیستید زیرا حساب شما هنوز فعال نیست.
signed_up_but_locked: خوش آمدید! شما با موفقیت ثبت نام کردید. ولی هنوز وارد سیستم نیستید زیرا حساب شما قفل شده است.
+ signed_up_but_pending: پیغامی که دارای یک پیوند برای تأیید است به نشانی ایمیل شما فرستاده شده. پس از اینکه پیوند را باز کردید، ما درخواست شما را بررسی خواهیم کرد. اگر درخواست شما پذیرفته شود، به شما خواهیم گفت.
signed_up_but_unconfirmed: یک پیغام برای تأیید به نشانی ایمیل شما فرستاده شده. لطفاً پیوند موجود در ایمیل را دنبال کنید تا حسابتان فعال شود.
update_needs_confirmation: شما با موفقیت حسابتان را بهروز کردید، ولی لازم است که ما نشانی ایمیل تازهٔ شما را تأیید کنیم. لطفاً ایمیل خود را ببینید و پیوند موجود در ایمیل را دنبال کنید تا تا نشانی ایمیل تازهٔ شما تأیید شود.
updated: حساب شما با موفقبت بهروز شد.
diff --git a/config/locales/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 718b4056e..2d3c86c1f 100644
--- a/config/locales/devise.fr.yml
+++ b/config/locales/devise.fr.yml
@@ -8,10 +8,11 @@ fr:
failure:
already_authenticated: Vous êtes déjà connecté⋅e.
inactive: Votre compte n’est pas encore activé.
- invalid: "%{authentication_keys} invalide."
+ invalid: "%{authentication_keys} ou mot de passe invalide."
last_attempt: Vous avez droit à une tentative avant que votre compte ne soit verrouillé.
locked: Votre compte est verrouillé.
- not_found_in_database: "%{authentication_keys} invalide."
+ not_found_in_database: "%{authentication_keys} ou mot de passe invalide."
+ pending: Votre compte est toujours en cours d'approbation.
timeout: Votre session a expiré. Veuillez vous reconnecter pour continuer.
unauthenticated: Vous devez vous connecter ou vous inscrire pour continuer.
unconfirmed: Vous devez valider votre compte pour continuer.
@@ -20,18 +21,19 @@ fr:
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}
+ explanation_when_pending: Vous avez demandé à vous inscrire à %{host} avec cette adresse courriel. Une fois que vous aurez confirmé cette adresse, nous étudierons votre demande. Vous ne pourrez pas vous connecté d'ici-là. Si votre demande est refusée, vos données seront supprimées du serveur, aucune action supplémentaire de votre part n'est donc requise. Si vous n'êtes pas à l'origine de cette demande, veuillez ignorer ce courriel.
+ extra_html: Merci de consultez également
les règles du serveur et
nos conditions d’utilisation.
+ 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 :'
- extra: Si vous n’avez pas changé votre adresse courriel, 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.
+ extra: Si vous n’avez pas changé votre adresse courriel, 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 du serveur si vous êtes bloqué·e hors de votre compte.
subject: 'Mastodon : Courriel modifié'
title: Nouvelle adresse courriel
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
+ 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 du serveur si vous êtes bloqué·e hors de votre compte.
+ 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.
@@ -42,10 +44,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}.
@@ -56,12 +58,13 @@ 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_pending: Un message avec un lien de confirmation a été envoyé à votre adresse courriel. Après avoir cliqué sur le lien, nous étudierons votre demande. Vous serez informé·e si elle a été approuvée.
+ signed_up_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 9f60747a6..60a935a8a 100644
--- a/config/locales/devise.gl.yml
+++ b/config/locales/devise.gl.yml
@@ -12,6 +12,7 @@ gl:
last_attempt: Quédalle un intento antes de que a conta sexa bloqueada.
locked: A súa conta foi bloqueada.
not_found_in_database: Contrasinal ou %{authentication_keys} non válidos.
+ pending: A súa conta está en proceso de revisión.
timeout: Caducou a sesión. Por favor conéctese de novo para seguir.
unauthenticated: Precisa rexistrarse ou conectarse para continuar.
unconfirmed: Debe confirmar o seu enderezo de correo antes de continuar.
@@ -20,17 +21,18 @@ gl:
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.
+ explanation_when_pending: Vostede solicitou un convite para %{host} con este enderezo de correo. Unha vez confirme o enderezo de correo revisaremos a solicitude. Non pode conectarse ata entón. Si a solicitude fose rexeitada, os seus datos eliminaranse, así que non precisaría facer nada máis. Se non fixo vostede unha solicitude por favor ignore este correo.
+ 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:
@@ -60,6 +62,7 @@ gl:
signed_up: Ben vida! Rexistrouse con éxito.
signed_up_but_inactive: Rexistrouse correctamente. Porén, aínda non podemos conectala porque a súa conta aínda non foi activada.
signed_up_but_locked: Rexistrouse correctamente. Porén, non podemos conectala porque a conta está bloqueada.
+ signed_up_but_pending: Enviouselle unha mensaxe de correo que contén unha ligazón de confirmación. Tras pulsar na ligazón, revisaremos a súa solicitude. Notificarémoslle se está aprobada.
signed_up_but_unconfirmed: Foi enviada unha mensaxe con unha ligazón de confirmación ao seu enderezo electrónico. Por favor siga a ligazón para activar a súa conta. Por favor comprobe o cartafol de spam si non recibe este correo.
update_needs_confirmation: Actualizou a súa conta correctamente, pero precisamos verificar o seu enderezo. Por favor comprobe o seu email e siga a ligazón de confirmación para confirmar o seu novo enderezo. Por favor comprobe o cartafol de spam si non recibe este correo.
updated: A súa conta foi actualizada correctamente.
diff --git a/config/locales/devise.it.yml b/config/locales/devise.it.yml
index 30266e46b..fc36fdbff 100644
--- a/config/locales/devise.it.yml
+++ b/config/locales/devise.it.yml
@@ -20,17 +20,17 @@ it:
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.
+ extra_html: Per favore controlla
le regole del server e
i nostri termini di servizio.
subject: 'Mastodon: Istruzioni di conferma per %{instance}'
title: Verifica indirizzo email
email_changed:
explanation: 'L''indirizzo email del tuo account sta per essere cambiato in:'
- extra: Se non hai cambiato la tua email, è probabile che qualcuno abbia accesso al tuo account. Cambia immediatamente la tua password e contatta l'amministratore dell'istanza se sei bloccato fuori dal tuo account.
+ extra: Se non hai cambiato la tua email, è probabile che qualcuno abbia ottenuto l'accesso al tuo account. Cambia immediatamente la tua password e contatta l'amministratore del server se non puoi più accedere al tuo account.
subject: 'Mastodon: Email cambiata'
title: Nuovo indirizzo email
password_change:
explanation: La password del tuo account è stata cambiata.
- extra: Se non hai cambiato la password, è probabile che qualcuno abbia accesso al tuo account. Cambia immediatamente la tua password e contatta l'amministratore dell'istanza se sei bloccato fuori dal tuo account.
+ extra: Se non hai cambiato la password, è probabile che qualcuno abbia ottenuto l'accesso al tuo account. Cambia immediatamente la tua password e contatta l'amministratore del server non puoi più accedere al tuo account.
subject: 'Mastodon: Password modificata'
title: Password cambiata
reconfirmation_instructions:
diff --git a/config/locales/devise.ja.yml b/config/locales/devise.ja.yml
index cae76d493..3dac63050 100644
--- a/config/locales/devise.ja.yml
+++ b/config/locales/devise.ja.yml
@@ -12,6 +12,7 @@ ja:
last_attempt: あと1回失敗するとアカウントがロックされます。
locked: アカウントはロックされました。
not_found_in_database: "%{authentication_keys}かパスワードが誤っています。"
+ pending: あなたのアカウントはまだ審査中です。
timeout: セッションの有効期限が切れました。続行するには再度ログインしてください。
unauthenticated: 続行するにはログインするか、アカウントを作成してください。
unconfirmed: 続行するにはメールアドレスを確認する必要があります。
@@ -20,17 +21,18 @@ ja:
action: メールアドレスの確認
action_with_app: 確認し %{app} に戻る
explanation: このメールアドレスで%{host}にアカウントを作成しました。有効にするまであと一歩です。もし心当たりがない場合、申し訳ありませんがこのメールを無視してください。
- extra_html: また
インスタンスのルール と
利用規約 もお読みください。
+ explanation_when_pending: このメールアドレスで%{host}への登録を申請しました。メールアドレスを確認したら、サーバー管理者が申請を審査します。それまでログインできません。申請が却下された場合、あなたのデータは削除されますので以降の操作は必要ありません。もし心当たりがない場合、申し訳ありませんがこのメールを無視してください。
+ extra_html: また
サーバーのルール と
利用規約 もお読みください。
subject: 'Mastodon: メールアドレスの確認 %{instance}'
title: メールアドレスの確認
email_changed:
explanation: 'アカウントのメールアドレスは以下のように変更されます:'
- extra: メールアドレスの変更を行っていない場合、他の誰かがあなたのアカウントにアクセスした可能性があります。すぐにパスワードを変更するか、アカウントがロックされている場合はインスタンス管理者に連絡してください。
+ extra: メールアドレスの変更を行っていない場合、他の誰かがあなたのアカウントにアクセスした可能性があります。すぐにパスワードを変更するか、アカウントがロックされている場合はサーバー管理者に連絡してください。
subject: 'Mastodon: メールアドレスの変更'
title: 新しいメールアドレス
password_change:
explanation: パスワードが変更されました。
- extra: パスワードの変更を行っていない場合、他の誰かがあなたのアカウントにアクセスした可能性があります。すぐにパスワードを変更するか、アカウントがロックされている場合はインスタンス管理者に連絡してください。
+ extra: パスワードの変更を行っていない場合、他の誰かがあなたのアカウントにアクセスした可能性があります。すぐにパスワードを変更するか、アカウントがロックされている場合はサーバー管理者に連絡してください。
subject: 'Mastodon: パスワードが変更されました'
title: パスワードの変更
reconfirmation_instructions:
@@ -60,6 +62,7 @@ ja:
signed_up: アカウントの作成が完了しました。Mastodonへようこそ。
signed_up_but_inactive: アカウントの作成が完了しました。しかし、アカウントが有効化されていないためログインできませんでした。
signed_up_but_locked: アカウントの作成が完了しました。しかし、アカウントがロックされているためログインできませんでした。
+ signed_up_but_pending: メールアドレスの確認用のリンクが入力したメールアドレスに送信されました。リンクをクリックした後、あなたの申請を審査します。承認されると通知されます。
signed_up_but_unconfirmed: メールアドレスの確認用のリンクが入力したメールアドレスに送信されました。メール内のリンクをクリックしてアカウントを有効化してください。
update_needs_confirmation: アカウント情報の更新に成功しました。しかし、メールアドレスの確認が必要です。送信されたメール内のリンクをクリックしてメールアドレスを確認してください。
updated: アカウント情報の更新に成功しました。
diff --git a/config/locales/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.ko.yml b/config/locales/devise.ko.yml
new file mode 100644
index 000000000..33ca8f842
--- /dev/null
+++ b/config/locales/devise.ko.yml
@@ -0,0 +1,76 @@
+---
+ko:
+ devise:
+ confirmations:
+ confirmed: 이메일이 성공적으로 확인 되었습니다.
+ send_instructions: 몇 분 이내로 확인 이메일이 발송 됩니다. 이메일을 받지 못 한 경우, 스팸 폴더를 확인하세요.
+ send_paranoid_instructions: 당신의 이메일이 우리의 DB에 있을 경우 몇 분 이내로 확인 메일이 발송 됩니다. 이메일을 받지 못 한 경우, 스팸 폴더를 확인하세요.
+ failure:
+ already_authenticated: 이미 로그인 된 상태입니다.
+ inactive: 계정이 활성화 되지 않았습니다.
+ invalid: 올바르지 않은 %{authentication_keys} 혹은 패스워드입니다.
+ last_attempt: 계정이 잠기기까지 한 번의 시도가 남았습니다.
+ locked: 계정이 잠겼습니다.
+ not_found_in_database: 올바르지 않은 %{authentication_keys} 혹은 패스워드입니다.
+ pending: 계정이 아직 심사 중입니다.
+ timeout: 세션이 만료 되었습니다. 다시 로그인 해 주세요.
+ unauthenticated: 계속 하려면 로그인을 해야 합니다.
+ unconfirmed: 계속 하려면 이메일을 확인 받아야 합니다.
+ mailer:
+ confirmation_instructions:
+ action: 이메일 확인
+ action_with_app: 확인하고 %{app}으로 돌아가기
+ explanation: 당신은 %{host}에서 이 이메일로 가입하셨습니다. 클릭만 하시면 계정이 활성화 됩니다. 만약 당신이 가입한 게 아니라면 이 메일을 무시해 주세요.
+ explanation_when_pending: 당신은 %{host}에 가입 요청을 하셨습니다. 이 이메일이 확인 되면 우리가 가입 요청을 리뷰하고 승인할 수 있습니다. 그 전까지는 로그인을 할 수 없습니다. 당신의 가입 요청이 거부 될 경우 당신에 대한 정보는 모두 삭제 되며 따로 요청 할 필요는 없습니다. 만약 당신이 가입 요청을 한 게 아니라면 이 메일을 무시해 주세요.
+ extra_html:
서버의 룰과
이용 약관도 확인해 주세요.
+ subject: '마스토돈: %{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:
+ failure: '"%{reason}" 때문에 당신을 %{kind}에서 인증할 수 없습니다.'
+ success: 성공적으로 %{kind} 계정을 인증 했습니다.
+ passwords:
+ no_token: 패스워드 재설정 이메일을 거치지 않고는 여기에 올 수 없습니다. 만약 패스워드 재설정 메일에서 온 것이라면 URL이 맞는지 확인해 주세요.
+ send_instructions: 당신의 이메일 주소가 우리의 DB에 있아면 패스워드 복구 링크가 몇 분 이내에 메일로 발송 됩니다. 만약 메일을 받지 못 하신 경우 스팸 폴더를 확인해 주세요.
+ send_paranoid_instructions: 당신의 이메일 주소가 우리의 DB에 있아면 패스워드 복구 링크가 몇 분 이내에 메일로 발송 됩니다. 만약 메일을 받지 못 하신 경우 스팸 폴더를 확인해 주세요.
+ updated: 패스워드가 재설정 되었습니다. 로그인 되었습니다.
+ updated_not_active: 패스워드가 성공적으로 변경 되었습니다.
+ registrations:
+ destroyed: 안녕히 가세요! 계정이 성공적으로 제거되었습니다. 다시 만나기를 희망합니다.
+ signed_up: 안녕하세요! 성공적으로 가입했습니다.
+ signed_up_but_inactive: 성공적으로 가입 했습니다. 그러나, 계정이 활성화 되지 않았기 때문에 아직 로그인 할 수 없습니다.
+ signed_up_but_locked: 성공적으로 가입 했습니다. 그러나, 계정이 잠겨있기 때문에 아직 로그인 할 수 없습니다.
+ signed_up_but_pending: 확인 링크를 포함한 메일이 발송 되었습니다. 링크를 클릭한 이후, 우리가 당신의 신청양식을 검토합니다. 승인이 되면 알림을 발송합니다.
+ signed_up_but_unconfirmed: 확인 링크를 포함한 메일이 발송 되었습니다. 링크를 클릭해 계정을 활성화 하세요. 메일을 받지 못 하신 경우 스팸 폴더를 확인해 주세요.
+ update_needs_confirmation: 계정 정보를 업데이트 했습니다. 하지만 새 이메일 주소에 대한 확인이 필요합니다. 이메일을 확인 한 후 링크를 통해 새 이메일을 확인 하세요. 메일을 받지 못 하신 경우 스팸 폴더를 확인해 주세요.
+ updated: 계정 정보가 성공적으로 업데이트 되었습니다.
+ sessions:
+ already_signed_out: 로그아웃 되었습니다.
+ signed_in: 로그인 되었습니다.
+ signed_out: 로그아웃 되었습니다.
+ unlocks:
+ send_instructions: 몇 분 이내로 계정 잠금 해제에 대한 안내 메일이 발송 됩니다. 메일을 받지 못 하신 경우 스팸 폴더를 확인해 주세요.
+ send_paranoid_instructions: 계정이 존재한다면 몇 분 이내로 계정 잠금 해제에 대한 안내 메일이 발송 됩니다. 메일을 받지 못 하신 경우 스팸 폴더를 확인해 주세요.
+ unlocked: 계정이 성공적으로 잠금 해제 되었습니다. 계속 하려면 로그인 하세요.
diff --git a/config/locales/devise.nl.yml b/config/locales/devise.nl.yml
index a768d3c1d..96d14d9d2 100644
--- a/config/locales/devise.nl.yml
+++ b/config/locales/devise.nl.yml
@@ -13,6 +13,7 @@ nl:
last_attempt: Je hebt nog één poging over voordat jouw account wordt opgeschort.
locked: Jouw account is opgeschort.
not_found_in_database: "%{authentication_keys} of wachtwoord ongeldig."
+ pending: Jouw account moet nog steeds worden beoordeeld.
timeout: Jouw sessie is verlopen, log opnieuw in.
unauthenticated: Je dient in te loggen of te registreren.
unconfirmed: Je dient eerst jouw account te bevestigen.
@@ -21,6 +22,7 @@ nl:
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.
+ explanation_when_pending: Je vroeg met dit e-mailadres een uitnodiging aan voor %{host}. Nadat je jouw e-mailadres hebt bevestigd, beoordelen we jouw aanvraag. Je kunt tot dan nog niet inloggen. Wanneer jouw aanvraag wordt afgekeurd, worden jouw gegevens verwijderd en hoef je daarna verder niets meer te doen. Wanneer jij dit niet was, kun je deze e-mail negeren.
extra_html: Bekijk ook de
regels van de Mastodonserver en
onze gebruiksvoorwaarden.
subject: 'Mastodon: E-mail bevestigen voor %{instance}'
title: E-mailadres verifiëren
@@ -61,6 +63,7 @@ nl:
signed_up: Je bent geregistreerd.
signed_up_but_inactive: Je bent geregistreerd. Je kon alleen niet automatisch ingelogd worden omdat jouw account nog niet geactiveerd is.
signed_up_but_locked: Je bent ingeschreven. Je kon alleen niet automatisch ingelogd worden omdat jouw account is opgeschort.
+ signed_up_but_pending: Er is een bericht met een bevestigingslink naar jouw e-mailadres verzonden. Nadat je op deze link hebt geklikt nemen we jouw aanvraag in behandeling. Je wordt op de hoogte gesteld wanneer deze wordt goedgekeurd.
signed_up_but_unconfirmed: Je ontvangt via e-mail instructies hoe je jouw account kunt activeren. Kijk tussen je spam wanneer niks werd ontvangen.
update_needs_confirmation: Je hebt je e-mailadres succesvol gewijzigd, maar we moeten je nieuwe mailadres nog bevestigen. Controleer jouw e-mail en klik op de link in de mail om jouw e-mailadres te bevestigen. Kijk tussen je spam wanneer niks werd ontvangen.
updated: Jouw accountgegevens zijn opgeslagen.
diff --git a/config/locales/devise.oc.yml b/config/locales/devise.oc.yml
index 99809b858..42be33f6b 100644
--- a/config/locales/devise.oc.yml
+++ b/config/locales/devise.oc.yml
@@ -12,6 +12,7 @@ oc:
last_attempt: Vos demòra un ensag abans que vòstre compte siasque blocat.
locked: Vòstre compte es blocat.
not_found_in_database: "%{authentication_keys} invalida."
+ pending: Vòstre compte es encara en aprobacion.
timeout: Vòstra session a expirat. Mercés de vos tornar connectar per contunhar.
unauthenticated: Vos cal vos connectar o marcar abans de contunhar.
unconfirmed: Vos cal confirmar vòstra adreça de corrièl abans de contunhar.
@@ -20,17 +21,18 @@ oc:
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.
+ explanation_when_pending: Avètz demandat una invitacion a %{host} amb aquesta adreça electronica. Un còp que confirmetz vòstra adreça electronica revisarem vòstra demanda. Se pòt iniciar la session fins alara. Se vòstra demanda es pas acceptada vòstras donadas seràn suprimidas, de manièra que caldrà pas cap d’autra accion. S’èra pas vos qu’avètz fach la demanda, se vos plai ignoratz aqueste corrièl.
+ extra_html: Pensatz tanben de gaitar
las règlas del servidor e
nòstres tèrmes e condicions d’utilizacion.
subject: 'Mastodon : consignas de confirmacion per %{instance}'
title: Verificatz l’adreça de corrièl
email_changed:
explanation: 'L’adreça per aqueste compte es ara :'
- extra: S’avètz pas demandat aqueste cambiament d’adreça, poiriá arribar que qualqu’un mai aguèsse agut accès a vòstre compte. Mercés de cambiar sulpic vòstre senhal o de contactar vòstre administrator d’instància se l’accès a vòstre compte vos es barrat.
+ extra: S’avètz pas demandat aqueste cambiament d’adreça, poiriá arribar que qualqu’un mai aguèsse agut accès a vòstre compte. Mercés de cambiar sulpic vòstre senhal o de contactar vòstre administrator de servidor se l’accès a vòstre compte vos es barrat.
subject: 'Mastodon : corrièl cambiat'
title: Nòva adreça de corrièl
password_change:
explanation: Lo senhal per vòstre compte a cambiat.
- extra: S’avètz pas demandat aqueste cambiament de senhal, poiriá arribar que qualqu’un mai aguèsse agut accès a vòstre compte. Mercés de cambiar sulpic vòstre senhal o de contactar vòstre administrator d’instància se l’accès a vòstre compte vos es barrat.
+ extra: S’avètz pas demandat aqueste cambiament de senhal, poiriá arribar que qualqu’un mai aguèsse agut accès a vòstre compte. Mercés de cambiar sulpic vòstre senhal o de contactar vòstre administrator de servidor se l’accès a vòstre compte vos es barrat.
subject: Mastodon : senhal cambiat
title: Senhal cambiat
reconfirmation_instructions:
@@ -60,6 +62,7 @@ oc:
signed_up: La benvenguda ! Sètz ben marcat al malhum.
signed_up_but_inactive: Sètz ben marcat. Pasmens, avèm pas pogut vos connectar perque vòstre compte es pas encara validat.
signed_up_but_locked: Sètz ben marcat. Pasmens, avèm pas pogut vos connectar perque vòstre compte es pas encara blocat.
+ signed_up_but_pending: Un messatge amb un ligam de confirmacion es estat enviat a vòstra adreça electronica. Aprèp aver clicat lo ligam, revisarem vòstra demanda. Seretz avisat se’s aprovada.
signed_up_but_unconfirmed: Un messatge amb un ligam de confirmacion es estat enviat a vòstra adreça de corrièl. Clicatz sul ligam per activar vòstre compte. Mercés de verificar tanben vòstre dorsièr de corrièls indesirables.
update_needs_confirmation: Avètz ben mes a jorn vòstre compte, mai nos cal verificar vòstra nòva adreça de corrièl. Mercés de verificar vòstres messatges e clicar sul ligam de confirmacion per confirmar vòstra nòva adreça de corrièl. Mercés de verificar tanben vòstre dorsièr de corrièls indesirables.
updated: Vòstre compte es estat mes a jorn amb succès.
diff --git a/config/locales/devise.pl.yml b/config/locales/devise.pl.yml
index 57c21437b..a0af51c32 100644
--- a/config/locales/devise.pl.yml
+++ b/config/locales/devise.pl.yml
@@ -12,6 +12,7 @@ pl:
last_attempt: Masz jeszcze jedną próbę; Twoje konto zostanie zablokowane jeśli się nie powiedzie.
locked: Twoje konto zostało zablokowane.
not_found_in_database: Nieprawidłowy %{authentication_keys} lub hasło.
+ pending: Twoje konto oczekuje na przegląd.
timeout: Twoja sesja wygasła. Zaloguj się ponownie, aby kontynuować..
unauthenticated: Zapisz się lub zaloguj, aby kontynuować.
unconfirmed: Zweryfikuj adres e-mail, aby kontynuować.
@@ -20,17 +21,18 @@ pl:
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.
+ explanation_when_pending: Poprosiłeś(-aś) o zaproszenie na %{host} używajac tego adresu e-mail. Kiedy potwierdzisz swój adres e-mail, przejrzymy Twoje podanie. Do tego czasu nie możesz się zalogować. Jeżeli Twoje podanie zostanie odrzucone, Twoje dane zostaną usunięte i nie będziesz musiał(-a) podejmować żadnych dodatkowych działań. Jeżeli to nie Ty, zignoruj ten e-mail.
+ extra_html: Przeczytaj też
regulamin serwera i
nasze zasady użytkowania.
subject: 'Mastodon: Instrukcje weryfikacji adresu e-mail na %{instance}'
title: Zweryfikuj adres e-mail
email_changed:
explanation: 'Adres e-mail dla Twojego konta zostanie zmieniony na:'
- extra: Jeżeli nie próbowałeś(-aś) zmienić adresu e-mail, prawdopodobnie ktoś uzyskał dostęp do Twojego konta. Zmień natychmiastowo hasło lub skontaktuj się z administratorem isntancji, jeżeli nie masz dostępu do konta.
+ extra: Jeżeli nie próbowałeś(-aś) zmienić adresu e-mail, prawdopodobnie ktoś uzyskał dostęp do Twojego konta. Zmień natychmiastowo hasło lub skontaktuj się z administratorem serwera, jeżeli nie masz dostępu do konta.
subject: 'Mastodon: Zmieniono adres e-mail'
title: Nowy adres e-mail
password_change:
explanation: Hasło do Twojego konta zostało zmienione.
- extra: Jeżeli nie zmieniałeś(-aś) hasła, prawdopodobnie ktoś uzyskał dostęp do Twojego konta. Zmień hasło natychmiastowo lub skontaktuj się z administratorem instancji, jeżeli nie masz dostępu do konta.
+ extra: Jeżeli nie zmieniałeś(-aś) hasła, prawdopodobnie ktoś uzyskał dostęp do Twojego konta. Zmień hasło natychmiastowo lub skontaktuj się z administratorem serwera, jeżeli nie masz dostępu do konta.
subject: 'Mastodon: Zmieniono hasło'
title: Zmieniono hasło
reconfirmation_instructions:
@@ -56,10 +58,11 @@ pl:
updated: Twoje hasło zostało zmienione. Jesteś zalogowany(-a).
updated_not_active: Twoje hasło zostało zmienione.
registrations:
- destroyed: Twoje konto zostało zawieszone. Mamy jednak nadzieję, że do nas wrócisz. Do zobaczenia!
- signed_up: Twoje konto zostało utworzone. Witamy!
+ destroyed: Do zobaczenia! Twoje konto zostało zawieszone. Mamy jednak nadzieję, że do nas wrócisz.
+ signed_up: Witamy! Twoje konto zostało utworzone.
signed_up_but_inactive: Twoje konto zostało utworzone. Nie mogliśmy Cię jednak zalogować, ponieważ konto nie zostało jeszcze aktywowane.
signed_up_but_locked: Twoje konto zostało utworzone. Nie mogliśmy Cię jednak zalogować, ponieważ konto jest zablokowane.
+ signed_up_but_pending: Na Twój adres e-mail została wysłana wiadomosć z odnośnikiem potwierdzającym. Po kliknięciu w odnośnik, przejrzymy Twoje podanie. Zostaniesz poinformowany(-a), gdy zostanie ono przyjęte.
signed_up_but_unconfirmed: Na Twój adres e-mail została wysłana wiadomosć z odnośnikiem potwierdzającym. Kliknij w odnośnik, aby aktywować konto. Jeżeli nie otrzymano wiadomości, sprawdź folder ze spamem.
update_needs_confirmation: Konto zostało zaktualizowane, musimy jednak zweryfikować Twój nowy adres e-mail. Została na niego wysłana wiadomość z odnośnikiem potwierdzającym. Jeżeli nie otrzymano wiadomości, sprawdź folder ze spamem.
updated: Konto zostało zaktualizowane.
diff --git a/config/locales/devise.pt-BR.yml b/config/locales/devise.pt-BR.yml
index ede004892..0b6d36187 100644
--- a/config/locales/devise.pt-BR.yml
+++ b/config/locales/devise.pt-BR.yml
@@ -12,6 +12,7 @@ pt-BR:
last_attempt: Você tem apenas mais uma tentativa sobrando antes que a sua conta seja bloqueada.
locked: A sua conta está bloqueada.
not_found_in_database: "%{authentication_keys} ou senha inválida."
+ pending: Sua conta ainda está sendo revisada.
timeout: A sua sessão expirou. Por favor, entre novamente para continuar.
unauthenticated: Você precisa entrar ou cadastrar-se antes de continuar.
unconfirmed: Você precisa confirmar o seu endereço de e-mail antes de continuar.
@@ -20,6 +21,7 @@ pt-BR:
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.
+ explanation_when_pending: Você pediu um convite para %{host} com esse endereço de email. Assim que você confirmar o seu endereço de e-mail, iremos revisar o seu pedido. Você não poderá fazer login até então. Se sua aplicação for rejeitada, seus dados serão removidos e nenhuma ação será necessária da sua parte. Se você não pediu por isso, por favor ignore esse e-mail.
extra_html: Por favor confira também
as regras da instância e
nossos termos de serviço.
subject: 'Mastodon: Instruções de confirmação para %{instance}'
title: Verifique o endereço de e-mail
@@ -60,6 +62,7 @@ pt-BR:
signed_up: Bem vindo! A sua conta foi registrada com sucesso.
signed_up_but_inactive: A sua conta foi registrada. No entanto, não abrimos a sua sessão porque a sua conta ainda não foi ativada.
signed_up_but_locked: A sua conta foi registrada. No entanto, não abrimos a sua sessão porque a sua conta está bloqueada.
+ signed_up_but_pending: Uma mensagem com um link de confirmação foi enviada ao seu endereço de e-mail. Depois que você clicar no link, revisaremos seu pedido. Você será notificado se seu pedido for aprovado.
signed_up_but_unconfirmed: Uma mensagem com um link de confirmação foi enviada para o seu endereço de e-mail. Por favor, siga o link para ativar a sua conta e, caso não tenha recebido esta mensagem, cheque a sua pasta de spam.
update_needs_confirmation: Você mudou o seu endereço de e-mail ou a sua senha, mas é necessário confirmar a mudança. Por favor siga o link que foi enviado para o seu novo endereço de e-mail e, caso não tenha recebido esta mensagem, cheque a sua pasta de spam.
updated: A sua conta foi alterada com sucesso.
diff --git a/config/locales/devise.pt.yml b/config/locales/devise.pt.yml
index 5fd54ff50..9b44bbf00 100644
--- a/config/locales/devise.pt.yml
+++ b/config/locales/devise.pt.yml
@@ -2,34 +2,35 @@
pt:
devise:
confirmations:
- confirmed: O teu endereço de email foi confirmado.
- send_instructions: Vais receber um email com as instruções para confirmar o teu endereço de email dentro de alguns minutos.
- send_paranoid_instructions: Se o teu endereço de email já existir na nossa base de dados, vais receber um email com as instruções de confirmação dentro de alguns minutos.
+ confirmed: O teu endereço de e-mail foi confirmado com sucesso.
+ send_instructions: Vais receber um email com as instruções para confirmar o teu endereço de email dentro de alguns minutos. Por favor, verifica a caixa de spam se não recebeste o e-mail.
+ send_paranoid_instructions: Se o teu endereço de email já existir na nossa base de dados, vais receber um email com as instruções de confirmação dentro de alguns minutos. Por favor, verifica a caixa de spam se não recebeste o e-mail.
failure:
already_authenticated: A tua sessão já está aberta.
inactive: A tua conta ainda não está ativada.
- invalid: "%{authentication_keys} ou palavra-passe não válida."
+ invalid: "%{authentication_keys} ou palavra-passe inválida."
last_attempt: Tens mais uma tentativa antes de a tua conta ficar bloqueada.
locked: A tua conta está bloqueada.
- not_found_in_database: "%{authentication_keys} ou palavra-passe não válida."
+ not_found_in_database: "%{authentication_keys} ou palavra-passe inválida."
timeout: A tua sessão expirou. Por favor, entra de novo para continuares.
- unauthenticated: Precisas de entrar na tua conta ou registares-te antes de continuar.
+ unauthenticated: Precisas de entrar na tua conta ou de te registares antes de continuar.
unconfirmed: Tens de confirmar o teu endereço de email antes de continuar.
mailer:
confirmation_instructions:
action: Verificar o endereço de e-mail
+ action_with_app: Confirmar e regressar a %{app}
explanation: Criaste uma conta em %{host} com este endereço de e-mail. Estás a um clique de activá-la. Se não foste tu que fizeste este registo, por favor ignora esta mensagem.
- extra_html: Por favor vê as
as regras da instância e os
termos de serviço.
+ extra_html: Por favor lê
as regras da instância e os
nossos termos de serviço.
subject: 'Mastodon: Instruções de confirmação %{instance}'
title: Verificar o endereço de e-mail
email_changed:
explanation: 'O e-mail associado à tua conta será alterado para:'
- extra: Se não alteraste o teu e-mail é possível que alguém tenha conseguido aceder à tua conta. Por favor muda a tua palavra-passe imediatamente ou entra em contato com um administrador da tua instância se ficaste sem acesso à tua conta.
+ extra: Se não alteraste o teu e-mail é possível que alguém tenha conseguido aceder à tua conta. Por favor muda a tua palavra-passe imediatamente ou entra em contato com um administrador do servidor se ficaste sem acesso à tua conta.
subject: 'Mastodon: Email alterado'
title: Novo endereço de e-mail
password_change:
explanation: A palavra-passe da tua conta foi alterada.
- extra: Se não alteraste a tua palavra-passe, é possível que alguém tenha conseguido aceder à tua conta. Por favor muda a tua palavra-passe imediatamente ou entra em contato com um administrador da tua instância se ficaste sem acesso à tua conta.
+ extra: Se não alteraste a tua palavra-passe, é possível que alguém tenha conseguido aceder à tua conta. Por favor muda a tua palavra-passe imediatamente ou entra em contato com um administrador do servidor se ficaste sem acesso à tua conta.
subject: 'Mastodon: Nova palavra-passe'
title: Palavra-passe alterada
reconfirmation_instructions:
diff --git a/config/locales/devise.ru.yml b/config/locales/devise.ru.yml
index 2186066c9..65441f24b 100644
--- a/config/locales/devise.ru.yml
+++ b/config/locales/devise.ru.yml
@@ -3,8 +3,8 @@ ru:
devise:
confirmations:
confirmed: Ваш адрес e-mail был успешно подтвержден.
- send_instructions: Вы получите e-mail с инструкцией по подтверждению Вашего адреса e-mail в течение нескольких минут.
- send_paranoid_instructions: Если Ваш адрес e-mail есть в нашей базе данных, вы получите e-mail с инструкцией по подтверждению Вашего адреса в течение нескольких минут.
+ send_instructions: Вы получите e-mail с инструкцией по подтверждению вашего адреса e-mail в течение нескольких минут.
+ send_paranoid_instructions: Если Ваш адрес e-mail есть в нашей базе данных, вы получите e-mail с инструкцией по подтверждению вашего адреса в течение нескольких минут.
failure:
already_authenticated: Вы уже авторизованы.
inactive: Ваш аккаунт еще не активирован.
@@ -12,63 +12,67 @@ ru:
last_attempt: У Вас есть последняя попытка, после чего вход будет заблокирован.
locked: Ваш аккаунт заблокирован.
not_found_in_database: Неверно введены %{authentication_keys} или пароль.
+ pending: Ваша заявка на вступление всё ещё рассматривается.
timeout: Ваша сессия истекла. Пожалуйста, войдите снова, чтобы продолжить.
unauthenticated: Вам необходимо войти или зарегистрироваться.
unconfirmed: Вам необходимо подтвердить ваш адрес e-mail для продолжения.
mailer:
confirmation_instructions:
action: Подтвердите e-mail адрес
+ action_with_app: Подтвердить и вернуться в %{app}
explanation: Вы создали учётную запись на сайте %{host}, используя этот e-mail адрес. Остался лишь один шаг для активации. Если это были не вы, просто игнорируйте письмо.
+ explanation_when_pending: Вы подали заявку на %{host}, используя этот адрес e-mail. Как только вы его подтвердите, мы начнём изучать вашу заявку. До тех пор вы не сможете войти на сайт. Если ваша заявка будет отклонена, все данные будут автоматически удалены, от вас не потребуется никаких дополнительных действий. Если это были не вы, пожалуйста, проигнорируйте данное письмо.
extra_html: Пожалуйста, ознакомьтесь
правилами узла and
условиями пользования Сервисом.
subject: 'Mastodon: Инструкция по подтверждению на узле %{instance}'
title: Подтвердите e-mail адрес
email_changed:
- explanation: 'E-mail адрес Вашей учётной записи будет изменён на:'
- extra: Если Вы не меняли адрес e-mail, возможно кто-то получил доступ к Вашей учётной записи. Пожалуйста, срочно смените пароль или свяжитесь с администратором узла, если у Вас нет доступа к учётной записи.
+ explanation: 'E-mail адрес вашей учётной записи будет изменён на:'
+ extra: Если Вы не меняли адрес e-mail, возможно кто-то получил доступ к вашей учётной записи. Пожалуйста, срочно смените пароль или свяжитесь с администратором узла, если у вас нет доступа к учётной записи.
subject: 'Mastodon: Адрес e-mail изменён'
title: Новый адрес e-mail
password_change:
explanation: Пароль Вашей учётной записи был изменён.
- extra: Если Вы не меняли пароль, возможно кто-то получил доступ к Вашей учётной записи. Пожалуйста, срочно смените пароль или свяжитесь с администратором узла, если у Вас нет доступа к учётной записи.
+ extra: Если Вы не меняли пароль, возможно кто-то получил доступ к вашей учётной записи. Пожалуйста, срочно смените пароль или свяжитесь с администратором узла, если у вас нет доступа к учётной записи.
subject: 'Mastodon: Пароль изменен'
title: Пароль изменён
reconfirmation_instructions:
explanation: Подтвердите новый адрес для смены e-mail.
- extra: Если смену e-mail инициировали не Вы, пожалуйста, игнорируйте это письмо. Адрес e-mail для учётной записи Mastodon не будет изменён, пока Вы не перейдёте по ссылке выше.
+ extra: Если смену e-mail инициировали не вы, пожалуйста, игнорируйте это письмо. Адрес e-mail для учётной записи Mastodon не будет изменён, пока вы не перейдёте по ссылке выше.
subject: 'Mastodon: Подтверждение e-mail для узла %{instance}'
title: Подтвердите e-mail адрес
reset_password_instructions:
action: Смена пароля
- explanation: Вы запросили новый пароль для Вашей учётной записи.
- extra: Если это сделали не Вы, пожалуйста, игнорируйте письмо. Ваш пароль не будет изменён, пока Вы не перейдёте по ссылке выше и не создадите новый пароль.
+ explanation: Вы запросили новый пароль для вашей учётной записи.
+ extra: Если это сделали не вы, пожалуйста, игнорируйте письмо. Ваш пароль не будет изменён, пока вы не перейдёте по ссылке выше и не создадите новый пароль.
subject: 'Mastodon: инструкция по смене пароля'
title: Сброс пароля
unlock_instructions:
subject: 'Mastodon: Инструкция по разблокировке'
omniauth_callbacks:
- failure: Не получилось аутентифицировать Вас с помощью %{kind} по следующей причине - "%{reason}".
+ failure: Не получилось аутентифицировать вас с помощью %{kind} по следующей причине - "%{reason}".
success: Аутентификация с помощью аккаунта %{kind} прошла успешно.
passwords:
- no_token: Вы можете получить доступ к этой странице, только перейдя по ссылке в e-mail для сброса пароля. Если Вы действительно перешли по такой ссылке, пожалуйста, удостоверьтесь, что ссылка была введена полностью и без изменений.
+ no_token: Вы можете получить доступ к этой странице, только перейдя по ссылке в e-mail для сброса пароля. Если вы действительно перешли по такой ссылке, пожалуйста, удостоверьтесь, что ссылка была введена полностью и без изменений.
send_instructions: Вы получите e-mail с инструкцией по сбросу пароля в течение нескольких минут.
- send_paranoid_instructions: Если Ваш адрес e-mail есть в нашей базе данных, Вы получите e-mail со ссылкой для сброса пароля в течение нескольких минут.
+ send_paranoid_instructions: Если Ваш адрес e-mail есть в нашей базе данных, вы получите e-mail со ссылкой для сброса пароля в течение нескольких минут.
updated: Ваш пароль был успешно изменен. Вход выполнен.
updated_not_active: Ваш пароль был успешно изменен.
registrations:
- destroyed: До свидания! Ваш аккаунт был успешно удален. Мы надеемся скоро увидеть Вас снова.
+ destroyed: До свидания! Ваш аккаунт был успешно удален. Мы надеемся скоро увидеть вас снова.
signed_up: Добро пожаловать! Вы успешно зарегистрировались.
- signed_up_but_inactive: Вы успешно зарегистрировались. Тем не менее, мы не можем авторизовать Вас, поскольку Ваш аккаунт еще не активирован.
- signed_up_but_locked: Вы успешно зарегистрировались. Тем не менее, мы не можем авторизовать Вас, поскольку Ваш аккаунт заблокирован.
- signed_up_but_unconfirmed: Сообщение со ссылкой для подтверждения было выслано на Ваш адрес e-mail. Пожалуйста, пройдите по ссылке для активации Вашего аккаунта.
- update_needs_confirmation: Вы успешно обновили Ваш аккаунт, но нам нужно подтвердить ваш новый адрес e-mail. Пожалуйста, проверьте почту и пройдите по ссылке для подтверждения Вашего нового адреса.
+ signed_up_but_inactive: Вы успешно зарегистрировались. Тем не менее, мы не можем авторизовать вас, поскольку ваш аккаунт еще не активирован.
+ signed_up_but_locked: Вы успешно зарегистрировались. Тем не менее, мы не можем авторизовать вас, поскольку ваш аккаунт заблокирован.
+ signed_up_but_pending: На ваш e-mail адрес было отправлено письмо с ссылкой для подтверждения. После перехода по ней, мы начнём рассматривать вашу заявку. В случае подтверждения, мы вас оповестим.
+ signed_up_but_unconfirmed: Сообщение со ссылкой для подтверждения было выслано на ваш адрес e-mail. Пожалуйста, пройдите по ссылке для активации вашего аккаунта.
+ update_needs_confirmation: Вы успешно обновили данные учётной записи, но нам нужно подтвердить ваш новый адрес e-mail. Пожалуйста, проверьте почту и перейдите по ссылке из письма для подтверждения вашего нового адреса.
updated: Ваш аккаунт был успешно обновлен.
sessions:
already_signed_out: Выход прошел успешно.
signed_in: Вход прошел успешно.
signed_out: Выход прошел успешно.
unlocks:
- send_instructions: Вы получите e-mail с инструкцией по разблокировке Вашего аккаунта в течение нескольких минут.
- send_paranoid_instructions: Если Ваш аккаунт существует, Вы получите e-mail с инструкцией по его разблокировке в течение нескольких минут.
+ send_instructions: Вы получите e-mail с инструкцией по разблокировке вашего аккаунта в течение нескольких минут.
+ send_paranoid_instructions: Если Ваш аккаунт существует, вы получите e-mail с инструкцией по его разблокировке в течение нескольких минут.
unlocked: Ваш аккаунт был успешно разблокирован. пожалуйста, войдите для продолжения.
errors:
messages:
diff --git a/config/locales/devise.sk.yml b/config/locales/devise.sk.yml
index 16cd9262e..0052bc0bc 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ý.
@@ -12,6 +12,7 @@ sk:
last_attempt: Máš posledný pokus pred zamknutím tvojho účtu.
locked: Tvoj účet je zamknutý.
not_found_in_database: Nesprávny %{authentication_keys} alebo heslo.
+ pending: Tvoj účet je stále prehodnocovaný.
timeout: Vaša aktívna sezóna vypršala. Pre pokračovanie sa prosím znovu prihláste.
unauthenticated: K pokračovaniu sa musíš zaregistrovať alebo prihlásiť.
unconfirmed: Pred pokračovaním musíš potvrdiť svoj email.
@@ -51,17 +52,18 @@ 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 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.
+ 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_pending: Na tvoj email bola odoslaná správa s odkazom na potvrdenie. Po tom, čo naňho klikneš, bude tvoje uchádzanie posúdené. Budeš informovaný, ak sa tvoja požiadavka schváli.
+ signed_up_but_unconfirmed: Správa s odkazom na potvrdenie registrácie bola odoslaná na tvoj email. Pre aktváciu účtu, následuj prosím 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 pozmenený, 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ásil/a si sa úspešné.
diff --git a/config/locales/devise.sl.yml b/config/locales/devise.sl.yml
index 13c48e199..7d1e05fdf 100644
--- a/config/locales/devise.sl.yml
+++ b/config/locales/devise.sl.yml
@@ -12,13 +12,16 @@ sl:
last_attempt: Pred zaklepom računa imate še en poskus.
locked: Vaš račun je zaklenjen.
not_found_in_database: Neveljavno %{authentication_keys} ali geslo.
+ pending: Vaš račun je še vedno pod drobnogledom.
timeout: Vaša seja je potekla. Če želite nadaljevati, se znova prijavite.
unauthenticated: Pred nadaljevanjem se morate prijaviti ali vpisati.
unconfirmed: Pred nadaljevanjem morate potrditi svoj e-poštni naslov.
mailer:
confirmation_instructions:
action: Potrdi e-poštni naslov
+ action_with_app: Potrdi in se vrni v %{app}
explanation: S tem e-poštnim naslovom ste ustvarili račun na %{host}. Z enim samim klikom ga aktivirate. Če to niste bili vi, prosimo, prezrite to e-poštno sporočilo.
+ explanation_when_pending: S tem e-poštnim naslovom ste zaprosili za povabilo na %{host}. Ko potrdite svoj e-poštni naslov, bomo pregledali vašo prijavo. Do takrat se ne morete prijaviti. Če bo vaša prijava zavrnjena, bodo vaši podatki odstranjeni, zato ne bo potrebno nadaljnje ukrepanje. Če to niste bili vi, prezrite to e-poštno sporočilo.
extra_html: Preverite tudi
pravila vozlišča in
naše pogoje storitve.
subject: 'Mastodon: Navodila za potrditev za %{instance}'
title: Potrdi e-poštni naslov
@@ -34,3 +37,17 @@ sl:
title: Geslo je spremenjeno
reconfirmation_instructions:
explanation: Potrdite novi naslov, da spremenite svoj e-poštni naslov.
+ extra: Če te spremembe niste sprožili, prezrite to e-poštno sporočilo. E-poštni naslov za račun Mastodon se ne bo spremenil, dokler ne kliknete na zgornjo povezavo.
+ subject: 'Mastodon: Potrdite e-pošto za %{instance}'
+ title: Potrdi e-poštni naslov
+ reset_password_instructions:
+ action: Spremeni geslo
+ explanation: Zahtevali ste novo geslo za svoj račun.
+ extra: Če tega niste zahtevali, prezrite to e-poštno sporočilo. Vaše geslo se ne bo spremenilo, dokler ne kliknete na zgornjo povezavo in ustvarite novega.
+ subject: 'Mastodon: Navodila za ponastavitev gesla'
+ title: Ponastavitev gesla
+ unlock_instructions:
+ subject: 'Mastodon: Odkleni navodila'
+ omniauth_callbacks:
+ failure: Overitev iz %{kind} ni možna zaradi "%{reason}".
+ success: Overitev iz računa %{kind} je bila uspešna.
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.th.yml b/config/locales/devise.th.yml
index fec944310..e20df69af 100644
--- a/config/locales/devise.th.yml
+++ b/config/locales/devise.th.yml
@@ -54,7 +54,7 @@ th:
already_confirmed: was already confirmed, please try signing in
confirmation_period_expired: needs to be confirmed within %{period}, please request a new one
expired: has expired, please request a new one
- not_found: not found
+ not_found: ไม่พบ
not_locked: was not locked
not_saved:
one: '1 error prohibited this %{resource} from being saved:'
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/devise.zh-CN.yml b/config/locales/devise.zh-CN.yml
index 4ee021fcc..bef2baa18 100644
--- a/config/locales/devise.zh-CN.yml
+++ b/config/locales/devise.zh-CN.yml
@@ -59,7 +59,7 @@ zh-CN:
signed_up: 欢迎!你已注册成功。
signed_up_but_inactive: 你已注册,但尚未激活帐户。
signed_up_but_locked: 你已注册,但帐户被锁定了。
- signed_up_but_unconfirmed: 一封带有确认链接的邮件已经发送至你的邮箱,请点击邮件中的链接以激活你的帐户。如果没有,请检查你的垃圾邮箱。
+ signed_up_but_unconfirmed: 一封带有确认链接的邮件已经发送至你的邮箱,请点击邮件中的链接以激活你的帐户。如果没有,请检查你的垃圾邮件。
update_needs_confirmation: 信息更新成功,但我们需要验证你的新电子邮件地址,请点击邮件中的链接以确认。如果没有,请检查你的垃圾邮箱。
updated: 帐户资料更新成功。
sessions:
diff --git a/config/locales/devise.zh-TW.yml b/config/locales/devise.zh-TW.yml
index abbe45942..0ade1e60a 100644
--- a/config/locales/devise.zh-TW.yml
+++ b/config/locales/devise.zh-TW.yml
@@ -2,81 +2,85 @@
zh-TW:
devise:
confirmations:
- confirmed: 您的 E-mail 驗證成功。
- send_instructions: 您將會在幾分鐘內收到驗證信。
- send_paranoid_instructions: 如果您的 E-mail 存在於我們的資料庫,將會在幾分鐘內收到驗證信。
+ confirmed: 您的電子信箱位址已確認成功。
+ send_instructions: 幾分鐘後您將收到確認信件。若未收到此信件,請檢查垃圾郵件資料夾。
+ send_paranoid_instructions: 如果您的電子信箱存在於我們的資料庫,將會在幾分鐘內收到確認信。若未收到請檢查垃圾郵件資料夾。
failure:
- already_authenticated: 您已經登入了。
+ already_authenticated: 您已登入。
inactive: 您的帳戶尚未啟用。
- invalid: 不正確的 %{authentication_keys} 或密碼。
- last_attempt: 您剩下最後一次嘗試機會,如失敗將會進行帳戶鎖定。如有問題請洽詢站點管理員。
+ invalid: 無效的 %{authentication_keys} 或密碼。
+ last_attempt: 在帳號遭封鎖前您還有最後一次嘗試機會。
locked: 您的帳戶已被鎖定。
- not_found_in_database: 不正確的 %{authentication_keys} 或密碼。
- timeout: 您的登入階段已經逾期,請重新登入以繼續使用。
- unauthenticated: 您必須先登入或註冊,以繼續使用。
- unconfirmed: 您必須先完成 E-mail 驗證,以繼續使用。
+ not_found_in_database: 無效的 %{authentication_keys} 或密碼。
+ pending: 您的帳戶仍在審核中。
+ timeout: 登入階段逾時。請重新登入以繼續。
+ unauthenticated: 您必須先登入或註冊以繼續使用。
+ unconfirmed: 您必須先確認電子信箱才能繼續使用。
mailer:
confirmation_instructions:
- action: 驗證 E-mail 地址
- explanation: 您已經在 %{host} 上以此 E-mail 地址建立了一個帳號。您距離啟用它只剩一次點擊之遙了。如果這不是你,請忽略此 E-mail 。
- extra_html: 同時也請看看
該站點的規則與
我們的服務條款。
- subject: 'Mastodon: 信箱驗證 %{instance}'
- title: 驗證 E-mail 地址
+ action: 驗證電子信箱位址
+ action_with_app: 確認並返回 %{app}
+ explanation: 您已經在 %{host} 上以此電子信箱位址建立了一支帳戶。您距離啟用它只剩一點之遙了。若這不是您,請忽略此信件。
+ explanation_when_pending: 您使用此電子信箱位址申請了 %{host} 的邀請。當您確認電子信箱後我們將審核您的申請,而直到核准前您都無法登入。當您的申請遭拒絕,您的資料將被移除而不必做後續動作。如果這不是您,請忽略此信件。
+ extra_html: 同時也請看看
該伺服器的規則與
服務條款。
+ subject: Mastodon:%{instance} 確認說明
+ title: 驗證電子信箱位址
email_changed:
- explanation: 您帳號的 E-mail 地址被變更為:
- extra: 如果您並未變更您的 E-mail ,那麼很有可能是某人取得了你帳號的存取權限。請立刻變更您的密碼,或是若您的帳號已被鎖定,請聯絡站點的管理員。
- subject: Mastodon E-mail 變更
- title: 新 E-mail 地址
+ explanation: 您帳戶的電子信箱位址將變更為:
+ extra: 若您未變更電子信箱,那麼很有可能是某人取得了你帳戶的存取權限。請立刻變更密碼,或當帳戶被鎖定時,請聯絡伺服器的管理員。
+ subject: Mastodon:已變更電子信箱
+ title: 新電子信箱位址
password_change:
- explanation: 您帳號的密碼已變更。
- extra: 如果您並未變更您的密碼,那麼很有可能是某人取得了您帳號的存取權限。請立刻變更您的密碼,或是若您的帳號已被鎖定,請聯絡站點的管理員。
- subject: 'Mastodon: 更改密碼'
+ explanation: 您帳戶的密碼已變更。
+ extra: 如果您未變更密碼,那麼很有可能是某人取得了帳戶的存取權限。請立刻變更密碼,或若帳戶被鎖定時,請聯絡伺服器的管理員。
+ subject: Mastodon:已變更密碼
title: 密碼已變更
reconfirmation_instructions:
- explanation: 確認新的 E-mail 地址以變更您的 E-mail 。
- extra: 若此次變更不是由您開啟的,請忽略這個 E-mail 。Mastodon 帳號的 E-mail 地址在您存取上面的連結前不會變更。
- subject: Mastodon:%{instance} 的確認 E-mail
- title: 驗證 E-mail 地址
+ explanation: 請確認新的電子信箱位址以變更。
+ extra: 若此次變更不是由您開啟的,請忽略此信件。Mastodon 帳戶的電子信箱位址在您存取上面的連結前不會變更。
+ subject: Mastodon:確認 %{instance} 的電子信箱位址
+ title: 驗證電子信箱位址
reset_password_instructions:
action: 變更密碼
- explanation: 您為您的帳號請求了一個新密碼。
- extra: 若您並未請求這個,請忽略此 E-mail 。您的密碼在您存取上面的連結並建立一個新的之前不會變更。
- subject: 'Mastodon: 重設密碼'
+ explanation: 您已請求設定帳號的新密碼。
+ extra: 若您並未請求,請忽略此信件。您的密碼在存取上方連結並建立新連結前不會變更。
+ subject: Mastodon:重設密碼指引
title: 重設密碼
unlock_instructions:
- subject: 'Mastodon: 帳號解鎖'
+ subject: Mastodon:帳戶解鎖指引
omniauth_callbacks:
- failure: 無法以 %{kind} 登入您的帳號,原因是︰「%{reason}」。
- success: 成功以 %{kind} 登入您的帳號。
+ failure: 無法透過 %{kind} 認證是否為您,因為「%{reason}」。
+ success: 成功透過 %{kind} 登入帳戶。
passwords:
- no_token: 您請使用重設密碼信中的網址,並確認您用了完整的網址。
- send_instructions: 您將在幾分鐘內收到重設密碼信。
- send_paranoid_instructions: 如果您的電子信箱已經存在於我們的資料庫,您將會在幾分鐘內收到重設密碼信。
- updated: 您的密碼已經更新,您現在正登入本站。
- updated_not_active: 您的密碼已經更新。
+ no_token: 您必須透過密碼重設信件才能存取此頁面。若確實如此,請確定輸入的網址是完整的。
+ 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: 您的帳號已成功更新。
+ destroyed: 再見!您的帳戶已成功取消,期待再相逢。
+ signed_up: 歡迎!您已成功註冊。
+ signed_up_but_inactive: 您已註冊成功,但由於您的帳戶尚未啟用,我們暫時無法讓您登入。
+ signed_up_but_locked: 您已註冊成功,但由於您的帳戶已被鎖定,我們無法讓您登入。
+ signed_up_but_pending: 包含確認連結的訊息已寄到您的電子信箱。按下此連結後我們將審核您的申請。核准後將通知您。
+ signed_up_but_unconfirmed: 包含確認連結的訊息已寄到您的電子信箱。請前往連結以啟用帳號。若未收到請檢查垃圾郵件資料夾。
+ update_needs_confirmation: 已更新您的帳號,但仍需驗證您的新信箱。請檢查電子信箱並前往確認連結來確認新信箱位址。若未收到請檢查垃圾郵件資料夾。
+ updated: 您的帳戶已成功更新。
sessions:
- already_signed_out: 成功登出。
- signed_in: 成功登入。
- signed_out: 成功登出。
+ already_signed_out: 已成功登出。
+ signed_in: 已成功登入。
+ signed_out: 已成功登出。
unlocks:
- send_instructions: 您將在幾分鐘內收到帳號解鎖信。
- send_paranoid_instructions: 如果您的電子信箱已經存在於我們的資料庫,您將在幾分鐘內收到帳號解鎖信。
- unlocked: 已解鎖您的帳號,請登入以繼續。
+ send_instructions: 幾分鐘後您將收到解鎖帳號的指引信件。若未收到請檢查垃圾郵件資料夾。
+ send_paranoid_instructions: 若此帳號存在,您將在幾分鐘後收到解鎖指引信件。若未收到請檢查垃圾郵件資料夾。
+ unlocked: 已解鎖您的帳戶,請登入繼續。
errors:
messages:
already_confirmed: 已經確認,請嘗試登入
confirmation_period_expired: 需要在 %{period} 內完成驗證。請重新申請
- expired: 已經過期,請重新申請
+ expired: 已經過期,請重新請求
not_found: 找不到
not_locked: 並未被鎖定
not_saved:
- one: 有 1 個錯誤讓此 %{resource} 無法儲存:
- other: 有 %{count} 個錯誤讓此 %{resource} 無法儲存:
+ one: 因 1 個錯誤導致 %{resource} 無法儲存:
+ other: 因 %{count} 錯誤導致 %{resource} 無法儲存:
diff --git a/config/locales/doorkeeper.ca.yml b/config/locales/doorkeeper.ca.yml
index 56686e3e5..8366912dc 100644
--- a/config/locales/doorkeeper.ca.yml
+++ b/config/locales/doorkeeper.ca.yml
@@ -77,9 +77,9 @@ ca:
title: Les teves aplicacions autoritzades
errors:
messages:
- access_denied: El propietari del recurs o servidor de autorizació ha denegat la petició.
+ access_denied: El propietari del recurs o servidor d'autorizació ha denegat la petició.
credential_flow_not_configured: Les credencials de contrasenya del propietari del recurs han fallat degut a que Doorkeeper.configure.resource_owner_from_credentials està sense configurar.
- invalid_client: La autentificació del client falló perquè és un client desconegut o no està inclòs l'autentificació del client o el mètode d'autenticació no està confirmat.
+ invalid_client: La autentificació del client ha fallat perquè és un client desconegut o no està inclòs l'autentificació del client o el mètode d'autenticació no està confirmat.
invalid_grant: La concessió d'autorizació oferida és invàlida, ha vençut, s'ha revocat, no coincideix amb l'URI de redirecció utilizada en la petició d'autorizació, o fou emesa per a un altre client.
invalid_redirect_uri: L'URI de redirecció inclòs no és vàlid.
invalid_request: En la petició manca un paràmetre necessari o inclou un valor de paràmetre no suportat o te un altre tipus de format incorrecte.
diff --git a/config/locales/doorkeeper.cs.yml b/config/locales/doorkeeper.cs.yml
index b9e9bc034..f523e125d 100644
--- a/config/locales/doorkeeper.cs.yml
+++ b/config/locales/doorkeeper.cs.yml
@@ -31,8 +31,8 @@ cs:
form:
error: A jéje! Zkontrolujte svůj formulář kvůli případným chybám
help:
- native_redirect_uri: Použijte %{native_redirect_uri} pro místní testy
- redirect_uri: Jedno URI na řádek
+ native_redirect_uri: Pro místní testy použijte %{native_redirect_uri}
+ redirect_uri: Jedno URI na každý řádek
scopes: Oddělujte rozsahy mezerami. Pro použití výchozích rozsahů zanechte prázdné.
index:
application: Aplikace
@@ -54,7 +54,7 @@ cs:
title: 'Aplikace: %{name}'
authorizations:
buttons:
- authorize: Ověřit
+ authorize: Autorizovat
deny: Zamítnout
error:
title: Vyskytla se chyba
@@ -79,7 +79,7 @@ cs:
messages:
access_denied: Vlastník zdroje či autorizační server zamítl požadavek.
credential_flow_not_configured: Proud Resource Owner Password Credentials selhal, protože Doorkeeper.configure.resource_owner_from_credentials nebylo nakonfigurováno.
- invalid_client: Ověření klienta selhalo kvůli neznámému klientovi, chybějící klientské autentikaci či nepodporované autentikační metodě.
+ invalid_client: Ověření klienta selhalo kvůli neznámému klientovi, chybějící klientské autentizaci či nepodporované autentizační metodě.
invalid_grant: Poskytnuté oprávnění je neplatné, vypršelé, zamítnuté, neshoduje se s URI přesměrování použitým v požadavku o autorizaci, nebo bylo uděleno jinému klientu.
invalid_redirect_uri: Přesměrovací URI není platné.
invalid_request: Požadavku chybí pžadovaný parametr, obsahuje nepodporovanou hodnotu parametru, či je jinak malformovaný.
@@ -123,20 +123,20 @@ cs:
read:filters: vidět vaše filtry
read:follows: vidět vaše sledování
read:lists: vidět vaše seznamy
- read:mutes: vidět vaše ignorace
+ read:mutes: vidět vaše skrytí
read:notifications: vidět vaše oznámení
read:reports: vidět vaše nahlášení
read:search: vyhledávat za vás
- read:statuses: vidět všechny příspěvky
+ read:statuses: vidět všechny tooty
write: měnit všechna data vašeho účtu
write:accounts: měnit váš profil
write:blocks: blokovat účty a domény
- write:favourites: oblibovat si příspěvky
+ write:favourites: oblibovat si tooty
write:filters: vytvářet filtry
write:follows: sledovat lidi
write:lists: vytvářet seznamy
write:media: nahrávat mediální soubory
- write:mutes: ignorovat lidi a konverzace
+ write:mutes: skrývat lidi a konverzace
write:notifications: vymazávat vaše oznámení
write:reports: nahlašovat jiné uživatele
- write:statuses: publikovat příspěvky
+ write:statuses: publikovat tooty
diff --git a/config/locales/doorkeeper.kk.yml b/config/locales/doorkeeper.kk.yml
new file mode 100644
index 000000000..409435802
--- /dev/null
+++ b/config/locales/doorkeeper.kk.yml
@@ -0,0 +1,142 @@
+---
+kk:
+ activerecord:
+ attributes:
+ doorkeeper/application:
+ name: Application аты
+ redirect_uri: Redirеct URI
+ scopes: Scopеs
+ 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 c29b8301e..f2b6751ff 100644
--- a/config/locales/el.yml
+++ b/config/locales/el.yml
@@ -4,36 +4,36 @@ el:
about_hashtag_html: Αυτά είναι κάποια από τα δημόσια τουτ σημειωμένα με
#%{hashtag}. Μπορείς να αλληλεπιδράσεις με αυτά αν έχεις λογαριασμό οπουδήποτε στο fediverse.
about_mastodon_html: Το Mastodon είναι ένα κοινωνικό δίκτυο που βασίζεται σε ανοιχτά δικτυακά πρωτόκολλα και ελεύθερο λογισμικό ανοιχτού κώδικα. Είναι αποκεντρωμένο όπως το e-mail.
about_this: Σχετικά
+ active_count_after: ενεργοί
+ active_footnote: Μηνιαίοι Ενεργοί Χρήστες (ΜΕΧ)
administered_by: 'Διαχειριστής:'
api: API
apps: Εφαρμογές κινητών
- closed_registrations: Αυτή τη στιγμή οι εγγραφές σε αυτό τον κόμβο είναι κλειστές. Αλλά! Μπορείς να βρεις έναν άλλο κόμβο για να ανοίξεις λογαριασμό και να έχεις πρόσβαση από εκεί στο ίδιο ακριβώς δίκτυο.
+ apps_platforms: Χρησιμοποίησε το Mastodon από το iOS, το Android και αλλού
+ browse_directory: Ξεφύλλισε ένα κατάλογο χρηστών και φίλτραρε ανά ενδιαφέροντα
+ browse_public_posts: Κοίταξε μια ζωντανή ροή δημοσιεύσεων στο Mastodon
contact: Επικοινωνία
contact_missing: Δεν έχει οριστεί
contact_unavailable: Μ/Δ
+ discover_users: Ανακάλυψε χρήστες
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: Οι πολλαπλές εφαρμογές για το iOS, το Android και τις υπόλοιπες πλατφόρμες, χάρη σε ένα φιλικό προς τους προγραμματιστές οικοσύστημα API, σου επιτρέπουν να κρατάς επαφή με τους φίλους και τις φίλες σου οπουδήποτε.
- within_reach_title: Πάντα προσβάσιμο
+ federation_hint_html: Με ένα λογαριασμό στο %{instance} θα μπορείς να ακολουθείς ανθρώπους σε οποιοδήποτε κόμβο στο Mastodon αλλά και αλλού.
generic_description: "%{domain} είναι ένας εξυπηρετητής στο δίκτυο"
+ get_apps: Δοκίμασε μια εφαρμογή κινητού
hosted_on: Το Mastodon φιλοξενείται στο %{domain}
learn_more: Μάθε περισσότερα
- other_instances: Λίστα κόμβων
privacy_policy: Πολιτική απορρήτου
+ see_whats_happening: Μάθε τι συμβαίνει
+ server_stats: 'Στατιστικά κόμβου:'
source_code: Πηγαίος κώδικας
status_count_after:
one: δημοσίευση
other: δημοσιεύσεις
status_count_before: Που έγραψαν
+ tagline: Ακολούθησε τους γνωστούς σου και ανακάλυψε νέους ανθρώπους
terms: Όροι χρήσης
user_count_after:
one: χρήστης
@@ -79,6 +79,7 @@ el:
delete: Διαγραφή
destroyed_msg: Επιτυχής καταστροφή σημειώματος μεσολάβησης!
accounts:
+ approve: Έγκριση
are_you_sure: Σίγουρα;
avatar: Αβατάρ
by_domain: Τομέας
@@ -115,7 +116,7 @@ el:
joined: Γράφτηκε
location:
all: Όλες
- local: Τοπικά
+ local: Τοπική
remote: Απομακρυσμένα
title: Τοποθεσία
login_status: Κατάσταση σύνδεσης
@@ -124,6 +125,7 @@ el:
moderation:
active: Ενεργός/ή
all: Όλα
+ pending: Εκκρεμούν
silenced: Αποσιωπημένα
suspended: Σε αναστολή
title: Μεσολάβηση
@@ -133,6 +135,7 @@ el:
no_limits_imposed: Χωρίς όρια
not_subscribed: Άνευ συνδρομής
outbox_url: URL εξερχομένων
+ pending: Εκκρεμεί έγκριση
perform_full_suspension: Αναστολή
profile_url: URL προφίλ
promote: Προβίβασε
@@ -140,6 +143,7 @@ el:
public: Δημόσιο
push_subscription_expires: Η εγγραφή PuSH λήγει
redownload: Ανανέωση αβατάρ
+ reject: Απόρριψη
remove_avatar: Απομακρυσμένο αβατάρ
remove_header: Αφαίρεση επικεφαλίδας
resend_confirmation:
@@ -302,6 +306,7 @@ el:
back_to_account: Επιστροφή στον λογαριασμό
title: Ακόλουθοι του/της %{acct}
instances:
+ by_domain: Τομέας
delivery_available: Διαθέσιμη παράδοση
known_accounts:
one: "%{count} γνωστός λογαριασμός"
@@ -410,9 +415,12 @@ el:
min_invite_role:
disabled: Κανείς
title: Επέτρεψε προσκλήσεις από
- open:
- desc_html: Επέτρεψε σε οποιονδήποτε να δημιουργήσει λογαριασμό
- title: Άνοιξε τις εγγραφές
+ registrations_mode:
+ modes:
+ approved: Απαιτείται έγκριση για εγγραφή
+ none: Δεν μπορεί να εγγραφεί κανείς
+ open: Μπορεί να εγγραφεί ο οποιοσδήποτε
+ title: Μέθοδος εγγραφής
show_known_fediverse_at_about_page:
desc_html: Όταν αντιστραφεί, θα δείχνει τα τουτ από όλο το γνωστό fediverse στην προεπισκόπηση. Διαφορετικά θα δείχνει μόνο τοπικά τουτ.
title: Εμφάνιση του γνωστού fediverse στην προεπισκόπηση ροής
@@ -423,10 +431,10 @@ el:
desc_html: Εισαγωγική παράγραφος στην αρχική σελίδα. Περιέγραψε τι κάνει αυτό τον διακομιστή Mastodon διαφορετικό και ό,τι άλλο ενδιαφέρον. Μπορείς να χρησιμοποιήσεις HTML tags, συγκεκριμένα
< a>
και
< em>
.
title: Περιγραφή κόμβου
site_description_extended:
- desc_html: Ένα καλό μέρος για τον κώδικα δεοντολογίας, τους κανόνες, τις οδηγίες και ό,τι άλλο διαφοροποιεί τον κόμβο σου. Δέχεται και κώδικα HTML
+ desc_html: Ένα καλό μέρος για τον κώδικα δεοντολογίας, τους κανόνες, τις οδηγίες και ό,τι άλλο διαφοροποιεί τον κόμβο σου. Μπορείς να χρησιμοποιήσεις και κώδικα HTML
title: Προσαρμοσμένες εκτεταμένες πληροφορίες
site_short_description:
- desc_html: Εμφανίζεται στην πλαϊνή μπάρα και στα meta tags. Περιέγραψε τι είναι το Mastodon και τι κάνει αυτό τον διακομιστή ιδιαίτερο σε μια παράγραφο. Αν μείνει κενό, θα πάρει την προκαθορισμένη περιγραφή του κόμβου.
+ desc_html: Εμφανίζεται στην πλαϊνή μπάρα και στα meta tags. Περιέγραψε τι είναι το Mastodon και τι κάνει αυτό τον διακομιστή ιδιαίτερο σε μια παράγραφο. Αν μείνει κενό, θα χρησιμοποιήσει την προκαθορισμένη περιγραφή του κόμβου.
title: Σύντομη περιγραφή του κόμβου
site_terms:
desc_html: Μπορείς να γράψεις τη δική σου πολιτική απορρήτου, όρους χρήσης ή άλλους νομικούς όρους. Μπορείς να χρησιμοποιήσεις HTML tags
@@ -475,6 +483,9 @@ el:
edit_preset: Ενημέρωση προκαθορισμένης προειδοποίησης
title: Διαχείριση προκαθορισμένων προειδοποιήσεων
admin_mailer:
+ new_pending_account:
+ body: Τα στοιχεία του νέου λογαριασμού είναι παρακάτω. Μπορείς να εγκρίνεις ή να απορρίψεις αυτή την αίτηση.
+ subject: Νέος λογαριασμός προς έγκριση στο %{instance} (%{username})
new_report:
body: Ο/Η %{reporter} κατήγγειλε τον/την %{target}
body_remote: Κάποιος/α από τον τομέα %{domain} κατήγγειλε τον/την %{target}
@@ -495,8 +506,9 @@ el:
warning: Μεγάλη προσοχή με αυτά τα στοιχεία. Μην τα μοιραστείς ποτέ με κανέναν!
your_token: Το διακριτικό πρόσβασής σου (access token)
auth:
- agreement_html: Επιλέγοντας το "Εγγραφή", συμφωνείς πως δέχεσαι
τους κανόνες αυτού του κόμβου και
τους όρους χρήσης του.
+ apply_for_account: Αίτηση πρόσκλησης
change_password: Συνθηματικό
+ checkbox_agreement_html: Συμφωνώ με τους
κανονισμούς του κόμβου και
τους όρους χρήσης
confirm_email: Επιβεβαίωση email
delete_account: Διαγραφή email
delete_account_html: Αν θέλεις να διαγράψεις το λογαριασμό σου, μπορείς
να συνεχίσεις εδώ. Θα σου ζητηθεί επιβεβαίωση.
@@ -507,17 +519,17 @@ el:
logout: Αποσύνδεση
migrate_account: Μετακόμισε σε διαφορετικό λογαριασμό
migrate_account_html: Αν θέλεις να ανακατευθύνεις αυτό τον λογαριασμό σε έναν διαφορετικό, μπορείς να το
διαμορφώσεις εδώ.
- or: ή
or_log_in_with: Ή συνδέσου με
providers:
cas: Υπηρεσία Κεντρικής Πιστοποίησης (CAS)
saml: SAML
register: Εγγραφή
- register_elsewhere: Εγγραφή σε διαφορετικό εξυπηρετητή
+ registration_closed: Το %{instance} δεν δέχεται νέα μέλη
resend_confirmation: Στείλε ξανά τις οδηγίες επιβεβαίωσης
reset_password: Επαναφορά συνθηματικού
security: Ασφάλεια
set_new_password: Ορισμός νέου συνθηματικού
+ trouble_logging_in: Πρόβλημα σύνδεσης;
authorize_follow:
already_following: Ήδη ακολουθείς αυτό το λογαριασμό
error: Δυστυχώς παρουσιάστηκε ένα σφάλμα κατά την αναζήτηση του απομακρυσμένου λογαριασμού
@@ -556,7 +568,7 @@ el:
enabled: Περιλαμβάνεσαι στον κατάλογο.
enabled_but_waiting: Έχεις επιλέξει να εμφανίζεσαι στον κατάλογο μεν, αλλά ακόμα δεν έχεις τον ελάχιστο αριθμό ακόλουθων (%{min_followers}) που απαιτείται για να συμπεριληφθείς.
explanation: Βρες χρήστες βάσει των ενδιαφερόντων τους
- explore_mastodon: Εξερεύνησε %{title}
+ explore_mastodon: Εξερεύνησε το %{title}
how_to_enable: Δεν έχεις επιλέξει να συμπεριληφθείς στον καταλογο. Μπορείς να επιλέξεις παρακάτω. Χρησιμοποίησε ταμπέλες στο κείμενο του βιογραφικού σου για να εμφανίζεσαι κάτω από συγκεκριμένες ταμπέλες!
people:
one: "%{count} άτομο"
@@ -564,7 +576,7 @@ el:
errors:
'403': Δεν έχεις δικαίωμα πρόσβασης σε αυτή τη σελίδα.
'404': Η σελίδα που ψάχνεις δεν υπάρχει.
- '410': Η σελίδα που έψαχνες δεν υπάρχει πια.
+ '410': Η σελίδα που έψαχνες δεν υπάρχει πια εδώ.
'422':
content: Απέτυχε η επιβεβαίωση ασφαλείας. Μήπως μπλοκάρεις τα cookies;
title: Η επιβεβαίωση ασφαλείας απέτυχε
@@ -573,6 +585,9 @@ el:
content: Λυπούμαστε, κάτι πήγε στραβά από τη δική μας μεριά.
title: Η σελίδα αυτή δεν είναι σωστή
noscript_html: Για να χρησιμοποιήσετε τη δικτυακή εφαρμογή του Mastodon, ενεργοποίησε την Javascript. Εναλλακτικά, δοκίμασε μια από τις
εφαρμογές για το Mastodon στην πλατφόρμα σου.
+ existing_username_validator:
+ not_found: δεν βρέθηκε τοπικός χρήστης με αυτό το όνομα
+ not_found_multiple: δεν βρέθηκε %{usernames}
exports:
archive_takeout:
date: Ημερομηνία
@@ -588,6 +603,10 @@ el:
lists: Λίστες
mutes: Αποσιωπάς
storage: Αποθήκευση πολυμέσων
+ featured_tags:
+ add_new: Προσθήκη νέας
+ errors:
+ limit: Έχεις ήδη προσθέσει το μέγιστο αριθμό ταμπελών
filters:
contexts:
home: Αρχική ροή
@@ -604,34 +623,46 @@ el:
title: Φίλτρα
new:
title: Πρόσθεσε νέο φίλτρο
- followers:
- domain: Τομέας
- explanation_html: Αν θέλεις να διασφαλίσεις την ιδιωτικότητα των ενημερώσεών σου, πρέπει να ξέρεις ποιος σε ακολουθεί.
Οι ιδιωτικές ενημερώσεις σου μεταφέρονται σε όλους τους κόμβους στους οποίους έχεις ακόλουθους. Ίσως να θέλεις να κάνεις μια ανασκόπηση σε αυτούς και να αφαιρέσεις ακολούθους αν δεν εμπιστεύεσαι το προσωπικό αυτών των κόμβων πως θα σεβαστούν την ιδιωτικότητά σου.
- followers_count: Πλήθος ακολούθων
- lock_link: Κλείδωσε το λογαριασμό σου
- purge: Αφαίρεσε από ακόλουθο
- success:
- one: Ημι-μπλοκάροντας τους ακόλουθους από έναν τομέα...
- other: Ημι-μπλοκάροντας τους ακόλουθους από %{count} τομείς...
- true_privacy_html: Έχε υπ' όψιν σου πως
η πραγματική ιδιωτικότητα επιτυγχάνεται μόνο με κρυπτογράφηση από άκρη σε άκρη.
- unlocked_warning_html: Μπορεί ο οποιοσδήποτε να σε ακολουθήσει και να βλέπει κατευθείαν τις ιδιωτικές ενημερώσεις σου. %{lock_link} για να αναθεωρήσεις και απορρίψεις ακόλουθους.
- unlocked_warning_title: Ο λογαριασμός σου δεν είναι κλειδωμένος
footer:
developers: Ανάπτυξη
more: Περισσότερα…
resources: Πόροι
generic:
+ all: Όλα
changes_saved_msg: Οι αλλαγές αποθηκεύτηκαν!
copy: Αντιγραφή
save_changes: Αποθήκευσε τις αλλαγές
validation_errors:
one: Κάτι δεν είναι εντάξει ακόμα! Για κοίταξε το παρακάτω σφάλμα
other: Κάτι δεν είναι εντάξει ακόμα! Για κοίταξε τα παρακάτω %{count} σφάλματα
+ html_validator:
+ invalid_markup: 'περιέχει λάθος μορφοποίηση HTML: %{error}'
+ identity_proofs:
+ active: Ενεργή
+ authorize: Ναι, εξουσιοδότησε
+ authorize_connection_prompt: Εξουσιοδότηση αυτής της κρυπτογραφικής σύνδεσης;
+ errors:
+ failed: Η κρυπτογραφική σύνδεση απέτυχε. Παρακαλώ ξανά δοκίμασε μέσω %{provider}.
+ keybase:
+ invalid_token: Τα κλειδιά Keybase είναι κατακερματισμένες υπογραφές και πρέπει να έχουν μήκος 66 δεκαεξαδικών χαρακτήρων
+ verification_failed: Το Keybase δεν δέχτηκε αυτό το κλειδί ως υπογραφή του χρήστη %{kb_username}. Παρακαλούμε δοκίμασε μέσω Keybase.
+ explanation_html: Εδώ μπορείς να συνδέσεις κρυπτογραφικά τις υπόλοιπες ταυτοτητές σου, όπως για παράδειγμα ένα προφίλ στο Keybase. Αυτό επιτρέπει σε άλλους ανθρώπους να σου στέλνουν κρυπτογραφημένα μηνύματα και να μπορούν να εμπιστευτούν το περιεχόμενο που τους στέλνεις εσύ.
+ i_am_html: Είμαι ο/η %{username} στην υπηρεσία %{service}.
+ identity: Ταυτότητα
+ inactive: Ανενεργή
+ status: Κατάσταση επαλήθευσης
+ view_proof: Εμφάνιση απόδειξης
imports:
+ modes:
+ merge: Συγχώνευση
+ merge_long: Διατήρηση των εγγράφων που υπάρχουν και προσθηκη των νέων
+ overwrite: Αντικατάσταση
+ overwrite_long: Αντικατάσταση των υπαρχόντων εγγράφων με τις καινούργιες
preface: Μπορείς να εισάγεις τα δεδομένα που έχεις εξάγει από άλλο κόμβο, όπως τη λίστα των ανθρώπων που ακολουθείς ή μπλοκάρεις.
success: Τα δεδομένα σου μεταφορτώθηκαν επιτυχώς και θα επεξεργαστούν εν καιρώ
types:
blocking: Λίστα αποκλεισμού
+ domain_blocking: Λίστα αποκλεισμένων τομέων
following: Λίστα ακολούθων
muting: Λίστα αποσιωπήσεων
upload: Ανέβασμα
@@ -657,7 +688,7 @@ el:
table:
expires_at: Λήγει
uses: Χρήσεις
- title: Προσκάλεσε άτομα
+ title: Προσκάλεσε κόσμο
lists:
errors:
limit: Έχεις φτάσει το μέγιστο πλήθος επιτρεπτών λιστών
@@ -722,18 +753,39 @@ el:
older: Παλιότερο
prev: Προηγούμενο
truncate: "…"
+ polls:
+ errors:
+ already_voted: Έχεις ήδη ψηφίσει σε αυτή την ψηφοφορία
+ duplicate_options: περιέχει επαναλαμβανόμενες επιλογές
+ duration_too_long: είναι πολύ μακριά στο μέλλον
+ duration_too_short: είναι πολύ σύντομα
+ expired: Η ψηφοφορία έχει ήδη λήξει
+ over_character_limit: δε μπορεί να υπερβαίνει τους %{max} χαρακτήρες έκαστη
+ too_few_options: πρέπει να έχει περισσότερες από μια επιλογές
+ too_many_options: δεν μπορεί να έχει περισσότερες από %{max} επιλογές
preferences:
languages: Γλώσσες
other: Άλλο
publishing: Δημοσίευση
web: Διαδίκτυο
+ relationships:
+ activity: Δραστηριότητα λογαριασμού
+ dormant: Αδρανής
+ moved: Μετακόμισε
+ mutual: Αμοιβαίος
+ primary: Βασικός
+ relationship: Σχέση
+ remove_selected_domains: Αφαίρεση ακόλουθων που βρίσκονται στους επιλεγμένους κόμβους
+ remove_selected_followers: Αφαίρεση επιλεγμένων ακόλουθων
+ remove_selected_follows: Διακοπή παρακολούθησης επιλεγμένων χρηστών
+ status: Κατάσταση λογαριασμού
remote_follow:
acct: Γράψε το ΌνομαΧρήστη@τομέα από όπου θέλεις να εκτελέσεις την ενέργεια αυτή
missing_resource: Δεν βρέθηκε το απαιτούμενο URL ανακατεύθυνσης για το λογαριασμό σου
no_account_html: Δεν έχεις λογαριασμό; Μπορείς
να γραφτείς εδώ
proceed: Συνέχισε για να ακολουθήσεις
prompt: 'Ετοιμάζεσαι να ακολουθήσεις:'
- reason_html: "
Γιατί χρειάζεται αυτό το βήμα; Το
%{instance}
πορεία να μην είναι ο κόμβος που είσαι γραμμένος, έτσι πρέπει να σε ανακατευθύνουμε στο δικό σου."
+ reason_html: "
Γιατί χρειάζεται αυτό το βήμα; Το
%{instance}
μπορεί να μην είναι ο κόμβος που έχεις γραφτεί, έτσι πρέπει να σε ανακατευθύνουμε στο δικό σου."
remote_interaction:
favourite:
proceed: Συνέχισε για σημείωση ως αγαπημένου
@@ -800,14 +852,14 @@ el:
development: Ανάπτυξη
edit_profile: Επεξεργασία προφίλ
export: Εξαγωγή δεδομένων
- followers: Εγκεκριμένοι ακόλουθοι
+ featured_tags: Χαρακτηριστικές ταμπέλες
+ identity_proofs: Αποδείξεις ταυτοτήτων
import: Εισαγωγή
migrate: Μετακόμιση λογαριασμού
notifications: Ειδοποιήσεις
preferences: Προτιμήσεις
- settings: Ρυθμίσεις
+ relationships: Ακολουθεί και ακολουθείται
two_factor_authentication: Πιστοποίηση 2 παραγόντων (2FA)
- your_apps: Οι εφαρμογές σου
statuses:
attached:
description: 'Συνημμένα: %{attached}'
@@ -830,6 +882,11 @@ el:
ownership: Δεν μπορείς να καρφιτσώσεις μη δικό σου τουτ
private: Τα μη δημόσια τουτ δεν καρφιτσώνονται
reblog: Οι προωθήσεις δεν καρφιτσώνονται
+ poll:
+ total_votes:
+ one: "%{count} ψήφος"
+ other: "%{count} ψήφοι"
+ vote: Ψήφισε
show_more: Δείξε περισσότερα
sign_in_to_participate: Εγγράφου για να συμμετάσχεις στη συζήτηση
title: '%{name}: "%{quote}"'
@@ -928,9 +985,9 @@ el:
Οι παραπάνω όροι έχουν προσαρμοστεί από τους αντίστοιχους όρους του Discourse.
title: Όροι Χρήσης και Πολιτική Απορρήτου του κόμβου %{instance}
themes:
- contrast: Υψηλή αντίθεση
- default: Mastodon
- mastodon-light: Mastodon (ανοιχτόχρωμο)
+ contrast: Mastodon (Υψηλή αντίθεση)
+ default: Mastodon (Σκοτεινό)
+ mastodon-light: Mastodon (Ανοιχτόχρωμο)
time:
formats:
default: "%b %d, %Y, %H:%M"
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 2688daa88..ccf0f4a46 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -4,36 +4,36 @@ en:
about_hashtag_html: These are public toots tagged with
#%{hashtag}. You can interact with them if you have an account anywhere in the fediverse.
about_mastodon_html: Mastodon is a social network based on open web protocols and free, open-source software. It is decentralized like e-mail.
about_this: About
+ active_count_after: active
+ active_footnote: Monthly Active Users (MAU)
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.
+ apps_platforms: Use Mastodon from iOS, Android and other platforms
+ browse_directory: Browse a profile directory and filter by interests
+ browse_public_posts: Browse a live stream of public posts on Mastodon
contact: Contact
contact_missing: Not set
contact_unavailable: N/A
+ discover_users: Discover users
documentation: Documentation
extended_description_html: |
A good place for rules
The extended description has not been set up yet.
- features:
- humane_approach_body: Learning from failures of other networks, Mastodon aims to make ethical design choices to combat the misuse of social media.
- humane_approach_title: A more humane approach
- not_a_product_body: Mastodon is not a commercial network. No advertising, no data mining, no walled gardens. There is no central authority.
- not_a_product_title: You’re a person, not a product
- 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: Built for real conversation
- within_reach_body: Multiple apps for iOS, Android, and other platforms thanks to a developer-friendly API ecosystem allow you to keep up with your friends anywhere.
- within_reach_title: Always within reach
+ federation_hint_html: With an account on %{instance} you'll be able to follow people on any Mastodon server and beyond.
generic_description: "%{domain} is one server in the network"
+ get_apps: Try a mobile app
hosted_on: Mastodon hosted on %{domain}
learn_more: Learn more
- other_instances: Instance list
privacy_policy: Privacy policy
+ see_whats_happening: See what's happening
+ server_stats: 'Server stats:'
source_code: Source code
status_count_after:
one: status
other: statuses
status_count_before: Who authored
+ tagline: Follow friends and discover new ones
terms: Terms of service
user_count_after:
one: user
@@ -68,6 +68,7 @@ en:
admin: Admin
bot: Bot
moderator: Mod
+ unavailable: Profile unavailable
unfollow: Unfollow
admin:
account_actions:
@@ -79,6 +80,8 @@ en:
delete: Delete
destroyed_msg: Moderation note successfully destroyed!
accounts:
+ approve: Approve
+ approve_all: Approve all
are_you_sure: Are you sure?
avatar: Avatar
by_domain: Domain
@@ -124,15 +127,18 @@ en:
moderation:
active: Active
all: All
+ pending: Pending
silenced: Silenced
suspended: Suspended
title: Moderation
moderation_notes: Moderation notes
most_recent_activity: Most recent activity
most_recent_ip: Most recent IP
+ no_account_selected: No accounts were changed as none were selected
no_limits_imposed: No limits imposed
not_subscribed: Not subscribed
outbox_url: Outbox URL
+ pending: Pending review
perform_full_suspension: Suspend
profile_url: Profile URL
promote: Promote
@@ -140,6 +146,8 @@ en:
public: Public
push_subscription_expires: PuSH subscription expires
redownload: Refresh profile
+ reject: Reject
+ reject_all: Reject all
remove_avatar: Remove avatar
remove_header: Remove header
resend_confirmation:
@@ -241,6 +249,7 @@ en:
feature_profile_directory: Profile directory
feature_registrations: Registrations
feature_relay: Federation relay
+ feature_timeline_preview: Timeline preview
features: Features
hidden_service: Federation with hidden services
open_reports: open reports
@@ -302,6 +311,7 @@ en:
back_to_account: Back To Account
title: "%{acct}'s Followers"
instances:
+ by_domain: Domain
delivery_available: Delivery is available
known_accounts:
one: "%{count} known account"
@@ -324,6 +334,8 @@ en:
expired: Expired
title: Filter
title: Invites
+ pending_accounts:
+ title: Pending accounts (%{count})
relays:
add_new: Add new relay
delete: Delete
@@ -386,14 +398,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
@@ -410,9 +422,12 @@ en:
min_invite_role:
disabled: No one
title: Allow invitations by
- open:
- desc_html: Allow anyone to create an account
- title: Open registration
+ registrations_mode:
+ modes:
+ approved: Approval required for sign up
+ none: Nobody can sign up
+ open: Anyone can sign up
+ title: Registrations mode
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 local toots.
title: Show known fediverse on timeline preview
@@ -420,21 +435,21 @@ en:
desc_html: Show a staff badge on a user page
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
+ desc_html: Introductory paragraph on the API. Describe what makes this Mastodon server special and anything else important. You can use HTML tags, in particular
<a>
and
<em>
.
+ 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.
+ 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
@@ -475,6 +490,9 @@ en:
edit_preset: Edit warning preset
title: Manage warning presets
admin_mailer:
+ new_pending_account:
+ body: The details of the new account are below. You can approve or reject this application.
+ subject: New account up for review on %{instance} (%{username})
new_report:
body: "%{reporter} has reported %{target}"
body_remote: Someone from %{domain} has reported %{target}
@@ -484,7 +502,7 @@ en:
salutation: "%{name},"
settings: 'Change e-mail preferences: %{link}'
view: 'View:'
- view_profile: View Profile
+ view_profile: View profile
view_status: View status
applications:
created: Application successfully created
@@ -495,8 +513,9 @@ 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.
+ apply_for_account: Request an invite
change_password: Password
+ checkbox_agreement_html: I agree to the
server rules and
terms of service
confirm_email: Confirm email
delete_account: Delete account
delete_account_html: If you wish to delete your account, you can
proceed here. You will be asked for confirmation.
@@ -507,17 +526,17 @@ en:
logout: Logout
migrate_account: Move to a different account
migrate_account_html: If you wish to redirect this account to a different one, you can
configure it here.
- or: or
or_log_in_with: Or log in with
providers:
cas: CAS
saml: SAML
register: Sign up
- register_elsewhere: Sign up on another server
+ registration_closed: "%{instance} is not accepting new members"
resend_confirmation: Resend confirmation instructions
reset_password: Reset password
security: Security
set_new_password: Set new password
+ trouble_logging_in: Trouble logging in?
authorize_follow:
already_following: You are already following this account
error: Unfortunately, there was an error looking up the remote account
@@ -549,7 +568,7 @@ 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
@@ -563,8 +582,8 @@ en:
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
@@ -573,11 +592,14 @@ en:
content: We're sorry, but something went wrong on our end.
title: This page is not correct
noscript_html: To use the Mastodon web application, please enable JavaScript. Alternatively, try one of the
native apps for Mastodon for your platform.
+ existing_username_validator:
+ not_found: could not find a local user with that username
+ not_found_multiple: could not find %{usernames}
exports:
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
@@ -588,6 +610,10 @@ en:
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
@@ -604,34 +630,50 @@ en:
title: Filters
new:
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.
- followers_count: Number of followers
- lock_link: Lock your account
- purge: Remove from followers
- success:
- one: In the process of soft-blocking followers from one domain...
- other: In the process of soft-blocking followers from %{count} domains...
- true_privacy_html: Please mind that
true privacy can only be achieved with end-to-end encryption.
- unlocked_warning_html: Anyone can follow you to immediately view your private statuses. %{lock_link} to be able to review and reject followers.
- unlocked_warning_title: Your account is not locked
footer:
developers: Developers
more: More…
resources: Resources
generic:
+ all: All
changes_saved_msg: Changes successfully saved!
copy: Copy
+ order_by: Order by
save_changes: Save changes
validation_errors:
one: Something isn't quite right yet! Please review the error below
other: Something isn't quite right yet! Please review %{count} errors below
+ html_validator:
+ invalid_markup: 'contains invalid HTML markup: %{error}'
+ identity_proofs:
+ active: Active
+ authorize: Yes, authorize
+ authorize_connection_prompt: Authorize this cryptographic connection?
+ errors:
+ failed: The cryptographic connection failed. Please try again from %{provider}.
+ keybase:
+ invalid_token: Keybase tokens are hashes of signatures and must be 66 hex characters
+ verification_failed: Keybase does not recognize this token as a signature of Keybase user %{kb_username}. Please retry from Keybase.
+ wrong_user: Cannot create a proof for %{proving} while logged in as %{current}. Log in as %{proving} and try again.
+ explanation_html: Here you can cryptographically connect your other identities, such as a Keybase profile. This lets other people send you encrypted messages and trust content you send them.
+ i_am_html: I am %{username} on %{service}.
+ identity: Identity
+ inactive: Inactive
+ publicize_checkbox: 'And toot this:'
+ publicize_toot: 'It is proven! I am %{username} on %{service}: %{url}'
+ status: Verification status
+ view_proof: View proof
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
@@ -653,7 +695,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
@@ -723,11 +765,34 @@ 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
publishing: Publishing
web: Web
+ relationships:
+ activity: Account activity
+ dormant: Dormant
+ last_active: Last active
+ most_recent: Most recent
+ moved: Moved
+ mutual: Mutual
+ primary: Primary
+ relationship: Relationship
+ remove_selected_domains: Remove all followers from the selected domains
+ remove_selected_followers: Remove selected followers
+ remove_selected_follows: Unfollow selected users
+ status: Account status
remote_follow:
acct: Enter your username@domain you want to act from
missing_resource: Could not find the required redirect URL for your account
@@ -795,20 +860,25 @@ en:
revoke_success: Session successfully revoked
title: Sessions
settings:
+ account: Account
+ account_settings: Account settings
+ appearance: Appearance
authorized_apps: Authorized apps
back: Back to Mastodon
delete: Account deletion
development: Development
edit_profile: Edit profile
export: Data export
- followers: Authorized followers
+ featured_tags: Featured hashtags
+ identity_proofs: Identity proofs
import: Import
+ import_and_export: Import and export
migrate: Account migration
notifications: Notifications
preferences: Preferences
- settings: Settings
+ profile: Profile
+ relationships: Follows and followers
two_factor_authentication: Two-factor Auth
- your_apps: Your applications
statuses:
attached:
description: 'Attached: %{attached}'
@@ -832,6 +902,11 @@ en:
ownership: Someone else's toot cannot be pinned
private: Non-public toot cannot be pinned
reblog: A boost cannot be pinned
+ poll:
+ total_votes:
+ one: "%{count} vote"
+ other: "%{count} votes"
+ vote: Vote
show_more: Show more
sign_in_to_participate: Sign in to participate in the conversation
title: '%{name}: "%{quote}"'
@@ -981,7 +1056,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/en_GB.yml b/config/locales/en_GB.yml
index d9e1a256f..d428a95c3 100644
--- a/config/locales/en_GB.yml
+++ b/config/locales/en_GB.yml
@@ -1,2 +1,1053 @@
---
-{}
+en_GB:
+ about:
+ about_hashtag_html: These are public toots tagged with
#%{hashtag}. You can interact with them if you have an account anywhere in the fediverse.
+ about_mastodon_html: Mastodon is a social network based on open web protocols and free, open-source software. It is decentralized like e-mail.
+ about_this: About
+ active_count_after: active
+ active_footnote: Monthly Active Users (MAU)
+ administered_by: 'Administered by:'
+ api: API
+ apps: Mobile apps
+ apps_platforms: Use Mastodon from iOS, Android and other platforms
+ browse_directory: Browse a profile directory and filter by interests
+ browse_public_posts: Browse a live stream of public posts on Mastodon
+ contact: Contact
+ contact_missing: Not set
+ contact_unavailable: N/A
+ discover_users: Discover users
+ documentation: Documentation
+ extended_description_html: |
+
1A good place for rules
2
+
3The extended description has not been set up yet.
4
+ federation_hint_html: With an account on %{instance} you'll be able to follow people on any Mastodon server and beyond.
+ generic_description: "%{domain} is one server in the network"
+ get_apps: Try a mobile app
+ hosted_on: Mastodon hosted on %{domain}
+ learn_more: Learn more
+ privacy_policy: Privacy policy
+ see_whats_happening: See what's happening
+ server_stats: 'Server stats:'
+ source_code: Source code
+ status_count_after:
+ one: status
+ other: statuses
+ status_count_before: Who authored
+ tagline: Follow friends and discover new ones
+ terms: Terms of service
+ user_count_after:
+ one: user
+ other: users
+ user_count_before: Home to
+ what_is_mastodon: What is Mastodon?
+ accounts:
+ choices_html: "%{name}'s choices:"
+ follow: Follow
+ followers:
+ one: Follower
+ other: Follower
+ following: Following
+ joined: Joined %{date}
+ last_active: last active
+ link_verified_on: Ownership of this link was checked on %{date}
+ media: Media
+ moved_html: "%{name} has moved to %{new_profile_link}:"
+ network_hidden: This information is not available
+ nothing_here: There is nothing here!
+ people_followed_by: People whom %{name} follows
+ people_who_follow: People who follow %{name}
+ pin_errors:
+ following: You must be already following the person you want to endorse
+ posts:
+ one: Toot
+ other: Toots
+ posts_tab_heading: Toots
+ posts_with_replies: Toots and replies
+ reserved_username: The username is reserved
+ roles:
+ admin: Admin
+ bot: Bot
+ moderator: Mod
+ unfollow: Unfollow
+ admin:
+ account_actions:
+ action: Perform action
+ title: Perform moderation action on %{acct}
+ account_moderation_notes:
+ create: Leave note
+ created_msg: Moderation note successfully created!
+ delete: Delete
+ destroyed_msg: Moderation note successfully destroyed!
+ accounts:
+ approve: Approve
+ are_you_sure: Are you sure?
+ avatar: Avatar
+ 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}
+ confirm: Confirm
+ confirmed: Confirmed
+ confirming: Confirming
+ deleted: Deleted
+ demote: Demote
+ disable: Disable
+ disable_two_factor_authentication: Disable 2FA
+ disabled: Disabled
+ display_name: Display name
+ domain: Domain
+ edit: Edit
+ email: Email
+ email_status: Email status
+ enable: Enable
+ enabled: Enabled
+ feed_url: Feed URL
+ followers: Followers
+ followers_url: Followers URL
+ follows: Follows
+ header: Header
+ inbox_url: Inbox URL
+ invited_by: Invited by
+ ip: IP
+ joined: Joined
+ location:
+ all: All
+ local: Local
+ remote: Remote
+ title: Location
+ login_status: Login status
+ media_attachments: Media attachments
+ memorialize: Turn into memoriam
+ moderation:
+ active: Active
+ all: All
+ pending: Pending
+ silenced: Silenced
+ suspended: Suspended
+ title: Moderation
+ moderation_notes: Moderation notes
+ most_recent_activity: Most recent activity
+ most_recent_ip: Most recent IP
+ no_limits_imposed: No limits imposed
+ not_subscribed: Not subscribed
+ outbox_url: Outbox URL
+ pending: Pending review
+ perform_full_suspension: Suspend
+ profile_url: Profile URL
+ promote: Promote
+ protocol: Protocol
+ public: Public
+ push_subscription_expires: PuSH subscription expires
+ redownload: Refresh profile
+ reject: Reject
+ remove_avatar: Remove avatar
+ remove_header: Remove header
+ resend_confirmation:
+ already_confirmed: This user is already confirmed
+ send: Resend confirmation email
+ success: Confirmation email successfully sent!
+ reset: Reset
+ reset_password: Reset password
+ resubscribe: Resubscribe
+ role: Permissions
+ roles:
+ admin: Administrator
+ moderator: Moderator
+ staff: Staff
+ user: User
+ salmon_url: Salmon URL
+ search: Search
+ shared_inbox_url: Shared inbox URL
+ show:
+ created_reports: Made reports
+ targeted_reports: Reported by others
+ silence: Silence
+ silenced: Silenced
+ statuses: Statuses
+ subscribe: Subscribe
+ suspended: Suspended
+ title: Accounts
+ unconfirmed_email: Unconfirmed email
+ undo_silenced: Undo silence
+ undo_suspension: Undo suspension
+ unsubscribe: Unsubscribe
+ username: Username
+ warn: Warn
+ web: Web
+ action_logs:
+ actions:
+ assigned_to_self_report: "%{name} assigned report %{target} to themselves"
+ change_email_user: "%{name} changed the e-mail address of user %{target}"
+ confirm_user: "%{name} confirmed e-mail address of user %{target}"
+ create_account_warning: "%{name} sent a warning to %{target}"
+ create_custom_emoji: "%{name} uploaded new emoji %{target}"
+ create_domain_block: "%{name} blocked domain %{target}"
+ create_email_domain_block: "%{name} blacklisted e-mail domain %{target}"
+ demote_user: "%{name} demoted user %{target}"
+ destroy_custom_emoji: "%{name} destroyed emoji %{target}"
+ destroy_domain_block: "%{name} unblocked domain %{target}"
+ destroy_email_domain_block: "%{name} whitelisted e-mail domain %{target}"
+ destroy_status: "%{name} removed status by %{target}"
+ disable_2fa_user: "%{name} disabled two factor requirement for user %{target}"
+ disable_custom_emoji: "%{name} disabled emoji %{target}"
+ disable_user: "%{name} disabled login for user %{target}"
+ enable_custom_emoji: "%{name} enabled emoji %{target}"
+ enable_user: "%{name} enabled login for user %{target}"
+ memorialize_account: "%{name} turned %{target}'s account into a memoriam page"
+ promote_user: "%{name} promoted user %{target}"
+ remove_avatar_user: "%{name} removed %{target}'s avatar"
+ reopen_report: "%{name} reopened report %{target}"
+ reset_password_user: "%{name} reset password of user %{target}"
+ resolve_report: "%{name} resolved report %{target}"
+ silence_account: "%{name} silenced %{target}'s account"
+ suspend_account: "%{name} suspended %{target}'s account"
+ unassigned_report: "%{name} unassigned report %{target}"
+ unsilence_account: "%{name} unsilenced %{target}'s account"
+ unsuspend_account: "%{name} unsuspended %{target}'s account"
+ update_custom_emoji: "%{name} updated emoji %{target}"
+ update_status: "%{name} updated status by %{target}"
+ deleted_status: "(deleted status)"
+ title: Audit log
+ custom_emojis:
+ by_domain: Domain
+ copied_msg: Successfully created local copy of the emoji
+ copy: Copy
+ copy_failed_msg: Could not make a local copy of that emoji
+ created_msg: Emoji successfully created!
+ delete: Delete
+ destroyed_msg: Emojo successfully destroyed!
+ disable: Disable
+ disabled_msg: Successfully disabled that emoji
+ emoji: Emoji
+ enable: Enable
+ enabled_msg: Successfully enabled that emoji
+ image_hint: PNG up to 50KB
+ listed: Listed
+ new:
+ title: Add new custom emoji
+ overwrite: Overwrite
+ shortcode: Shortcode
+ shortcode_hint: At least 2 characters, only alphanumeric characters and underscores
+ title: Custom emojis
+ unlisted: Unlisted
+ update_failed_msg: Could not update that emoji
+ updated_msg: Emoji successfully updated!
+ upload: Upload
+ dashboard:
+ backlog: backlogged jobs
+ config: Configuration
+ feature_deletions: Account deletions
+ feature_invites: Invite links
+ feature_profile_directory: Profile directory
+ feature_registrations: Registrations
+ feature_relay: Federation relay
+ features: Features
+ hidden_service: Federation with hidden services
+ open_reports: open reports
+ recent_users: Recent users
+ search: Full-text search
+ single_user_mode: Single user mode
+ software: Software
+ space: Space usage
+ title: Dashboard
+ total_users: users in total
+ trends: Trends
+ week_interactions: interactions this week
+ week_users_active: active this week
+ week_users_new: users this week
+ domain_blocks:
+ add_new: Add new domain block
+ created_msg: Domain block is now being processed
+ destroyed_msg: Domain block has been undone
+ domain: Domain
+ new:
+ create: Create block
+ hint: The domain block will not prevent creation of account entries in the database, but will retroactively and automatically apply specific moderation methods on those accounts.
+ severity:
+ desc_html: "
Silence will make the account's posts invisible to anyone who isn't following them.
Suspend will remove all of the account's content, media, and profile data. Use
None if you just want to reject media files."
+ noop: None
+ silence: Silence
+ suspend: Suspend
+ 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
+ reject_reports: Reject reports
+ reject_reports_hint: Ignore all reports coming from this domain. Irrelevant for suspensions
+ rejecting_media: rejecting media files
+ rejecting_reports: rejecting reports
+ severity:
+ silence: silenced
+ suspend: suspended
+ show:
+ affected_accounts:
+ one: One account in the database affected
+ other: "%{count} accounts in the database affected"
+ retroactive:
+ silence: Unsilence all existing accounts from this domain
+ suspend: Unsuspend all existing accounts from this domain
+ title: Undo domain block for %{domain}
+ undo: Undo
+ undo: Undo domain block
+ email_domain_blocks:
+ add_new: Add new
+ created_msg: Successfully added e-mail domain to blacklist
+ delete: Delete
+ destroyed_msg: Successfully deleted e-mail domain from blacklist
+ domain: Domain
+ new:
+ 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:
+ 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:
+ all: All
+ available: Available
+ expired: Expired
+ title: Filter
+ title: Invites
+ relays:
+ add_new: Add new relay
+ delete: Delete
+ description_html: A
federation relay is an intermediary server that exchanges large volumes of public toots between servers that subscribe and publish to it.
It can help small and medium servers discover content from the fediverse, which would otherwise require local users manually following other people on remote servers.
+ disable: Disable
+ disabled: Disabled
+ enable: Enable
+ enable_hint: Once enabled, your server will subscribe to all public toots from this relay, and will begin sending this server's public toots to it.
+ enabled: Enabled
+ inbox_url: Relay URL
+ pending: Waiting for relay's approval
+ save_and_enable: Save and enable
+ setup: Setup a relay connection
+ status: Status
+ title: Relays
+ report_notes:
+ created_msg: Report note successfully created!
+ destroyed_msg: Report note successfully deleted!
+ reports:
+ account:
+ note: note
+ report: report
+ action_taken_by: Action taken by
+ are_you_sure: Are you sure?
+ assign_to_self: Assign to me
+ assigned: Assigned moderator
+ comment:
+ none: None
+ created_at: Reported
+ mark_as_resolved: Mark as resolved
+ mark_as_unresolved: Mark as unresolved
+ notes:
+ create: Add note
+ create_and_resolve: Resolve with note
+ create_and_unresolve: Reopen with note
+ delete: Delete
+ placeholder: Describe what actions have been taken, or any other related updates...
+ reopen: Reopen report
+ report: 'Report #%{id}'
+ reported_account: Reported account
+ reported_by: Reported by
+ resolved: Resolved
+ resolved_msg: Report successfully resolved!
+ status: Status
+ title: Reports
+ unassign: Unassign
+ unresolved: Unresolved
+ updated_at: Updated
+ settings:
+ activity_api_enabled:
+ desc_html: Counts of locally posted statuses, active users, and new registrations in weekly buckets
+ title: Publish aggregate statistics about user activity
+ bootstrap_timeline_accounts:
+ desc_html: Separate multiple usernames by comma. Only local and unlocked accounts will work. Default when empty is all local admins.
+ title: Default follows for new users
+ contact_information:
+ email: Business e-mail
+ username: Contact username
+ custom_css:
+ 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 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 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
+ profile_directory:
+ desc_html: Allow users to be discoverable
+ title: Enable profile directory
+ registrations:
+ closed_message:
+ desc_html: Displayed on frontpage when registrations are closed. You can use HTML tags
+ title: Closed registration message
+ deletion:
+ desc_html: Allow anyone to delete their account
+ title: Open account deletion
+ min_invite_role:
+ disabled: No one
+ title: Allow invitations by
+ registrations_mode:
+ modes:
+ approved: Approval required for sign up
+ none: Nobody can sign up
+ open: Anyone can sign up
+ title: Registrations mode
+ 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 local toots.
+ title: Show known fediverse on timeline preview
+ show_staff_badge:
+ desc_html: Show a staff badge on a user page
+ 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: Server description
+ 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 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 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: Server name
+ thumbnail:
+ desc_html: Used for previews via OpenGraph and API. 1200x630px recommended
+ title: Server thumbnail
+ timeline_preview:
+ desc_html: Display public timeline on landing page
+ title: Timeline preview
+ title: Site settings
+ statuses:
+ back_to_account: Back to account page
+ batch:
+ delete: Delete
+ nsfw_off: Mark as not sensitive
+ nsfw_on: Mark as sensitive
+ failed_to_execute: Failed to execute
+ media:
+ title: Media
+ no_media: No media
+ no_status_selected: No statuses were changed as none were selected
+ title: Account statuses
+ with_media: With media
+ subscriptions:
+ callback_url: Callback URL
+ confirmed: Confirmed
+ expires_in: Expires in
+ last_delivery: Last delivery
+ title: WebSub
+ topic: Topic
+ tags:
+ accounts: Accounts
+ hidden: Hidden
+ hide: Hide from directory
+ name: Hashtag
+ title: Hashtags
+ unhide: Show in directory
+ visible: Visible
+ title: Administration
+ warning_presets:
+ add_new: Add new
+ delete: Delete
+ edit: Edit
+ edit_preset: Edit warning preset
+ title: Manage warning presets
+ admin_mailer:
+ new_pending_account:
+ body: The details of the new account are below. You can approve or reject this application.
+ subject: New account up for review on %{instance} (%{username})
+ new_report:
+ body: "%{reporter} has reported %{target}"
+ body_remote: Someone from %{domain} has reported %{target}
+ subject: New report for %{instance} (#%{id})
+ application_mailer:
+ notification_preferences: Change e-mail preferences
+ salutation: "%{name},"
+ settings: 'Change e-mail preferences: %{link}'
+ view: 'View:'
+ view_profile: View Profile
+ view_status: View status
+ applications:
+ created: Application successfully created
+ destroyed: Application successfully deleted
+ invalid_url: The provided URL is invalid
+ regenerate_token: Regenerate access token
+ token_regenerated: Access token successfully regenerated
+ warning: Be very careful with this data. Never share it with anyone!
+ your_token: Your access token
+ auth:
+ apply_for_account: Request an invite
+ change_password: Password
+ checkbox_agreement_html: I agree to the
server rules and
terms of service
+ confirm_email: Confirm email
+ delete_account: Delete account
+ delete_account_html: If you wish to delete your account, you can
proceed here. You will be asked for confirmation.
+ didnt_get_confirmation: Didn't receive confirmation instructions?
+ forgot_password: Forgot your password?
+ invalid_reset_password_token: Password reset token is invalid or expired. Please request a new one.
+ login: Log in
+ logout: Logout
+ migrate_account: Move to a different account
+ migrate_account_html: If you wish to redirect this account to a different one, you can
configure it here.
+ or_log_in_with: Or log in with
+ providers:
+ cas: CAS
+ saml: SAML
+ register: Sign up
+ registration_closed: "%{instance} is not accepting new members"
+ resend_confirmation: Resend confirmation instructions
+ reset_password: Reset password
+ security: Security
+ set_new_password: Set new password
+ trouble_logging_in: Trouble logging in?
+ authorize_follow:
+ already_following: You are already following this account
+ error: Unfortunately, there was an error looking up the remote account
+ follow: Follow
+ follow_request: 'You have sent a follow request to:'
+ following: 'Success! You are now following:'
+ post_follow:
+ close: Or, you can just close this window.
+ return: Show the user's profile
+ web: Go to web
+ title: Follow %{acct}
+ datetime:
+ distance_in_words:
+ about_x_hours: "%{count}h"
+ about_x_months: "%{count}mo"
+ about_x_years: "%{count}y"
+ almost_x_years: "%{count}y"
+ half_a_minute: Just now
+ less_than_x_minutes: "%{count}m"
+ less_than_x_seconds: Just now
+ over_x_years: "%{count}y"
+ x_days: "%{count}d"
+ x_minutes: "%{count}m"
+ x_months: "%{count}mo"
+ x_seconds: "%{count}s"
+ deletes:
+ bad_password_msg: Nice try, hackers! Incorrect password
+ confirm_password: Enter your current password to verify your identity
+ 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 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 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
+ '429': Throttled
+ '500':
+ content: We're sorry, but something went wrong on our end.
+ title: This page is not correct
+ noscript_html: To use the Mastodon web application, please enable JavaScript. Alternatively, try one of the
native apps for Mastodon for your platform.
+ exports:
+ 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 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
+ notifications: Notifications
+ public: Public timelines
+ thread: Conversations
+ edit:
+ title: Edit filter
+ errors:
+ invalid_context: None or invalid context supplied
+ invalid_irreversible: Irreversible filtering only works with home or notifications context
+ index:
+ delete: Delete
+ title: Filters
+ new:
+ title: Add new filter
+ footer:
+ developers: Developers
+ more: More…
+ resources: Resources
+ generic:
+ all: All
+ changes_saved_msg: Changes successfully saved!
+ copy: Copy
+ save_changes: Save changes
+ validation_errors:
+ one: Something isn't quite right yet! Please review the error below
+ other: Something isn't quite right yet! Please review %{count} errors below
+ identity_proofs:
+ active: Active
+ authorize: Yes, authorize
+ authorize_connection_prompt: Authorize this cryptographic connection?
+ errors:
+ failed: The cryptographic connection failed. Please try again from %{provider}.
+ keybase:
+ invalid_token: Keybase tokens are hashes of signatures and must be 66 hex characters
+ verification_failed: Keybase does not recognize this token as a signature of Keybase user %{kb_username}. Please retry from Keybase.
+ explanation_html: Here you can cryptographically connect your other identities, such as a Keybase profile. This lets other people send you encrypted messages and trust content you send them.
+ i_am_html: I am %{username} on %{service}.
+ identity: Identity
+ inactive: Inactive
+ status: Verification status
+ view_proof: View proof
+ imports:
+ 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
+ in_memoriam_html: In Memoriam.
+ invites:
+ delete: Deactivate
+ expired: Expired
+ expires_in:
+ '1800': 30 minutes
+ '21600': 6 hours
+ '3600': 1 hour
+ '43200': 12 hours
+ '604800': 1 week
+ '86400': 1 day
+ expires_in_prompt: Never
+ generate: Generate
+ invited_by: 'You were invited by:'
+ max_uses:
+ one: 1 use
+ other: "%{count} uses"
+ max_uses_prompt: No limit
+ prompt: Generate and share links with others to grant access to this server
+ table:
+ expires_at: Expires
+ uses: Uses
+ title: Invite people
+ lists:
+ errors:
+ limit: You have reached the maximum amount of lists
+ media_attachments:
+ validations:
+ images_and_video: Cannot attach a video to a status that already contains images
+ too_many: Cannot attach more than 4 files
+ migrations:
+ acct: username@domain of the new account
+ currently_redirecting: 'Your profile is set to redirect to:'
+ proceed: Save
+ updated_msg: Your account migration setting successfully updated!
+ moderation:
+ title: Moderation
+ notification_mailer:
+ digest:
+ action: View all notifications
+ body: Here is a brief summary of the messages you missed since your last visit on %{since}
+ mention: "%{name} mentioned you in:"
+ new_followers_summary:
+ one: Also, you have acquired one new follower while being away! Yay!
+ other: Also, you have acquired %{count} new followers while being away! Amazing!
+ subject:
+ one: "1 new notification since your last visit \U0001F418"
+ other: "%{count} new notifications since your last visit \U0001F418"
+ title: In your absence...
+ favourite:
+ body: 'Your status was favourited by %{name}:'
+ subject: "%{name} favourited your status"
+ title: New favourite
+ follow:
+ body: "%{name} is now following you!"
+ subject: "%{name} is now following you"
+ title: New follower
+ follow_request:
+ action: Manage follow requests
+ body: "%{name} has requested to follow you"
+ subject: 'Pending follower: %{name}'
+ title: New follow request
+ mention:
+ action: Reply
+ body: 'You were mentioned by %{name} in:'
+ subject: You were mentioned by %{name}
+ title: New mention
+ reblog:
+ body: 'Your status was boosted by %{name}:'
+ subject: "%{name} boosted your status"
+ title: New boost
+ number:
+ human:
+ decimal_units:
+ format: "%n%u"
+ units:
+ billion: B
+ million: M
+ quadrillion: Q
+ thousand: K
+ trillion: T
+ pagination:
+ newer: Newer
+ next: Next
+ 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
+ publishing: Publishing
+ web: Web
+ relationships:
+ activity: Account activity
+ dormant: Dormant
+ moved: Moved
+ mutual: Mutual
+ primary: Primary
+ relationship: Relationship
+ remove_selected_domains: Remove all followers from the selected domains
+ remove_selected_followers: Remove selected followers
+ remove_selected_follows: Unfollow selected users
+ status: Account status
+ remote_follow:
+ acct: Enter your username@domain you want to act from
+ missing_resource: Could not find the required redirect URL for your account
+ 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:
+ 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
+ browsers:
+ alipay: Alipay
+ blackberry: Blackberry
+ chrome: Chrome
+ edge: Microsoft Edge
+ electron: Electron
+ firefox: Firefox
+ generic: Unknown browser
+ 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: Current session
+ description: "%{browser} on %{platform}"
+ explanation: These are the web browsers currently logged in to your Mastodon account.
+ 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: unknown platform
+ windows: Windows
+ windows_mobile: Windows Mobile
+ windows_phone: Windows Phone
+ revoke: Revoke
+ revoke_success: Session successfully revoked
+ title: Sessions
+ settings:
+ authorized_apps: Authorized apps
+ back: Back to Mastodon
+ delete: Account deletion
+ development: Development
+ edit_profile: Edit profile
+ export: Data export
+ featured_tags: Featured hashtags
+ identity_proofs: Identity proofs
+ import: Import
+ migrate: Account migration
+ notifications: Notifications
+ preferences: Preferences
+ relationships: Follows and followers
+ two_factor_authentication: Two-factor Auth
+ statuses:
+ attached:
+ description: 'Attached: %{attached}'
+ image:
+ one: "%{count} image"
+ other: "%{count} images"
+ video:
+ one: "%{count} video"
+ other: "%{count} videos"
+ boosted_from_html: Boosted from %{acct_link}
+ content_warning: 'Content warning: %{warning}'
+ disallowed_hashtags:
+ one: 'contained a disallowed hashtag: %{tags}'
+ other: 'contained the disallowed hashtags: %{tags}'
+ language_detection: Automatically detect language
+ open_in_web: Open in web
+ over_character_limit: character limit of %{max} exceeded
+ pin_errors:
+ limit: You have already pinned the maximum number of toots
+ ownership: Someone else's toot cannot be pinned
+ private: Non-public toot cannot be pinned
+ reblog: A boost cannot be pinned
+ poll:
+ total_votes:
+ one: "%{count} vote"
+ other: "%{count} votes"
+ vote: Vote
+ show_more: Show more
+ sign_in_to_participate: Sign in to participate in the conversation
+ title: '%{name}: "%{quote}"'
+ visibilities:
+ private: Followers-only
+ private_long: Only show to followers
+ public: Public
+ public_long: Everyone can see
+ unlisted: Unlisted
+ unlisted_long: Everyone can see, but not listed on public timelines
+ stream_entries:
+ pinned: Pinned toot
+ reblogged: boosted
+ sensitive_content: Sensitive content
+ terms:
+ body_html: |
+
Privacy Policy
+
What information do we collect?
+
+
+ - Basic account information: If you register on this server, you may be asked to enter a username, an e-mail address and a password. You may also enter additional profile information such as a display name and biography, and upload a profile picture and header image. The username, display name, biography, profile picture and header image are always listed publicly.
+ - Posts, following and other public information: The list of people you follow is listed publicly, the same is true for your followers. When you submit a message, the date and time is stored as well as the application you submitted the message from. Messages may contain media attachments, such as pictures and videos. Public and unlisted posts are available publicly. When you feature a post on your profile, that is also publicly available information. Your posts are delivered to your followers, in some cases it means they are delivered to different servers and copies are stored there. When you delete posts, this is likewise delivered to your followers. The action of reblogging or favouriting another post is always public.
+ - Direct and followers-only posts: All posts are stored and processed on the server. Followers-only posts are delivered to your followers and users who are mentioned in them, and direct posts are delivered only to users mentioned in them. In some cases it means they are delivered to different servers and copies are stored there. We make a good faith effort to limit the access to those posts only to authorized persons, but other servers may fail to do so. Therefore it's important to review servers your followers belong to. You may toggle an option to approve and reject new followers manually in the settings. Please keep in mind that the operators of the server and any receiving server may view such messages, and that recipients may screenshot, copy or otherwise re-share them. Do not share any dangerous information over Mastodon.
+ - IPs and other metadata: When you log in, we record the IP address you log in from, as well as the name of your browser application. All the logged in sessions are available for your review and revocation in the settings. The latest IP address used is stored for up to 12 months. We also may retain server logs which include the IP address of every request to our server.
+
+
+
+
+
What do we use your information for?
+
+
Any of the information we collect from you may be used in the following ways:
+
+
+ - To provide the core functionality of Mastodon. You can only interact with other people's content and post your own content when you are logged in. For example, you may follow other people to view their combined posts in your own personalized home timeline.
+ - To aid moderation of the community, for example comparing your IP address with other known ones to determine ban evasion or other violations.
+ - The email address you provide may be used to send you information, notifications about other people interacting with your content or sending you messages, and to respond to inquiries, and/or other requests or questions.
+
+
+
+
+
How do we protect your information?
+
+
We implement a variety of security measures to maintain the safety of your personal information when you enter, submit, or access your personal information. Among other things, your browser session, as well as the traffic between your applications and the API, are secured with SSL, and your password is hashed using a strong one-way algorithm. You may enable two-factor authentication to further secure access to your account.
+
+
+
+
What is our data retention policy?
+
+
We will make a good faith effort to:
+
+
+ - Retain server logs containing the IP address of all requests to this server, in so far as such logs are kept, no more than 90 days.
+ - Retain the IP addresses associated with registered users no more than 12 months.
+
+
+
You can request and download an archive of your content, including your posts, media attachments, profile picture, and header image.
+
+
You may irreversibly delete your account at any time.
+
+
+
+
Do we use cookies?
+
+
Yes. Cookies are small files that a site or its service provider transfers to your computer's hard drive through your Web browser (if you allow). These cookies enable the site to recognize your browser and, if you have a registered account, associate it with your registered account.
+
+
We use cookies to understand and save your preferences for future visits.
+
+
+
+
Do we disclose any information to outside parties?
+
+
We do not sell, trade, or otherwise transfer to outside parties your personally identifiable information. This does not include trusted third parties who assist us in operating our site, conducting our business, or servicing you, so long as those parties agree to keep this information confidential. We may also release your information when we believe release is appropriate to comply with the law, enforce our site policies, or protect ours or others rights, property, or safety.
+
+
Your public content may be downloaded by other servers in the network. Your public and followers-only posts are delivered to the servers where your followers reside, and direct messages are delivered to the servers of the recipients, in so far as those followers or recipients reside on a different server than this.
+
+
When you authorize an application to use your account, depending on the scope of permissions you approve, it may access your public profile information, your following list, your followers, your lists, all your posts, and your favourites. Applications can never access your e-mail address or password.
+
+
+
+
Site usage by children
+
+
If this server is in the EU or the EEA: Our site, products and services are all directed to people who are at least 16 years old. If you are under the age of 16, per the requirements of the GDPR (General Data Protection Regulation) do not use this site.
+
+
If this server is in the USA: Our site, products and services are all directed to people who are at least 13 years old. If you are under the age of 13, per the requirements of COPPA (Children's Online Privacy Protection Act) do not use this site.
+
+
Law requirements can be different if this server is in another jurisdiction.
+
+
+
+
Changes to our Privacy Policy
+
+
If we decide to change our privacy policy, we will post those changes on this page.
+
+
This document is CC-BY-SA. It was last updated March 7, 2018.
+
+
Originally adapted from the Discourse privacy policy.
+ title: "%{instance} Terms of Service and Privacy Policy"
+ themes:
+ contrast: Mastodon (High contrast)
+ default: Mastodon (Dark)
+ mastodon-light: Mastodon (Light)
+ time:
+ formats:
+ default: "%b %d, %Y, %H:%M"
+ month: "%b %Y"
+ two_factor_authentication:
+ code_hint: Enter the code generated by your authenticator app to confirm
+ description_html: If you enable
two-factor authentication, logging in will require you to be in possession of your phone, which will generate tokens for you to enter.
+ disable: Disable
+ enable: Enable
+ enabled: Two-factor authentication is enabled
+ enabled_success: Two-factor authentication successfully enabled
+ generate_recovery_codes: Generate recovery codes
+ instructions_html: "
Scan this QR code into Google Authenticator or a similiar TOTP app on your phone. From now on, that app will generate tokens that you will have to enter when logging in."
+ lost_recovery_codes: Recovery codes allow you to regain access to your account if you lose your phone. If you've lost your recovery codes, you can regenerate them here. Your old recovery codes will be invalidated.
+ manual_instructions: 'If you can''t scan the QR code and need to enter it manually, here is the plain-text secret:'
+ recovery_codes: Backup recovery codes
+ recovery_codes_regenerated: Recovery codes successfully regenerated
+ recovery_instructions_html: If you ever lose access to your phone, you can use one of the recovery codes below to regain access to your account.
Keep the recovery codes safe. For example, you may print them and store them with other important documents.
+ setup: Set up
+ wrong_code: The entered code was invalid! Are server time and device time correct?
+ user_mailer:
+ backup_ready:
+ explanation: You requested a full backup of your Mastodon account. It's now ready for download!
+ subject: Your archive is ready for download
+ title: Archive takeout
+ warning:
+ explanation:
+ disable: While your account is frozen, your account data remains intact, but you cannot perform any actions until it is unlocked.
+ silence: While your account is limited, only people who are already following you will see your toots on this server, and you may be excluded from various public listings. However, others may still manually follow you.
+ suspend: Your account has been suspended, and all of your toots and your uploaded media files have been irreversibly removed from this server, and servers where you had followers.
+ review_server_policies: Review server policies
+ subject:
+ disable: Your account %{acct} has been frozen
+ none: Warning for %{acct}
+ silence: Your account %{acct} has been limited
+ suspend: Your account %{acct} has been suspended
+ title:
+ disable: Account frozen
+ none: Warning
+ silence: Account limited
+ suspend: Account suspended
+ welcome:
+ edit_profile_action: Setup profile
+ edit_profile_step: You can customize your profile by uploading an avatar, header, changing your display name and more. If you’d like to review new followers before they’re allowed to follow you, you can lock your account.
+ explanation: Here are some tips to get you started
+ 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 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
+ tip_federated_timeline: The federated timeline is a firehose view of the Mastodon network. But it only includes people your neighbours are subscribed to, so it's not complete.
+ tip_following: You follow your server's admin(s) by default. To find more interesting people, check the local and federated timelines.
+ tip_local_timeline: The local timeline is a firehose view of people on %{instance}. These are your immediate neighbours!
+ tip_mobile_webapp: If your mobile browser offers you to add Mastodon to your homescreen, you can receive push notifications. It acts like a native app in many ways!
+ tips: Tips
+ title: Welcome aboard, %{name}!
+ users:
+ follow_limit_reached: You cannot follow more than %{limit} people
+ invalid_email: The e-mail address is invalid
+ invalid_otp_token: Invalid two-factor code
+ otp_lost_help_html: If you lost access to both, you may get in touch with %{email}
+ seamless_external_login: You are logged in via an external service, so password and e-mail settings are not available.
+ signed_in_as: 'Signed in as:'
+ verification:
+ explanation_html: 'You can
verify yourself as the owner of the links in your profile metadata. For that, the linked website must contain a link back to your Mastodon profile. The link back
must have a
rel="me"
attribute. The text content of the link does not matter. Here is an example:'
+ verification: Verification
diff --git a/config/locales/eo.yml b/config/locales/eo.yml
index b7dd7ca8b..b85cb1a49 100644
--- a/config/locales/eo.yml
+++ b/config/locales/eo.yml
@@ -4,36 +4,36 @@ eo:
about_hashtag_html: Ĉi tiuj estas la publikaj mesaĝoj markitaj per
#%{hashtag}. Vi povas interagi kun ili se vi havas konton ie ajn en la fediverse.
about_mastodon_html: Mastodon estas socia reto bazita sur malfermitaj retaj protokoloj kaj sur libera malfermitkoda programo. Ĝi estas sencentra kiel retmesaĝoj.
about_this: Pri
+ active_count_after: aktiva
+ active_footnote: Monate Aktivaj Uzantoj (MAU)
administered_by: 'Administrata de:'
api: API
apps: Poŝtelefonaj aplikaĵoj
- closed_registrations: Registriĝoj estas nuntempe fermitaj en ĉi tiu nodo. Tamen, vi povas trovi alian nodon por fari konton kaj aliri al la sama reto de tie.
+ apps_platforms: Uzu Mastodon ĉe iOS, Android kaj aliajn platformojn
+ browse_directory: Esplori profilujo kaj filtri per interesoj
+ browse_public_posts: Vidi vivantan fluon de publikaj mesaĝoj al Mastodon
contact: Kontakti
contact_missing: Ne elektita
contact_unavailable: Ne disponebla
+ discover_users: Malkovri uzantojn
documentation: Dokumentado
extended_description_html: |
Bona loko por reguloj
La detala priskribo ne estis elektita.
- features:
- humane_approach_body: Lernante de eraroj de aliaj retoj, Mastodon celas fari etikajn fasonajn elektojn por batali kontraŭ misuzado de sociaj retoj.
- humane_approach_title: Aliro pli humana
- not_a_product_body: Mastodon ne estas komerca reto. Neniu reklamo, neniu kolektado de datumoj, neniu privilegio. Ne estas centra aŭtoritato.
- not_a_product_title: Vi estas homo, ne produkto
- real_conversation_body: Per 500 disponeblaj signoj, per elektebloj pri videbleco, kaj per avertoj pri enhavo, vi povas esprimi vin tiel, kiel vi volas.
- real_conversation_title: Konstruita por veraj konversacioj
- within_reach_body: Pluraj aplikaĵoj por iOS, Android, kaj aliaj platformoj danke al API-medio bonveniga por programistoj permesas resti en kontakto kun viaj amikoj ĉie.
- within_reach_title: Ĉiam kontaktebla
+ federation_hint_html: Per konto ĉe %{instance}, vi povos sekvi homojn ĉe iu ajn Mastodon nodo kaj preter.
generic_description: "%{domain} estas unu servilo en la reto"
+ get_apps: Provu telefonan aplikaĵon
hosted_on: "%{domain} estas nodo de Mastodon"
learn_more: Lerni pli
- other_instances: Listo de nodoj
privacy_policy: Privateca politiko
+ see_whats_happening: Vidi kio okazas
+ server_stats: Servo statuso
source_code: Fontkodo
status_count_after:
one: mesaĝo
other: mesaĝoj
status_count_before: Kie skribiĝis
+ tagline: Sekvi amikojn kaj trovi novan onin
terms: Uzkondiĉoj
user_count_after:
one: uzanto
@@ -70,12 +70,16 @@ eo:
moderator: Kontrolanto
unfollow: Ne plu sekvi
admin:
+ account_actions:
+ action: Plenumi agon
+ title: Plenumi kontrolan agon al %{acct}
account_moderation_notes:
create: Lasi noton
created_msg: Kontrola noto sukcese kreita!
delete: Forigi
destroyed_msg: Kontrola noto sukcese detruita!
accounts:
+ approve: Aprobi
are_you_sure: Ĉu vi certas?
avatar: Profilbildo
by_domain: Domajno
@@ -89,6 +93,7 @@ eo:
confirm: Konfirmi
confirmed: Konfirmita
confirming: Konfirmante
+ deleted: Forigita
demote: Degradi
disable: Malebligi
disable_two_factor_authentication: Malebligi 2FA
@@ -96,27 +101,31 @@ eo:
display_name: Montrata nomo
domain: Domajno
edit: Redakti
- email: Retpoŝto
- email_status: Retpoŝto Stato
+ email: Retadreso
+ email_status: Retadreso Stato
enable: Ebligi
enabled: Ebligita
feed_url: URL de la fluo
followers: Sekvantoj
followers_url: URL de la sekvantoj
follows: Sekvatoj
+ header: Kapa bildo
inbox_url: Enira URL
+ invited_by: Invitita de
ip: IP
+ joined: Aliĝis
location:
all: Ĉio
- local: Loka
- remote: Fora
+ local: Lokaj
+ remote: Foraj
title: Loko
login_status: Ensaluta stato
media_attachments: Ligitaj aŭdovidaĵoj
memorialize: Ŝanĝi al memoro
moderation:
- active: Aktiva
+ active: Aktivaj
all: Ĉio
+ pending: Pritraktata
silenced: Silentigitaj
suspended: Haltigitaj
title: Kontrolado
@@ -126,14 +135,17 @@ eo:
no_limits_imposed: Neniu limito trudita
not_subscribed: Ne abonita
outbox_url: Elira URL
+ pending: Pritraktata recenzo
perform_full_suspension: Haltigi
profile_url: Profila URL
promote: Plirangigi
protocol: Protokolo
public: Publika
push_subscription_expires: Eksvalidiĝo de la abono al PuSH
- redownload: Aktualigi profilbildon
+ redownload: Aktualigi profilon
+ reject: Malakcepti
remove_avatar: Forigi profilbildon
+ remove_header: Forigi kapan bildon
resend_confirmation:
already_confirmed: Ĉi tiu uzanto jam estas konfirmita
send: Esend konfirmi retpoŝton
@@ -151,8 +163,8 @@ eo:
search: Serĉi
shared_inbox_url: URL de kunhavigita leterkesto
show:
- created_reports: Signaloj kreitaj de ĉi tiu konto
- targeted_reports: Signaloj kreitaj de ĉi tiu konto
+ created_reports: Kreitaj signaloj
+ targeted_reports: Signalitaj de aliaj
silence: Kaŝi
silenced: Silentigita
statuses: Mesaĝoj
@@ -164,12 +176,14 @@ eo:
undo_suspension: Malfari haltigon
unsubscribe: Malaboni
username: Uzantnomo
+ warn: Averti
web: Reto
action_logs:
actions:
assigned_to_self_report: "%{name} asignis signalon %{target} al si mem"
change_email_user: "%{name} ŝanĝis retadreson de uzanto %{target}"
confirm_user: "%{name} konfirmis retadreson de uzanto %{target}"
+ create_account_warning: "%{name} sendis averton al %{target}"
create_custom_emoji: "%{name} alŝutis novan emoĝion %{target}"
create_domain_block: "%{name} blokis domajnon %{target}"
create_email_domain_block: "%{name} metis en nigran liston domajnon %{target}"
@@ -231,6 +245,7 @@ eo:
feature_profile_directory: Profilujo
feature_registrations: Registriĝoj
feature_relay: Federacia ripetilo
+ feature_timeline_preview: Templinio antaŭvidi
features: Funkcioj
hidden_service: Federacio kun kaŝitaj servoj
open_reports: nefermitaj raportoj
@@ -261,6 +276,13 @@ 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
+ reject_reports: Malakcepti raportojn
+ reject_reports_hint: Ignori ĉiujn raportojn el tiu domajno. Nur gravas por silentigoj
+ rejecting_media: aŭdovidaj dosieroj malakceptiĝas
+ rejecting_reports: raportoj malakceptiĝas
+ severity:
+ silence: silentigita
+ suspend: haltigita
show:
affected_accounts:
one: Unu konto en la datumbazo esta influita
@@ -281,8 +303,25 @@ eo:
create: Aldoni domajnon
title: Nova blokado de retadresa domajno
title: Nigra listo de retadresaj domajnoj
+ followers:
+ back_to_account: Reen al la konto
+ title: Sekvantoj de %{acct}
instances:
- title: Konataj nodoj
+ by_domain: Domajno
+ delivery_available: Liverado disponeblas
+ known_accounts:
+ one: "%{count} konata konto"
+ other: "%{count} konataj kontoj"
+ moderation:
+ all: Ĉiuj
+ limited: Limigita
+ title: Kontrolo
+ title: Federacio
+ total_blocked_by_us: Blokitaj de ni
+ total_followed_by_them: Sekvataj de ili
+ total_followed_by_us: Sekvataj de ni
+ total_reported: Raportoj pri ili
+ total_storage: Aŭdovidaj kunsendaĵoj
invites:
deactivate_all: Malaktivigi ĉion
filter:
@@ -301,6 +340,7 @@ eo:
enable_hint: Post ebligo, via servilo abonos ĉiujn publikajn mesaĝojn de tiu ripetilo, kaj komencos sendi publikajn mesaĝojn de la servilo al ĝi.
enabled: Malebligita
inbox_url: URL de la ripetilo
+ pending: Atendante aprobon de la ripetilo
save_and_enable: Konservi kaj ebligi
setup: Agordi konekton al ripetilo
status: Stato
@@ -331,12 +371,12 @@ eo:
report: 'Signalo #%{id}'
reported_account: Signalita konto
reported_by: Signalita de
- resolved: Solvita
+ resolved: Solvitaj
resolved_msg: Signalo sukcese solvita!
status: Mesaĝoj
title: Signaloj
unassign: Malasigni
- unresolved: Nesolvita
+ unresolved: Nesolvitaj
updated_at: Ĝisdatigita
settings:
activity_api_enabled:
@@ -352,11 +392,14 @@ eo:
desc_html: Ŝanĝi la aspekton per CSS ŝargita en ĉiu pago
title: Propra CSS
hero:
- desc_html: Montrata en la ĉefpaĝo. Almenaŭ 600x100px rekomendita. Kiam ne agordita, la bildeto de la nodo estos uzata
+ desc_html: Montrata en la ĉefpaĝo. Almenaŭ 600x100px rekomendita. Kiam ne agordita, la bildeto de la servilo estos uzata
title: Kapbildo
+ mascot:
+ desc_html: Montrata en pluraj paĝoj. Rekomendataj estas almenaŭ 293x205px. Se ĉi tio ne estas agordita, la defaŭlta maskoto uziĝas
+ title: Maskota bildo
peers_api_enabled:
- desc_html: Nomoj de domajnoj, kiujn ĉi tiu nodo renkontis en la fediverse
- title: Publikigi liston de malkovritaj nodoj
+ desc_html: Nomoj de domajnoj, kiujn ĉi tiu servilo renkontis en la federauniverso
+ title: Publikigi liston de malkovritaj serviloj
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
@@ -373,9 +416,12 @@ eo:
min_invite_role:
disabled: Neniu
title: Permesi invitojn de
- open:
- desc_html: Permesi iun ajn krei konton
- title: Malfermi registriĝojn
+ registrations_mode:
+ modes:
+ approved: Bezonas aprobi por aliĝi
+ none: Neniu povas aliĝi
+ open: Iu povas aliĝi
+ title: Registrado modo
show_known_fediverse_at_about_page:
desc_html: Kiam ŝaltita, ĝi montros mesaĝojn de la tuta konata fediverse antaŭvide. Aliokaze, ĝi montros nur lokajn mesaĝojn.
title: Montri konatan fediverse en tempolinia antaŭvido
@@ -384,22 +430,22 @@ eo:
title: Montri teaman insignon
site_description:
desc_html: Enkonduka alineo en la ĉefpaĝo. Priskribu la unikaĵojn de ĉi tiu nodo de Mastodon, kaj ĉiujn aliajn gravaĵojn. Vi povas uzi HTML-etikedojn, kiel
<a>
kaj
<em>
.
- title: Priskribo de la nodo
+ title: Priskribo de la servilo
site_description_extended:
- desc_html: Bona loko por viaj sintenaj reguloj, aliaj reguloj, gvidlinioj kaj aliaj aferoj, kiuj apartigas vian nodon. Vi povas uzi HTML-etikedojn
+ desc_html: Bona loko por viaj sintenaj reguloj, aliaj reguloj, gvidlinioj kaj aliaj aferoj, kiuj apartigas vian serilon. Vi povas uzi HTML-etikedojn
title: Propraj detalaj informoj
site_short_description:
- desc_html: Afiŝita en la flankpanelo kaj metadatumaj etikedoj. Priskribu kio estas Mastodon, kaj kio specialas en ĉi tiu nodo, per unu alineo. Se malplena, la priskribo de la nodo estos uzata.
- title: Mallonga priskribo de la nodo
+ desc_html: Afiŝita en la flankpanelo kaj metadatumaj etikedoj. Priskribu kio estas Mastodon, kaj kio specialas en ĉi tiu nodo, per unu alineo. Se malplena, la priskribo de la servilo estos uzata.
+ title: Mallonga priskribo de la servilo
site_terms:
desc_html: Vi povas skribi vian propran privatecan politikon, viajn uzkondiĉojn aŭ aliajn leĝaĵojn. Vi povas uzi HTML-etikedojn
title: Propraj uzkondiĉoj
- site_title: Nomo de la nodo
+ site_title: Nomo de la servilo
thumbnail:
desc_html: Uzata por antaŭvidoj per OpenGraph kaj per API. 1200x630px rekomendita
- title: Bildeto de la nodo
+ title: Bildeto de la servilo
timeline_preview:
- desc_html: Montri publikan tempolinion en komenca paĝo
+ desc_html: Montri publikan templinion en komenca paĝo
title: Tempolinia antaŭvido
title: Retejaj agordoj
statuses:
@@ -423,13 +469,24 @@ eo:
title: WebSub
topic: Temo
tags:
+ accounts: Kontoj
+ hidden: Kaŝitaj
hide: Kaŝi de la profilujo
name: Kradvorto
title: Kradvortoj
unhide: Montri en la profilujo
- visible: Videbla
+ visible: Videblaj
title: Administrado
+ warning_presets:
+ add_new: Aldoni novan
+ delete: Forigi
+ edit: Redakti
+ edit_preset: Redakti avertan antaŭagordon
+ title: Administri avertajn antaŭagordojn
admin_mailer:
+ new_pending_account:
+ body: La detaloj de la nova konto estas sube. Vi povas aprobi aŭ Malakcepti ĉi kandidatiĝo.
+ subject: Nova konto atendas por recenzo en %{instance} (%{username})
new_report:
body: "%{reporter} signalis %{target}"
body_remote: Iu de %{domain} signalis %{target}
@@ -450,8 +507,9 @@ eo:
warning: Estu tre atenta kun ĉi tiu datumo. Neniam diskonigu ĝin al iu ajn!
your_token: Via alira ĵetono
auth:
- agreement_html: Klakante “Registriĝi” sube, vi konsentas kun
la reguloj de la nodo kaj
niaj uzkondiĉoj.
+ apply_for_account: Peti inviton
change_password: Pasvorto
+ checkbox_agreement_html: Mi samopinii al la
Servo reguloj kaj
kondiĉo al servadon
confirm_email: Konfirmi retadreson
delete_account: Forigi konton
delete_account_html: Se vi deziras forigi vian konton, vi povas
fari tion ĉi tie. Vi bezonos konfirmi vian peton.
@@ -462,17 +520,17 @@ eo:
logout: Elsaluti
migrate_account: Movi al alia konto
migrate_account_html: Se vi deziras alidirekti ĉi tiun konton al alia, vi povas
agordi ĝin ĉi tie.
- or: aŭ
or_log_in_with: Aŭ ensaluti per
providers:
cas: CAS
saml: SAML
register: Registriĝi
- register_elsewhere: Registriĝi en alia servilo
+ registration_closed: "%{instance} ne estas akcepti nova uzantojn"
resend_confirmation: Resendi la instrukciojn por konfirmi
reset_password: Ŝanĝi pasvorton
security: Sekureco
set_new_password: Elekti novan pasvorton
+ trouble_logging_in: Ĝeni ensaluti?
authorize_follow:
already_following: Vi jam sekvas tiun konton
error: Bedaŭrinde, estis eraro en la serĉado de la fora konto
@@ -504,19 +562,22 @@ eo:
description_html: Tio
porĉiame kaj neŝanĝeble forigos la enhavon de via konto kaj malaktivigos ĝin. Via uzantnomo restos rezervita por eviti postajn trompojn pri identeco.
proceed: Forigi konton
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_html: La forigo de la enhavo estas certa nur por ĉi tiu aparta servilo. 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
+ enabled: Vi estas listigata en la profilujo.
+ enabled_but_waiting: Vi elektis esti listigata en la profilujo, sed vi ankoraŭ ne havas la minimuman kvanton da sekvantoj (%{min_followers}) por esti listigata.
explanation: Malkovru uzantojn per iliaj interesoj
explore_mastodon: Esplori %{title}
+ how_to_enable: Vi ankoraŭ ne donis permeson listigi vin en la profilujo. Vi povas doni permeson ĉi-sube. Uzu kradvortojn en via biografia teksto por esti listigata sub specifaj kradvortoj!
people:
- one: "%{count} personoj"
+ one: "%{count} persono"
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.
- '410': La paĝo, kiun vi serĉas, ne plu ekzistas.
+ '404': La paĝo ke kiun vi serĉas ne ekzistas ĉi tie.
+ '410': La paĝo, kiun vi serĉas, ne plu ekzistas ĉi tie.
'422':
content: Sekureca konfirmo malsukcesa. Ĉu vi blokas kuketojn?
title: Sekureca konfirmo malsukcesa
@@ -527,6 +588,9 @@ eo:
noscript_html: |-
Por uzi la retan aplikaĵon de Mastodon, bonvolu ebligi JavaScript. Alimaniere, provu unu el la
operaciumaj aplikaĵoj por Mastodon por via platformo.
+ existing_username_validator:
+ not_found: Ne povas trovi lokaj uzanto kun tiu uzantnomo
+ not_found_multiple: Ne povas trovi %{usernames}
exports:
archive_takeout:
date: Dato
@@ -537,14 +601,20 @@ eo:
size: Grandeco
blocks: Vi blokas
csv: CSV
+ domain_blocks: Blokoj de domajnoj
follows: Vi sekvas
+ lists: Listoj
mutes: Vi silentigas
storage: Aŭdovidaĵa konservado
+ featured_tags:
+ add_new: Aldoni novan
+ errors:
+ limit: Vi jam elstarigis la maksimuman kvanton da kradvortoj
filters:
contexts:
- home: Hejma tempolinio
+ home: Hejma templinio
notifications: Sciigoj
- public: Publikaj tempolinioj
+ public: Publika templinio
thread: Konversacioj
edit:
title: Ŝanĝi filtrilojn
@@ -556,34 +626,50 @@ eo:
title: Filtriloj
new:
title: Aldoni novan filtrilon
- followers:
- domain: Domajno
- explanation_html: Se vi volas esti certa pri la privateco de viaj mesaĝoj, vi bezonas esti atenta pri tiuj, kiuj sekvas vin.
Viaj privataj mesaĝoj estas liveritaj al ĉiuj nodoj, kie vi havas sekvantojn. Eble vi ŝatus kontroli ilin, kaj forigi la sekvantojn de la nodoj, kie vi ne certas ĉu via privateco estos respektita de la tiea teamo aŭ programo.
- followers_count: Nombro de sekvantoj
- lock_link: Ŝlosu vian konton
- purge: Forigi el la sekvantoj
- success:
- one: Forigado de sekvantoj el iu domajno...
- other: Forigado de sekvantoj el %{count} domajnoj...
- true_privacy_html: Bonvolu atenti, ke
vera privateco povas esti atingita nur per ĉifrado de komenco al fino.
- unlocked_warning_html: Iu ajn povas eksekvi vin por tuj vidi viajn privatajn mesaĝojn. %{lock_link} por povi akcepti kaj rifuzi petojn de sekvado.
- unlocked_warning_title: Via konto ne estas ŝlosita
footer:
developers: Programistoj
more: Pli…
resources: Rimedoj
generic:
+ all: Ĉio
changes_saved_msg: Ŝanĝoj sukcese konservitaj!
copy: Kopii
+ order_by: Ordigi de
save_changes: Konservi ŝanĝojn
validation_errors:
one: Io mise okazis! Bonvolu konsulti la suban erar-raporton
other: Io mise okazis! Bonvolu konsulti la subajn %{count} erar-raportojn
+ html_validator:
+ invalid_markup: 'havas malvalida HTML markado: %{error}'
+ identity_proofs:
+ active: Aktiva
+ authorize: Jes, permesi
+ authorize_connection_prompt: Permesi ĉi tiu ĉifrikan conekton?
+ errors:
+ failed: La ĉifrika conekto nefaris. Peti provu denove el %{provider}.
+ keybase:
+ invalid_token: Keybase signo estas haŝoj de subskribo kaj devi 66 deksesuma leteroj
+ verification_failed: Keybase ne rekoni ĉi tiu signo kiel subskribo de Keybase uzanto %{kb_username}. Peti provu denove el Keybase.
+ wrong_user: Ne povas krei por %{proving} dum ensalutis kiel %{current}. Ensaluti kiel %{proving} kaj provu denove.
+ explanation_html: Ĉi tie vi povas ĉifrika konekti via alia identicoj, kiel Keybase profilon. ĉi tiu igi aliaj popoloj sendi al vi ĉifritaj mesaĝoj kaj fidi kontento vi sendi al ilin.
+ i_am_html: Mi estas %{username} en %{service}.
+ identity: Identeco
+ inactive: Malaktiva
+ publicize_checkbox: 'And toot this:'
+ publicize_toot: 'It is proven! I am %{username} on %{service}: %{url}'
+ status: Confirmo statuso
+ view_proof: Vidi pruvo
imports:
- preface: Vi povas importi datumojn, kiujn vi eksportis el alia nodo, kiel liston de homoj, kiujn vi sekvas aŭ blokas.
+ modes:
+ merge: Kunigi
+ merge_long: Konservi ekzistajn registrojn kaj aldoni novajn
+ overwrite: Anstataŭigi
+ overwrite_long: Anstataŭigi la nunajn registrojn per la novaj
+ preface: Vi povas importi datumojn, kiujn vi eksportis el alia servilo, kiel liston de homoj, kiujn vi sekvas aŭ blokas.
success: Viaj datumoj estis sukcese alŝutitaj kaj estos traktitaj kiel planite
types:
blocking: Listo de blokitoj
+ domain_blocking: Listo de blokitaj domajnoj
following: Listo de sekvatoj
muting: Listo de silentigitoj
upload: Alŝuti
@@ -605,7 +691,7 @@ eo:
one: 1 uzo
other: "%{count} uzoj"
max_uses_prompt: Neniu limo
- prompt: Krei kaj diskonigi ligilojn al aliaj por doni aliron al ĉi tiu nodo
+ prompt: Krei kaj diskonigi ligilojn al aliaj por doni aliron al ĉi tiu servilo
table:
expires_at: Eksvalidiĝas je
uses: Uzoj
@@ -675,21 +761,59 @@ eo:
older: Malpli nova
prev: Antaŭa
truncate: "…"
+ polls:
+ errors:
+ already_voted: Vi jam voĉdonis al ĉi tiu enketa
+ duplicate_options: enhavas duoblaĵojn
+ duration_too_long: estas tro for en la estonteco
+ duration_too_short: estas tro frue
+ expired: La enketo jam finiĝis
+ over_character_limit: ne povas esti po pli longa ol %{max} signoj
+ too_few_options: devas enhavi pli da unu propono
+ too_many_options: ne povas enhavi pli da %{max} proponoj
preferences:
languages: Lingvoj
other: Aliaj aferoj
publishing: Publikado
web: Reto
+ relationships:
+ activity: Account activity
+ dormant: Dormant
+ last_active: Last active
+ most_recent: Most recent
+ moved: Moved
+ mutual: Mutual
+ primary: Primary
+ relationship: Relationship
+ remove_selected_domains: Remove all followers from the selected domains
+ remove_selected_followers: Remove selected followers
+ remove_selected_follows: Unfollow selected users
+ status: Account status
remote_follow:
acct: Enmetu vian uzantnomo@domajno de kie vi volas agi
missing_resource: La URL de plusendado ne estis trovita
no_account_html: Ĉu vi ne havas konton? Vi povas
registriĝi tie
proceed: Daŭrigi por eksekvi
prompt: 'Vi eksekvos:'
+ reason_html: "
Kial necesas ĉi tiu paŝo?%{instance}
povus ne esti la servilo, kie vi registriĝis, do ni unue bezonas alidirekti vin al via hejma servilo."
+ remote_interaction:
+ favourite:
+ proceed: Konfirmi la stelumon
+ prompt: 'Vi volas stelumi ĉi tiun mesaĝon:'
+ reblog:
+ proceed: Konfirmi la diskonigon
+ prompt: 'Vi volas diskonigi ĉi tiun mesaĝon:'
+ reply:
+ proceed: Konfirmi la respondon
+ prompt: 'Vi volas respondi al ĉi tiu mesaĝo:'
remote_unfollow:
error: Eraro
title: Titolo
unfollowed: Ne plu sekvita
+ scheduled_statuses:
+ over_daily_limit: Vi transpasis la limigon al %{limit} samtage planitaj mesaĝoj
+ over_total_limit: Vi transpasis la limigon al %{limit} planitaj mesaĝoj
+ too_soon: La planita dato devas esti en la estonteco
sessions:
activity: Lasta ago
browser: Retumilo
@@ -738,14 +862,14 @@ eo:
development: Evoluigado
edit_profile: Redakti profilon
export: Eksporti datumojn
- followers: Rajtigitaj sekvantoj
+ featured_tags: Elstarigitaj kradvortoj
+ identity_proofs: Identity proofs
import: Importi
migrate: Konta migrado
notifications: Sciigoj
preferences: Preferoj
- settings: Agordoj
+ relationships: Follows and followers
two_factor_authentication: Dufaktora aŭtentigo
- your_apps: Viaj aplikaĵoj
statuses:
attached:
description: 'Ligita: %{attached}'
@@ -768,6 +892,11 @@ eo:
ownership: Mesaĝo de iu alia ne povas esti alpinglita
private: Mesaĝo nepublika ne povas esti alpinglita
reblog: Diskonigo ne povas esti alpinglita
+ poll:
+ total_votes:
+ one: "%{count} voĉdono"
+ other: "%{count} voĉdonoj"
+ vote: Voĉdoni
show_more: Montri pli
sign_in_to_participate: Ensaluti por partopreni en la konversacio
title: '%{name}: "%{quote}"'
@@ -777,7 +906,7 @@ eo:
public: Publika
public_long: Ĉiuj povas vidi
unlisted: Nelistigita
- unlisted_long: Ĉiuj povas vidi, sed nelistigita en publikaj tempolinioj
+ unlisted_long: Ĉiuj povas vidi, sed nelistigita en publikaj templinioj
stream_entries:
pinned: Alpinglita
reblogged: diskonigita
@@ -785,9 +914,9 @@ eo:
terms:
title: Uzkondiĉoj kaj privateca politiko de %{instance}
themes:
- contrast: Forta kontrasto
- default: Mastodon
- mastodon-light: Mastodon (hela)
+ contrast: Mastodon (Forta kontrasto)
+ default: Mastodon (Malluma)
+ mastodon-light: Mastodon (Luma)
time:
formats:
default: "%Y-%m-%d %H:%M"
@@ -813,20 +942,36 @@ eo:
explanation: Vi petis kompletan arkivon de via Mastodon-konto. Ĝi nun pretas por elŝutado!
subject: Via arkivo estas preta por elŝutado
title: Arkiva elŝuto
+ warning:
+ explanation:
+ disable: Dum via konto estas frostigita, via kontaj datumoj restas intaktaj, sed vi ne povas plenumi iujn agojn ĝis ĝi estas malhaltigita.
+ silence: Dum via konto estas limigita, nur tiuj, kiuj jam sekvas vin, vidos viajn mesaĝojn en ĉi tiu servilo, kaj vi povus esti ekskludita de diversaj publikaj listoj. Tamen, aliaj ankoraŭ povas mane sekvi vin.
+ suspend: Via konto estis haltigita, kaj ĉiuj el viaj mesaĝoj kaj alŝutitaj aŭdovidaj dosieroj estis nemalfareble forigitaj de ĉi tiu servilo, kaj de la serviloj, kie vi havis sekvantojn.
+ review_server_policies: Superrigardi servilajn politikojn
+ subject:
+ disable: Via konto %{acct} estas frostigita
+ none: Averto por %{acct}
+ silence: Via konto %{acct} estas limigita
+ suspend: Via konto %{acct} estas haltigita
+ title:
+ disable: Konto frostigita
+ none: Averto
+ silence: Konto limigita
+ suspend: Konto haltigita
welcome:
edit_profile_action: Agordi profilon
edit_profile_step: Vi povas proprigi vian profilon per alŝuto de profilbildo, fonbildo, ŝanĝo de via afiŝita nomo kaj pli. Se vi ŝatus kontroli novajn sekvantojn antaŭ ol ili rajtas sekvi vin, vi povas ŝlosi vian konton.
explanation: Jen kelkaj konsiloj por helpi vin komenci
final_action: Ekmesaĝi
- final_step: 'Ekmesaĝu! Eĉ sen sekvantoj, viaj publikaj mesaĝoj povas esti vidataj de aliaj, ekzemple en la loka tempolinio kaj en la kradvortoj. Eble vi ŝatus prezenti vin per la kradvorto #introductions.'
+ final_step: 'Ekmesaĝu! Eĉ sen sekvantoj, viaj publikaj mesaĝoj povas esti vidataj de aliaj, ekzemple en la loka templinio kaj en la kradvortoj. Eble vi ŝatus prezenti vin per la kradvorto #introductions.'
full_handle: Via kompleta uzantnomo
- full_handle_hint: Jen kion vi dirus al viaj amikoj, por ke ili mesaĝu aŭ sekvu vin de alia nodo.
+ full_handle_hint: Jen kion vi dirus al viaj amikoj, por ke ili mesaĝu aŭ sekvu vin de alia servilo.
review_preferences_action: Ŝanĝi preferojn
review_preferences_step: Estu certa ke vi agordis viajn preferojn, kiel kiujn retmesaĝojn vi ŝatus ricevi, aŭ kiun dekomencan privatecan nivelon vi ŝatus ke viaj mesaĝoj havu. Se tio ne ĝenas vin, vi povas ebligi aŭtomatan ekigon de GIF-oj.
subject: Bonvenon en Mastodon
- tip_federated_timeline: La fratara tempolinio estas antaŭvido de la reto de Mastodon. Sed ĝi enhavas nur homojn, kiuj estas sekvataj de aliaj homoj de via nodo, do ĝi ne estas kompleta.
- tip_following: Vi dekomence sekvas la administrantojn de via servilo. Por trovi pli da interesaj homoj, rigardu la lokan kaj frataran tempoliniojn.
- tip_local_timeline: La loka tempolinio estas antaŭvido de la homoj en %{instance}. Ĉi tiuj estas viaj apudaj najbaroj!
+ tip_federated_timeline: La fratara templinio estas antaŭvido de la reto de Mastodon. Sed ĝi enhavas nur homojn, kiuj estas sekvataj de aliaj homoj de via nodo, do ĝi ne estas kompleta.
+ tip_following: Vi dekomence sekvas la administrantojn de via servilo. Por trovi pli da interesaj homoj, rigardu la lokan kaj frataran templiniojn.
+ tip_local_timeline: La loka templinio estas antaŭvido de la homoj en %{instance}. Ĉi tiuj estas viaj apudaj najbaroj!
tip_mobile_webapp: Se via telefona retumilo proponas al vi aldoni Mastodon al via hejma ekrano, vi povas ricevi puŝsciigojn. Tio multmaniere funkcias kiel operaciuma aplikaĵo!
tips: Konsiloj
title: Bonvenon, %{name}!
@@ -838,4 +983,5 @@ eo:
seamless_external_login: Vi estas ensalutinta per ekstera servo, do pasvortaj kaj retadresaj agordoj ne estas disponeblaj.
signed_in_as: 'Ensalutinta kiel:'
verification:
+ explanation_html: 'Vi povas
pruvi, ke vi estas la posedanto de la ligiloj en viaj profilaj metadatumoj. Por fari tion, la alligita retejo devas enhavi ligilon reen al via Mastodon-profilo. La religilo
devas havi la atributon
rel="me"
. Ne gravas la teksta enhavo de la religilo. Jen ekzemplo:'
verification: Kontrolo
diff --git a/config/locales/es.yml b/config/locales/es.yml
index b221989e8..3a8e8dc0b 100644
--- a/config/locales/es.yml
+++ b/config/locales/es.yml
@@ -7,7 +7,6 @@ es:
administered_by: 'Administrado por:'
api: API
apps: Aplicaciones móviles
- closed_registrations: Los registros están actualmente cerrados en esta instancia.
contact: Contacto
contact_missing: No especificado
contact_unavailable: N/A
@@ -15,19 +14,9 @@ es:
extended_description_html: |
Un buen lugar para las reglas
La descripción extendida no se ha colocado aún.
- features:
- humane_approach_body: Aprendiendo de los errores de otras redes, Mastodon apunta a las decisiones de diseño ético para combatir el desuso de las redes sociales.
- humane_approach_title: Una misión más humana
- not_a_product_body: Mastodon no es una red comercial. Nada de publicidad, nada de minado de datos, nada de jardines murados. No hay ninguna autoridad central.
- not_a_product_title: Eres una persona, no un producto
- real_conversation_body: Con 500 caracteres a tu disposición y soporte para contenido granular y advertencias de contenido, puedes expresarte como quieras.
- real_conversation_title: Hecho para verdaderas conversaciones
- within_reach_body: Aplicaciones múltiples para iOS, Android, y otras plataformas gracias a un ecosistema de APIs amigable al desarrollador para permitirte estar con tus amigos donde sea.
- within_reach_title: Siempre al alcance
generic_description: "%{domain} es un servidor en la red"
hosted_on: Mastodon hosteado en %{domain}
learn_more: Aprende más
- other_instances: Otras instancias
privacy_policy: Política de privacidad
source_code: Código fuente
status_count_after:
@@ -48,6 +37,7 @@ es:
other: Seguidores
following: Siguiendo
joined: Se unió el %{date}
+ last_active: última conexión
link_verified_on: La propiedad de este vínculo fue verificada el %{date}
media: Media
moved_html: "%{name} se ha trasladado a %{new_profile_link}:"
@@ -69,6 +59,8 @@ es:
moderator: Moderador
unfollow: Dejar de seguir
admin:
+ account_actions:
+ title: Moderar %{acct}
account_moderation_notes:
create: Crear
created_msg: "¡Nota de moderación creada con éxito!"
@@ -88,6 +80,7 @@ es:
confirm: Confirmar
confirmed: Confirmado
confirming: Confirmando
+ deleted: Borrado
demote: Degradar
disable: Deshabilitar
disable_two_factor_authentication: Desactivar autenticación de dos factores
@@ -103,7 +96,9 @@ es:
followers: Seguidores
followers_url: URL de los seguidores
follows: Sigue
+ header: Cabecera
inbox_url: URL de la bandeja de entrada
+ invited_by: Invitado por
ip: IP
location:
all: Todos
@@ -114,6 +109,7 @@ es:
media_attachments: Multimedia
memorialize: Convertir en memorial
moderation:
+ active: Activo
all: Todos
silenced: Silenciados
suspended: Suspendidos
@@ -373,9 +369,6 @@ es:
min_invite_role:
disabled: Nadie
title: Permitir invitaciones de
- open:
- desc_html: Permite a cualquiera a registrar una cuenta
- title: Registro abierto
show_known_fediverse_at_about_page:
desc_html: Cuando esté activado, se mostrarán toots de todo el fediverso conocido en la vista previa. En otro caso, se mostrarán solamente toots locales.
title: Mostrar fediverso conocido en la vista previa de la historia
@@ -444,7 +437,6 @@ es:
warning: Ten mucho cuidado con estos datos. ¡No los compartas con nadie!
your_token: Tu token de acceso
auth:
- agreement_html: Al hacer click en "Registrarse" acepta seguir
las reglas de la instancia y
nuestros términos de servicio.
change_password: Contraseña
confirm_email: Confirmar email
delete_account: Borrar cuenta
@@ -456,13 +448,11 @@ es:
logout: Cerrar sesión
migrate_account: Mudarse a otra cuenta
migrate_account_html: Si deseas redireccionar esta cuenta a otra distinta, puedes
configurarlo aquí.
- or: o
or_log_in_with: O inicia sesión con
providers:
cas: CAS
saml: SAML
register: Registrarse
- register_elsewhere: Registrarse en otro servidor
resend_confirmation: Volver a enviar el correo de confirmación
reset_password: Restablecer contraseña
security: Cambiar contraseña
@@ -541,18 +531,6 @@ es:
title: Filtros
new:
title: Añadir un nuevo filtro
- followers:
- domain: Dominio
- explanation_html: Si deseas asegurar la privacidad de tus estados, tienes que cuidarte de quién te sigue.
Tus estados privados son enviados a todas las instancias de tus seguidores. Puede que desees revisarlas, y remover seguidores si no confías en tu privacidad para ser respetado por el staff o software de esas instancias.
- followers_count: Número de seguidores
- lock_link: Bloquear tu cuenta
- purge: Remover de los seguidores
- success:
- one: En el proceso de bloquear suavemente usuarios de un solo dominio...
- other: En el proceso de bloquear suavemente usuarios de %{count} dominios...
- true_privacy_html: Por favor ten en cuenta que
la verdadera privacidad se consigue con encriptación de punto a punto.
- unlocked_warning_html: Todos pueden seguirte para ver tus estados privados inmediatamente. %{lock_link} para poder chequear y rechazar seguidores.
- unlocked_warning_title: Tu cuenta no está bloqueada
footer:
developers: Desarrolladores
more: Mas…
@@ -723,14 +701,11 @@ es:
development: Desarrollo
edit_profile: Editar perfil
export: Exportar información
- followers: Seguidores autorizados
import: Importar
migrate: Migración de cuenta
notifications: Notificaciones
preferences: Preferencias
- settings: Ajustes
two_factor_authentication: Autenticación de dos factores
- your_apps: Tus aplicaciones
statuses:
attached:
description: 'Adjunto: %{attached}'
diff --git a/config/locales/eu.yml b/config/locales/eu.yml
index 6abf15201..5ae664cad 100644
--- a/config/locales/eu.yml
+++ b/config/locales/eu.yml
@@ -7,7 +7,6 @@ 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.
contact: Kontaktua
contact_missing: Ezarri gabe
contact_unavailable: E/E
@@ -15,19 +14,9 @@ eu:
extended_description_html: |
Arauentzako toki egoki bat
Azalpen luzea ez da ezarri oraindik.
- features:
- humane_approach_body: Beste sareen akatsetatik ikasiz, Mastodon diseinu erabaki etikoak hartzen saiatzen da gizarte sareen erabilera okerrak borrokatzeko.
- humane_approach_title: Ikuspuntu humanoago bat
- not_a_product_body: Mastodon ez da sare komertzial bat. Ez du iragarkirik, eta ditu datuak mehatzen, ez da hormaz babestutako lorategi bat. Ez dago autoritate zentralik.
- not_a_product_title: Pertsona bat zara, ez produktu bat
- real_conversation_body: 500 karaktere dituzu eskura, edukia xehetasunez kudeatu daiteke eta multimediari abisuak jarri, adierazi zure burua zure erara.
- real_conversation_title: Egiazko elkarrizketarako eraikia
- within_reach_body: iOS, Android eta beste plataformetarako aplikazio ugari, eta garatzaileentzako erabilterraza den API ekosistema bati esker beste plataforma batzuetako lagunekin aritzeko aukera.
- within_reach_title: Beti eskura
generic_description: "%{domain} sareko zerbitzari bat da"
hosted_on: Mastodon %{domain} domeinuan ostatatua
learn_more: Ikasi gehiago
- other_instances: Instantzien zerrenda
privacy_policy: Pribatutasun politika
source_code: Iturburu kodea
status_count_after:
@@ -92,6 +81,7 @@ eu:
confirm: Berretsi
confirmed: Berretsita
confirming: Berresten
+ deleted: Ezabatua
demote: Jaitsi mailaz
disable: Desgaitu
disable_two_factor_authentication: Desgaitu 2FA
@@ -109,7 +99,9 @@ eu:
follows: Jarraitzen du
header: Goiburua
inbox_url: Sarrera ontziaren URL-a
+ invited_by: 'Honek gonbidatua:'
ip: IP
+ joined: Elkartuta
location:
all: Denak
local: Lokala
@@ -136,7 +128,7 @@ 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:
@@ -156,8 +148,8 @@ eu:
search: Bilatu
shared_inbox_url: Partekatutako sarrera ontziaren URL-a
show:
- created_reports: Kontu honek sortutako txostenak
- targeted_reports: Kontu honek egindako salaketak
+ created_reports: Sortutako txostenak
+ targeted_reports: Besteen salaketak
silence: Isilarazi
silenced: Isilarazita
statuses: Mezuak
@@ -169,6 +161,7 @@ eu:
undo_suspension: Desegin kanporatzea
unsubscribe: Kendu harpidetza
username: Erabiltzaile-izena
+ warn: Abisatu
web: Web
action_logs:
actions:
@@ -252,7 +245,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
@@ -264,11 +257,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
+ rejecting_media: errefusatu multimedia fitxategiak
+ rejecting_reports: txostenak errefusatzen
+ severity:
+ silence: isilarazia
+ suspend: kanporatua
show:
affected_accounts:
one: Datu-baseko kontu bati eragiten dio
@@ -278,7 +276,7 @@ eu:
suspend: Kendu kanporatzeko agindua domeinu honetako kontu guztiei
title: Desegin %{domain} domeinuko blokeoa
undo: Desegin
- undo: Desegin
+ undo: Desegin domeinuaren blokeoa
email_domain_blocks:
add_new: Gehitu berria
created_msg: Ongi gehitu da e-mail helbidea domeinuen zerrenda beltzera
@@ -293,7 +291,20 @@ eu:
back_to_account: Itzuli kontura
title: "%{acct} kontuaren jarraitzaileak"
instances:
- 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:
@@ -364,14 +375,14 @@ 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
@@ -388,9 +399,6 @@ eu:
min_invite_role:
disabled: Inor ez
title: Baimendu hauen gobidapenak
- open:
- desc_html: Baimendu edonori kontu bat sortzea
- title: Ireki izen ematea
show_known_fediverse_at_about_page:
desc_html: Txandakatzean, fedibertsu ezagun osoko toot-ak bistaratuko ditu aurrebistan. Bestela, toot lokalak besterik ez ditu erakutsiko.
title: Erakutsi fedibertsu ezagun osoko denbora-lerroa aurrebistan
@@ -399,20 +407,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
@@ -473,7 +481,6 @@ 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.'
change_password: Pasahitza
confirm_email: Berretsi e-mail helbidea
delete_account: Ezabatu kontua
@@ -485,13 +492,11 @@ eu:
logout: Amaitu saioa
migrate_account: Lekualdatu beste kontu batera
migrate_account_html: Kontu hau beste batera birbideratu nahi baduzu,
hemen konfiguratu dezakezu.
- or: edo
or_log_in_with: Edo hasi saioa honekin
providers:
cas: CAS
saml: SAML
register: Eman izena
- register_elsewhere: Eman izena beste zerbitzari batean
resend_confirmation: Birbidali berresteko argibideak
reset_password: Berrezarri pasahitza
security: Segurtasuna
@@ -527,19 +532,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
@@ -558,9 +566,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
@@ -577,18 +591,6 @@ eu:
title: Iragazkiak
new:
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.
- followers_count: Jarraitzaile kopurua
- lock_link: Giltzapetu zure kontua
- purge: Kendu jarraitzaileetatik
- success:
- one: Domeinu bateko jarraitzaileei blokeo leuna ezartzen...
- other: "%{count} domeinuetako jarraitzaileei blokeo leuna ezartzen..."
- true_privacy_html: Kontuan izan
egiazko pribatutasuna lortzeko muturretik muturrerako zifratzea ezinbestekoa dela.
- unlocked_warning_html: Edonork jarraitu zaitzake eta berehala zure mezu pribatuak ikusi. %{lock_link} jarraitzaileak berrikusi eta ukatu ahal izateko.
- unlocked_warning_title: Zure kontua ez dago giltzapetuta
footer:
developers: Garatzaileak
more: Gehiago…
@@ -601,10 +603,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
@@ -626,7 +634,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
@@ -707,10 +715,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:
+ 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
@@ -759,14 +782,12 @@ eu:
development: Garapena
edit_profile: Aldatu profila
export: Datuen esportazioa
- followers: Baimendutako jarraitzaileak
+ featured_tags: Nabarmendutako traolak
import: Inportazioa
migrate: Kontuaren migrazioa
notifications: Jakinarazpenak
preferences: Hobespenak
- settings: Ezarpenak
two_factor_authentication: Bi faktoreetako autentifikazioa
- your_apps: Zure aplikazioak
statuses:
attached:
description: 'Erantsita: %{attached}'
@@ -887,9 +908,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"
@@ -919,15 +940,18 @@ eu:
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.
@@ -935,7 +959,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 e7dd86025..3a3455c6d 100644
--- a/config/locales/fa.yml
+++ b/config/locales/fa.yml
@@ -4,36 +4,36 @@ fa:
about_hashtag_html: اینها نوشتههای عمومی هستند که برچسب (هشتگ)
#%{hashtag} را دارند. اگر شما روی هر سروری حساب داشته باشید میتوانید به این نوشتهها واکنش نشان دهید.
about_mastodon_html: ماستدون (Mastodon) یک شبکهٔ اجتماعی است که بر اساس پروتکلهای آزاد وب و نرمافزارهای آزاد و کدباز ساخته شده است. این شبکه مانند ایمیل غیرمتمرکز است.
about_this: درباره
+ active_count_after: فعال
+ active_footnote: کاربران فعال در ماه گذشته
administered_by: 'با مدیریت:'
api: رابط برنامهنویسی کاربردی
apps: اپهای موبایل
- closed_registrations: ثبتنام روی این سرور هماینک فعال نیست. اما شما میتوانید سرور دیگری بیابید و با حسابی که آنجا میسازید دقیقاً به همین شبکه دسترسی داشته باشید.
+ apps_platforms: ماستدون را در iOS، اندروید، و سایر سیستمها داشته باشید
+ browse_directory: در فهرست گزیدهٔ کاربران این سرور چرخی بزنید و کاربران را بر اساس علاقهمندیهایشان پیدا کنید
+ browse_public_posts: فهرست لحظهای نوشتههای عمومی در ماستدون را ببینید
contact: تماس
contact_missing: تعیین نشده
contact_unavailable: موجود نیست
+ discover_users: یافتن کاربران
documentation: مستندات
extended_description_html: |
جای خوبی برای قانونها
توضیحات تکمیلی نوشته نشده است.
- features:
- humane_approach_body: با آموختن از کاستیهای شبکههای دیگر، ماستدون میخواهد به کمک انتخابهای اخلاقیتر در طراحی خودش با آسیبهای شبکههای اجتماعی مبارزه کند.
- humane_approach_title: رویکردی انسانیتر
- not_a_product_body: ماستدون یک شبکهٔ تجاری نیست. بدون تبلیغات، بدون دادهکاوی، بدون حصارکشی. هیچ قدرت مرکزیای وجود ندارد.
- not_a_product_title: شما یک انسان هستید، نه یک محصول
- real_conversation_body: با ۵۰۰ نویسه برای هر نوشته و با پشتیبانی از هشدارهای موردی برای نوشتهها و تصاویر، میتوانید خود را همان گونه که میخواهید ابراز کنید.
- real_conversation_title: برای گفتگوهای واقعی
- within_reach_body: اپهای متنوع برای iOS، اندروید، و سیستمهای دیگر به خاطر وجود یک اکوسیستم API دوستانه برای برنامهنویسان. از همه جا با دوستان خود ارتباط داشته باشید.
- within_reach_title: همیشه در دسترس
+ federation_hint_html: با داشتن حساب روی %{instance} میتوانید کاربران همهٔ سرورهای دیگر ماستدون (و سایر شبکههای سازگار با آن) را پی بگیرید.
generic_description: "%{domain} یک سرور روی شبکه است"
+ get_apps: یک اپ موبایل را امتحان کنید
hosted_on: ماستدون، میزبانیشده روی %{domain}
learn_more: بیشتر بدانید
- other_instances: فهرست سرورها
privacy_policy: سیاست رازداری
+ see_whats_happening: ببینید چه خبر است
+ server_stats: 'آمار سرور:'
source_code: کدهای منبع
status_count_after:
one: چیز نوشتهاند
other: چیز نوشتهاند
status_count_before: که در کنار هم
+ tagline: با دوستان خود در ارتباط باشید و دوستان تازه پیدا کنید
terms: شرایط کاربری
user_count_after:
one: کاربر
@@ -48,6 +48,7 @@ fa:
other: پیگیر
following: پی میگیرد
joined: کاربر از %{date}
+ last_active: آخرین فعالیت
link_verified_on: مالکیت این نشانی در تاریخ %{date} بررسی شد
media: عکس و ویدیو
moved_html: "%{name} حساب خود را به %{new_profile_link} منتقل کرده است:"
@@ -60,7 +61,7 @@ fa:
posts:
one: بوق
other: بوق
- posts_tab_heading: بوقها
+ posts_tab_heading: نوشتهها
posts_with_replies: نوشتهها و پاسخها
reserved_username: این نام کاربری در دسترس نیست
roles:
@@ -69,12 +70,16 @@ fa:
moderator: ناظم
unfollow: پایان پیگیری
admin:
+ account_actions:
+ action: انجام تغییر
+ title: انجام تغییر مدیریتی روی %{acct}
account_moderation_notes:
create: افزودن یادداشت
created_msg: یادداشت مدیر با موفقیت ساخته شد!
delete: پاک کردن
destroyed_msg: یادداشت مدیر با موفقیت پاک شد!
accounts:
+ approve: پذیرفتن
are_you_sure: آیا مطمئن هستید؟
avatar: تصویر نمایه
by_domain: دامین
@@ -88,6 +93,7 @@ fa:
confirm: تأیید
confirmed: تأیید شد
confirming: تأیید
+ deleted: پاکشده
demote: تنزلدادن
disable: غیرفعال
disable_two_factor_authentication: غیرفعالسازی ورود دومرحلهای
@@ -103,8 +109,11 @@ fa:
followers: پیگیران
followers_url: نشانی پیگیران
follows: پی میگیرد
+ header: زمینه
inbox_url: نشانی صندوق ورودی
+ invited_by: دعوتشده از طرف
ip: IP
+ joined: عضویت از
location:
all: همه
local: محلی
@@ -114,7 +123,9 @@ fa:
media_attachments: ضمیمههای تصویری
memorialize: تبدیل به یادمان
moderation:
+ active: فعال
all: همه
+ pending: در انتظار
silenced: بیصدا شده
suspended: معلق شده
title: وضعیت
@@ -124,14 +135,17 @@ fa:
no_limits_imposed: بدون محدودیت
not_subscribed: عضو نیست
outbox_url: نشانی صندوق خروجی
+ pending: در انتظار بررسی
perform_full_suspension: تعلیق
profile_url: نشانی نمایه
promote: ترفیعدادن
protocol: پروتکل
public: عمومی
push_subscription_expires: عضویت از راه PuSH منقضی شد
- redownload: بهروزرسانی تصویر نمایه
+ redownload: بهروزرسانی نمایه
+ reject: نپذیرفتن
remove_avatar: حذف تصویر نمایه
+ remove_header: برداشتن تصویر زمینه
resend_confirmation:
already_confirmed: این کاربر قبلا تایید شده است
send: ایمیل تایید را دوباره بفرستید
@@ -149,8 +163,8 @@ fa:
search: جستجو
shared_inbox_url: نشانی صندوق ورودی مشترک
show:
- created_reports: گزارشها از طرف این حساب
- targeted_reports: گزارشها دربارهٔ این حساب
+ created_reports: گزارشهای ثبت کرده
+ targeted_reports: گزارشهای دیگران
silence: بیصدا
silenced: بیصداشده
statuses: نوشتهها
@@ -162,12 +176,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} را مسدود کرد"
@@ -226,6 +242,7 @@ fa:
config: پیکربندی
feature_deletions: حسابهای حذفشده
feature_invites: دعوتنامهها
+ feature_profile_directory: فهرست گزیدهٔ کاربران
feature_registrations: ثبتنامها
feature_relay: رله
features: ویژگیها
@@ -243,7 +260,7 @@ fa:
week_users_active: کاربران فعال هفتهٔ اخیر
week_users_new: کاربران هفتهٔ اخیر
domain_blocks:
- add_new: افزودن تازه
+ add_new: افزودن مسدودسازی دامین تازه
created_msg: مسدودکردن دامین در حال انجام است
destroyed_msg: مسدودکردن دامین واگردانده شد
domain: دامین
@@ -260,6 +277,11 @@ fa:
reject_media_hint: تصویرهای ذخیرهشده در اینجا را پاک میکند و جلوی دریافت تصویرها را در آینده میگیرد. بیتأثیر برای معلقشدهها
reject_reports: نپذیرفتن گزارشها
reject_reports_hint: گزارشهایی را که از این دامین میآید نادیده میگیرد. بیتأثیر برای معلقشدهها
+ rejecting_media: رسانهها نادیده گرفته میشوند
+ rejecting_reports: گزارشها نادیده گرفته میشوند
+ severity:
+ silence: بیصداشده
+ suspend: معلقشده
show:
affected_accounts:
one: روی یک حساب در پایگاه داده تأثیر گذاشت
@@ -269,7 +291,7 @@ fa:
suspend: معلقشدن همهٔ حسابهای این دامین را لغو کن
title: واگردانی مسدودسازی دامنه برای %{domain}
undo: واگردانی
- undo: واگردانی
+ undo: واگردانی مسدودسازی دامین
email_domain_blocks:
add_new: افزودن تازه
created_msg: مسدودسازی دامین ایمیل با موفقیت ساخته شد
@@ -280,8 +302,25 @@ fa:
create: ساختن مسدودسازی
title: مسدودسازی دامین ایمیل تازه
title: مسدودسازی دامینهای ایمیل
+ followers:
+ back_to_account: بازگشت به حساب
+ title: پیگیران %{acct}
instances:
- title: سرورهای شناختهشده
+ by_domain: دامین
+ 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:
@@ -363,6 +402,9 @@ fa:
preview_sensitive_media:
desc_html: پیوند به سایتهای دیگر پیشنمایشی خواهد داشت که یک تصویر کوچک را نشان میدهد، حتی اگر نوشته به عنوان حساس علامتگذاری شده باشد
title: نمایش تصاویر حساسیتبرانگیز در پیشنمایشهای OpenGraph
+ profile_directory:
+ desc_html: به کاربران اجازه دهید تا بتوانند خود را روی فهرست گزیدهٔ کاربران این سرور نمایش دهند
+ title: فعالسازی فهرست گزیدهٔ کاربران
registrations:
closed_message:
desc_html: وقتی امکان ثبت نام روی سرور فعال نباشد در صفحهٔ اصلی نمایش مییابد
میتوانید HTML بنویسید
@@ -373,9 +415,12 @@ fa:
min_invite_role:
disabled: هیچ کس
title: اجازهٔ دعوت به
- open:
- desc_html: همه بتوانند حساب باز کنند
- title: امکان ثبت نام
+ registrations_mode:
+ modes:
+ approved: ثبت نام نیازمند تأیید مدیران است
+ none: کسی نمیتواند ثبت نام کند
+ open: همه میتوانند ثبت نام کنند
+ title: شرایط ثبت نام
show_known_fediverse_at_about_page:
desc_html: اگر انتخاب شود، بوقهای همهٔ سرورهای دیگر نیز در پیشنمایش این سرور نمایش مییابد. وگرنه فقط بوقهای محلی نشان داده میشوند.
title: نمایش سرورهای دیگر در پیشنمایش این سرور
@@ -383,21 +428,21 @@ fa:
desc_html: نمایش علامت همکار روی صفحهٔ کاربر
title: نمایش علامت همکار
site_description:
- desc_html: معرفی کوتاهی که روی صفحهٔ اصلی نمایش مییابد. دربارهٔ این که چه چیزی دربارهٔ این سرور ماستدون ویژه است یا هر چیز مهم دیگری بنویسید. میتوانید HTML بنویسید، بهویژه
<a>
و
<em>
.
- title: دربارهٔ سایت
+ desc_html: معرفی کوتاهی دربارهٔ رابط برنامهنویسی کاربردی. دربارهٔ این که چه چیزی دربارهٔ این سرور ماستدون ویژه است یا هر چیز مهم دیگری بنویسید. میتوانید HTML بنویسید، بهویژه
<a>
و
<em>
.
+ 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: نام سرور
thumbnail:
desc_html: برای دیدن با OpenGraph و رابط برنامهنویسی. وضوح پیشنهادی ۱۲۰۰×۶۳۰ پیکسل
- title: تصویر کوچک فوری
+ title: تصویر کوچک سرور
timeline_preview:
desc_html: نوشتههای عمومی این سرور را در صفحهٔ آغازین نشان دهید
title: پیشنمایش نوشتهها
@@ -422,8 +467,25 @@ 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_pending_account:
+ body: جزئیات حساب تازه اینجاست. شما میتوانید آن را تأیید یا رد کنید.
+ subject: حساب تازهای در %{instance} نیازمند بررسی است (%{username})
new_report:
body: کاربر %{reporter} کاربر %{target} را گزارش داد
body_remote: کسی از %{domain} گزارش %{target} را فرستاده
@@ -444,8 +506,9 @@ fa:
warning: خیلی مواظب این اطلاعات باشید و آن را به هیچ کس ندهید!
your_token: کد دسترسی شما
auth:
- agreement_html: با کلیک روی دکمهٔ عضو شدن، شما
قوانین این سرور و
شرایط استفادهٔ ما را میپذیرید.
+ apply_for_account: درخواست دعوتنامه
change_password: رمز
+ checkbox_agreement_html: من
قانونهای این سرور و
شرایط کاربری را میپذیرم
confirm_email: تأیید ایمیل
delete_account: پاککردن حساب
delete_account_html: اگر میخواهید حساب خود را پاک کنید، از
اینجا پیش بروید. از شما درخواست تأیید خواهد شد.
@@ -456,17 +519,17 @@ fa:
logout: خروج
migrate_account: نقل مکان به یک حساب دیگر
migrate_account_html: اگر میخواهید این حساب را به حساب دیگری منتقل کنید،
اینجا را کلیک کنید.
- or: یا
or_log_in_with: یا ورود به وسیلهٔ
providers:
cas: CAS
saml: SAML
register: عضو شوید
- register_elsewhere: ثبت نام روی یک سرور دیگر
+ registration_closed: سرور %{instance} عضو تازهای نمیپذیرد
resend_confirmation: راهنمایی برای تأیید را دوباره بفرست
reset_password: بازنشانی رمز
security: امنیت
set_new_password: تعیین رمز تازه
+ trouble_logging_in: برای ورود مشکلی دارید؟
authorize_follow:
already_following: شما همین الان هم این حساب را پیمیگیرید
error: متأسفانه حین یافتن آن حساب خطایی رخ داد
@@ -500,10 +563,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: تأیید امنیتی کار نکرد
@@ -512,6 +585,9 @@ fa:
content: شرمنده، یک چیزی از سمت ما اشتباه شده.
title: این صفحه درست نیست
noscript_html: برای استفاده از نسخهٔ تحت وب ماستدون، لطفاً جاوااسکریپت را فعال کنید. یا به جایش میتوانید
یک اپ ماستدون را بهکار ببرید.
+ existing_username_validator:
+ not_found: کاربری در این سرور با این نام کاربری پیدا نشد
+ not_found_multiple: "%{usernames} پیدا نشد"
exports:
archive_takeout:
date: تاریخ
@@ -522,9 +598,15 @@ fa:
size: اندازه
blocks: حسابهای مسدودشده
csv: CSV
+ domain_blocks: دامینهای مسدودشده
follows: حسابهای پیگرفته
+ lists: فهرستها
mutes: حسابهای بیصداشده
storage: تصویرهای ذخیرهشده
+ featured_tags:
+ add_new: افزودن تازه
+ errors:
+ limit: شما بیشترین تعداد مجاز برچسبها را دارید
filters:
contexts:
home: خانه
@@ -541,34 +623,46 @@ fa:
title: فیلترها
new:
title: افزودن فیلتر تازه
- followers:
- domain: دامین
- explanation_html: اگر میخواهید از خصوصیبودن نوشتههای خود مطمئن شوید، باید بدانید که چه کسانی پیگیر شما هستند.
نوشتههای خصوصی شما به همهٔ سرورهایی که در آنها پیگیر دارید فرستاده میشود. شاید بخواهید این سرورها را بررسی کنید، و اگر به مسئولان یا نرمافزارهای آنها در رعایت حریم خصوصی خود اعتماد ندارید، میتوانید آنها را حذف کنید.
- followers_count: تعداد پیگیران
- lock_link: حساب خود را خصوصی کنید
- purge: برداشتن پیگیری
- success:
- one: در حال انجام مسدودسازی نرم روی کاربران یک دامین...
- other: در حال انجام مسدودسازی نرم روی کاربران %{count} دامین...
- true_privacy_html: لطفاً بدانید که
داشتن حریم خصوصی واقعی تنها با رمزگذاری سرتاسر (end-to-end encryption) ممکن است.
- unlocked_warning_html: هر کسی میتواند پیگیر شما شود تا بلافاصله نوشتههای خصوصی شما را ببیند. اگر %{lock_link} خواهید توانست درخواستهای پیگیری را بررسی کرده و نپذیرید.
- unlocked_warning_title: حساب شما خصوصی نیست
footer:
developers: برنامهنویسان
more: بیشتر…
resources: منابع
generic:
+ all: همه
changes_saved_msg: تغییرات با موفقیت ذخیره شدند!
copy: رونوشت
save_changes: ذخیرهٔ تغییرات
validation_errors:
one: یک چیزی هنوز درست نیست! لطفاً خطاهای زیر را ببینید
other: یک چیزی هنوز درست نیست! لطفاً %{count} خطای زیر را ببینید
+ html_validator:
+ invalid_markup: 'دارای نشانهگذاری نامعتبر HTML است: %{error}'
+ identity_proofs:
+ active: فعال
+ authorize: بله، اجازه بده
+ authorize_connection_prompt: آیا اجازهٔ این ارتباط رمزگذاری را میدهید؟
+ errors:
+ failed: برقراری ارتباط رمزگذاری شکست خورد. لطفاً دوباره از %{provider} تلاش کنید.
+ keybase:
+ invalid_token: کدهای Keybase چکیده (هش) امضاهای دیجیتال هستند و دستکم ۶۶ نویسه در مبنای ۱۶ دارند
+ verification_failed: این کد را Keybase به عنوان امضای دیجیتال کاربر %{kb_username} تأیید نمیکند. لطفاً دوباره از Keybase تلاش کنید.
+ explanation_html: اینجا میتوانید به شناسههای دیگر خود مانند نمایهٔ Keybase خودتان به طور رمزنگارانه متصل شوید. با این کار دیگران میتوانند به شما پیغامهای رمزشده بفرستند و به چیزی که شما به آنها میفرستید اعتماد کنند.
+ i_am_html: من %{username} روی %{service} هستم.
+ identity: شناسه
+ inactive: غیرفعال
+ status: وضعیت تأیید
+ view_proof: دیدن مدرک
imports:
+ modes:
+ merge: ادغام
+ merge_long: دادههای فعلی را داشته باشید و دادههای تازهای بیفزایید
+ overwrite: بازنویسی
+ overwrite_long: دادههای فعلی را پاک کنید و دادههای تازهای بیفزایید
preface: شما میتوانید دادههایی از قبیل کاربرانی که پی میگرفتید یا مسدود میکردید را در حساب خود روی این سرور درونریزی کنید. برای این کار پروندههایی که از سرور دیگر برونسپاری کردهاید را بهکار ببرید.
success: دادههای شما با موفقیت بارگذاری شد و به زودی پردازش میشود
types:
blocking: فهرست مسدودشدهها
+ domain_blocking: فهرست دامینهای مسدودشده
following: فهرست پیگیریها
muting: فهرست بیصداشدهها
upload: بارگذاری
@@ -660,23 +754,59 @@ fa:
older: قدیمیتر
prev: قبلی
truncate: "…"
+ polls:
+ errors:
+ already_voted: شما قبلاً در این نظرسنجی رأی دادهاید
+ duplicate_options: دارای موارد تکراری است
+ duration_too_long: در آیندهٔ خیلی دور است
+ duration_too_short: در آیندهٔ خیلی نزدیک است
+ expired: این نظرسنجی به پایان رسیده است
+ over_character_limit: هر کدام نمیتواند از %{max} نویسه طولانیتر باشد
+ too_few_options: حتماً باید بیش از یک گزینه داشته باشد
+ too_many_options: نمیتواند بیشتر از %{max} گزینه داشته باشد
preferences:
languages: تنظیمات زبان
other: سایر تنظیمات
publishing: تنظیمات انتشار مطالب
web: وب
+ relationships:
+ activity: فعالیت حساب
+ dormant: غیرفعال
+ moved: منتقلشده
+ mutual: دوطرفه
+ primary: اصلی
+ relationship: رابطه
+ remove_selected_domains: همهٔ پیگیران از طرف این سرور را بردار
+ remove_selected_followers: پیگیران انتخابشده را بردار
+ remove_selected_follows: به پیگیری از کاربران انتخابشده پایان بده
+ status: وضعیت حساب
remote_follow:
acct: نشانی حساب username@domain خود را اینجا بنویسید
missing_resource: نشانی اینترنتی برای رسیدن به حساب شما پیدا نشد
no_account_html: هنوز عضو نیستید؟
اینجا میتوانید حساب باز کنید
proceed: درخواست پیگیری
prompt: 'شما قرار است این حساب را پیگیری کنید:'
+ reason_html: "
چرا این مرحله لازم است؟ ممکن است
%{instance}
سروری نباشد که شما روی آن حساب باز کردهاید، بنابراین ما باید پیش از هرچیز شما را به سرور خودتان منتقل کنیم."
+ remote_interaction:
+ 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
@@ -723,14 +853,14 @@ fa:
development: فرابری
edit_profile: ویرایش نمایه
export: برونسپاری دادهها
- followers: پیگیران مورد تأیید
+ featured_tags: برچسبهای منتخب
+ identity_proofs: مدرک شناسهها
import: درونریزی
migrate: انتقال حساب
notifications: اعلانها
preferences: ترجیحات
- settings: تنظیمات
+ relationships: پیگیریها و پیگیران
two_factor_authentication: ورود دومرحلهای
- your_apps: برنامهٔ شما
statuses:
attached:
description: 'پیوستشده: %{attached}'
@@ -753,6 +883,11 @@ fa:
ownership: نوشتههای دیگران را نمیتوان ثابت کرد
private: نوشتههای غیرعمومی را نمیتوان ثابت کرد
reblog: بازبوقها را نمیتوان ثابت کرد
+ poll:
+ total_votes:
+ one: "%{count} رأی"
+ other: "%{count} رأی"
+ vote: رأی
show_more: نمایش
sign_in_to_participate: برای شرکت در گفتگو وارد حساب خود شوید
title: '%{name}: "%{quote}"'
@@ -770,8 +905,8 @@ fa:
terms:
title: شرایط استفاده و سیاست رازداری %{instance}
themes:
- contrast: کنتراست بالا
- default: ماستدون
+ contrast: ماستدون (کنتراست بالا)
+ default: ماستدون (تیره)
mastodon-light: ماستدون (روشن)
time:
formats:
@@ -798,6 +933,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 e7b8b18ae..e4a0ed22c 100644
--- a/config/locales/fi.yml
+++ b/config/locales/fi.yml
@@ -5,43 +5,52 @@ 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ä:'
- 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.
+ api: API
+ apps: Mobiili sovellukset
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.
- features:
- humane_approach_body: Mastodonissa otetaan oppia muiden verkostojen virheistä, ja sen suunnittelussa pyritään toimimaan eettisesti ja ehkäisemään sosiaalisen median väärinkäyttöä.
- humane_approach_title: Ihmisläheisempi ote
- not_a_product_body: Mastodon ei ole kaupallinen verkosto. Ei mainoksia, ei tiedonlouhintaa, ei suljettuja protokollia. Mastodonissa ei ole keskusjohtoa.
- not_a_product_title: Olet henkilö, et tuote
- real_conversation_body: 'Voit ilmaista itseäsi niin kuin itse haluat: tilaa on 500 merkkiä, ja sisältövaroituksia voi tehdä monin tavoin.'
- real_conversation_title: Tehty oikeaa keskustelua varten
- within_reach_body: Rajapintoja on tarjolla moniin eri kehitysympäristöihin, minkä ansiosta iOS:lle, Androidille ja muille alustoille on saatavana useita eri sovelluksia. Näin voit pitää yhteyttä ystäviisi missä vain.
- within_reach_title: Aina lähellä
generic_description: "%{domain} on yksi verkostoon kuuluvista palvelimista"
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:
@@ -297,9 +306,6 @@ fi:
min_invite_role:
disabled: Ei kukaan
title: Salli kutsut käyttäjältä
- open:
- desc_html: Salli kenen tahansa luoda tili
- title: Avoin rekisteröinti
show_known_fediverse_at_about_page:
desc_html: Kun tämä on valittu, esikatselussa näytetään tuuttaukset kaikkialta tunnetusta fediversumista. Muutoin näytetään vain paikalliset tuuttaukset.
title: Näytä aikajanan esikatselussa koko tunnettu fediversumi
@@ -364,7 +370,6 @@ fi:
warning: Säilytä tietoa hyvin. Älä milloinkaan jaa sitä muille!
your_token: Pääsytunnus
auth:
- agreement_html: Rekisteröityessäsi sitoudut noudattamaan
instanssin sääntöjä ja
käyttöehtoja.
change_password: Salasana
confirm_email: Vahvista sähköpostiosoite
delete_account: Poista tili
@@ -376,13 +381,11 @@ fi:
logout: Kirjaudu ulos
migrate_account: Muuta toiseen tiliin
migrate_account_html: Jos haluat ohjata tämän tilin toiseen tiliin, voit
asettaa toisen tilin tästä.
- or: tai
or_log_in_with: Tai käytä kirjautumiseen
providers:
cas: CAS
saml: SAML
register: Rekisteröidy
- register_elsewhere: Rekisteröidy toiselle palvelimelle
resend_confirmation: Lähetä vahvistusohjeet uudestaan
reset_password: Palauta salasana
security: Tunnukset
@@ -445,18 +448,6 @@ fi:
follows: Seurattavat
mutes: Mykistetyt
storage: Media-arkisto
- followers:
- domain: Verkkotunnus
- explanation_html: Jos haluat olla varma tilapäivitystesi yksityisyydestä, sinun täytyy tietää, ketkä seuraavat sinua.
Yksityiset tilapäivityksesi lähetetään kaikkiin niihin instansseihin, joissa sinulla on seuraajia. Jos et luota siihen, että näiden instanssien ylläpitäjät tai ohjelmisto kunnioittavat yksityisyyttäsi, käy läpi seuraajaluettelosi ja poista tarvittaessa käyttäjiä.
- followers_count: Seuraajien määrä
- lock_link: Lukitse tili
- purge: Poista seuraajista
- success:
- one: Estetään kevyesti seuraajia yhdestä verkkotunnuksesta...
- other: Estetään kevyesti seuraajia %{count} verkkotunnuksesta...
- true_privacy_html: Muista, että
kunnollinen yksityisyys voidaan varmistaa vain päästä päähän -salauksella.
- unlocked_warning_html: Kuka tahansa voi seurata sinua ja nähdä saman tien yksityiset tilapäivityksesi. %{lock_link}, niin voit tarkastaa ja torjua seuraajia.
- unlocked_warning_title: Tiliäsi ei ole lukittu
generic:
changes_saved_msg: Muutosten tallennus onnistui!
save_changes: Tallenna muutokset
@@ -618,14 +609,11 @@ fi:
development: Kehittäminen
edit_profile: Muokkaa profiilia
export: Vie tietoja
- followers: Valtuutetut seuraajat
import: Tuo
migrate: Tilin muutto muualle
notifications: Ilmoitukset
preferences: Ominaisuudet
- settings: Asetukset
two_factor_authentication: Kaksivaiheinen todentaminen
- your_apps: Omat sovellukset
statuses:
attached:
description: 'Liitetty: %{attached}'
diff --git a/config/locales/fr.yml b/config/locales/fr.yml
index 7fa041872..a6c806de3 100644
--- a/config/locales/fr.yml
+++ b/config/locales/fr.yml
@@ -7,7 +7,6 @@ fr:
administered_by: 'Administrée par :'
api: API
apps: Applications mobiles
- closed_registrations: Les inscriptions sont actuellement fermées sur cette instance. Cependant, vous pouvez trouver une autre instance sur laquelle vous créer un compte et à partir de laquelle vous pourrez accéder au même réseau.
contact: Contact
contact_missing: Manquant
contact_unavailable: Non disponible
@@ -15,19 +14,9 @@ fr:
extended_description_html: |
Un bon endroit pour les règles
La description étendue n’a pas été remplie.
- features:
- humane_approach_body: Ayant appris des échecs d’autres réseaux, Mastodon à l’ambition de combattre l’abus des médias sociaux en effectuant des choix de conception éthiques.
- humane_approach_title: Une approche plus humaine
- not_a_product_body: Mastodon n’est pas un réseau commercial. Ici, pas de publicités, pas de prospection de données et pas d’environnements fermés. Il n’y existe aucune autorité centrale.
- not_a_product_title: Vous êtes une personne, pas un produit
- real_conversation_body: Avec 500 caractères à votre disposition, une grande granularité en termes de diffusion et la possibilité de masquer vos messages derrière des avertissements, vous êtes libre de vous exprimer de la manière qui vous plaît.
- real_conversation_title: Construit pour de vraies conversations
- within_reach_body: Grâce à l’existence d’un environnement API accueillant pour les développeur·se·s, de multiples applications pour iOS, Android et d’autres plateformes vous permettent de rester en contact avec vos ami·e·s où que vous soyez.
- within_reach_title: Toujours à portée de main
generic_description: "%{domain} est seulement un serveur du réseau"
- hosted_on: Instance Mastodon hébergée par %{domain}
+ hosted_on: Serveur Mastodon hébergée par %{domain}
learn_more: En savoir plus
- other_instances: Liste des instances
privacy_policy: Politique de vie privée
source_code: Code source
status_count_after:
@@ -92,7 +81,7 @@ fr:
confirm: Confirmer
confirmed: Confirmé
confirming: Confirmation
- deleted: Effacé
+ deleted: Supprimé
demote: Rétrograder
disable: Désactiver
disable_two_factor_authentication: Désactiver l’authentification à deux facteurs
@@ -112,6 +101,7 @@ fr:
inbox_url: URL d’entrée
invited_by: Invité par
ip: Adresse IP
+ joined: Inscrit·e depuis
location:
all: Tous
local: Local
@@ -171,6 +161,7 @@ fr:
undo_suspension: Annuler la suspension
unsubscribe: Se désabonner
username: Nom d’utilisateur⋅ice
+ warn: Avertissement
web: Web
action_logs:
actions:
@@ -262,7 +253,7 @@ fr:
create: Créer le blocage
hint: Le blocage de domaine n’empêchera pas la création de comptes dans la base de données, mais il appliquera automatiquement et rétrospectivement des méthodes de modération spécifiques sur ces comptes.
severity:
- desc_html: "
Silence rendra les messages des comptes concernés invisibles à ceux qui ne les suivent pas.
Suspendre supprimera tout le contenu des comptes concernés, les médias, et les données du profil. Utilisez
Aucun si vous voulez simplement rejeter les fichiers multimédia."
+ desc_html: "
Masqué rendra les messages des comptes concernés invisibles à ceux qui ne les suivent pas.
Suspendre supprimera tout le contenu des comptes concernés, les médias, et les données du profil. Utilisez
Aucune si vous voulez simplement rejeter les fichiers multimédia."
noop: Aucune
silence: Masqué
suspend: Suspendre
@@ -300,6 +291,8 @@ fr:
back_to_account: Retour au compte
title: Abonné⋅e⋅s de %{acct}
instances:
+ by_domain: Domaine
+ delivery_available: Livraison disponible
known_accounts:
one: "%{count} compte connu"
other: "%{count} comptes connus"
@@ -324,7 +317,7 @@ fr:
relays:
add_new: Ajouter un nouveau relais
delete: Effacer
- description_html: Un
relai de fédération est un serveur intermédiaire qui échange de grandes quantités de pouets entre les serveurs qui publient dessus et ceux qui y sont abonnés.
Il peut aider les petites et moyennes instances à découvrir du contenu sur le fediverse, ce qui normalement nécessiterait que les membres locaux suivent des gens inscrits sur des serveurs distants.
+ description_html: Un
relai de fédération est un serveur intermédiaire qui échange de grandes quantités de pouets entre les serveurs qui publient dessus et ceux qui y sont abonnés.
Il peut aider les petits et moyen serveurs à découvrir du contenu sur le fediverse, ce qui normalement nécessiterait que les membres locaux suivent des gens inscrits sur des serveurs distants.
disable: Désactiver
disabled: Désactivé
enable: Activé
@@ -381,16 +374,16 @@ 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
+ desc_html: Affichée sur la page d’accueil. Au moins 600x100px recommandé. Lorsqu’elle n’est pas définie, se rabat sur la vignette du serveur
title: Image d’en-tête
mascot:
desc_html: Affiché sur plusieurs pages. Au moins 293×205px recommandé. Lorsqu'il n'est pas défini, retombe à la mascotte par défaut
title: Image de la mascotte
peers_api_enabled:
- desc_html: Noms des domaines que cette instance a découvert dans le fediverse
- title: Publier la liste des instances découvertes
+ desc_html: Noms des domaines que ce serveur a découvert dans le fediverse
+ title: Publier la liste des serveurs découverts
preview_sensitive_media:
desc_html: Les liens de prévisualisation sur les autres sites web afficheront une vignette même si le média est sensible
title: Afficher les médias sensibles dans les prévisualisations OpenGraph
@@ -407,35 +400,32 @@ fr:
min_invite_role:
disabled: Personne
title: Autoriser les invitations par
- open:
- desc_html: Autoriser tout le monde à créer un compte
- title: Ouvrir les inscriptions
show_known_fediverse_at_about_page:
- desc_html: Lorsque l’option est activée, les pouets provenant de toutes les instances connues sont affichés dans la prévisualisation. Sinon, seuls les pouets locaux sont affichés.
+ desc_html: Lorsque l’option est activée, les pouets provenant de toutes les serveurs connues sont affichés dans la prévisualisation. Sinon, seuls les pouets locaux sont affichés.
title: Afficher le fediverse connu dans la prévisualisation du fil
show_staff_badge:
desc_html: Montrer un badge de responsable sur une page utilisateur·ice
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 du serveur
site_description_extended:
- desc_html: Affichée sur la page d’informations complémentaires du site
Vous pouvez utiliser des balises HTML
- title: Description étendue du site
+ desc_html: L'endroit idéal pour afficher votre code de conduite, les règles, les guides et autres choses qui rendent votre serveur différent. Vous pouvez utiliser des balises HTML
+ title: Description étendue du serveur
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.
- title: Description courte de l’instance
+ 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 du serveur sera affiché par défaut.
+ title: Description courte du serveur
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 du serveur
thumbnail:
desc_html: Utilisée pour les prévisualisations via OpenGraph et l’API. 1200x630px recommandé
- title: Vignette de l’instance
+ title: Vignette du serveur
timeline_preview:
desc_html: Afficher le fil public sur la page d’accueil
title: Prévisualisation du fil global
- title: Paramètres du site
+ title: Paramètres du serveur
statuses:
back_to_account: Retour à la page du compte
batch:
@@ -492,7 +482,6 @@ fr:
warning: Soyez prudent⋅e avec ces données. Ne les partagez pas !
your_token: Votre jeton d’accès
auth:
- agreement_html: En cliquant sur "S'inscrire" ci-dessous, vous souscrivez
aux règles de l’instance et à
nos conditions d’utilisation.
change_password: Mot de passe
confirm_email: Confirmer mon adresse mail
delete_account: Supprimer le compte
@@ -504,13 +493,11 @@ fr:
logout: Se déconnecter
migrate_account: Déplacer vers un compte différent
migrate_account_html: Si vous voulez rediriger ce compte vers un autre, vous pouvez le
configurer ici.
- or: ou
or_log_in_with: Ou authentifiez-vous avec
providers:
cas: CAS
saml: SAML
register: S’inscrire
- register_elsewhere: S’inscrire sur un autre serveur
resend_confirmation: Envoyer à nouveau les consignes de confirmation
reset_password: Réinitialiser le mot de passe
security: Sécurité
@@ -546,7 +533,7 @@ 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 ce serveur 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ées à vos publications ne mettront pas leur base de données à jour.
warning_title: Disponibilité du contenu disséminé
directories:
directory: Annuaire des profils
@@ -574,7 +561,7 @@ 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
@@ -585,6 +572,10 @@ fr:
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
@@ -601,18 +592,6 @@ fr:
title: Filtres
new:
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.
- followers_count: Nombre d’abonné⋅e⋅s
- lock_link: Rendez votre compte privé
- purge: Retirer de la liste d’abonné⋅e⋅s
- success:
- one: Suppression des abonné⋅e⋅s venant d’un domaine en cours…
- other: Suppression des abonné⋅e⋅s venant de %{count} domaines en cours…
- true_privacy_html: Soyez conscient⋅e⋅s
qu’une vraie confidentialité ne peut être atteinte que par un chiffrement de bout-en-bout.
- unlocked_warning_html: N’importe qui peut vous suivre et voir vos statuts privés. %{lock_link} afin de pouvoir vérifier et rejeter des abonné⋅e⋅s.
- unlocked_warning_title: Votre compte n’est pas privé
footer:
developers: Développeurs
more: Davantage…
@@ -625,10 +604,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'un autre serveur, 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 serveurs bloquées
following: Liste d’utilisateur⋅ice⋅s suivi⋅e⋅s
muting: Liste d’utilisateur⋅ice⋅s que vous masquez
upload: Importer
@@ -650,7 +635,7 @@ fr:
one: 1 usage
other: "%{count} usages"
max_uses_prompt: Pas de limite
- prompt: Générer et partager des liens avec les autres pour donner accès à cette instance
+ prompt: Générer et partager des liens avec les autres pour donner accès à ce serveur
table:
expires_at: Expire
uses: Utilise
@@ -720,13 +705,23 @@ fr:
older: Plus ancien
prev: Précédent
truncate: "…"
+ polls:
+ errors:
+ already_voted: Vous avez déjà voté sur ce sondage
+ duplicate_options: contient des doublons
+ duration_too_long: est trop loin dans le futur
+ duration_too_short: est trop tôt
+ expired: Ce sondage est déjà terminé
+ over_character_limit: ne peuvent être plus long que %{max} caractères chacun
+ too_few_options: doit avoir plus qu'une proposition
+ too_many_options: ne peut contenir plus que %{max} propositions
preferences:
languages: Langues
other: Autre
publishing: Publication
web: Web
remote_follow:
- acct: Entrez l’adresse profil@instance depuis laquelle vous voulez vous abonner
+ acct: Entrez l’adresse profil@serveur depuis laquelle vous voulez vous abonner
missing_resource: L’URL de redirection n’a pas pu être trouvée
no_account_html: Vous n’avez pas de compte ? Vous pouvez
vous inscrire ici
proceed: Confirmer l’abonnement
@@ -734,10 +729,13 @@ fr:
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:
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
@@ -795,14 +793,12 @@ fr:
development: Développement
edit_profile: Modifier le profil
export: Export de données
- followers: Abonné⋅es autorisé⋅es
+ featured_tags: Hashtags mis en avant
import: Import de données
migrate: Migration de compte
notifications: Notifications
preferences: Préférences
- settings: Réglages
two_factor_authentication: Identification à deux facteurs
- your_apps: Vos applications
statuses:
attached:
description: 'Attaché : %{attached}'
@@ -825,6 +821,11 @@ fr:
ownership: Vous ne pouvez pas épingler un statut ne vous appartenant pas
private: Les statuts non-publics ne peuvent pas être épinglés
reblog: Un partage ne peut pas être épinglé
+ poll:
+ total_votes:
+ one: "%{count} vote"
+ other: "%{count} votes"
+ vote: Voter
show_more: Afficher plus
sign_in_to_participate: Inscrivez-vous pour prendre part à la conversation
title: '%{name} : "%{quote}"'
@@ -923,9 +924,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
- mastodon-light: Mastodon (clair)
+ contrast: Mastodon (Contraste élevé)
+ default: Mastodon (Sombre)
+ mastodon-light: Mastodon (Clair)
time:
formats:
default: "%d %b %Y, %H:%M"
@@ -974,7 +975,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’un autre serveur.
review_preferences_action: Modifier les préférences
review_preferences_step: Assurez-vous de définir vos préférences, telles que les courriels que vous aimeriez recevoir ou le niveau de confidentialité auquel vous aimeriez que vos messages soient soumis par défaut. Si vous n’avez pas le mal des transports, vous pouvez choisir d’activer la lecture automatique des GIF.
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 57e150d49..9c4673186 100644
--- a/config/locales/gl.yml
+++ b/config/locales/gl.yml
@@ -4,36 +4,36 @@ gl:
about_hashtag_html: Estas son mensaxes públicas etiquetadas con
#%{hashtag}. Pode interactuar con elas si ten unha conta nalgures do fediverso.
about_mastodon_html: Mastodon é unha rede social que se basea en protocolos web abertos e libres, software de código aberto. É descentralizada como o correo electrónico.
about_this: Sobre
+ active_count_after: activo
+ active_footnote: Usuarias Activas no Mes (UAM)
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í.
+ apps_platforms: Utilice Mastodon desde iOS, Android e outras plataformas
+ browse_directory: Navegue no directorio de perfís e filtre por intereses
+ browse_public_posts: Vexa o fluxo de comentarios públicos en Mastodon
contact: Contacto
contact_missing: Non establecido
contact_unavailable: N/A
+ discover_users: Descubra usuarias
documentation: Documentación
extended_description_html: |
Un bo lugar para regras
A descrición extendida aínda non se proporcionou.
- features:
- humane_approach_body: Aprendendo dos erros de outras redes, Mastodon intenta tomar decisións éticas de deseño para loitar contra os usos incorrectos da rede.
- humane_approach_title: Unha aproximación máis humana
- not_a_product_body: Mastodon non é unha rede comercial. Sen anuncios, sen minería de datos, sen xardíns privados. Non hai autoridade centralizada.
- not_a_product_title: Vostede é unha persoa, non un producto
- real_conversation_body: Con 500 caracteres a súa disposición, soporte para contido polo miúdo e avisos sobre o contido, pode expresarse vostede con libertade.
- real_conversation_title: Construído para conversacións reais
- within_reach_body: Existen múltiples aplicacións para iOS, Android e outras plataformas grazas a un entorno API amigable para o desenvolvedor que lle permite estar ao tanto cos seus amigos en calquer lugar.
- within_reach_title: Sempre en contacto
+ federation_hint_html: Con unha conta en %{instance} poderá seguir a outras persoas en calquera dos servidores Mastodon e incluso máis.
generic_description: "%{domain} é un servidor na rede"
+ get_apps: Probe cunha app móbil
hosted_on: Mastodon aloxado en %{domain}
learn_more: Coñeza máis
- other_instances: Listado de instancias
privacy_policy: Política de intimidade
+ see_whats_happening: Mire o que acontece
+ server_stats: 'Estatísticas:'
source_code: Código fonte
status_count_after:
one: estado
other: estados
status_count_before: Que publicaron
+ tagline: Siga as amizades e faga outras novas
terms: Termos do servizo
user_count_after:
one: usuaria
@@ -79,6 +79,7 @@ gl:
delete: Eliminar
destroyed_msg: Nota a moderación destruída con éxito!
accounts:
+ approve: Aprobar
are_you_sure: Está segura?
avatar: Avatar
by_domain: Dominio
@@ -124,6 +125,7 @@ gl:
moderation:
active: Activa
all: Todo
+ pending: Pendente
silenced: Acalado
suspended: Suspendido
title: Moderación
@@ -133,6 +135,7 @@ gl:
no_limits_imposed: Sen límites impostos
not_subscribed: Non suscrita
outbox_url: URL caixa de saída
+ pending: Pendente revisión
perform_full_suspension: Suspender
profile_url: URL do perfil
promote: Promocionar
@@ -140,6 +143,7 @@ gl:
public: Público
push_subscription_expires: A suscrición PuSH caduca
redownload: Actualizar perfil
+ reject: Rexeitar
remove_avatar: Eliminar avatar
remove_header: Eliminar cabeceira
resend_confirmation:
@@ -302,6 +306,7 @@ gl:
back_to_account: Voltar a Conta
title: Seguidoras de %{acct}
instances:
+ by_domain: Dominio
delivery_available: A entrega está dispoñible
known_accounts:
one: "%{count} conta coñecida"
@@ -386,14 +391,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
@@ -410,9 +415,12 @@ gl:
min_invite_role:
disabled: Ninguén
title: Permitir convites por
- open:
- desc_html: Permitir que calquera poida crear unha conta
- title: Abrir rexistro
+ registrations_mode:
+ modes:
+ approved: Precisa aprobación para rexistrarse
+ none: Rexistro pechado
+ open: Rexistro aberto
+ title: Estado do rexistro
show_known_fediverse_at_about_page:
desc_html: Si activado, mostraralle os toots de todo o fediverso coñecido nunha vista previa. Si non só mostrará os toots locais.
title: Mostrar vista previa do fediverso na liña temporal
@@ -421,20 +429,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
@@ -475,6 +483,9 @@ gl:
edit_preset: Editar aviso preestablecido
title: Xestionar avisos preestablecidos
admin_mailer:
+ new_pending_account:
+ body: Abaixo están os detalles da conta. Pode aprobar ou rexeitar esta solicitude.
+ subject: Hai unha conta nova para revisar en %{instance} (%{username})
new_report:
body: "%{reporter} informou sobre %{target}"
body_remote: Alguén desde %{domain} informou sobre %{target}
@@ -495,8 +506,9 @@ 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.
+ apply_for_account: Solicite un convite
change_password: Contrasinal
+ checkbox_agreement_html: Acepto as
regras do servidor e os
termos do servizo
confirm_email: Confirmar correo-e
delete_account: Eliminar conta
delete_account_html: Se desexa eliminar a súa conta, pode
facelo aquí. Pediráselle confirmación.
@@ -507,17 +519,17 @@ gl:
logout: Desconectar
migrate_account: Mover a unha conta diferente
migrate_account_html: Se desexa redirixir esta conta hacia outra diferente, pode
configuralo aquí.
- or: ou
or_log_in_with: ou conectar con
providers:
cas: CAS
saml: SAML
register: Rexistro
- register_elsewhere: Rexístrese en outro servidor
+ registration_closed: "%{instance} non está a aceptar novas usuarias"
resend_confirmation: Voltar a enviar intruccións de confirmación
reset_password: Restablecer contrasinal
security: Seguridade
set_new_password: Establecer novo contrasinal
+ trouble_logging_in: Problemas para conectar?
authorize_follow:
already_following: Xa está a seguir esta conta
error: Desgraciadamente, algo fallou ao buscar a conta remota
@@ -549,7 +561,7 @@ 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
@@ -563,8 +575,8 @@ gl:
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
@@ -577,7 +589,7 @@ 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
@@ -588,6 +600,10 @@ gl:
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
@@ -604,34 +620,44 @@ gl:
title: Filtros
new:
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.
- followers_count: Número de seguidoras
- lock_link: Bloquear a súa conta
- purge: Eliminar das seguidoras
- success:
- one: En proceso de bloquear seguidoras de un dominio...
- other: No proceso de bloquear seguidoras de %{count} dominios...
- true_privacy_html: Por favor teña en conta que
a verdadeira intimidade só pode ser conseguida con cifrado de extremo-a-extremo.
- unlocked_warning_html: Calquera pode seguila para inmediatamente ver os seus estados privados. %{lock_link} para poder revisar e rexeitar seguidoras.
- unlocked_warning_title: A súa conta non está pechada
footer:
developers: Desenvolvedoras
more: Máis…
resources: Recursos
generic:
+ all: Todo
changes_saved_msg: Cambios gardados correctamente!!
copy: Copiar
save_changes: Gardar cambios
validation_errors:
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
+ identity_proofs:
+ active: Activo
+ authorize: Si, autorizar
+ authorize_connection_prompt: Autorizar esta conexión criptográfica?
+ errors:
+ failed: Fallou a conexión criptográfica. Por favor inténteo de novo desde %{provider}.
+ keybase:
+ invalid_token: Os testemuños Keybase son hashes de firma e deben ter 66 caracteres hexadecimais
+ verification_failed: Keybase non recoñece este testemuño como firma da usuaria de Keybase %{kb_username}. Por favor inténteo desde Keybase.
+ explanation_html: Aquí pódese conectar criptográficamente as suas outras identidades, como a un perfil Keybase. Esto permitelle a outras persoas enviarlle mensaxes cifradas e confiar no contido que vostede lle envía.
+ i_am_html: Eu son %{username} en %{service}.
+ identity: Identidade
+ inactive: Inactiva
+ status: Estado da validación
+ view_proof: Ver proba
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
@@ -653,7 +679,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
@@ -723,11 +749,32 @@ gl:
older: Máis antigo
prev: Previo
truncate: "…"
+ polls:
+ errors:
+ already_voted: Xa votou en esta sondaxe
+ duplicate_options: contén elementos duplicados
+ duration_too_long: está moi lonxe no futuro
+ duration_too_short: é demasiado cedo
+ expired: A sondaxe rematou
+ over_character_limit: non poden ter máis de %{max} caracteres cada unha
+ too_few_options: debe ter máis de unha opción
+ too_many_options: non pode haber máis de %{max} opcións
preferences:
languages: Idiomas
other: Outro
publishing: Publicando
web: Web
+ relationships:
+ activity: Actividade da conta
+ dormant: En repouso
+ moved: Movida
+ mutual: Mutuo
+ primary: Principal
+ relationship: Relación
+ remove_selected_domains: Eliminar todas as seguidoras dos dominios escollidos
+ remove_selected_followers: Eliminar as seguidoras escollidas
+ remove_selected_follows: Deixar de seguir as usuarias escollidas
+ status: Estado da conta
remote_follow:
acct: Introduza o seu usuaria@servidor desde onde quere interactuar
missing_resource: Non se puido atopar o URL de redirecionamento requerido para a súa conta
@@ -801,14 +848,14 @@ gl:
development: Desenvolvemento
edit_profile: Editar perfil
export: Exportar datos
- followers: Seguidoras autorizadas
+ featured_tags: Etiquetas destacadas
+ identity_proofs: Probas de identidade
import: Importar
migrate: Migrar conta
notifications: Notificacións
preferences: Preferencias
- settings: Axustes
+ relationships: Seguindo e seguidoras
two_factor_authentication: Validar Doble Factor
- your_apps: As súas aplicacións
statuses:
attached:
description: 'Axenado: %{attached}'
@@ -831,6 +878,11 @@ gl:
ownership: Non pode fixar a mensaxe de outra usuaria
private: As mensaxes non-públicas non poden ser fixadas
reblog: Non se poden fixar as mensaxes promovidas
+ poll:
+ total_votes:
+ one: "%{count} voto"
+ other: "%{count} votos"
+ vote: Votar
show_more: Mostrar máis
sign_in_to_participate: Conéctese para participar na conversa
title: '%{name}: "%{quote}"'
@@ -929,9 +981,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"
@@ -980,7 +1032,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 bc92ed908..e471c4d02 100644
--- a/config/locales/he.yml
+++ b/config/locales/he.yml
@@ -6,7 +6,6 @@ he:
about_this: אודות שרת זה
api: API
apps: יישומונים לנייד
- closed_registrations: הרשמות סגורות לשרת זה לעת עתה.
contact: יצירת קשר
contact_missing: ללא הגדרה
contact_unavailable: לא רלוונטי/חסר
@@ -14,19 +13,9 @@ he:
extended_description_html: |
מקום טוב לכללים
התיאור המורחב טרם הוגדר.
- features:
- humane_approach_body: מתוך למידה מכשלים של רשתות אחרות, מסטודון מכוונת להחלטות תכנוניות אתיות שנאבקות בשימוש לרעה של מדיה חברתית.
- humane_approach_title: גישה הומאנית יותר
- not_a_product_body: מסטודון איננה רשת מסחרית. אין פרסום, אין כריית מידע, אין גנים סגורים. אין סמכות מרכזית.
- not_a_product_title: את(ה) אדם, לא מוצר
- real_conversation_body: עם 500 תווים לרשותך, ואפשרויות פרטניות לאזהרות תוכן והסתרת מדיה, יש לך את החופש להתבטא כרצונך.
- real_conversation_title: בנוי לשיחות אמתיות
- within_reach_body: שלל אפליקציות עבור iOS, אנדרואיד ופלטפורמות אחרות שיאפשרו לך לשמור על קשר עם חברים בכל מקום, תודות למערכת מנשקי תוכנה ידידותיים למפתחים.
- within_reach_title: תמיד במרחק נגיעה
generic_description: "%{domain} הוא שרת אחד בתוך הרשת"
hosted_on: מסטודון שיושב בכתובת %{domain}
learn_more: מידע נוסף
- other_instances: שרתים אחרים
source_code: קוד מקור
status_count_after: הודעות
status_count_before: שכתבו
@@ -188,8 +177,6 @@ he:
closed_message:
desc_html: מוצג על הדף הראשי כאשר ההרשמות סגורות
ניתן להשתמש בתגיות HTML
title: מסר סגירת הרשמות
- open:
- title: הרשמה פתוחה
site_description:
desc_html: מוצג כפסקה על הדף הראשי ומשמש כתגית מטא. ניתן להשתמש בתגיות HTML, ובמיוחד ב־
< a>
ו־
< em>
.
title: תיאור האתר
@@ -253,18 +240,6 @@ he:
follows: רשימת נעקבים
mutes: רשימת השתקות
storage: אחסון מדיה
- followers:
- domain: קהילה
- explanation_html: אם ברצונך להבטיח את הפרטיות של הודעותיך, יש לשים לב מי עוקב אחריך.
הודעותיך הפרטיות יועברו לכל השרתים בהם יש לך עוקבים. כדאי לעבור על הרשימה ולהסיר עוקבים אם אין לך אמון בתוכנה או בצוות המפעילים של השרת הרחוק שיכבד את פרטיותך.
- followers_count: מספר העוקבים
- lock_link: לנעול את חשבונך
- purge: הסרה מהעוקבים
- success:
- one: בתהליך חסימה של עוקבים ממתחם אחד...
- other: בתהליך חסימה של עוקבים המגיעים מ־%{count} מתחמים...
- true_privacy_html: 'לתשומת ליבך:
פרטיות אמיתית ניתן להשיג אך ורק על ידי הצפנה מקצה לקצה.'
- unlocked_warning_html: כל אחד יכול לעקוב אחריך כדי לראות מיידית את חצרוציך הפרטיים. %{lock_link} כדי לבחון ולדחות עוקבים.
- unlocked_warning_title: חשבונך אינו נעול
generic:
changes_saved_msg: השינויים נשמרו בהצלחה!
save_changes: שמור שינויים
@@ -333,10 +308,8 @@ he:
back: חזרה למסטודון
edit_profile: עריכת פרופיל
export: יצוא מידע
- followers: עוקבים מאושרים
import: יבוא
preferences: העדפות
- settings: הגדרות
two_factor_authentication: אימות דו-שלבי
statuses:
open_in_web: פתח ברשת
diff --git a/config/locales/hr.yml b/config/locales/hr.yml
index 38971833c..f9c552bce 100644
--- a/config/locales/hr.yml
+++ b/config/locales/hr.yml
@@ -3,9 +3,7 @@ hr:
about:
about_mastodon_html: Mastodon je
besplatna, open-source socijalna mreža.
Decentralizirana alternativa komercijalnim platformama, izbjegava rizik toga da jedna tvrtka monopolizira vašu komunikaciju. Izaberite server kojem ćete vjerovati — koji god odabrali, moći ćete komunicirati sa svima ostalima. Bilo tko može imati svoju vlastitu Mastodon instancu i sudjelovati u
socijalnoj mreži bez problema.
about_this: O ovoj instanci
- closed_registrations: Registracije na ovoj instanci su trenutno zatvorene.
contact: Kontakt
- other_instances: Druge instance
source_code: Izvorni kod
status_count_after: statusi
status_count_before: Tko je autor
@@ -117,7 +115,6 @@ hr:
export: Izvoz podataka
import: Uvezi
preferences: Postavke
- settings: Podešenja
two_factor_authentication: Dvo-faktorska Autentifikacija
statuses:
open_in_web: Otvori na webu
diff --git a/config/locales/hu.yml b/config/locales/hu.yml
index 79363b9ee..b6029eeca 100644
--- a/config/locales/hu.yml
+++ b/config/locales/hu.yml
@@ -4,26 +4,15 @@ hu:
about_hashtag_html: Ezek a
#%{hashtag} címkével ellátott publikus tülkök. Reagálhatsz rájuk, ha már van felhasználói fiókod valahol a föderációban.
about_mastodon_html: Mastodon egy
szabad, nyílt forráskódú szociális hálózati kiszolgálo. Egy
központosítatlan alternatíva a kereskedelmi platformokra, elkerüli a kommunikációd monopolizációját veszélyét. Bárki futtathatja a Mastodon-t és részt vehet a
szociális hálózatban.
about_this: Rólunk
- closed_registrations: A regisztráció jelenleg nem engedélyezett ezen az instancián. De ne csüggedj! Létrehozhatsz fiókot egy másik instancián és azon keresztül is hozzáférsz a teljes föderációhoz.
contact: Kapcsolat
contact_missing: Nincs megadva
contact_unavailable: N/A
extended_description_html: |
Ez itt a szabályzat helye
Még nem állítottál be bővebb leírást.
- features:
- humane_approach_body: Más alkalmazások hibáiból tanulva a Mastodon etikus alapokon nyugvó döntésekkel küzd a közösségi média ártalmai ellen.
- humane_approach_title: Emberséges attitűd
- not_a_product_body: A Mastodon nem a profitszerzésre épül, nem is privát játszótér. Nincsenek reklámok, nincs adatbányászat és központosított döntéshozatal sincsen.
- not_a_product_title: Ember vagy, nem pedig árucikk
- real_conversation_body: Az 500 karakteres limit, az érzékeny tartalomként jelölés és más kifinomult eszközök segítségével tényleg egyedi módon fejezheted ki önmagad.
- real_conversation_title: Valódi beszélgetésekre tervezve
- within_reach_body: A fejlesztőbarát API-nak köszönhetően számos iOS, Android és egyéb platformra írt alkalmazás teszi lehetővé, hogy bármikor, bárhonnan részt vehess a társalgásban.
- within_reach_title: Mindig elérhetőnek lenni
generic_description: "%{domain} csak egy a számtalan szerver közül a föderációban"
hosted_on: "%{domain} Mastodon instancia"
learn_more: Tudj meg többet
- other_instances: Instanciák listája
source_code: Forráskód
status_count_after: tülköt küldött
status_count_before: eddig
@@ -260,9 +249,6 @@ hu:
min_invite_role:
disabled: Senkinek
title: Meghívások engedélyezése
- open:
- desc_html: Bárki létrehozhat felhasználói fiókot
- title: Nyitott regisztráció
show_staff_badge:
desc_html: Stáb-jelvény megjelenítése a felhasználó oldalán
title: Stáb-jelvény megjelenítése
@@ -323,7 +309,6 @@ hu:
warning: Ez érzékeny adat. Soha ne oszd meg másokkal!
your_token: Hozzáférési kulcsod
auth:
- agreement_html: A feliratkozással elfogatod az
instancia szabályzatát és a
felhasználási feltételeket.
delete_account: Felhasználói fiók törlése
delete_account_html: Felhasználói fiókod törléséhez
kattints ide. A rendszer újbóli megerősítést fog kérni.
didnt_get_confirmation: Nem kaptad meg a megerősítési lépéseket?
@@ -388,18 +373,6 @@ hu:
follows: Követettjeid
mutes: Némításaid
storage: Médiatároló
- followers:
- domain: Domain
- explanation_html: Ahhoz, hogy biztosítsd a tülkjeid adatvédelmét, tudnod kell, kik követnek téged.
Még privátnak jelölt tülkjeid is továbbítódnak minden instanciára, ahol követőid vannak. Az alábbi listában láthatod, melyek ezek az instanciák; eltávolíthatod őket, ha nem vagy biztos benne, hogy az adott instancia üzemeltetői tiszteletben tartják az adatvédelmi beállításaidat.
- followers_count: Követők száma
- lock_link: Fiókod priváttá tétele
- purge: Eltávolítás a követőid közül
- success:
- one: Egy domainen található követőid tiltása folyamatban...
- other: "%{count} domainen található követőid tiltása folyamatban..."
- true_privacy_html: Tartsd észben, hogy
valódi biztonság csak végponttól-végpontig titkosítással érhető el.
- unlocked_warning_html: Bárki követhet és így azonnal láthatja a privát tülkjeid. A %{lock_link} funkció bekapcsolásával lehetőséged van egyenként felülvizsgálni a követési kérelmeket.
- unlocked_warning_title: A fiókod jelenleg nem privát
generic:
changes_saved_msg: Változások sikeresen elmentve!
save_changes: Változások mentése
@@ -556,14 +529,11 @@ hu:
development: Fejlesztőknek
edit_profile: Profil szerkesztése
export: Adatok exportálása
- followers: Jóváhagyott követők
import: Importálás
migrate: Fiók átirányítása
notifications: Értesítések
preferences: Általános beállítások
- settings: Beállítások
two_factor_authentication: Kétlépcsős azonosítás
- your_apps: Alkalmazásaid
statuses:
open_in_web: Megnyitás a weben
over_character_limit: Túllépted a maximális %{max} karakteres keretet
diff --git a/config/locales/id.yml b/config/locales/id.yml
index fabf2746e..4323c145f 100644
--- a/config/locales/id.yml
+++ b/config/locales/id.yml
@@ -4,9 +4,9 @@ id:
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
+ 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
contact_missing: Belum diset
contact_unavailable: Tidak Tersedia
@@ -14,19 +14,9 @@ id:
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:
@@ -70,52 +60,104 @@ id:
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
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
@@ -162,8 +204,6 @@ id:
closed_message:
desc_html: Ditampilkan pada halaman depan saat pendaftaran ditutup
Anda bisa menggunakan tag HTML
title: Pesan penutupan pendaftaran
- open:
- title: Pendaftaran terbuka
site_description:
desc_html: Ditampilkan sebagai sebuah paragraf di halaman depan dan digunakan sebagai tag meta.
Anda bisa menggunakan tag HTML, khususnya
<a>
dan
<em>
.
title: Deskripsi situs
@@ -226,18 +266,6 @@ id:
follows: Anda ikuti
mutes: Anda bisukan
storage: Penyimpanan media
- followers:
- domain: Domain
- explanation_html: Jika anda ingin memastikan privasi dari status anda, anda harus tahu siapa yang mengikuti anda.
Status pribadi anda dikirim ke semua server dimana pengikut anda berada. Anda mungkin ingin untuk mengkaji ulang dan menghapus pengikut jika anda tidak mempercayai bahwa privasi anda di tangan staf atau software di server tersebut.
- followers_count: Jumlah pengikut
- lock_link: Kunci akun anda
- purge: Hapus dari pengikut
- success:
- one: Dalam proses memblokir pengikut dari satu domain...
- other: Dalam proses memblokir pengikut dari %{count} domain...
- true_privacy_html: Mohon diingat bahwa
privasi yang sebenarnya hanya dapat dicapai dengan enkripsi end-to-end.
- unlocked_warning_html: Semua orang dapat mengikuti anda untuk langsung dapat melihat status pribadi anda. %{lock_link} untuk dapat meninjau dan menolak calon pengikut.
- unlocked_warning_title: Akun anda tidak dikunci
generic:
changes_saved_msg: Perubahan berhasil disimpan!
save_changes: Simpan perubahan
@@ -304,10 +332,8 @@ id:
back: Kembali ke Mastodon
edit_profile: Ubah profil
export: Expor data
- followers: Pengikut yang diizinkan
import: Impor
preferences: Pilihan
- settings: Pengaturan
two_factor_authentication: Autentikasi Two-factor
statuses:
open_in_web: Buka di web
diff --git a/config/locales/io.yml b/config/locales/io.yml
index 73c981a98..b5edb2aa3 100644
--- a/config/locales/io.yml
+++ b/config/locales/io.yml
@@ -3,9 +3,7 @@ io:
about:
about_mastodon_html: Mastodon esas
gratuita, apertitkodexa sociala reto. Ol esas
sencentra altra alternativo a komercala servadi. Ol evitigas, ke sola firmo guvernez tua tota komunikadol. Selektez servero, quan tu fidas. Irge qua esas tua selekto, tu povas komunikar kun omna altra uzeri. Irgu povas krear sua propra instaluro di Mastodon en sua servero, e partoprenar en la
sociala reto tote glate.
about_this: Pri ta instaluro
- closed_registrations: Membresko ne nun esas posible en ta instaluro.
contact: Kontaktar
- other_instances: Altra instaluri
source_code: Fontkodexo
status_count_after: mesaji
status_count_before: Qua publikigis
@@ -106,8 +104,6 @@ io:
closed_message:
desc_html: Displayed on frontpage when registrations are closed
You can use HTML tags
title: Closed registration message
- open:
- title: Open registration
site_description:
desc_html: Displayed as a paragraph on the frontpage and used as a meta tag.
You can use HTML tags, in particular
<a>
and
<em>
.
title: Site description
@@ -239,7 +235,6 @@ io:
export: Exportacar datumi
import: Importacar
preferences: Preferi
- settings: Settings
two_factor_authentication: Dufaktora autentikigo
statuses:
open_in_web: Apertar retnavigile
diff --git a/config/locales/it.yml b/config/locales/it.yml
index 339dadaf4..508b8a0dc 100644
--- a/config/locales/it.yml
+++ b/config/locales/it.yml
@@ -7,7 +7,6 @@ it:
administered_by: 'Amministrato da:'
api: API
apps: Applicazioni Mobile
- closed_registrations: Al momento le iscrizioni a questo server sono chiuse. Tuttavia! Puoi provare a cercare un istanza diversa su cui creare un account ed avere accesso alla stessa identica rete.
contact: Contatti
contact_missing: Non impostato
contact_unavailable: N/D
@@ -15,20 +14,10 @@ it:
extended_description_html: |
Un buon posto per le regole
La descrizione estesa non è ancora stata preparata.
- features:
- humane_approach_body: Imparando dai fallimenti degli altri networks, Mastodon mira a fare scelte etiche di design per combattere l'abuso dei social media.
- humane_approach_title: Un approccio più umano
- not_a_product_body: Mastodon non è una rete commerciale. Niente pubblicità, niente data mining, nessun recinto dorato. Non c'è nessuna autorità centrale.
- not_a_product_title: Tu sei una persona, non un prodotto
- real_conversation_body: Con 500 caratteri a disposizione, un supporto per i contenuti granulari ed avvisi sui media potrai esprimerti nel modo desiderato.
- real_conversation_title: Creato per conversazioni reali
- within_reach_body: Apps per iOS, Android ed altre piattaforme, realizzate grazie ad un ecosistema di API adatto agli sviluppatori, ti consentono di poter stare in contatto con i tuoi amici ovunque ti trovi.
- within_reach_title: Sempre a portata di mano
generic_description: "%{domain} è un server nella rete"
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
@@ -48,6 +37,7 @@ it:
other: Seguaci
following: Segui
joined: Dal %{date}
+ last_active: ultima attività
link_verified_on: La proprietà di questo link è stata controllata il %{date}
media: Media
moved_html: "%{name} è stato spostato su %{new_profile_link}:"
@@ -69,6 +59,9 @@ it:
moderator: Moderatore
unfollow: Non seguire più
admin:
+ account_actions:
+ action: Esegui azione
+ title: Esegui azione di moderazione su %{acct}
account_moderation_notes:
create: Lascia nota
created_msg: Nota di moderazione creata con successo!
@@ -88,6 +81,7 @@ it:
confirm: Conferma
confirmed: Confermato
confirming: Confermando
+ deleted: Cancellato
demote: Declassa
disable: Disabilita
disable_two_factor_authentication: Disabilita 2FA
@@ -103,8 +97,11 @@ it:
followers: Follower
followers_url: URL follower
follows: Segue
+ header: Intestazione
inbox_url: URL inbox
+ invited_by: Invitato da
ip: IP
+ joined: Unito
location:
all: Tutto
local: Locale
@@ -114,6 +111,7 @@ it:
media_attachments: Media allegati
memorialize: Trasforma in memoriam
moderation:
+ active: Attivo
all: Tutto
silenced: Silenziati
suspended: Sospesi
@@ -132,6 +130,7 @@ it:
push_subscription_expires: Sottoscrizione PuSH scaduta
redownload: Aggiorna avatar
remove_avatar: Rimuovi avatar
+ remove_header: Rimuovi intestazione
resend_confirmation:
already_confirmed: Questo utente è già confermato
send: Reinvia email di conferma
@@ -162,12 +161,14 @@ it:
undo_suspension: Rimuovi sospensione
unsubscribe: Annulla l'iscrizione
username: Nome utente
+ warn: Avverti
web: Web
action_logs:
actions:
assigned_to_self_report: "%{name} ha assegnato il rapporto %{target} a se stesso"
change_email_user: "%{name} ha cambiato l'indirizzo email per l'utente %{target}"
confirm_user: "%{name} ha confermato l'indirizzo email per l'utente %{target}"
+ create_account_warning: "%{name} ha mandato un avvertimento a %{target}"
create_custom_emoji: "%{name} ha caricato un nuovo emoji %{target}"
create_domain_block: "%{name} ha bloccato il dominio %{target}"
create_email_domain_block: "%{name} ha messo il dominio email %{target} nella blacklist"
@@ -226,6 +227,7 @@ it:
config: Configurazione
feature_deletions: Cancellazioni di account
feature_invites: Link di invito
+ feature_profile_directory: Directory dei profili
feature_registrations: Registrazioni
feature_relay: Ripetitore di federazione
features: Funzionalità
@@ -260,6 +262,9 @@ 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
+ severity:
+ silence: silenziato
+ suspend: sospeso
show:
affected_accounts:
one: Interessato un solo account nel database
@@ -280,8 +285,22 @@ it:
create: Aggiungi dominio
title: Nuova voce della lista nera delle email
title: Lista nera email
+ followers:
+ back_to_account: Torna all'account
+ title: Seguaci di %{acct}
instances:
+ by_domain: Dominio
+ known_accounts:
+ one: "%{count} account noto"
+ other: "%{count} account noti"
+ moderation:
+ limited: Limitato
+ title: Moderazione
title: Istanze conosciute
+ total_blocked_by_us: Bloccato da noi
+ total_followed_by_them: Seguito da loro
+ total_followed_by_us: Seguito da noi
+ total_storage: Media allegati
invites:
deactivate_all: Disattiva tutto
filter:
@@ -351,17 +370,20 @@ it:
desc_html: Modifica l'aspetto con il CSS caricato in ogni pagina
title: CSS personalizzato
hero:
- desc_html: Mostrata nella pagina iniziale. Almeno 600x100 px consigliati. Se non impostata, sarà usato il thumbnail dell'istanza
+ desc_html: Mostrata nella pagina iniziale. Almeno 600x100 px consigliati. Se non impostata, sarà usato il thumbnail del server
title: Immagine dell'eroe
mascot:
desc_html: Mostrata su più pagine. Almeno 293×205px consigliati. Se non impostata, sarò usata la mascotte predefinita
title: Immagine della mascotte
peers_api_enabled:
- desc_html: Nomi di dominio che questa istanza ha incontrato nella fediverse
- title: Pubblica elenco di istanze scoperte
+ desc_html: Nomi di dominio che questo server ha incontrato nel fediverse
+ title: Pubblica elenco dei server scoperti
preview_sensitive_media:
desc_html: Le anteprime dei link su altri siti mostreranno un thumbnail anche se il media è segnato come sensibile
title: Mostra media sensibili nella anteprime OpenGraph
+ profile_directory:
+ desc_html: Permetti agli utenti di essere trovati
+ title: Attiva directory del profilo
registrations:
closed_message:
desc_html: Mostrato nella pagina iniziale quando le registrazioni sono chiuse. Puoi usare tag HTML
@@ -372,9 +394,6 @@ it:
min_invite_role:
disabled: Nessuno
title: Permetti inviti da
- open:
- desc_html: Consenti a chiunque di creare un account
- title: Apri registrazioni
show_known_fediverse_at_about_page:
desc_html: Quando attivato, mostra nell'anteprima i toot da tutte le istanze conosciute. Altrimenti mostra solo i toot locali.
title: Mostra la fediverse conosciuta nell'anteprima della timeline
@@ -382,20 +401,20 @@ it:
title: Mostra badge staff
site_description:
desc_html: Paragrafo introduttivo nella pagina iniziale. Descrive ciò che rende speciale questo server Mastodon e qualunque altra cosa sia importante dire. Potete usare marcatori HTML, in particolare
<a>
e
<em>
.
- title: Descrizione istanza
+ title: Descrizione del server
site_description_extended:
- desc_html: Un posto adatto per pubblicare regole di comportamento, linee guida e altre cose specifiche della vostra istanza. Potete usare marcatori HTML
+ desc_html: Un posto adatto per pubblicare regole di comportamento, linee guida e altre cose specifiche del vostro server. Potete usare marcatori HTML
title: Informazioni estese personalizzate
site_short_description:
- desc_html: Mostrato nella barra laterale e nei tag meta. Descrive in un paragrafo che cos'è Mastodon e che cosa rende questo server speciale. Se vuoto, sarà usata la descrizione predefinita dell'istanza.
- title: Breve descrizione dell'istanza
+ desc_html: Mostrato nella barra laterale e nei tag meta. Descrive in un paragrafo che cos'è Mastodon e che cosa rende questo server speciale. Se vuoto, sarà usata la descrizione predefinita del server.
+ title: Breve descrizione del server
site_terms:
desc_html: Potete scrivere la vostra politica sulla privacy, condizioni del servizio o altre informazioni legali. Potete usare tag HTML
title: Termini di servizio personalizzati
- site_title: Nome istanza
+ site_title: Nome del server
thumbnail:
desc_html: Usato per anteprime tramite OpenGraph e API. 1200x630px consigliati
- title: Thumbnail dell'istanza
+ title: Thumbnail del server
timeline_preview:
desc_html: Mostra la timeline pubblica sulla pagina iniziale
title: Anteprima timeline
@@ -418,7 +437,21 @@ it:
confirmed: Confermato
expires_in: Scade in
topic: Argomento
+ tags:
+ accounts: Account
+ hidden: Nascosto
+ hide: Nascondi nella directory
+ name: Hashtag
+ title: Hashtag
+ unhide: Mostra nella directory
+ visible: Visibile
title: Amministrazione
+ warning_presets:
+ add_new: Aggiungi nuovo
+ delete: Cancella
+ edit: Modifica
+ edit_preset: Modifica avviso predefinito
+ title: Gestisci avvisi predefiniti
application_mailer:
notification_preferences: Cambia preferenze email
salutation: "%{name},"
@@ -434,7 +467,6 @@ it:
token_regenerated: Token di accesso rigenerato
warning: Fa' molta attenzione con questi dati. Non fornirli mai a nessun altro!
auth:
- agreement_html: Iscrivendoti, accetti di seguire
le regole dell'istanza e
le nostre condizioni di servizio.
change_password: Password
confirm_email: Conferma email
delete_account: Elimina account
@@ -445,10 +477,8 @@ it:
logout: Esci da Mastodon
migrate_account: Sposta ad un account differente
migrate_account_html: Se vuoi che questo account sia reindirizzato a uno diverso, puoi
configurarlo qui.
- or: o
or_log_in_with: Oppure accedi con
register: Iscriviti
- register_elsewhere: Iscriviti su un altro server
resend_confirmation: Invia di nuovo le istruzioni di conferma
reset_password: Resetta la password
security: Credenziali
@@ -484,11 +514,21 @@ it:
description_html: Questa azione eliminerà
in modo permanente e irreversibile tutto il contenuto del tuo account e lo disattiverà. Il tuo nome utente resterà riservato per prevenire che qualcuno in futuro assuma la tua identità.
proceed: Cancella l'account
success_msg: Il tuo account è stato cancellato
- warning_html: È garantita solo la cancellazione del contenuto solo da questa istanza. I contenuti che sono stati ampiamente condivisi probabilmente lasceranno delle tracce. I server offline e quelli che non ricevono più i tuoi aggiornamenti non aggiorneranno i loro database.
+ warning_html: È garantita la cancellazione del contenuto solo da questo server. I contenuti che sono stati ampiamente condivisi probabilmente lasceranno delle tracce. I server offline e quelli che non ricevono più i tuoi aggiornamenti non aggiorneranno i loro database.
+ directories:
+ directory: Directory dei profili
+ enabled: Attualmente sei elencato nella directory.
+ enabled_but_waiting: Hai scelto di essere elencato nella directory, ma non hai ancora il numero minimo di seguaci (%{min_followers}) per comparire.
+ explanation: Scopri utenti in base ai loro interessi
+ explore_mastodon: Esplora %{title}
+ how_to_enable: Attualmente non hai scelto di comparire nella directory. Puoi farlo qui sotto. Se vuoi comparire sotto determinati hashtag, usali nel testo della tua biografia.
+ people:
+ one: "%{count} persona"
+ other: "%{count} persone"
errors:
'403': Non sei autorizzato a visualizzare questa pagina.
'404': La pagina che stavi cercando non esiste.
- '410': La pagina che stavi cercando non esiste più.
+ '410': La pagina che stavi cercando qui non esiste più.
'422':
content: Verifica di sicurezza non riuscita. Stai bloccando i cookies?
title: Verifica di sicurezza non riuscita
@@ -506,9 +546,15 @@ it:
size: Dimensioni
blocks: Stai bloccando
csv: CSV
+ domain_blocks: Blocchi di dominio
follows: Stai seguendo
+ lists: Liste
mutes: Stai silenziando
storage: Archiviazione media
+ featured_tags:
+ add_new: Aggiungi nuovo
+ errors:
+ limit: Hai già messo in evidenza il numero massimo di hashtag
filters:
contexts:
home: Timeline home
@@ -524,15 +570,6 @@ it:
title: Filtri
new:
title: Aggiungi filtro
- followers:
- domain: Dominio
- explanation_html: Se vuoi garantire la privacy dei tuoi status, devi sapere chi ti sta seguendo.
I tuoi status privati vengono inviati a tutte le istanze su cui hai dei seguaci. Puoi controllare chi sono i tuoi seguaci, ed eliminarli se non hai fiducia che la tua privacy venga rispettata dallo staff o dal software di quelle istanze.
- followers_count: Numero di seguaci
- lock_link: Blocca il tuo account
- purge: Elimina dai seguaci
- true_privacy_html: Tieni presente che
l'effettiva riservatezza si può ottenere solo con la crittografia end-to-end.
- unlocked_warning_html: Chiunque può seguirti per vedere immediatamente i tuoi status privati. %{lock_link} per poter esaminare e respingere gli utenti che vogliono seguirti.
- unlocked_warning_title: Il tuo account non è bloccato
footer:
developers: Sviluppatori
more: Altro…
@@ -544,10 +581,16 @@ it:
one: Qualcosa ancora non va bene! Per favore, controlla l'errore qui sotto
other: Qualcosa ancora non va bene! Per favore, controlla i %{count} errori qui sotto
imports:
- preface: Puoi importare alcune informazioni, come le persone che segui o hai bloccato su questo server, da file creati da un esportazione su un altro server.
+ modes:
+ merge: Fondi
+ merge_long: Mantieni record esistenti e aggiungine di nuovi
+ overwrite: Sovrascrivi
+ overwrite_long: Sostituisci record attuali con quelli nuovi
+ preface: Puoi importare alcune informazioni, come le persone che segui o hai bloccato su questo server, da file creati da un'esportazione su un altro server.
success: Le tue impostazioni sono state importate correttamente e verranno applicate in breve tempo
types:
blocking: Lista dei bloccati
+ domain_blocking: Lista dei domini bloccati
following: Lista dei seguaci
muting: Lista dei silenziati
upload: Carica
@@ -569,7 +612,7 @@ it:
one: un uso
other: "%{count} utilizzi"
max_uses_prompt: Nessun limite
- prompt: Genera e condividi dei link ad altri per garantire l'accesso a questa istanza
+ prompt: Genera e condividi dei link con altri per concedere l'accesso a questo server
table:
expires_at: Scade
uses: Utilizzi
@@ -639,6 +682,15 @@ it:
older: Più vecchio
prev: Indietro
truncate: "…"
+ polls:
+ errors:
+ already_voted: Hai già votato in questo sondaggio
+ duration_too_long: è troppo lontano nel futuro
+ duration_too_short: è troppo presto
+ expired: Il sondaggio si è già concluso
+ over_character_limit: non possono essere più lunghi di %{max} caratteri ciascuno
+ too_few_options: deve avere più di un elemento
+ too_many_options: non può contenere più di %{max} elementi
preferences:
languages: Lingue
other: Altro
@@ -650,9 +702,24 @@ it:
no_account_html: Non hai un account? Puoi
iscriverti qui
proceed: Conferma
prompt: 'Stai per seguire:'
+ remote_interaction:
+ favourite:
+ proceed: Continua per segnare come apprezzato
+ prompt: 'Vuoi segnare questo toot come apprezzato:'
+ reblog:
+ proceed: Continua per condividere
+ prompt: 'Vuoi condividere questo toot:'
+ reply:
+ proceed: Continua per rispondere
+ prompt: 'Vuoi rispondere a questo toot:'
remote_unfollow:
error: Errore
title: Titolo
+ unfollowed: Non più seguito
+ scheduled_statuses:
+ over_daily_limit: Hai superato il limite di %{limit} toot programmati per questo giorno
+ over_total_limit: Hai superato il limite di %{limit} toot programmati
+ too_soon: La data di pubblicazione deve essere nel futuro
sessions:
activity: Ultima attività
browser: Browser
@@ -690,14 +757,12 @@ it:
development: Sviluppo
edit_profile: Modifica profilo
export: Esporta impostazioni
- followers: Seguaci autorizzati
+ featured_tags: Hashtag in evidenza
import: Importa
migrate: Migrazione dell'account
notifications: Notifiche
preferences: Preferenze
- settings: Impostazioni
two_factor_authentication: Autenticazione a due fattori
- your_apps: Le tue applicazioni
statuses:
attached:
description: 'Allegato: %{attached}'
@@ -719,6 +784,11 @@ it:
ownership: Non puoi fissare in cima un toot di qualcun altro
private: Un toot non pubblico non può essere fissato in cima
reblog: Un toot condiviso non può essere fissato in cima
+ poll:
+ total_votes:
+ one: "%{count} voto"
+ other: "%{count} voti"
+ vote: Vota
show_more: Mostra di più
sign_in_to_participate: Accedi per partecipare alla conversazione
visibilities:
@@ -735,8 +805,8 @@ it:
terms:
title: "%{instance} Termini di servizio e politica della privacy"
themes:
- contrast: Contrasto elevato
- default: Mastodon
+ contrast: Mastodon (contrasto elevato)
+ default: Mastodon (scuro)
mastodon-light: Mastodon (chiaro)
time:
formats:
@@ -768,7 +838,7 @@ it:
final_action: Inizia a postare
final_step: 'Inizia a postare! Anche se non hai seguaci, i tuoi messaggi pubblici possono essere visti da altri, ad esempio nelle timeline locali e negli hashtag. Se vuoi puoi presentarti con l''hashtag #introductions.'
full_handle: Il tuo nome utente completo
- full_handle_hint: Questo è ciò che diresti ai tuoi amici in modo che possano seguirti o contattarti da un'altra istanza.
+ full_handle_hint: Questo è ciò che diresti ai tuoi amici in modo che possano seguirti o contattarti da un altro server.
review_preferences_action: Cambia preferenze
review_preferences_step: Dovresti impostare le tue preferenze, ad esempio quali email vuoi ricevere oppure il livello predefinito di privacy per i tuoi post. Se le immagini in movimento non ti danno fastidio, puoi abilitare l'animazione automatica delle GIF.
subject: Benvenuto/a su Mastodon
diff --git a/config/locales/ja.yml b/config/locales/ja.yml
index 7ccb2f21c..545146145 100644
--- a/config/locales/ja.yml
+++ b/config/locales/ja.yml
@@ -4,36 +4,36 @@ ja:
about_hashtag_html: ハッシュタグ
#%{hashtag} の付いた公開トゥートです。どこでもいいので、連合に参加しているSNS上にアカウントを作れば会話に参加することができます。
about_mastodon_html: Mastodon は、オープンなウェブプロトコルを採用した、自由でオープンソースなソーシャルネットワークです。電子メールのような分散型の仕組みを採っています。
about_this: 詳細情報
+ active_count_after: 人アクティブ
+ active_footnote: 月間アクティブユーザー数 (MAU)
administered_by: '管理者:'
api: API
apps: アプリ
- closed_registrations: 現在このインスタンスでの新規登録は受け付けていません。しかし、他のインスタンスにアカウントを作成しても全く同じネットワークに参加することができます。
+ apps_platforms: iOSやAndroidなど、各種環境から利用できます
+ browse_directory: ディレクトリから気になる人を探しましょう
+ browse_public_posts: Mastodonの公開ライブストリームをご覧ください
contact: 連絡先
contact_missing: 未設定
contact_unavailable: N/A
+ discover_users: ユーザーを見つける
documentation: ドキュメント
extended_description_html: |
ルールを書くのに適した場所
詳細説明が設定されていません。
- features:
- humane_approach_body: 他の SNS の失敗から学び、Mastodon はソーシャルメディアが誤った使い方をされることの無いように倫理的な設計を目指しています。
- humane_approach_title: より思いやりのある設計
- 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 インスタンスの一つです"
+ federation_hint_html: "%{instance} にアカウントがあればどの互換性のあるサーバーのユーザーでもフォローできるでしょう。"
+ generic_description: "%{domain} は、Mastodon サーバーの一つです"
+ get_apps: モバイルアプリを試す
hosted_on: Mastodon hosted on %{domain}
learn_more: もっと詳しく
- other_instances: 他のインスタンス
privacy_policy: プライバシーポリシー
+ see_whats_happening: やりとりを見てみる
+ server_stats: 'サーバー統計:'
source_code: ソースコード
status_count_after:
one: トゥート
other: トゥート
status_count_before: トゥート数
+ tagline: Follow friends and discover new ones
terms: 利用規約
user_count_after:
one: 人
@@ -68,6 +68,7 @@ ja:
admin: Admin
bot: Bot
moderator: Mod
+ unavailable: プロフィールは利用できません
unfollow: フォロー解除
admin:
account_actions:
@@ -79,6 +80,8 @@ ja:
delete: 削除
destroyed_msg: モデレーションメモを削除しました!
accounts:
+ approve: 承認
+ approve_all: すべて承認
are_you_sure: 本当に実行しますか?
avatar: アイコン
by_domain: ドメイン
@@ -124,22 +127,27 @@ ja:
moderation:
active: アクティブ
all: すべて
+ pending: 承認待ち
silenced: サイレンス済み
suspended: 停止済み
title: モデレーション
moderation_notes: モデレーションメモ
most_recent_activity: 直近の活動
most_recent_ip: 直近のIP
+ no_account_selected: 何も選択されていないため、変更されていません
no_limits_imposed: 制限なし
not_subscribed: 購読していない
outbox_url: Outbox URL
+ pending: 承認待ち
perform_full_suspension: 活動を完全に停止させる
profile_url: プロフィールURL
promote: 昇格
protocol: プロトコル
public: パブリック
push_subscription_expires: PuSH購読期限
- redownload: アバターの更新
+ redownload: プロフィールを更新
+ reject: 却下
+ reject_all: すべて却下
remove_avatar: アイコンを削除
remove_header: ヘッダーを削除
resend_confirmation:
@@ -159,8 +167,8 @@ ja:
search: 検索
shared_inbox_url: Shared inbox URL
show:
- created_reports: このアカウントで作られたレポート
- targeted_reports: このアカウントについてのレポート
+ created_reports: このアカウントで作られた通報
+ targeted_reports: このアカウントについての通報
silence: サイレンス
silenced: サイレンス済み
statuses: トゥート数
@@ -176,7 +184,7 @@ ja:
web: Web
action_logs:
actions:
- assigned_to_self_report: "%{name} さんがレポート %{target} を自身の担当に割り当てました"
+ assigned_to_self_report: "%{name} さんが通報 %{target} を自身の担当に割り当てました"
change_email_user: "%{name} さんが %{target} さんのメールアドレスを変更しました"
confirm_user: "%{name} さんが %{target} さんのメールアドレスを確認済みにしました"
create_account_warning: "%{name} さんが %{target} さんに警告メールを送信しました"
@@ -196,12 +204,12 @@ ja:
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} の担当を外しました"
+ unassigned_report: "%{name} さんが通報 %{target} の担当を外しました"
unsilence_account: "%{name} さんが %{target} さんのサイレンスを解除しました"
unsuspend_account: "%{name} さんが %{target} さんの停止を解除しました"
update_custom_emoji: "%{name} さんがカスタム絵文字 %{target} を更新しました"
@@ -241,9 +249,10 @@ ja:
feature_profile_directory: ディレクトリ
feature_registrations: 新規登録
feature_relay: 連合リレー
+ feature_timeline_preview: タイムラインプレビュー
features: 機能
hidden_service: 秘匿サービスとの連合
- open_reports: 未解決のレポート
+ open_reports: 未解決の通報
recent_users: 最近登録したユーザー
search: 全文検索
single_user_mode: シングルユーザーモード
@@ -271,10 +280,10 @@ ja:
title: 新規ドメインブロック
reject_media: メディアファイルを拒否
reject_media_hint: ローカルに保存されたメディアファイルを削除し、今後のダウンロードを拒否します。停止とは無関係です
- reject_reports: レポートを拒否
- reject_reports_hint: このドメインからのレポートをすべて無視します。停止とは無関係です
+ reject_reports: 通報を拒否
+ reject_reports_hint: このドメインからの通報をすべて無視します。停止とは無関係です
rejecting_media: メディアファイルを拒否中
- rejecting_reports: レポートを拒否中
+ rejecting_reports: 通報を拒否中
severity:
silence: サイレンス中
suspend: 停止中
@@ -287,7 +296,7 @@ ja:
suspend: このドメインからの存在するすべてのアカウントの停止を戻す
title: "%{domain}のドメインブロックを戻す"
undo: 元に戻す
- undo: 元に戻す
+ undo: ドメインブロックを戻す
email_domain_blocks:
add_new: 新規追加
created_msg: ブラックリストに追加しました
@@ -302,6 +311,7 @@ ja:
back_to_account: 戻る
title: "%{acct}さんのフォロワー"
instances:
+ by_domain: ドメイン
delivery_available: 配送可能
known_accounts:
one: 既知のアカウント数 %{count}
@@ -310,11 +320,11 @@ ja:
all: すべて
limited: 制限あり
title: モデレーション
- title: 既知のインスタンス
+ title: 既知のサーバー
total_blocked_by_us: ブロック合計
total_followed_by_them: 被フォロー合計
total_followed_by_us: フォロー合計
- total_reported: レポート合計
+ total_reported: 通報合計
total_storage: 添付されたメディア
invites:
deactivate_all: すべて無効化
@@ -324,6 +334,8 @@ ja:
expired: 期限切れ
title: フィルター
title: 招待
+ pending_accounts:
+ title: 承認待ちアカウント (%{count})
relays:
add_new: リレーを追加
delete: 削除
@@ -340,19 +352,19 @@ ja:
status: ステータス
title: リレー
report_notes:
- created_msg: レポートメモを書き込みました!
- destroyed_msg: レポートメモを削除しました!
+ created_msg: 通報メモを書き込みました!
+ destroyed_msg: 通報メモを削除しました!
reports:
account:
note: メモ
- report: レポート
- action_taken_by: レポート処理者
+ report: 通報
+ action_taken_by: 通報処理者
are_you_sure: 本当に実行しますか?
assign_to_self: 担当になる
assigned: 担当者
comment:
none: なし
- created_at: レポート日時
+ created_at: 通報日時
mark_as_resolved: 解決済みとしてマーク
mark_as_unresolved: 未解決として再び開く
notes:
@@ -362,13 +374,13 @@ ja:
delete: 削除
placeholder: どのような措置が取られたか、または関連する更新を記述してください…
reopen: 再び開く
- report: レポート#%{id}
+ report: 通報#%{id}
reported_account: 報告対象アカウント
reported_by: 報告者
resolved: 解決済み
- resolved_msg: レポートを解決済みにしました!
+ resolved_msg: 通報を解決済みにしました!
status: ステータス
- title: レポート
+ title: 通報
unassign: 担当を外す
unresolved: 未解決
updated_at: 更新日時
@@ -381,7 +393,7 @@ ja:
title: 新規ユーザーが自動フォローするアカウント
contact_information:
email: ビジネスメールアドレス
- username: 連絡先のユーザー名
+ username: 連絡先ユーザー名
custom_css:
desc_html: 全ページに適用されるCSSの編集
title: カスタムCSS
@@ -392,8 +404,8 @@ ja:
desc_html: 複数のページに表示されます。サイズは293x205px以上推奨です。未設定の場合、標準のマスコットが使用されます
title: マスコットイメージ
peers_api_enabled:
- desc_html: 連合内でこのインスタンスが遭遇したドメインの名前
- title: 接続しているインスタンスのリストを公開する
+ desc_html: 連合内でこのサーバーが遭遇したドメインの名前
+ title: 接続しているサーバーのリストを公開する
preview_sensitive_media:
desc_html: 他のウェブサイトにリンクを貼った際、メディアが閲覧注意としてマークされていてもサムネイルが表示されます
title: OpenGraphによるプレビューで閲覧注意のメディアも表示する
@@ -410,9 +422,12 @@ ja:
min_invite_role:
disabled: 誰も許可しない
title: 招待の作成を許可
- open:
- desc_html: 誰でも自由にアカウントを作成できるようにします
- title: 新規登録を受け付ける
+ registrations_mode:
+ modes:
+ approved: 登録には承認が必要
+ none: 誰も許可しない
+ open: 誰でも登録可
+ title: 新規登録
show_known_fediverse_at_about_page:
desc_html: チェックを入れるとプレビュー欄に既知の連合先全てのトゥートを表示します。外すとローカルのトゥートだけ表示します。
title: タイムラインプレビューに連合タイムラインを表示する
@@ -420,21 +435,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タグが使えます
+ desc_html: 独自のプライバシーポリシーや利用規約、その他の法的根拠を記述できます。HTMLタグが使えます
title: カスタム利用規約
- site_title: インスタンスの名前
+ site_title: サーバーの名前
thumbnail:
desc_html: OpenGraphとAPIによるプレビューに使用されます。サイズは1200×630px推奨です
- title: インスタンスのサムネイル
+ title: サーバーのサムネイル
timeline_preview:
desc_html: ランディングページに公開タイムラインを表示します
title: タイムラインプレビュー
@@ -475,6 +490,9 @@ ja:
edit_preset: プリセット警告文を編集
title: プリセット警告文を管理
admin_mailer:
+ new_pending_account:
+ body: 新しいアカウントの詳細は以下の通りです。この申請を承認または却下することができます。
+ subject: "%{instance} で新しいアカウント (%{username}) が承認待ちです"
new_report:
body: "%{reporter} が %{target} を通報しました"
body_remote: "%{domain} の誰かが %{target} を通報しました"
@@ -495,8 +513,9 @@ ja:
warning: このデータは気をつけて取り扱ってください。他の人と共有しないでください!
your_token: アクセストークン
auth:
- agreement_html: 登録するをクリックすると
インスタンスのルール と
プライバシーポリシー に従うことに同意したことになります。
+ apply_for_account: 登録を申請する
change_password: パスワード
+ checkbox_agreement_html:
サーバーのルール と
プライバシーポリシー に同意します
confirm_email: メールアドレスの確認
delete_account: アカウントの削除
delete_account_html: アカウントを削除したい場合、
こちら から手続きが行えます。削除する前に、確認画面があります。
@@ -507,17 +526,17 @@ ja:
logout: ログアウト
migrate_account: 別のアカウントに引っ越す
migrate_account_html: 引っ越し先を明記したい場合は
こちらで設定できます。
- or: または
or_log_in_with: または次のサービスでログイン
providers:
cas: CAS
saml: SAML
register: 登録する
- register_elsewhere: 他のインスタンスで新規登録
+ registration_closed: "%{instance} は現在、新規登録停止中です"
resend_confirmation: 確認メールを再送する
reset_password: パスワードを再発行
security: セキュリティ
set_new_password: 新しいパスワード
+ trouble_logging_in: ログインできませんか?
authorize_follow:
already_following: あなたは既にこのアカウントをフォローしています
error: 残念ながら、リモートアカウント情報の取得中にエラーが発生しました
@@ -549,7 +568,7 @@ ja:
description_html: あなたのアカウントに含まれるコンテンツは全て削除され、アカウントは無効化されます。これは恒久的なもので、
取り消すことはできません。なりすましを防ぐために、同じユーザー名で再度登録することはできなくなります。
proceed: アカウントを削除する
success_msg: アカウントは正常に削除されました
- warning_html: 削除が保証されるのはこのインスタンス上のコンテンツのみです。他のインスタンス等、外部に広く共有されたコンテンツについては痕跡が残ることがあります。また、現在接続できないサーバーや、あなたの更新を受け取らなくなったサーバーに対しては、削除は反映されません。
+ warning_html: 削除が保証されるのはこのサーバー上のコンテンツのみです。他のサーバー等、外部に広く共有されたコンテンツについては痕跡が残ることがあります。また、現在接続できないサーバーや、あなたの更新を受け取らなくなったサーバーに対しては、削除は反映されません。
warning_title: 共有されたコンテンツについて
directories:
directory: ディレクトリ
@@ -573,6 +592,9 @@ ja:
content: もうしわけありませんが、なにかが間違っています。
title: このページは正しくありません
noscript_html: Mastodonのウェブアプリケーションを利用する場合はJavaScriptを有効にしてください。またはあなたのプラットフォーム向けの
Mastodonネイティブアプリを探すことができます。
+ existing_username_validator:
+ not_found: そのようなユーザー名はローカルに見つかりませんでした
+ not_found_multiple: "%{usernames} は見つかりませんでした"
exports:
archive_takeout:
date: 日時
@@ -588,6 +610,10 @@ ja:
lists: リスト
mutes: ミュート
storage: メディア
+ featured_tags:
+ add_new: 追加
+ errors:
+ limit: 注目のハッシュタグの上限に達しました
filters:
contexts:
home: ホームタイムライン
@@ -604,34 +630,50 @@ ja:
title: フィルター
new:
title: 新規フィルターを追加
- followers:
- domain: ドメイン
- explanation_html: あなたの投稿のプライバシーを確保したい場合、誰があなたをフォローしているのかを把握している必要があります。
プライベート投稿は、あなたのフォロワーがいる全てのインスタンスに配信されます。 フォロワーのインスタンスの管理者やソフトウェアがあなたのプライバシーを尊重してくれるかどうか怪しい場合は、そのフォロワーを削除した方がよいかもしれません。
- followers_count: フォロワー数
- lock_link: 承認制アカウントにする
- purge: フォロワーから削除する
- success:
- one: 1個のドメインからソフトブロックするフォロワーを処理中...
- other: "%{count} 個のドメインからソフトブロックするフォロワーを処理中..."
- true_privacy_html: "
プライバシーの保護はエンドツーエンドの暗号化でのみ実現可能であることに留意ください。"
- unlocked_warning_html: 誰でもあなたをフォローすることができ、フォロワー限定の投稿をすぐに見ることができます。フォローする人を限定したい場合は%{lock_link}に設定してください。
- unlocked_warning_title: このアカウントは承認制アカウントに設定されていません
footer:
developers: 開発者向け
more: さらに…
resources: リソース
generic:
+ all: すべて
changes_saved_msg: 正常に変更されました!
copy: コピー
+ order_by: 並び順
save_changes: 変更を保存
validation_errors:
one: エラーが発生しました! 以下のエラーを確認してください
other: エラーが発生しました! 以下の%{count}個のエラーを確認してください
+ html_validator:
+ invalid_markup: '無効なHTMLマークアップが含まれています: %{error}'
+ identity_proofs:
+ active: アクティブ
+ authorize: 許可する
+ authorize_connection_prompt: この暗号化接続を許可しますか?
+ errors:
+ failed: 暗号化接続に失敗しました。%{provider}からもう一度やり直してください。
+ keybase:
+ invalid_token: Keybaseトークンは16進数で66文字のハッシュである必要があります
+ verification_failed: KeybaseはこのトークンをKeybaseユーザー%{kb_username}の署名として認識しませんでした。Keybaseから再試行してください。
+ wrong_user: "%{current}としてログインしている間%{proving}の証明を作成することはできません。%{proving}としてログインし、もう一度やり直してください。"
+ explanation_html: ここではKeybaseのような他のサービスのアカウントと暗号化し関連づけることができます。これにより他の人が暗号化されたメッセージを送信したり、その内容を信用できるようになります。
+ i_am_html: I am %{username} on %{service}.
+ identity: Identity
+ inactive: 非アクティブ
+ publicize_checkbox: 'そしてこれをトゥートしてください:'
+ publicize_toot: 'It is proven! I am %{username} on %{service}: %{url}'
+ status: 認証状態
+ view_proof: 証明を表示
imports:
- preface: 他のインスタンスでエクスポートされたファイルから、フォロー/ブロックした情報をこのインスタンス上のアカウントにインポートできます。
+ modes:
+ merge: 統合
+ merge_long: 現在のレコードを保持したまま新しいものを追加します
+ overwrite: 上書き
+ overwrite_long: 現在のレコードを新しいもので置き換えます
+ preface: 他のサーバーでエクスポートされたファイルから、フォロー/ブロックした情報をこのサーバー上のアカウントにインポートできます。
success: ファイルは正常にアップロードされ、現在処理中です。しばらくしてから確認してください
types:
blocking: ブロックしたアカウントリスト
+ domain_blocking: 非表示にしたドメインリスト
following: フォロー中のアカウントリスト
muting: ミュートしたアカウントリスト
upload: アップロード
@@ -653,7 +695,7 @@ ja:
one: '1'
other: "%{count}"
max_uses_prompt: 無制限
- prompt: リンクを生成・共有してこのインスタンスへの新規登録を受け付けることができます
+ prompt: リンクを生成・共有してこのサーバーへの新規登録を受け付けることができます
table:
expires_at: 有効期限
uses: 使用
@@ -722,11 +764,34 @@ ja:
older: 以前のトゥート
prev: 前
truncate: "…"
+ polls:
+ errors:
+ already_voted: このアンケートには投票済みです
+ duplicate_options: に同じものがあります
+ duration_too_long: が長過ぎます
+ duration_too_short: が短過ぎます
+ expired: アンケートは既に終了しました
+ over_character_limit: は%{max}文字より長くすることはできません
+ too_few_options: は複数必要です
+ too_many_options: は%{max}個までです
preferences:
languages: 言語
other: その他
publishing: 投稿
web: ウェブ
+ relationships:
+ activity: 活動
+ dormant: 非アクティブ
+ last_active: 最後の活動
+ most_recent: 新着
+ moved: 引っ越し済み
+ mutual: 相互
+ primary: 標準
+ relationship: 関係性
+ remove_selected_domains: 選択したドメインのフォロワーを全て解除
+ remove_selected_followers: 選択したフォロワーを解除
+ remove_selected_follows: 選択したユーザーをフォロー解除
+ status: 状態
remote_follow:
acct: あなたの ユーザー名@ドメイン を入力してください
missing_resource: リダイレクト先が見つかりませんでした
@@ -794,20 +859,25 @@ ja:
revoke_success: セッションを削除しました
title: セッション
settings:
+ account: アカウント
+ account_settings: セキュリティ
+ appearance: プロフィールを編集
authorized_apps: 認証済みアプリ
back: Mastodon に戻る
delete: アカウントの削除
development: 開発
edit_profile: プロフィールを編集
export: データのエクスポート
- followers: 信頼済みのインスタンス
+ featured_tags: 注目のハッシュタグ
+ identity_proofs: Identity proofs
import: データのインポート
+ import_and_export: インポート・エクスポート
migrate: アカウントの引っ越し
notifications: 通知
preferences: ユーザー設定
- settings: 設定
+ profile: プロフィール
+ relationships: フォロー・フォロワー
two_factor_authentication: 二段階認証
- your_apps: アプリ
statuses:
attached:
description: '添付: %{attached}'
@@ -826,10 +896,15 @@ ja:
open_in_web: Webで開く
over_character_limit: 上限は %{max}文字までです
pin_errors:
- limit: 固定されているトゥートの上限に達しました
+ limit: 固定できるトゥート数の上限に達しました
ownership: 他人のトゥートを固定することはできません
private: 非公開のトゥートを固定することはできません
- reblog: ブーストされたトゥートを固定することはできません
+ reblog: ブーストを固定することはできません
+ poll:
+ total_votes:
+ one: "%{count}票"
+ other: "%{count}票"
+ vote: 投票
show_more: もっと見る
sign_in_to_participate: ログインして会話に参加
title: '%{name}: "%{quote}"'
@@ -928,8 +1003,8 @@ ja:
オリジナルの出典: Discourse privacy policy
title: "%{instance} 利用規約・プライバシーポリシー"
themes:
- contrast: ハイコントラスト
- default: Mastodon
+ contrast: Mastodon (ハイコントラスト)
+ default: Mastodon (ダーク)
mastodon-light: Mastodon (ライト)
time:
formats:
@@ -979,13 +1054,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 056942ecd..9781fc5be 100644
--- a/config/locales/ka.yml
+++ b/config/locales/ka.yml
@@ -7,7 +7,6 @@ ka:
administered_by: 'ადმინისტრატორი:'
api: აპი
apps: მობილური აპლიკაციები
- closed_registrations: რეგისტრაციები ამჟამად ინსტანციაზე დახურულია. თუმცა! ანგარიშის შესაქმნელად შეგიძლიათ იპოვოთ სხვა ინსტანცია და იმავე ქსელზე იქონიოთ წვდომა იქიდან.
contact: კონტაქტი
contact_missing: არაა დაყენებული
contact_unavailable: მიუწ.
@@ -15,19 +14,9 @@ ka:
extended_description_html: |
კარგი ადგილი წესებისთვის
განვრცობილი აღწერილობა ჯერ არ შექმნილა.
- features:
- humane_approach_body: სხვა ქსელების შეცდომების გათვალისწინებით, მასტოდონი მიზნად ისახავს ეტიკური დიზაინის არჩევნების გაკეთებას, დაუპირისპირდეს სოციალური მედიის არასწორ მოხმარებას.
- humane_approach_title: უფრო ადამიანური მიდგომა
- not_a_product_body: მასტოდონი არ არის კომერციული ქსელი. არაა რეკლამა, არაა მაინინგი, არაა შემოღობილი ბაღები. არაა ცენტრალური ავტორიტეტი.
- not_a_product_title: შენ ხარ პერსონა და არა პროდუქტი
- real_conversation_body: 500 ნიშნის განკარგულებით, მარცვლოვანი კონტენტის და მედია გაფრთხილებების მხარდაჭერით, შეგიძლიათ გამოხატოთ ისე როგორც გსურთ.
- real_conversation_title: შექმნილია ნამდვილი საუბრისთვის
- within_reach_body: დეველოპერისთვის-მეგობრული აპი ექოსისტემის წყალობით, მრავალი აპლიკაცია აი-ოსისთვის, ანდროიდისთვის და სხვა პლატფორმებისთვის, საშალებას მოგცემთ ნებისმიერი ადგილიდან იქონიოთ კავშირი თქვენს მეგობრებთან.
- within_reach_title: მუდამ წვდომის ქვეშ
generic_description: "%{domain} ერთი სერვერია ქსელში"
hosted_on: მასტოდონს მასპინძლობს %{domain}
learn_more: გაიგე მეტი
- other_instances: ინსტანციების სია
privacy_policy: კონფიდენციალურობის პოლიტიკა
source_code: კოდი
status_count_after: სტატუსები
@@ -344,9 +333,6 @@ ka:
min_invite_role:
disabled: არავინ
title: ნება დაერთოს მოწვეევებს
- open:
- desc_html: უფლება მიეცით ყველას, გახსნან ანგარიში
- title: ღია რეგისტრაცია
show_known_fediverse_at_about_page:
desc_html: ჩართვისას, ეს გამოაჩენს ტუტებს ყველა ცნობილი ფედივერსისგან პრევიუზე. სხვა შემთხვევაში, გამოაჩენს მხოლოდ ლოკალურ ტუტებს.
title: გამოჩნდეს ცნობილი ვედივერსი თაიმლაინ პრევიუში
@@ -415,7 +401,6 @@ ka:
warning: იყავით ძალიან ფრთხილად ამ მონაცემთან. არასდროს გააზიაროთ ეს!
your_token: თქვენი წვდომის ტოკენი
auth:
- agreement_html: რეგისტრაციით თქვენ ეთანხმებით
ინსტანციის წესებს და
ჩვენ მომსახურების პირობებს.
change_password: პაროლი
confirm_email: ელ-ფოსტის დამოწმება
delete_account: ანგარიშის გაუქმება
@@ -427,13 +412,11 @@ ka:
logout: გასვლა
migrate_account: სხვა ანგარიშზე გადასვლა
migrate_account_html: თუ გსურთ ამ ანგარიშის რედირექტის ხვაზე, შეგიძლიათ
გაუწიოთ კონფიგურაცია აქ.
- or: ან
or_log_in_with: ან გამოიყენეთ
providers:
cas: ქეს
saml: სამლ
register: რეგისტრაცია
- register_elsewhere: რეგისტრაცია სხვა სერვერზე
resend_confirmation: დამოწმების ინსტრუქციების ხელახალი გამოგზავნა
reset_password: პაროლის გადატვირთვა
security: უსაფრთხოება
@@ -512,18 +495,6 @@ ka:
title: ფილტრები
new:
title: ახალი ფილტრის დამატება
- followers:
- domain: დომენი
- explanation_html: თუ გსურთ უზრუნველყოთ თქვენი სტატუსების კონფიდენციალურობა, უნდა იცოდეთ თუ ვინ მოგყვებათ.
კერძო სტატუსები მიეწოდება ყველა ინსტანციას, სადაც გყავთ მიმდევრები. შესაძლოა გსურდეთ განიხილოთ ისინი და ამოშალოთ მიმდევრები თუ არ ენდობით თქვენი კონფიდენციალურობის პატივისცემას სტაფისა თუ პროგრამისგან იმ ინსტანციებში.
- followers_count: მიმდევრების რაოდენობა
- lock_link: თქვენი ანგარიშის ჩაკეტვა
- purge: მიმდევრებიდან ამოშლა
- success:
- one: მიმდევრების სოფტ-ბლოკირების პროცესი ერთი დომენზე...
- other: მიმდევრების სოფტ-ბლოკირების პროცესი %{count} დომენზე...
- true_privacy_html: გთხოვთ გაითვალისწინეთ,
ჭეშმარიტი კონფიდენციალურობა მიღწევადია მხოლოდ ენდ-თუ-ენდ შიფრაციით.
- unlocked_warning_html: ყველას შეუძლია გამოგყვეთ, რომ უცბად იხილოს თქვენი სტატუსები. %{lock_link} რომ შეძლოთ განიხილოთ და უარყოთ მიმდევრები.
- unlocked_warning_title: თქვენი ანგარიში არაა ჩაკეტილი
footer:
developers: დეველოპერები
more: მეტი…
@@ -693,14 +664,11 @@ ka:
development: დეველოპმენტი
edit_profile: პროფილის ცვლილება
export: მონაცემის ექსპორტი
- followers: ავტორიზირებული მიმდევრები
import: იმპორტი
migrate: ანგარიშის მიგრაცია
notifications: შეტყობინებები
preferences: პრეფერენციები
- settings: პარამეტრები
two_factor_authentication: მეორე-ფაქტორის აუტენტიფიკაცია
- your_apps: თქვენი აპლიკაციები
statuses:
attached:
description: 'თან დართული: %{attached}'
diff --git a/config/locales/kk.yml b/config/locales/kk.yml
new file mode 100644
index 000000000..84bd71081
--- /dev/null
+++ b/config/locales/kk.yml
@@ -0,0 +1,996 @@
+---
+kk:
+ about:
+ about_hashtag_html: Бұл жерде
#%{hashtag} хэштегімен жинақталған жазбалар. Желіге тіркеліп, сіз де қосыла аласыз бұл ортаға.
+ about_mastodon_html: Mastodon - әлеуметтік желіге негізделген, тегін және веб протоколды, ашық кодты бағдарлама. Ол email сияқты орталығы жоқ құрылым.
+ about_this: Туралы
+ administered_by: 'Админ:'
+ api: API
+ apps: Мобиль қосымшалар
+ contact: Байланыс
+ contact_missing: Бапталмаған
+ contact_unavailable: Белгісіз
+ documentation: Құжаттама
+ extended_description_html: |
+
Ережелерге арналған жақсы орын
+
Әлі ештеңе жазылмапты
+ generic_description: "%{domain} желідегі серверлердің бірі"
+ hosted_on: Mastodon орнатылған %{domain} доменінде
+ learn_more: Көбірек білу
+ 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: Қосылды
+ feed_url: Feеd URL
+ 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: Құпиясөзді қалпына келтіру
+ resubscribe: Resubscribе
+ 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:
+ desc_html: "
Silence will make the account's posts invisible to anyone who isn't following them.
Suspend will remove all of the account's content, media, and profile data. Use
None if you just want to reject media filеs."
+ 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: Өшіру
+ destroyed_msg: Successfully deletеd e-mail domain from blacklist
+ domain: Домен
+ new:
+ create: Add dоmain
+ title: New e-mail blаcklist entry
+ title: E-mail қаратізімі
+ followers:
+ back_to_account: Back To Accоunt
+ title: "%{acct} оқырмандары"
+ instances:
+ by_domain: Domаin
+ 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: Өшіру
+ description_html: A
fedеration relay is an intermediary server that exchanges large volumes of public toots between servers that subscribe and publish to it.
It can help small and medium servers discover content from the fediverse, which would otherwise require local users manually following other people on remote servers.
+ disable: Сөндіру
+ disabled: Сөндірілді
+ enable: Қосу
+ enable_hint: Once enabled, your server will subscribe to all public toots from this rеlay, and will begin sending this server's public toots to it.
+ 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
+ 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:
+ delete: Delеte
+ nsfw_off: Сезімтал емес ретінде белгіле
+ nsfw_on: Сезімтал ретінде белгіле
+ failed_to_execute: Орындалмады
+ media:
+ title: Медиa
+ no_media: Медиасыз
+ no_status_selected: Бірде-бір статус өзгерген жоқ, себебі ештеңе таңдалмады
+ title: Аккаунт статустары
+ with_media: Медиамен
+ subscriptions:
+ callback_url: Callbаck URL
+ confirmed: Confirmеd
+ expires_in: Expirеs in
+ last_delivery: Last dеlivery
+ title: WеbSub
+ topic: Tоpic
+ tags:
+ accounts: Accоunts
+ hidden: Hiddеn
+ hide: Hidе from directory
+ name: Hаshtag
+ title: Hashtаgs
+ unhide: Shоw in directory
+ visible: Visiblе
+ title: Administrаtion
+ warning_presets:
+ add_new: Add nеw
+ delete: Deletе
+ edit: Еdit
+ edit_preset: Edit warning prеset
+ title: Manage warning presеts
+ admin_mailer:
+ new_report:
+ body: "%{reporter} has rеported %{target}"
+ body_remote: Someone from %{domain} has rеported %{target}
+ subject: New rеport for %{instance} (#%{id})
+ application_mailer:
+ notification_preferences: Change e-mail prеferences
+ salutation: "%{name},"
+ settings: 'Change e-mail preferеnces: %{link}'
+ view: 'Viеw:'
+ view_profile: Viеw Profile
+ view_status: Viеw status
+ applications:
+ created: Application succеssfully created
+ destroyed: Application succеssfully deleted
+ invalid_url: The providеd URL is invalid
+ regenerate_token: Regenerate accеss token
+ token_regenerated: Access token succеssfully regenerated
+ warning: Be very carеful with this data. Never share it with anyone!
+ your_token: Your access tokеn
+ auth:
+ change_password: Құпиясөз
+ confirm_email: Еmаil құптау
+ delete_account: Аккаунт өшіру
+ delete_account_html: Аккаунтыңызды жойғыңыз келсе,
мына жерді басыңыз. Сізден растау сұралатын болады.
+ didnt_get_confirmation: Растау хаты келмеді ме?
+ forgot_password: Құпиясөзіңізді ұмытып қалдыңыз ба?
+ invalid_reset_password_token: Құпиясөз қайтып алу қолжетімді емес немесе мерзімі аяқталған. Қайтадан сұратыңыз.
+ login: Кіру
+ logout: Шығу
+ migrate_account: Басқа аккаунтқа көшіру
+ migrate_account_html: Егер аккаунтыңызды басқасына байлағыңыз келсе,
мына жерге келіңіз.
+ or_log_in_with: Немесе былай кіріңіз
+ providers:
+ cas: САS
+ saml: SАML
+ register: Тіркелу
+ resend_confirmation: Растау нұсқаулықтарын жіберу
+ reset_password: Құпиясөзді қалпына келтіру
+ security: Қауіпсіздік
+ set_new_password: Жаңа құпиясөз қою
+ authorize_follow:
+ already_following: Бұл аккаунтқа жазылғансыз
+ error: Өкінішке орай, қашықтағы тіркелгіні іздеуде қате пайда болды
+ follow: Жазылу
+ follow_request: 'Сіз жазылуға өтініш жібердіңіз:'
+ following: 'Керемет! Сіз енді жазылдыңыз:'
+ post_follow:
+ close: Немесе терезені жаба салыңыз.
+ return: Қолданушы профилін көрсет
+ web: Вебте ашу
+ title: Жазылу %{acct}
+ datetime:
+ distance_in_words:
+ about_x_hours: "%{count}сағ"
+ about_x_months: "%{count}ай"
+ about_x_years: "%{count}жыл"
+ almost_x_years: "%{count}жыл"
+ half_a_minute: Осы бойда
+ less_than_x_minutes: "%{count}мин"
+ less_than_x_seconds: Осы бойда
+ over_x_years: "%{count}жыл"
+ x_days: "%{count}күн"
+ x_minutes: "%{count}мин"
+ x_months: "%{count}ай"
+ x_seconds: "%{count}сек"
+ deletes:
+ bad_password_msg: Болмады ма, хакер бала? Құпиясөз қате
+ confirm_password: Қазіргі құпиясөзіңізді жазыңыз
+ description_html: This will
permanently, irreversibly remove content from your account аnd deactivate it. Your username will remain reserved to prevent future impersonations.
+ proceed: Аккаунт өшіру
+ success_msg: Аккаунтыңыз сәтті өшірілді
+ warning_html: Only deletion of content from this particular server is guaranteed. Content that has been widely sharеd is likely to leave traces. Offline servers and servers that have unsubscribed from your updates will not update their databases.
+ 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': Сіз іздеген бет қазір жоқ екен.
+ '422':
+ content: Қауіпсіздік растауы қате. кукилерді блоктағансыз ба?
+ title: Қауіпсіздік растауы жасалмады
+ '429': Қысқартылған
+ '500':
+ content: Кешірерсіз, бірақ қазір бір қате пайда болып тұр.
+ title: Бұл бет дұрыс емес екен
+ noscript_html: Mastodon веб қосымшасын қолдану үшін, JavaScript қосыңыз. Болмай жатса,
мына қосымшаларды қосып көріңіз, Mastodon қолдану үшін.
+ exports:
+ archive_takeout:
+ date: Уақыты
+ download: Мұрағатыңызды түсіріп алыңыз
+ hint_html: Өзіңіздің
жазба және медиаларыңыздың мұрағатын сақтап алуыңызға болады. Экспортталатын деректер ActivityPub форматында болады, сәйкес бағдарламамлармен ашуға болады. Әр 7 күн сайын сұратуыңызға болады.
+ in_progress: Мұрағатыңызды жинақтау...
+ request: Мұрағат сұрату
+ size: Өлшемі
+ blocks: Бұғатталғансыз
+ csv: СSV
+ domain_blocks: Домен блоктары
+ follows: Оқитындарыңыз
+ lists: Тізімдер
+ mutes: Үнсіздер
+ storage: Медиа жинақ
+ featured_tags:
+ add_new: Жаңасын қосу
+ errors:
+ limit: Хэштег лимитинен асып кеттіңіз
+ filters:
+ contexts:
+ home: Ішкі желі
+ notifications: Ескертпелер
+ public: Ашық желі
+ thread: Пікірталас
+ edit:
+ title: Фильтр өңдеу
+ errors:
+ invalid_context: Жоқ немесе жарамсыз контекст берілген
+ invalid_irreversible: Қайтарылмайтын сүзгі тек ішкі немесе ескертпелер контекстімен жұмыс істейді
+ index:
+ delete: Өшіру
+ title: Фильтрлер
+ new:
+ title: Жаңа фильтр қосу
+ footer:
+ developers: Жасаушылар
+ more: Тағы…
+ resources: Ресурстар
+ generic:
+ changes_saved_msg: Өзгерістер сәтті сақталды!
+ copy: Көшіру
+ save_changes: Өзгерістерді сақтау
+ validation_errors:
+ one: Бір нәрсе дұрыс емес! Төмендегі қатені қараңыз
+ other: Бір нәрсе дұрыс емес! Төмендегі %{count} қатені қараңыз
+ imports:
+ modes:
+ merge: Біріктіру
+ merge_long: Бар жазбаларды сақтаңыз және жаңаларын қосыңыз
+ overwrite: Үстіне жазу
+ overwrite_long: Ағымдағы жазбаларды жаңаларына ауыстырыңыз
+ preface: Басқа серверден экспортталған деректерді импорттауға болады, мысалы, сіз бақылайтын немесе блоктайтын адамдардың тізімін.
+ success: Деректеріңіз сәтті жүктелді және дер кезінде өңделеді
+ types:
+ blocking: Бұғат тізімі
+ domain_blocking: Домен бұғаттары тізімі
+ following: Жазылғандар тізімі
+ muting: Үнсіздер тізімі
+ upload: Жүктеу
+ in_memoriam_html: Естеліктерде.
+ invites:
+ delete: Ажырату
+ expired: Мерзімі өткен
+ expires_in:
+ '1800': 30 минут
+ '21600': 6 сағат
+ '3600': 1 сағат
+ '43200': 12 сағат
+ '604800': 1 апта
+ '86400': 1 күн
+ expires_in_prompt: Ешқашан
+ generate: Құру
+ invited_by: 'Сізді шақырған:'
+ max_uses:
+ one: 1 қолданыс
+ other: "%{count} қолданыс"
+ max_uses_prompt: Лимитсіз
+ prompt: Осы серверге кіру рұқсатын беру үшін сілтемелерді жасаңыз және бөлісіңіз
+ table:
+ expires_at: Аяқталу мерзімі
+ uses: Қолданыс
+ title: Адам шақыру
+ lists:
+ errors:
+ limit: Сіз тізімдердің максимум мөлшеріне жеттіңіз
+ media_attachments:
+ validations:
+ images_and_video: Жазбаға видео қоса алмайсыз, тек сурет қосуға болады
+ too_many: 4 файлдан артық қосылмайды
+ migrations:
+ acct: жаңа аккаунт үшін username@domain
+ currently_redirecting: 'Профиліңіз көшіріледі:'
+ proceed: Сақтау
+ updated_msg: Аккаунт көшіруіңіз сәтті аяқталды!
+ moderation:
+ title: Модерация
+ notification_mailer:
+ digest:
+ action: Барлық ескертпелер
+ body: Міне, соңғы кірген уақыттан кейін келген хаттардың қысқаша мазмұны %{since}
+ mention: "%{name} сізді атап өтіпті:"
+ new_followers_summary:
+ one: Сондай-ақ, сіз бір жаңа оқырман таптыңыз! Алақай!
+ other: Сондай-ақ, сіз %{count} жаңа оқырман таптыңыз! Керемет!
+ subject:
+ one: "Соңғы кіруіңізден кейін 1 ескертпе келіпті \U0001F418"
+ other: "Соңғы кіруіңізден кейін %{count} ескертпе келіпті \U0001F418"
+ title: Сіз жоқ кезде...
+ favourite:
+ body: 'Жазбаңызды ұнатып, таңдаулыға қосты %{name}:'
+ subject: "%{name} жазбаңызды таңдаулыға қосты"
+ title: Жаңа таңдаулы
+ follow:
+ body: "%{name} сізге жазылды!"
+ subject: "%{name} сізге жазылды"
+ title: Жаңа оқырман
+ follow_request:
+ action: Жазылуға сұранымдарды реттеу
+ body: "%{name} сізге жазылғысы келеді"
+ subject: 'Жазылғысы келеді: %{name}'
+ title: Жазылуға сұраным
+ mention:
+ action: Жауап
+ body: 'Сізді атап өтіпті %{name} мында:'
+ subject: Сізді %{name} атап өтіпті
+ title: Жаңа аталым
+ reblog:
+ body: 'Жазбаңызды бөліскен %{name}:'
+ subject: "%{name} жазбаңызды бөлісті"
+ title: Жаңа бөлісім
+ number:
+ human:
+ decimal_units:
+ format: "%n%u"
+ units:
+ billion: В
+ million: М
+ quadrillion: Q
+ thousand: К
+ trillion: Т
+ pagination:
+ newer: Ешқашан
+ next: Келесі
+ older: Ерте
+ prev: Алдыңғы
+ truncate: "…"
+ polls:
+ errors:
+ already_voted: Бұл сауалнамаға қатысқансыз
+ duplicate_options: қайталанатын нәрселер бар
+ duration_too_long: тым ұзақ екен
+ duration_too_short: тым аз екен
+ expired: Сауалнама уақыты аяқталған
+ over_character_limit: "%{max} таңбадан артық болмайды"
+ too_few_options: бір жауаптан көп болуы керек
+ too_many_options: "%{max} жауаптан көп болмайды"
+ preferences:
+ languages: Тілдер
+ other: Басқа
+ publishing: Жариялау
+ web: Веб
+ remote_follow:
+ acct: Өзіңіздің username@domain теріңіз
+ missing_resource: Аккаунтыңызға байланған URL табылмады
+ no_account_html: Әлі тіркелмегенсіз бе? Мына жерден
тіркеліп алыңыз
+ proceed: Жазылу
+ prompt: 'Жазылғыңыз келеді:'
+ reason_html: "
Неліктен бұл қадам қажет? %{instance}
тіркелгіңіз келген сервер болмауы мүмкін, сондықтан сізді алдымен ішкі серверіңізге қайта бағыттау қажет."
+ remote_interaction:
+ 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: Браузер
+ browsers:
+ alipay: Аlipay
+ blackberry: Blаckberry
+ chrome: Chrоme
+ edge: Microsоft Edge
+ electron: Electrоn
+ firefox: Firеfox
+ generic: Белгісіз браузер
+ ie: Internet Explоrer
+ micro_messenger: MicroMеssenger
+ nokia: Nokia S40 Ovi Brоwser
+ opera: Opеra
+ otter: Ottеr
+ phantom_js: PhаntomJS
+ qq: QQ Brоwser
+ safari: Safаri
+ uc_browser: UCBrоwser
+ weibo: Weibо
+ current_session: Қазіргі сессия
+ description: "%{browser} - %{platform}"
+ explanation: Сіздің аккаунтыңызбен кірілген браузерлер тізімі.
+ ip: ІР
+ platforms:
+ adobe_air: Adobе Air
+ android: Andrоid
+ blackberry: Blackbеrry
+ chrome_os: ChromеOS
+ firefox_os: Firefоx OS
+ ios: iОS
+ linux: Lіnux
+ mac: Mаc
+ other: белгісіз платформа
+ windows: Windоws
+ windows_mobile: Windows Mоbile
+ windows_phone: Windоws Phone
+ revoke: Шығып кету
+ revoke_success: Сессиялар сәтті жабылды
+ title: Сессиялар
+ settings:
+ authorized_apps: Authorizеd apps
+ back: Желіге оралу
+ delete: Аккаунт өшіру
+ development: Жасаушы топ
+ edit_profile: Профиль өңдеу
+ export: Экспорт уақыты
+ featured_tags: Таңдаулы хэштегтер
+ import: Импорт
+ migrate: Аккаунт көшіру
+ notifications: Ескертпелер
+ preferences: Таңдаулар
+ two_factor_authentication: Екі-факторлы авторизация
+ statuses:
+ attached:
+ description: 'Жүктелді: %{attached}'
+ image:
+ one: "%{count} сурет"
+ other: "%{count} сурет"
+ video:
+ one: "%{count} видео"
+ other: "%{count} видео"
+ boosted_from_html: Бөлісілді %{acct_link}
+ content_warning: 'Контент ескертуі: %{warning}'
+ disallowed_hashtags:
+ one: 'рұқсат етілмеген хэштег: %{tags}'
+ other: 'рұқсат етілмеген хэштегтер: %{tags}'
+ language_detection: Тілді өздігінен таңда
+ open_in_web: Вебте ашу
+ over_character_limit: "%{max} максимум таңбадан асып кетті"
+ pin_errors:
+ limit: Жабыстырылатын жазба саны максимумынан асты
+ ownership: Біреудің жазбасы жабыстырылмайды
+ private: Жабық жазба жабыстырылмайды
+ reblog: Бөлісілген жазба жабыстырылмайды
+ poll:
+ total_votes:
+ one: "%{count} дауыс"
+ other: "%{count} дауыс"
+ vote: Дауыс беру
+ show_more: Тағы әкел
+ sign_in_to_participate: Сұхбатқа қатысу үшін кіріңіз
+ title: '%{name}: "%{quote}"'
+ visibilities:
+ private: Тек оқырмандарға
+ private_long: Тек оқырмандарға ғана көрінеді
+ public: Ашық
+ public_long: Бәрі көре алады
+ unlisted: Тізімге енбеген
+ unlisted_long: Бәрі көре алады, бірақ ашық тізімдерге ене алмайды
+ stream_entries:
+ pinned: Жабыстырылған жазба
+ reblogged: бөлісті
+ sensitive_content: Нәзік мазмұн
+ terms:
+ body_html: |
+
Құпиялылық шарттары
+
What information do we collect?
+
+
+ - Basic account information: If you register on this server, you may be asked to enter a username, an e-mail address and a password. You may also enter additional profile information such as a display name and biography, and upload a profile picture and header image. The username, display name, biography, profile picture and header image are always listed publicly.
+ - Posts, following and other public information: The list of people you follow is listed publicly, the same is true for your followers. When you submit a message, the date and time is stored as well as the application you submitted the message from. Messages may contain media attachments, such as pictures and videos. Public and unlisted posts are available publicly. When you feature a post on your profile, that is also publicly available information. Your posts are delivered to your followers, in some cases it means they are delivered to different servers and copies are stored there. When you delete posts, this is likewise delivered to your followers. The action of reblogging or favouriting another post is always public.
+ - Direct and followers-only posts: All posts are stored and processed on the server. Followers-only posts are delivered to your followers and users who are mentioned in them, and direct posts are delivered only to users mentioned in them. In some cases it means they are delivered to different servers and copies are stored there. We make a good faith effort to limit the access to those posts only to authorized persons, but other servers may fail to do so. Therefore it's important to review servers your followers belong to. You may toggle an option to approve and reject new followers manually in the settings. Please keep in mind that the operators of the server and any receiving server may view such messages, and that recipients may screenshot, copy or otherwise re-share them. Do not share any dangerous information over Mastodon.
+ - IPs and other metadata: When you log in, we record the IP address you log in from, as well as the name of your browser application. All the logged in sessions are available for your review and revocation in the settings. The latest IP address used is stored for up to 12 months. We also may retain server logs which include the IP address of every request to our server.
+
+
+
+
+
What do we use your information for?
+
+
Any of the information we collect from you may be used in the following ways:
+
+
+ - To provide the core functionality of Mastodon. You can only interact with other people's content and post your own content when you are logged in. For example, you may follow other people to view their combined posts in your own personalized home timeline.
+ - To aid moderation of the community, for example comparing your IP address with other known ones to determine ban evasion or other violations.
+ - The email address you provide may be used to send you information, notifications about other people interacting with your content or sending you messages, and to respond to inquiries, and/or other requests or questions.
+
+
+
+
+
How do we protect your information?
+
+
We implement a variety of security measures to maintain the safety of your personal information when you enter, submit, or access your personal information. Among other things, your browser session, as well as the traffic between your applications and the API, are secured with SSL, and your password is hashed using a strong one-way algorithm. You may enable two-factor authentication to further secure access to your account.
+
+
+
+
What is our data retention policy?
+
+
We will make a good faith effort to:
+
+
+ - Retain server logs containing the IP address of all requests to this server, in so far as such logs are kept, no more than 90 days.
+ - Retain the IP addresses associated with registered users no more than 12 months.
+
+
+
You can request and download an archive of your content, including your posts, media attachments, profile picture, and header image.
+
+
You may irreversibly delete your account at any time.
+
+
+
+
Do we use cookies?
+
+
Yes. Cookies are small files that a site or its service provider transfers to your computer's hard drive through your Web browser (if you allow). These cookies enable the site to recognize your browser and, if you have a registered account, associate it with your registered account.
+
+
We use cookies to understand and save your preferences for future visits.
+
+
+
+
Do we disclose any information to outside parties?
+
+
We do not sell, trade, or otherwise transfer to outside parties your personally identifiable information. This does not include trusted third parties who assist us in operating our site, conducting our business, or servicing you, so long as those parties agree to keep this information confidential. We may also release your information when we believe release is appropriate to comply with the law, enforce our site policies, or protect ours or others rights, property, or safety.
+
+
Your public content may be downloaded by other servers in the network. Your public and followers-only posts are delivered to the servers where your followers reside, and direct messages are delivered to the servers of the recipients, in so far as those followers or recipients reside on a different server than this.
+
+
When you authorize an application to use your account, depending on the scope of permissions you approve, it may access your public profile information, your following list, your followers, your lists, all your posts, and your favourites. Applications can never access your e-mail address or password.
+
+
+
+
Site usage by children
+
+
If this server is in the EU or the EEA: Our site, products and services are all directed to people who are at least 16 years old. If you are under the age of 16, per the requirements of the GDPR (General Data Protection Regulation) do not use this site.
+
+
If this server is in the USA: Our site, products and services are all directed to people who are at least 13 years old. If you are under the age of 13, per the requirements of COPPA (Children's Online Privacy Protection Act) do not use this site.
+
+
Law requirements can be different if this server is in another jurisdiction.
+
+
+
+
Changes to our Privacy Policy
+
+
If we decide to change our privacy policy, we will post those changes on this page.
+
+
This document is CC-BY-SA. It was last updated March 7, 2018.
+
+
Originally adapted from the Discourse privacy policy.
+ title: "%{instance} Қызмет көрсету шарттары және Құпиялылық саясаты"
+ themes:
+ contrast: Mastodon (Жоғары контраст)
+ default: Mastodon (Қою)
+ mastodon-light: Mastodon (Ашық)
+ time:
+ formats:
+ default: "%b %d, %Y, %H:%M"
+ month: "%b %Y"
+ two_factor_authentication:
+ code_hint: Растау үшін түпнұсқалықты растау бағдарламасы арқылы жасалған кодты енгізіңіз
+ description_html: "
екі факторлы түпнұсқалықты растауды қоссаңыз, кіру үшін сізге телефонға кіруіңізді талап етеді, сізге арнайы токен беріледі."
+ disable: Ажырату
+ enable: Қосу
+ enabled: Екі-факторлы авторизация қосылған
+ enabled_success: Екі-факторлы авторизация сәтті қосылды
+ generate_recovery_codes: Қалпына келтіру кодтарын жасаңыз
+ instructions_html: "
Мына QR кодты Google Authenticator арқылы скандаңыз немесе ұқсас TOTP бағдарламалары арқылы. Одан кейін желіге кіру үшін токендер берілетін болады."
+ lost_recovery_codes: Қалпына келтіру кодтары телефонды жоғалтсаңыз, тіркелгіңізге қайта кіруге мүмкіндік береді. Қалпына келтіру кодтарын жоғалтсаңыз, оларды осында қалпына келтіре аласыз. Ескі қалпына келтіру кодтары жарамсыз болады.
+ manual_instructions: 'Егер сіз QR-кодты сканерлей алмасаңыз және оны қолмен енгізуіңіз қажет болса, мұнда қарапайым нұсқаулық:'
+ recovery_codes: Қалпына келтіру кодтарын резервтік көшіру
+ recovery_codes_regenerated: Қалпына келтіру кодтары қалпына келтірілді
+ recovery_instructions_html: Егер сіз телефонға кіруді жоғалтсаңыз, тіркелгіңізге кіру үшін төмендегі қалпына келтіру кодтарының бірін пайдалануға болады.
Қалпына келтіру кодтарын қауіпсіз ұстаңыз . Мысалы, оларды басып шығарып, оларды басқа маңызды құжаттармен сақтауға болады.
+ setup: Орнату
+ wrong_code: Енгізілген код жарамсыз! Сервер уақыты мен құрылғының уақыты дұрыс па?
+ user_mailer:
+ backup_ready:
+ explanation: Сіз Mastodon аккаунтыңыздың толық мұрағатын сұрадыңыз. Қазір жүктеуге дайын!
+ subject: Мұрағатыңыз түсіріп алуға дайын
+ title: Мұрағатты алу
+ warning:
+ explanation:
+ disable: Аккаунтыңыз қатып қалса, сіздің деректеріңіз өзгеріссіз қалады, бірақ ол құлыптан босатылғанша ешқандай әрекетті орындай алмайсыз.
+ silence: While your account is limited, only people who are already following you will see your toots on this server, and you may be excluded from various public listings. However, others may still manually follоw you.
+ 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: Профиліңізге аватар, мұқаба сурет жүктей аласыз, аты-жөніңізді көрсете аласыз. Оқырмандарыңызға сізбен танысуға рұқсат бермес бұрын аккаунтыңызды уақытша құлыптап қоюға болады.
+ explanation: Мына кеңестерді шолып өтіңіз
+ final_action: Жазба жазу
+ final_step: 'Жазуды бастаңыз! Тіпті оқырмандарыңыз болмаса да, сіздің жалпы жазбаларыңызды басқа адамдар көре алады, мысалы, жергілікті желіде және хэштегтерде. Жазбаларыңызға # протоколды хэштег қоссаңыз болады.'
+ full_handle: Желі тұтқасы
+ full_handle_hint: This is what you would tell your friends so they can message or follow you frоm another server.
+ review_preferences_action: Таңдауларды өзгерту
+ review_preferences_step: Қандай хат-хабарларын алуды қалайтыныңызды немесе сіздің хабарламаларыңыздың қандай құпиялылық деңгейін алғыңыз келетінін анықтаңыз. Сондай-ақ, сіз GIF автоматты түрде ойнату мүмкіндігін қосуды таңдай аласыз.
+ subject: Mastodon Желісіне қош келдіңіз
+ tip_federated_timeline: Жаһандық желі - Mastodon желісінің негізгі құндылығы.
+ tip_following: Сіз бірден желі админіне жазылған болып саналасыз. Басқа адамдарға жазылу үшін жергілікті және жаһандық желіні шолып шығыңыз.
+ tip_local_timeline: Жерігілкті желіде маңайыздағы адамдардың белсенділігін көре аласыз %{instance}. Олар - негізгі көршілеріңіз!
+ tip_mobile_webapp: Мобиль браузеріңіз Mastodon желісін бастапқы бетке қосуды ұсынса, қабылдаңыз. Ескертпелер де шығатын болады. Арнайы қосымша сияқты бұл!
+ tips: Кеңестер
+ title: Ортаға қош келдің, %{name}!
+ users:
+ follow_limit_reached: Сіз %{limit} лимитінен көп адамға жазыла алмайсыз
+ invalid_email: Бұл e-mail адрес қате
+ invalid_otp_token: Қате екі-факторлы код
+ otp_lost_help_html: Егер кіру жолдарын жоғалтып алсаңыз, сізге %{email} арқылы жіберіледі
+ seamless_external_login: Сыртқы сервис арқылы кіріпсіз, сондықтан құпиясөз және электрондық пошта параметрлері қол жетімді емес.
+ signed_in_as: 'Былай кірдіңіз:'
+ verification:
+ explanation_html: 'Өзіңіздің профиль метадеректеріңіздегі сілтемелердің иесі ретінде өзіңізді
тексере аласыз. Ол үшін байланыстырылған веб-сайтта Mastodon профиліне
сілтеме болуы керек. Сілтемеде
rel = «me»
атрибуты болуы керек. Сілтеме мәтінінің мазмұны маңызды емес. Міне мысал:'
+ verification: Растау
diff --git a/config/locales/ko.yml b/config/locales/ko.yml
index bf6a8b770..6334ad30b 100644
--- a/config/locales/ko.yml
+++ b/config/locales/ko.yml
@@ -4,36 +4,36 @@ ko:
about_hashtag_html: "
#%{hashtag} 라는 해시태그가 붙은 공개 툿 입니다. 같은 연합에 속한 임의의 인스턴스에 계정을 생성하면 당신도 대화에 참여할 수 있습니다."
about_mastodon_html: 마스토돈은
오픈 소스 기반의 소셜 네트워크 서비스 입니다. 상용 플랫폼의 대체로서
분산형 구조를 채택해, 여러분의 대화가 한 회사에 독점되는 것을 방지합니다. 신뢰할 수 있는 인스턴스를 선택하세요 — 어떤 인스턴스를 고르더라도, 누구와도 대화할 수 있습니다. 누구나 자신만의 마스토돈 인스턴스를 만들 수 있으며, 아주 매끄럽게
소셜 네트워크에 참가할 수 있습니다.
about_this: 이 인스턴스에 대해서
+ active_count_after: 활성 사용자
+ active_footnote: 월간 활성 사용자
administered_by: '관리자:'
api: API
apps: 모바일 앱
- closed_registrations: 현재 이 인스턴스에서는 신규 등록을 받고 있지 않습니다.
+ apps_platforms: 마스토돈을 iOS, 안드로이드, 다른 플랫폼들에서도 사용하세요
+ browse_directory: 프로필 디렉터리를 둘러보고 관심사 찾기
+ browse_public_posts: 마스토돈의 공개 라이브 스트림을 둘러보기
contact: 연락처
contact_missing: 미설정
contact_unavailable: N/A
+ discover_users: 유저 발견하기
documentation: 문서
extended_description_html: |
룰을 작성하는 장소
아직 설명이 작성되지 않았습니다.
- features:
- humane_approach_body: 다른 SNS의 실패를 교훈삼아, 마스토돈은 소셜미디어가 잘못 사용되는 것을 막기 위하여 윤리적인 설계를 추구합니다.
- humane_approach_title: 보다 배려를 의식한 설계를 추구
- not_a_product_body: 마스토돈은 이익을 추구하는 SNS가 아닙니다. 그러므로 광고와 데이터의 수집 및 분석이 존재하지 않고, 유저를 구속하지도 않습니다.
- not_a_product_title: 여러분은 사람이며, 상품이 아닙니다
- real_conversation_body: 자유롭게 사용할 수 있는 500문자의 메세지와 미디어 경고 내용을 바탕으로, 자기자신을 자유롭게 표현할 수 있습니다.
- real_conversation_title: 진정한 커뮤니케이션을 위하여
- within_reach_body: 개발자 친화적인 API에 의해서 실현된 iOS나 Android, 그 외의 여러 Platform들 덕분에 어디서든 친구들과 자유롭게 메세지를 주고 받을 수 있습니다.
- within_reach_title: 언제나 유저의 곁에서
+ federation_hint_html: "%{instance}에 계정을 만드는 것으로 모든 마스토돈 서버, 그리고 호환 되는 모든 서버의 사용자를 팔로우 할 수 있습니다."
generic_description: "%{domain} 은 네트워크에 있는 한 서버입니다"
+ get_apps: 모바일 앱 사용해 보기
hosted_on: "%{domain}에서 호스팅 되는 마스토돈"
learn_more: 자세히
- other_instances: 다른 인스턴스
privacy_policy: 개인정보 정책
+ see_whats_happening: 무슨 일이 일어나는 지 보기
+ server_stats: '서버 통계:'
source_code: 소스 코드
status_count_after:
one: 툿
other: 툿
status_count_before: 툿 수
+ tagline: 친구들을 팔로우 하고 새로운 사람들도 만나기
terms: 이용약관
user_count_after:
one: 명
@@ -68,6 +68,7 @@ ko:
admin: 관리자
bot: 봇
moderator: 모더레이터
+ unavailable: 프로필 사용 불가
unfollow: 팔로우 해제
admin:
account_actions:
@@ -79,6 +80,8 @@ ko:
delete: 삭제
destroyed_msg: 모더레이션 기록이 성공적으로 삭제되었습니다!
accounts:
+ approve: 승인
+ approve_all: 모두 승인
are_you_sure: 정말로 실행하시겠습니까?
avatar: 아바타
by_domain: 도메인
@@ -93,7 +96,7 @@ ko:
confirmed: 확인됨
confirming: 확인 중
deleted: 삭제됨
- demote: 모더레이터 강등
+ demote: 강등
disable: 비활성화
disable_two_factor_authentication: 2단계 인증을 비활성화
disabled: 비활성화된
@@ -124,22 +127,27 @@ ko:
moderation:
active: 활동
all: 전체
+ pending: 대기중
silenced: 침묵 중
suspended: 정지 중
title: 모더레이션
moderation_notes: 모더레이션 기록
most_recent_activity: 최근 활동
most_recent_ip: 최근 IP
+ no_account_selected: 아무 계정도 선택 되지 않아 아무 것도 변경 되지 않았습니다
no_limits_imposed: 제한 없음
not_subscribed: 구독하지 않음
outbox_url: 발신함 URL
+ pending: 심사 대기
perform_full_suspension: 정지시키기
profile_url: 프로필 URL
- promote: 모더레이터로 승급
+ promote: 승급
protocol: 프로토콜
public: 전체 공개
push_subscription_expires: PuSH 구독 기간 만료
redownload: 프로필 업데이트
+ reject: 거부
+ reject_all: 모두 거부
remove_avatar: 아바타 지우기
remove_header: 헤더 삭제
resend_confirmation:
@@ -147,7 +155,7 @@ ko:
send: 다시 확인 이메일
success: 확인 이메일이 전송되었습니다!
reset: 초기화
- reset_password: 비밀번호 초기화
+ reset_password: 암호 초기화
resubscribe: 다시 구독
role: 권한
roles:
@@ -241,6 +249,7 @@ ko:
feature_profile_directory: 프로필 디렉토리
feature_registrations: 가입
feature_relay: 연합 릴레이
+ feature_timeline_preview: 타임라인 미리보기
features: 기능
hidden_service: 히든 서비스와의 연합
open_reports: 미해결 신고
@@ -304,6 +313,7 @@ ko:
back_to_account: 계정으로 돌아가기
title: "%{acct}의 팔로워"
instances:
+ by_domain: 도메인
delivery_available: 전송 가능
known_accounts:
one: 알려진 계정 %{count}개
@@ -326,6 +336,8 @@ ko:
expired: 만료됨
title: 필터
title: 초대
+ pending_accounts:
+ title: 대기중인 계정 (%{count})
relays:
add_new: 릴레이 추가
delete: 삭제
@@ -350,7 +362,7 @@ ko:
report: 리포트
action_taken_by: 신고 처리자
are_you_sure: 정말로 실행하시겠습니까?
- assign_to_self: 나에게 할당 됨
+ assign_to_self: 나에게 할당하기
assigned: 할당 된 모더레이터
comment:
none: 없음
@@ -388,14 +400,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: 민감한 미디어를 오픈그래프 미리보기에 보여주기
@@ -412,9 +424,12 @@ ko:
min_invite_role:
disabled: 아무도 못 하게
title: 초대링크를 만들 수 있는 권한
- open:
- desc_html: 계정을 생성할 수 있도록 허용합니다
- title: 신규 계정 등록을 받음
+ registrations_mode:
+ modes:
+ approved: 가입하려면 승인이 필요함
+ none: 아무도 가입 할 수 없음
+ open: 누구나 가입 할 수 있음
+ title: 가입 모드
show_known_fediverse_at_about_page:
desc_html: 활성화 되면 프리뷰 페이지에서 페디버스의 모든 툿을 표시합니다. 비활성화시 로컬에 있는 툿만 표시 됩니다.
title: 타임라인 프리뷰에 알려진 페디버스 표시하기
@@ -422,21 +437,21 @@ ko:
desc_html: 유저 페이지에 스태프 배지를 표시합니다
title: 스태프 배지 표시
site_description:
- desc_html: 프론트 페이지의 소개문에 사용 됩니다.이 마스토돈 서버의 특별한 점 등을 설명하세요. HTML 태그, 주로
<a>
,
<em>
같은 것을 사용 가능합니다.
- title: 사이트 설명
+ desc_html: API의 소개문에 사용 됩니다.이 마스토돈 서버의 특별한 점 등을 설명하세요. HTML 태그, 주로
<a>
,
<em>
같은 것을 사용 가능합니다.
+ 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: 타임라인 프리뷰
@@ -477,6 +492,9 @@ ko:
edit_preset: 경고 틀 수정
title: 경고 틀 관리
admin_mailer:
+ new_pending_account:
+ body: 아래에 새 계정에 대한 상세정보가 있습니다. 이 가입을 승인하거나 거부할 수 있습니다.
+ subject: "%{instance}의 새 계정(%{username})에 대한 심사가 대기중입니다"
new_report:
body: "%{reporter} 가 %{target} 를 신고했습니다"
body_remote: "%{domain}의 누군가가 %{target}을 신고했습니다"
@@ -497,29 +515,30 @@ ko:
warning: 이 데이터를 조심히 다뤄 주세요. 다른 사람들과 절대로 공유하지 마세요!
your_token: 액세스 토큰
auth:
- agreement_html: 이 등록으로
이용규약 과
약관에 동의하는 것으로 간주됩니다.
+ apply_for_account: 가입 요청하기
change_password: 패스워드
+ checkbox_agreement_html:
서버 규칙과
이용약관에 동의합니다
confirm_email: 확인 메일 승인
delete_account: 계정 삭제
delete_account_html: 계정을 삭제하고 싶은 경우,
여기서 삭제할 수 있습니다. 삭제 전 확인 화면이 표시됩니다.
didnt_get_confirmation: 확인 메일을 받지 못하셨습니까?
forgot_password: 비밀번호를 잊어버리셨습니까?
- invalid_reset_password_token: 비밀번호 리셋 토큰이 올바르지 못하거나 기간이 만료되었습니다. 다시 요청해주세요.
+ invalid_reset_password_token: 암호 리셋 토큰이 올바르지 못하거나 기간이 만료되었습니다. 다시 요청해주세요.
login: 로그인
logout: 로그아웃
migrate_account: 계정 옮기기
migrate_account_html: 이 계정을 다른 계정으로 리디렉션 하길 원하는 경우
여기에서 설정할 수 있습니다.
- or: 또는
or_log_in_with: 다른 방법으로 로그인 하려면
providers:
cas: CAS
saml: SAML
register: 등록하기
- register_elsewhere: 다른 인스턴스에서 가입
+ registration_closed: "%{instance}는 새로운 가입을 받지 않고 있습니다"
resend_confirmation: 확인 메일을 다시 보내기
- reset_password: 비밀번호 재설정
+ reset_password: 암호 재설정
security: 보안
- set_new_password: 새 비밀번호
+ set_new_password: 새 암호
+ trouble_logging_in: 로그인 하는데 문제가 있나요?
authorize_follow:
already_following: 이미 이 계정을 팔로우 하고 있습니다
error: 리모트 계정을 확인하는 도중 오류가 발생했습니다
@@ -551,7 +570,7 @@ ko:
description_html: 계정에 업로드된 모든 컨텐츠가 삭제되며, 계정은 비활성화 됩니다. 이것은 영구적으로 이루어지는 것이므로
되돌릴 수 없습니다. 사칭 행위를 방지하기 위해 같은 아이디로 다시 등록하는 것은 불가능합니다.
proceed: 계정 삭제
success_msg: 계정이 성공적으로 삭제되었습니다
- warning_html: 삭제가 보장되는 것은 이 인스턴스 상에서의 컨텐츠에 한합니다. 타 인스턴스 등, 외부에 멀리 공유된 컨텐츠는 흔적이 남아 삭제되지 않는 경우도 있습니다. 그리고 현재 접속이 불가능한 서버나, 업데이트를 받지 않게 된 서버에 대해서는 삭제가 반영되지 않을 수도 있습니다.
+ warning_html: 삭제가 보장되는 것은 이 서버 상에서의 컨텐츠에 한합니다. 타 서버 등, 외부에 멀리 공유된 컨텐츠는 흔적이 남아 삭제되지 않는 경우도 있습니다. 그리고 현재 접속이 불가능한 서버나, 업데이트를 받지 않게 된 서버에 대해서는 삭제가 반영되지 않을 수도 있습니다.
warning_title: 공유된 컨텐츠에 대해서
directories:
directory: 프로필 디렉토리
@@ -566,7 +585,7 @@ ko:
errors:
'403': 이 페이지를 표시할 권한이 없습니다.
'404': 당신이 찾으려는 페이지는 존재하지 않습니다.
- '410': 당신이 보려는 페이지는 더이상 존재하지 않습니다.
+ '410': 당신이 보려는 페이지는 더이상 여기에 존재하지 않습니다.
'422':
content: 보안 인증에 실패했습니다. 쿠키를 차단하고 있진 않습니까?
title: 보안 인증 실패
@@ -575,6 +594,9 @@ ko:
content: 죄송합니다, 뭔가 잘못 되었습니다.
title: 이 페이지는 잘못되었습니다
noscript_html: 마스토돈을 사용하기 위해서는 자바스크립트를 켜 주십시오. 아니면
네이티브 앱 중 하나를 사용할 수 있습니다.
+ existing_username_validator:
+ not_found: 해당 유저네임에 대한 로컬 유저를 찾을 수 없습니다
+ not_found_multiple: "%{usernames}를 찾을 수 없습니다"
exports:
archive_takeout:
date: 날짜
@@ -590,6 +612,10 @@ ko:
lists: 리스트
mutes: 뮤트
storage: 미디어
+ featured_tags:
+ add_new: 추가
+ errors:
+ limit: 이미 추천 해시태그의 개수가 최대입니다
filters:
contexts:
home: 홈 타임라인
@@ -606,34 +632,50 @@ ko:
title: 필터
new:
title: 필터 추가
- followers:
- domain: 도메인
- explanation_html: 프라이버시를 확보하고 싶은 경우, 누가 여러분을 팔로우 하고 있는지 파악해둘 필요가 있습니다.
프라이빗 포스팅은 여러분의 팔로워가 소속하는 모든 인스턴스로 배달됩니다. 팔로워가 소속된 인스턴스 관리자나 소프트웨어가 여러분의 프라이버시를 존중하고 있는지 잘 모를 경우, 그 팔로워를 삭제하는 것이 좋을 수도 있습니다.
- followers_count: 팔로워 수
- lock_link: 비공개 계정
- purge: 팔로워에서 삭제
- success:
- one: 1개 도메인에서 팔로워를 soft-block 처리 중...
- other: "%{count}개 도메인에서 팔로워를 soft-block 처리 중..."
- true_privacy_html: "
프라이버시 보호는 End-to-End 암호화로만 이루어 질 수 있다는 것에 유의해 주십시오."
- unlocked_warning_html: 누구든 여러분을 팔로우 할 수 있으며, 여러분의 프라이빗 투고를 볼 수 있습니다. 팔로우 할 수 있는 사람을 제한하고 싶은 경우 %{lock_link}에서 설정해 주십시오.
- unlocked_warning_title: 이 계정은 비공개로 설정되어 있지 않습니다
footer:
developers: 개발자
more: 더 보기…
resources: 리소스
generic:
+ all: 모두
changes_saved_msg: 정상적으로 변경되었습니다!
copy: 복사
+ order_by: 순서
save_changes: 변경 사항을 저장
validation_errors:
one: 오류가 발생했습니다. 아래 오류를 확인해 주십시오
other: 오류가 발생했습니다. 아래 %{count}개 오류를 확인해 주십시오
+ html_validator:
+ invalid_markup: '올바르지 않은 HTML 마크업을 포함하고 있습니다: %{error}'
+ identity_proofs:
+ active: 활성
+ authorize: 네, 인증합니다
+ authorize_connection_prompt: 이 암호화 연결을 인증합니까?
+ errors:
+ failed: 암호화 연결에 실패했습니다. %{provider}에서 다시 시도해 주세요.
+ keybase:
+ invalid_token: 키베이스 토큰은 서명의 해시이며 66자의 16진수 문자여야 합니다
+ verification_failed: 키베이스가 이 토큰을 키베이스 유저 %{kb_username}의 서명으로 인식하지 못했습니다. 키베이스에서 다시 시도하세요.
+ wrong_user: "%{current}로 로그인 한 상태에서는 %{proving}에 대한 증명을 할 수 없습니다. %{proving}으로 로그인 한 후 다시 시도하세요."
+ explanation_html: 키베이스와 같은 다른 명의에 대한 암호화 연결을 할 수 있습니다. 이것으로 다른 사람들이 당신에게 암호화 된 메시지를 보낼 수 있고 당신의 메시지를 믿을 수 있습니다.
+ i_am_html: 나는 %{service}의 %{username} 입니다.
+ identity: 신원
+ inactive: 비활성
+ publicize_checkbox: '그리고 이것을 툿 하세요:'
+ publicize_toot: '증명되었습니다! 저는 %{service}에 있는 %{username}입니다: %{url}'
+ status: 인증 상태
+ view_proof: 증명 보기
imports:
- preface: 다른 인스턴스에서 내보내기 한 파일에서 팔로우 / 차단 정보를 이 인스턴스 계정으로 불러올 수 있습니다.
+ modes:
+ merge: 병합
+ merge_long: 기존 것을 그대로 둔 채 새로 추가
+ overwrite: 덮어쓰기
+ overwrite_long: 기존 것을 모두 지우고 새로 추가
+ preface: 다른 서버에서 내보내기 한 파일에서 팔로우 / 차단 정보를 이 계정으로 불러올 수 있습니다.
success: 파일이 정상적으로 업로드 되었으며, 현재 처리 중입니다
types:
blocking: 차단한 계정 목록
+ domain_blocking: 도메인 차단 목록
following: 팔로우 중인 계정 목록
muting: 뮤트 중인 계정 목록
upload: 업로드
@@ -655,7 +697,7 @@ ko:
one: 일회용
other: "%{count} 회"
max_uses_prompt: 제한 없음
- prompt: 이 인스턴스에 대한 초대 링크를 만들고 공유합니다
+ prompt: 이 서버에 대한 초대 링크를 만들고 공유합니다
table:
expires_at: 만료
uses: 사용됨
@@ -725,11 +767,34 @@ ko:
older: 오래된 툿
prev: 이전
truncate: "…"
+ polls:
+ errors:
+ already_voted: 이미 투표에 참여하셨습니다
+ duplicate_options: 중복된 항목이 있습니다
+ duration_too_long: 너무 먼 미래입니다
+ duration_too_short: 너무 가깝습니다
+ expired: 투표가 이미 끝났습니다
+ over_character_limit: 각각 %{max} 글자를 넘을 수 없습니다
+ too_few_options: 한가지 이상의 항목을 포함해야 합니다
+ too_many_options: 항목은 %{max}개를 넘을 수 없습니다
preferences:
languages: 언어
other: 기타
publishing: 퍼블리싱
web: 웹
+ relationships:
+ activity: 계정 활동
+ dormant: 휴면
+ last_active: 마지막 활동
+ most_recent: 가장 최근
+ moved: 이동함
+ mutual: 상호 팔로우
+ primary: 주 계정
+ relationship: 관계
+ remove_selected_domains: 선택한 도메인의 모든 팔로워 삭제
+ remove_selected_followers: 선택한 팔로워 삭제
+ remove_selected_follows: 선택한 유저들을 팔로우 해제
+ status: 계정 상태
remote_follow:
acct: 당신이 사용하는 아이디@도메인을 입력해 주십시오
missing_resource: 리디렉션 대상을 찾을 수 없습니다
@@ -797,20 +862,25 @@ ko:
revoke_success: 세션이 성공적으로 삭제되었습니다
title: 세션
settings:
+ account: 계정
+ account_settings: 계정 설정
+ appearance: 외관
authorized_apps: 인증된 애플리케이션
back: 돌아가기
delete: 계정 삭제
development: 개발
edit_profile: 프로필 편집
export: 데이터 내보내기
- followers: 신뢰 중인 인스턴스
+ featured_tags: 추천 해시태그
+ identity_proofs: 신원 증명
import: 데이터 가져오기
+ import_and_export: 가져오기 / 내보내기
migrate: 계정 이동
notifications: 알림
preferences: 사용자 설정
- settings: 설정
+ profile: 프로필
+ relationships: 팔로잉과 팔로워
two_factor_authentication: 2단계 인증
- your_apps: 애플리케이션
statuses:
attached:
description: '첨부: %{attached}'
@@ -833,6 +903,11 @@ ko:
ownership: 다른 사람의 툿은 고정될 수 없습니다
private: 비공개 툿은 고정될 수 없습니다
reblog: 부스트는 고정될 수 없습니다
+ poll:
+ total_votes:
+ one: "%{count}명 투표함"
+ other: "%{count}명 투표함"
+ vote: 투표
show_more: 더 보기
sign_in_to_participate: 로그인 하여 이 대화에 참여하기
title: '%{name}: "%{quote}"'
@@ -931,8 +1006,8 @@ ko:
Originally adapted from the Discourse privacy policy.
title: "%{instance} 이용약관과 개인정보 취급 방침"
themes:
- contrast: 고대비
- default: 마스토돈
+ contrast: 마스토돈 (고대비)
+ default: 마스토돈 (어두움)
mastodon-light: 마스토돈 (밝음)
time:
formats:
@@ -982,7 +1057,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..7ea8dc76b
--- /dev/null
+++ b/config/locales/lt.yml
@@ -0,0 +1,995 @@
+---
+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
+ contact: Kontaktai
+ contact_missing: Nenustatyta
+ contact_unavailable: N/A
+ documentation: Dokumentacija
+ extended_description_html: |
+
Taisyklės
+
Ilgas aprašymas dar nėra sudartyas
+ generic_description: "%{domain} yra vienas serveris tinkle"
+ hosted_on: Mastodon palaikomas naudojantis %{domain} talpinimu
+ learn_more: Daugiau
+ 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:
+ by_domain: Domenas
+ 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
+ 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:
+ 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_log_in_with: Arba prisijungti su
+ providers:
+ cas: CAS
+ saml: SAML
+ register: Užsiregistruoti
+ 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ą
+ 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(#)
+ import: Importuoti
+ migrate: Paskyros migracija
+ notifications: Pranešimai
+ preferences: Preferencijos
+ two_factor_authentication: Dviejų veiksnių autentikacija
+ 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/ms.yml b/config/locales/ms.yml
index e3c901eff..fbadd80fd 100644
--- a/config/locales/ms.yml
+++ b/config/locales/ms.yml
@@ -7,7 +7,6 @@ ms:
administered_by: 'Ditadbir oleh:'
api: API
apps: Aplikasi mudah alih
- closed_registrations: Pendaftaran ditutup di tika ini. Tetapi! Anda boleh mencari tika lain untuk mencipta akaun dan capai ke rangkaian yang sama daripada sana.
contact: Hubungi kami
contact_missing: Tidak ditetapkan
contact_unavailable: Tidak tersedia
@@ -15,19 +14,9 @@ ms:
extended_description_html: |
Tempat sesuai untuk peraturan
Kenyataan penuh masih belum ditetapkan.
- features:
- humane_approach_body: Belajar daripada kegagalan rangkaian lain, Mastodon berazam untuk membuat pilihan reka cipta beretika untuk mengatasi penyalahgunaan media sosial.
- humane_approach_title: Pendekatan yang lebih berperikemanusiaan
- not_a_product_body: Mastodon bukannya rangkaian komersial. Tiada iklan, tiada perlombongan data, tiada kurungan atau tapisan. Tiada pihak berkuasa pusat.
- not_a_product_title: Anda seorang manusia, bukannya sebuah produk
- real_conversation_body: Dengan had 500 aksara dan sokongan kandungan berbutir serta pemberi amaran media, anda boleh meluahkan diri anda dengan cara yang anda inginkan.
- real_conversation_title: Dibina untuk perbualan sebenar
- within_reach_body: Pelbagai aplikasi untuk iOS, Android, dan platform lain telah dibangunkan dengan ekosistem API mesra-pembangun membolehkan anda terus berhubung dengan rakan anda di mana-mana sahaja.
- within_reach_title: Sentiasa dalam jangkauan
generic_description: "%{domain} ialah salah sebuah pelayan dalam rangkaian Mastodon"
hosted_on: Mastodon dihoskan di %{domain}
learn_more: Ketahui lebih lanjut
- other_instances: Senarai tika
privacy_policy: Polisi privasi
source_code: Kod sumber
status_count_after:
@@ -328,10 +317,6 @@ ms:
exports:
archive_takeout:
in_progress: Mengkompil arkib anda...
- followers:
- success:
- one: Dalam proses menyekat-lembut pengikut daripada satu domain...
- other: Dalam proses menyekat-lembut pengikut daripada %{count} domain...
notification_mailer:
digest:
title: Ketika anda tiada di sini...
diff --git a/config/locales/nl.yml b/config/locales/nl.yml
index e0d7a4a02..ae274ad70 100644
--- a/config/locales/nl.yml
+++ b/config/locales/nl.yml
@@ -4,36 +4,36 @@ nl:
about_hashtag_html: Dit zijn openbare toots die getagged zijn met
#%{hashtag}. Je kunt er op reageren of iets anders mee doen als je op Mastodon (of ergens anders in de fediverse) een account hebt.
about_mastodon_html: Mastodon is een sociaal netwerk dat gebruikt maakt van open webprotocollen en vrije software. Het is net zoals e-mail gedecentraliseerd.
about_this: Over deze server
+ active_count_after: actief
+ active_footnote: Actieve gebruikers per maand (MAU)
administered_by: 'Beheerd door:'
api: API
apps: Mobiele apps
- closed_registrations: Registreren op deze server is momenteel niet mogelijk. Je kunt echter een andere server vinden om zo toegang te krijgen tot het netwerk.
+ apps_platforms: Gebruik Mastodon op iOS, Android en op andere platformen
+ browse_directory: Gebruikersgids doorbladeren en op interesses filteren
+ browse_public_posts: Livestream van openbare Mastodonberichten bekijken
contact: Contact
contact_missing: Niet ingesteld
contact_unavailable: n.v.t
+ discover_users: Gebruikers ontdekken
documentation: Documentatie
extended_description_html: |
Een goede plek voor richtlijnen
De uitgebreide omschrijving is nog niet ingevuld.
- features:
- humane_approach_body: Mastodon heeft van de fouten van andere sociale netwerken geleerd en probeert aan de hand van ethische ontwerpkeuzes misbruik van sociale media te voorkomen.
- humane_approach_title: Een meer menselijke aanpak
- not_a_product_body: Mastodon is geen commercieel netwerk. Dus geen advertenties, geen datamining en geen besloten systemen. Er is geen centrale organisatie die alles bepaalt.
- not_a_product_title: Jij bent een persoon, geen product
- real_conversation_body: Met 500 tekens tot jouw beschikking en ondersteuning voor tekst- en media-waarschuwingen, kan je jezelf uiten zoals jij dat wil.
- real_conversation_title: Voor echte gesprekken gemaakt
- within_reach_body: Meerdere apps voor iOS, Android en andere platformen, met dank aan het ontwikkelaarsvriendelijke API-systeem, zorgen ervoor dat je overal op de hoogte blijft.
- within_reach_title: Altijd binnen bereik
+ federation_hint_html: Met een account op %{instance} ben je in staat om mensen die zich op andere Mastodonservers (en op andere plekken) bevinden te volgen.
generic_description: "%{domain} is een server in het Mastodonnetwerk"
+ get_apps: Mobiele apps
hosted_on: Mastodon op %{domain}
learn_more: Meer leren
- other_instances: Andere servers
privacy_policy: Privacybeleid
+ see_whats_happening: Kijk wat er aan de hand is
+ server_stats: 'Serverstatistieken:'
source_code: Broncode
status_count_after:
one: toot
other: toots
status_count_before: Zij schreven
+ tagline: Vrienden volgen en nieuwe ontdekken
terms: Gebruiksvoorwaarden
user_count_after:
one: gebruiker
@@ -79,6 +79,7 @@ nl:
delete: Verwijderen
destroyed_msg: Verwijderen van opmerking voor moderatoren geslaagd!
accounts:
+ approve: Goedkeuren
are_you_sure: Weet je het zeker?
avatar: Avatar
by_domain: Domein
@@ -124,6 +125,7 @@ nl:
moderation:
active: Actief
all: Alles
+ pending: In afwachting
silenced: Genegeerd
suspended: Opgeschort
title: Moderatie
@@ -133,6 +135,7 @@ nl:
no_limits_imposed: Geen limieten ingesteld
not_subscribed: Niet geabonneerd
outbox_url: Outbox-URL
+ pending: Moet nog beoordeeld worden
perform_full_suspension: Opschorten
profile_url: Profiel-URL
promote: Promoveren
@@ -140,6 +143,7 @@ nl:
public: Openbaar
push_subscription_expires: PuSH-abonnement verloopt op
redownload: Profiel vernieuwen
+ reject: Afkeuren
remove_avatar: Avatar verwijderen
remove_header: Omslagfoto verwijderen
resend_confirmation:
@@ -302,6 +306,7 @@ nl:
back_to_account: Terug naar account
title: Volgers van %{acct}
instances:
+ by_domain: Domein
delivery_available: Bezorging is mogelijk
known_accounts:
one: "%{count} bekend account"
@@ -410,9 +415,12 @@ nl:
min_invite_role:
disabled: Niemand
title: Uitnodigingen toestaan door
- open:
- desc_html: Toestaan dat iedereen een account kan registereren
- title: Open registratie
+ registrations_mode:
+ modes:
+ approved: Goedkeuring vereist om te kunnen registreren
+ none: Niemand kan zich registreren
+ open: Iedereen kan zich registreren
+ title: Registratiemodus
show_known_fediverse_at_about_page:
desc_html: Wanneer ingeschakeld wordt de globale tijdlijn op de voorpagina getoond en wanneer uitgeschakeld de lokale tijdljn.
title: De globale tijdlijn op de voorpagina tonen
@@ -423,7 +431,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.
@@ -475,6 +483,9 @@ nl:
edit_preset: Voorinstelling van waarschuwing bewerken
title: Voorinstellingen van waarschuwingen beheren
admin_mailer:
+ new_pending_account:
+ body: Zie hieronder de details van het nieuwe account. Je kunt de aanvraag goedkeuren of afkeuren.
+ subject: Er dient een nieuw account op %{instance} te worden beoordeeld (%{username})
new_report:
body: "%{reporter} heeft %{target} gerapporteerd"
body_remote: Iemand van %{domain} heeft %{target} gerapporteerd
@@ -495,11 +506,12 @@ nl:
warning: Wees voorzichtig met deze gegevens. Deel het nooit met iemand anders!
your_token: Jouw toegangscode
auth:
- agreement_html: Wanneer je op registreren klikt ga je akkoord met het opvolgen van
de regels van deze server en
onze gebruiksvoorwaarden.
+ apply_for_account: Een uitnodiging aanvragen
change_password: Wachtwoord
+ checkbox_agreement_html: Ik ga akkoord met de
regels van deze server en de
gebruiksvoorwaarden
confirm_email: E-mail bevestigen
delete_account: Account verwijderen
- delete_account_html: Wanneer je jouw account graag wilt verwijderen, kan je dat
hier doen. We vragen jou daar om een bevestiging.
+ delete_account_html: Wanneer je jouw account graag wilt verwijderen, kun je dat
hier doen. We vragen jou daar om een bevestiging.
didnt_get_confirmation: Geen bevestigingsinstructies ontvangen?
forgot_password: Wachtwoord vergeten?
invalid_reset_password_token: De code om jouw wachtwoord opnieuw in te stellen is verlopen. Vraag een nieuwe aan.
@@ -507,17 +519,17 @@ nl:
logout: Uitloggen
migrate_account: Naar een ander account verhuizen
migrate_account_html: Wanneer je dit account naar een ander account wilt doorverwijzen, kun je
dit hier instellen.
- or: of
or_log_in_with: Of inloggen met
providers:
cas: CAS
saml: SAML
register: Registreren
- register_elsewhere: Op een andere server registreren
+ registration_closed: "%{instance} laat geen nieuwe gebruikers toe"
resend_confirmation: Verstuur de bevestigingsinstructies nogmaals
reset_password: Wachtwoord opnieuw instellen
security: Beveiliging
set_new_password: Nieuw wachtwoord instellen
+ trouble_logging_in: Problemen met inloggen?
authorize_follow:
already_following: Je volgt dit account al
error: Helaas, er is een fout opgetreden bij het opzoeken van de externe account
@@ -577,7 +589,7 @@ 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
@@ -588,6 +600,10 @@ nl:
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
@@ -604,34 +620,45 @@ nl:
title: Filters
new:
title: Nieuw filter toevoegen
- followers:
- domain: Domein
- explanation_html: Wanneer je de privacy van jouw toots wilt garanderen, moet je goed weten wie jouw volgers zijn.
Toots die alleen aan jouw volgers zijn gericht, worden aan de Mastodonservers van jouw volgers afgeleverd. Daarom wil je ze misschien controleren en desnoods volgers verwijderen die zich op een Mastodonserver bevinden die jij niet vertrouwd. Bijvoorbeeld omdat de beheerder(s) of de software van zo'n server jouw privacy niet respecteert.
- followers_count: Aantal volgers
- lock_link: Maak jouw account besloten
- purge: Volgers verwijderen
- success:
- one: Bezig om volgers van één domein te verwijderen...
- other: Bezig om volgers van %{count} domeinen te verwijderen...
- true_privacy_html: Hou er wel rekening mee dat
echte privacy alleen gegarandeerd kan worden met behulp van end-to-end-encryptie.
- unlocked_warning_html: Iedereen kan jou volgen en daarmee meteen toots zien die je alleen aan jouw volgers hebt gericht. %{lock_link} om volgers te kunnen beoordelen en desnoods te weigeren.
- unlocked_warning_title: Jouw account is niet besloten
footer:
developers: Ontwikkelaars
more: Meer…
resources: Hulpmiddelen
generic:
+ all: Alles
changes_saved_msg: Wijzigingen succesvol opgeslagen!
copy: Kopiëren
save_changes: Wijzigingen opslaan
validation_errors:
one: Er is iets niet helemaal goed! Bekijk onderstaande fout
other: Er is iets niet helemaal goed! Bekijk onderstaande %{count} fouten
+ identity_proofs:
+ active: Actief
+ authorize: Ja, autoriseren
+ authorize_connection_prompt: Deze cryptografische verbinding autoriseren?
+ errors:
+ failed: De cryptografische verbinding is mislukt. Probeer het opnieuw vanaf %{provider}.
+ keybase:
+ invalid_token: Keybasetokens zijn hashes van handtekeningen en moeten een lengte hebben van 66 hexadecimale tekens
+ verification_failed: Keybase herkent deze token niet als een handtekening van Keybasegebruiker %{kb_username}. Probeer het opnieuw vanuit Keybase.
+ wrong_user: Er kan geen bewijs worden aangemaakt voor %{proving} terwijl je bent ingelogd als %{current}. Log in als %{proving} en probeer het opnieuw.
+ explanation_html: Hier kun je met behulp van cryptografie jouw andere identiteiten verbinden, zoals een Keybaseprofiel. Hiermee kunnen andere mensen jou versleutelde berichten sturen en inhoud die jij verstuurt vertrouwen.
+ i_am_html: Ik ben %{username} op %{service}.
+ identity: Identiteit
+ inactive: Inactief
+ status: Verificatiestatus
+ view_proof: Bekijk bewijs
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
@@ -723,11 +750,32 @@ nl:
older: Ouder
prev: Vorige
truncate: "…"
+ polls:
+ errors:
+ already_voted: Je hebt al op deze poll gestemd
+ duplicate_options: bevat dubbele items
+ duration_too_long: ligt te ver in de toekomst
+ duration_too_short: is te kort van duur
+ expired: De poll is al beëindigd
+ over_character_limit: kan stuk voor stuk niet langer zijn dan %{max} tekens
+ too_few_options: moet meer dan één item bevatten
+ too_many_options: kan niet meer dan %{max} items bevatten
preferences:
languages: Talen
other: Overig
publishing: Publiceren
web: Webapp
+ relationships:
+ activity: Accountactiviteit
+ dormant: Sluimerend
+ moved: Verhuisd
+ mutual: Wederzijds
+ primary: Primair
+ relationship: Relatie
+ remove_selected_domains: Alle volgers van de geselecteerde domeinen verwijderen
+ remove_selected_followers: Geselecteerde volgers verwijderen
+ remove_selected_follows: Geselecteerde gebruikers ontvolgen
+ status: Accountstatus
remote_follow:
acct: Geef jouw account@domein op die je wilt gebruiken
missing_resource: Kon vereiste doorverwijzings-URL voor jouw account niet vinden
@@ -801,14 +849,14 @@ nl:
development: Ontwikkelaars
edit_profile: Profiel bewerken
export: Exporteren
- followers: Geautoriseerde volgers
+ featured_tags: Uitgelichte hashtags
+ identity_proofs: Identiteitsbewijzen
import: Importeren
migrate: Accountmigratie
notifications: Meldingen
preferences: Voorkeuren
- settings: Instellingen
+ relationships: Volgers en gevolgden
two_factor_authentication: Tweestapsverificatie
- your_apps: Jouw toepassingen
statuses:
attached:
description: 'Bijlagen: %{attached}'
@@ -831,6 +879,11 @@ nl:
ownership: Een toot van iemand anders kan niet worden vastgezet
private: Alleen openbare toots kunnen worden vastgezet
reblog: Een boost kan niet worden vastgezet
+ poll:
+ total_votes:
+ one: "%{count} stem"
+ other: "%{count} stemmen"
+ vote: Stemmen
show_more: Meer tonen
sign_in_to_participate: Meld je aan om aan dit gesprek mee te doen
title: '%{name}: "%{quote}"'
@@ -929,8 +982,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:
@@ -946,7 +999,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 de 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.
diff --git a/config/locales/no.yml b/config/locales/no.yml
index cf8f77b4c..f16b314cb 100644
--- a/config/locales/no.yml
+++ b/config/locales/no.yml
@@ -4,26 +4,15 @@
about_hashtag_html: Dette er offentlige toots merket med
#%{hashtag}. Du kan interagere med dem om du har en konto et sted i fediverset.
about_mastodon_html: Mastodon er et sosialt nettverk laget med
fri programvare. Et
desentralisert alternativ til kommersielle plattformer. Slik kan det unngå risikoene ved å ha et enkelt selskap som monopoliserer din kommunikasjon. Velg en tjener du stoler på — uansett hvilken du velger så kan du kommunisere med alle andre. Alle kan kjøre sin egen Mastodon og delta sømløst i det sosiale nettverket.
about_this: Om denne instansen
- closed_registrations: Registreringer er for øyeblikket lukket på denne instansen.
contact: Kontakt
contact_missing: Ikke innstilt
contact_unavailable: Ikke tilgjengelig
extended_description_html: |
En god plassering for regler
En utvidet beskrivelse er ikke satt opp ennå.
- features:
- humane_approach_body: Mastodon har tatt lærdom fra andre nettverk og har til mål å gjøre etiske designvalg for å bekjempe misbruk av sosiale medier.
- humane_approach_title: En mer menneskelig tilnærming
- not_a_product_body: Mastodon er ikke et kommerst nettverk. Ingen reklame, ingen datainnsamling, ingen innhegnede hager. Det finnes ingen sentral myndighet.
- not_a_product_title: Du er en person, ikke et produkt
- real_conversation_body: Med 500 tegn til din disposisjon og støtte for granulært innhold og media-advarsler kan du uttrykke deg på den måten du selv vil.
- real_conversation_title: Laget for ekte samtaler
- within_reach_body: Takket være et utviklingsvennlig API-økosystem vil flere apper for iOS, Android og andre plattformer la deg holde kontakten med dine venner hvor som helst.
- within_reach_title: Alltid innen rekkevidde
generic_description: "%{domain} er en tjener i nettverket"
hosted_on: Mastodon driftet på %{domain}
learn_more: Lær mer
- other_instances: Andre instanser
source_code: Kildekode
status_count_after: statuser
status_count_before: Som skrev
@@ -260,9 +249,6 @@
min_invite_role:
disabled: Ingen
title: Tillat invitasjoner fra
- open:
- desc_html: Tillatt alle å lage seg en konto
- title: Åpen registrering
show_staff_badge:
desc_html: Vis personalemerke på brukersiden
title: Vis personalemerke
@@ -323,7 +309,6 @@
warning: Vær veldig forsiktig med denne data. Aldri del den med noen!
your_token: Din tilgangsnøkkel
auth:
- agreement_html: Ved å registrere deg godtar du å følge
instansens regler og
våre brukervilkår.
delete_account: Slett konto
delete_account_html: Hvis du ønsker å slette din konto kan du
fortsette her. Du vil bli spurt om bekreftelse.
didnt_get_confirmation: Mottok du ikke instruksjoner om bekreftelse?
@@ -388,18 +373,6 @@
follows: Du følger
mutes: Du demper
storage: Medialagring
- followers:
- domain: Domene
- explanation_html: Hvis du vil styre hvem som ser statusene dine, må du være klar over hvem som følger deg.
Dine private statuser leveres til alle instanser der du har følgere. Du bør kanskje se over dem, og fjerne følgere hvis du ikke stoler på at ditt privatliv vil bli respektert av staben eller programvaren på de instansene.
- followers_count: Antall følgere
- lock_link: Lås kontoen din
- purge: Fjern fra følgere
- success:
- one: I ferd med å mykblokkere følgere fra ett domene...
- other: I ferd med å mykblokkere følgere fra %{count} domener...
- true_privacy_html: Merk deg at
virkelig privatliv kun kan oppnås med ende-til-ende-kryptering.
- unlocked_warning_html: Alle kan følge deg for å umiddelbart se dine private statuser. %{lock_link} for å kunne se over og avvise følgere.
- unlocked_warning_title: Din konto er ikke låst
generic:
changes_saved_msg: Vellykket lagring av endringer!
save_changes: Lagre endringer
@@ -556,14 +529,11 @@
development: Utvikling
edit_profile: Endre profil
export: Dataeksport
- followers: Godkjente følgere
import: Importér
migrate: Kontomigrering
notifications: Varslinger
preferences: Preferanser
- settings: Innstillinger
two_factor_authentication: Tofaktorautentisering
- your_apps: Dine applikasjoner
statuses:
open_in_web: Åpne i nettleser
over_character_limit: grense på %{max} tegn overskredet
diff --git a/config/locales/oc.yml b/config/locales/oc.yml
index 7bedded41..81f17cd3d 100644
--- a/config/locales/oc.yml
+++ b/config/locales/oc.yml
@@ -4,31 +4,29 @@ oc:
about_hashtag_html: Vaquí los estatuts publics ligats a
#%{hashtag}. Podètz interagir amb eles s’avètz un compte ont que siasque sul fediverse.
about_mastodon_html: Mastodon es un malhum social bastit amb de protocòls liures e gratuits. Es descentralizat coma los corrièls.
about_this: A prepaus d’aquesta instància
- administered_by: 'Gerida per :'
+ active_count_after: actius
+ active_footnote: Utilizaire actius per mes (UAM)
+ administered_by: 'Administrat per :'
api: API
apps: Aplicacions per mobil
- closed_registrations: Las inscripcions son clavadas pel moment sus aquesta instància.
+ apps_platforms: Utilizatz Mastodon d‘iOS, Android o d’autras plataforma estant
+ browse_directory: Navigatz per l’annuari de perfil e filtratz segon çò qu’aimatz
+ browse_public_posts: Navigatz pel flux public a Mastodon
contact: Contacte
contact_missing: Pas parametrat
contact_unavailable: Pas disponible
+ discover_users: Descobrissètz de nòvas personas
documentation: Documentacion
extended_description_html: |
Una bona plaça per las règlas
La descripcion longa es pas estada causida pel moment.
- features:
- humane_approach_body: Amb l’experiéncia dels fracasses d’autres malhums, Mastodon ten per objectiu de lutar contra los abuses dels malhums socials en far de causidas eticas.
- humane_approach_title: Un biais mai uman
- not_a_product_body: Mastodon es pas un malhum comercial. Pas cap de reclama, d’utilizacion de vòstras donadas o d’òrt daurat clavat. I a pas cap d’autoritat centrala.
- not_a_product_title: Sètz una persona, non pas un produit
- real_conversation_body: Amb 500 caractèrs a vòstra disposicion e un nivèl de confidencialitat per cada publicacion, podètz vos exprimir coma volètz.
- real_conversation_title: Fach per de conversacions vertadièras
- within_reach_body: Multiplas aplicacion per iOS, Android, e autras plataformas mercés a un entorn API de bon utilizar, vos permet de gardar lo contacte pertot.
- within_reach_title: Totjorn al costat
generic_description: "%{domain} es un dels servidors del malhum"
+ get_apps: Ensajatz una aplicacion mobil
hosted_on: Mastodon albergat sus %{domain}
learn_more: Ne saber mai
- other_instances: Lista d’instàncias
privacy_policy: Politica de confidencialitat
+ see_whats_happening: Agachatz çò qu’arriba
+ server_stats: 'Estatisticas del servidor :'
source_code: Còdi font
status_count_after:
one: estatut
@@ -79,6 +77,7 @@ oc:
delete: Suprimir
destroyed_msg: Nòta de moderacion ben suprimida !
accounts:
+ approve: Aprovar
are_you_sure: Sètz segur ?
avatar: Avatar
by_domain: Domeni
@@ -124,6 +123,7 @@ oc:
moderation:
active: Actius
all: Totes
+ pending: En espèra
silenced: Resconduts
suspended: Suspenduts
title: Moderacion
@@ -133,6 +133,7 @@ oc:
no_limits_imposed: Cap de limit impausat
not_subscribed: Pas seguidor
outbox_url: URL Outbox
+ pending: Revision en espèra
perform_full_suspension: Suspendre
profile_url: URL del perfil
promote: Promòure
@@ -302,6 +303,7 @@ oc:
back_to_account: Tornar al compte
title: Seguidors de %{acct}
instances:
+ by_domain: Domeni
delivery_available: Liurason disponibla
known_accounts:
one: "%{count} compte conegut"
@@ -386,14 +388,14 @@ oc:
desc_html: Modificar l’estil amb una fuèlha CSS cargada sus cada pagina
title: CSS personalizada
hero:
- desc_html: Mostrat en primièra pagina. Almens 600x100px recomandat. S’es pas configurat l’imatge de l’instància serà mostrat
+ desc_html: Mostrat en primièra pagina. Almens 600x100px recomandat. S’es pas configurat l’imatge del servidor serà mostrat
title: Imatge de l’eròi
mascot:
desc_html: Mostrat sus mantun paginas. Almens 293×205px recomandat. S’es pas configurat, mostrarem la mascòta per defaut
title: Imatge de la mascòta
peers_api_enabled:
- desc_html: Noms de domeni qu’aquesta instància a trobats pel fediverse
- title: Publicar la lista de las instàncias conegudas
+ desc_html: Noms de domeni qu’aqueste servidor a trobats pel fediverse
+ title: Publicar la lista dels servidors coneguts
preview_sensitive_media:
desc_html: Los apercebuts dels ligams sus los autres sites mostraràn una vinheta encara que lo mèdia siá marcat coma sensible
title: Mostrar los mèdias sensibles dins los apercebuts OpenGraph
@@ -410,9 +412,10 @@ oc:
min_invite_role:
disabled: Degun
title: Autorizat amb invitacions
- open:
- desc_html: Autorizar lo monde a se marcar
- title: Inscripcions
+ registrations_mode:
+ modes:
+ none: Degun pòt pas se marcar
+ title: Mòdes d’inscripcion
show_known_fediverse_at_about_page:
desc_html: Un còp activat mostrarà los tuts de totes los fediverse dins l’apercebut. Autrament mostrarà pas que los tuts locals.
title: Mostrar los fediverse coneguts dins l’apercebut del flux
@@ -421,20 +424,20 @@ oc:
title: Mostrar lo badge personal
site_description:
desc_html: Paragraf d’introduccion sus la pagina d’acuèlh. Explicatz çò que fa diferent aqueste servidor Mastodon e tot çò qu’es important de dire. Podètz utilizare de balises HTML, en particular
<a>
e
<em>
.
- title: Descripcion de l’instància
+ title: Descripcion del servidor
site_description_extended:
- desc_html: Afichada sus la pagina d’informacion complementària del site
Podètz utilizar de balisas HTML
+ desc_html: Un bon lòc per las règles de compòrtament e d’autras causas que fan venir vòstre servidor diferent. Podètz utilizar de balisas HTML
title: Descripcion espandida del site
site_short_description:
- desc_html: Mostrat dins la barra laterala e dins las meta balisas. Explica çò qu’es Mastodon e perque aqueste servidor es especial en un solet paragraf. S’es void, serà garnit amb la descripcion de l’instància.
- title: Descripcion corta de l’instància
+ desc_html: Mostrat dins la barra laterala e dins las meta balisas. Explica çò qu’es Mastodon e perque aqueste servidor es especial en un solet paragraf. S’es void, serà garnit amb la descripcion del servidor.
+ title: Descripcion corta del servidor
site_terms:
desc_html: Afichada sus la pagina de las condicions d’utilizacion
Podètz utilizar de balisas HTML
title: Politica de confidencialitat del site
- site_title: Títol del site
+ site_title: Títol del servidor
thumbnail:
desc_html: Servís pels apercebuts via OpenGraph e las API. Talha de 1200x630px recomandada
- title: Miniatura de l’instància
+ title: Miniatura del servidor
timeline_preview:
desc_html: Mostrar lo flux public sus la pagina d’acuèlh
title: Apercebut flux public
@@ -495,8 +498,9 @@ oc:
warning: Mèfi ! Agachatz de partejar aquela donada amb degun !
your_token: Vòstre geton d’accès
auth:
- agreement_html: En vos marcar acceptatz
las règlas de l’instància e
politica de confidencialitat.
+ apply_for_account: Demandar una invitacion
change_password: Senhal
+ checkbox_agreement_html: Accepti las
règlas del servidor e
los tèrmes del servici
confirm_email: Confirmar lo corrièl
delete_account: Suprimir lo compte
delete_account_html: Se volètz suprimir vòstre compte, podètz
o far aquí. Vos demandarem que confirmetz.
@@ -507,17 +511,17 @@ oc:
logout: Se desconnectar
migrate_account: Mudar endacòm mai
migrate_account_html: Se volètz mandar los visitors d’aqueste compte a un autre, podètz
o configurar aquí.
- or: o
or_log_in_with: O autentificatz-vos amb
providers:
cas: CAS
saml: SAML
register: Se marcar
- register_elsewhere: Se marcar endacòm mai
+ registration_closed: "%{instance} accepta pas de nòus membres"
resend_confirmation: Tornar mandar las instruccions de confirmacion
reset_password: Reïnicializar lo senhal
security: Seguretat
set_new_password: Picar un nòu senhal
+ trouble_logging_in: Problèmas de connexion ?
authorize_follow:
already_following: Seguètz ja aqueste compte
error: O planhèm, i a agut una error al moment de cercar lo compte
@@ -605,7 +609,7 @@ oc:
description_html: Aquò suprimirà
definitivament e sens possibilitat de retorn lo contengut de vòstre compte e lo desactivarà. Lo nom d’utilizaire serà gardat per evitar una futura impostura.
proceed: Suprimir lo compte
success_msg: Compte ben suprimit
- warning_html: La supression del contengut d’aquesta instància es sola assegurada. Lo contengut fòrça partejat daissarà probablament de traças. Los servidors fòra-linha e los que vos sègon pas mai auràn pas la mesa a jorn de lor basa de donada.
+ warning_html: La supression del contengut d’aqueste servidor es sola assegurada. Lo contengut fòrça partejat daissarà probablament de traças. Los servidors fòra-linha e los que vos sègon pas mai auràn pas la mesa a jorn de lor basa de donada.
warning_title: Disponibilitat del contengut difusat
directories:
directory: Annuari de perfils
@@ -619,8 +623,8 @@ oc:
other: "%{count} personas"
errors:
'403': Avètz pas l’autorizacion de veire aquesta pagina.
- '404': La pagina que recercatz existís pas.
- '410': La pagina que cercatz existís pas mai.
+ '404': La pagina que cercatz existís pas aquí.
+ '410': La pagina que cercatz existís pas mai aquí.
'422':
content: Verificacion de seguretat fracassada. Blocatz los cookies ?
title: Verificacion de seguretat fracassada
@@ -644,6 +648,10 @@ oc:
lists: Listas
mutes: Personas rescondudas
storage: Mèdias gardats
+ featured_tags:
+ add_new: Ajustar una etiqueta nòva
+ errors:
+ limit: Avètz ja utilizat lo maximum d’etiquetas
filters:
contexts:
home: Flux d’acuèlh
@@ -660,34 +668,35 @@ oc:
title: Filtres
new:
title: Ajustar un nòu filtre
- followers:
- domain: Domeni
- explanation_html: Se volètz vos assegurar de la confidencialitat de vòstres estatuts, vos cal saber qual sèc vòstre compte.
Vòstres estatuts privats son enviats a totas las instàncias qu’an de monde que vos sègon.. Benlèu que volètz repassar vòstra lista e tirar los seguidors s’avètz de dobtes tocant las politicas de confidencialitat dels gestionaris de lor instància o sul logicial qu’utilizan.
- followers_count: Nombre de seguidors
- lock_link: Clavar vòstre compte
- purge: Tirar dels seguidors
- success:
- one: Soi a blocar los seguidors d’un domeni…
- other: Soi a blocar los seguidors de %{count} domenis…
- true_privacy_html: Mèfi que la
vertadièra confidencialitat pòt solament èsser amb un chiframent del cap a la fin (end-to-end).
- unlocked_warning_html: Tot lo monde pòt vos sègre e veire sulpic vòstres estatuts privats. %{lock_link} per poder repassar e regetar los seguidors.
- unlocked_warning_title: Vòstre compte es pas clavat
footer:
developers: Desvolopaires
more: Mai…
resources: Ressorsas
generic:
+ all: Tot
changes_saved_msg: Cambiaments ben realizats !
copy: Copiar
save_changes: Salvar los cambiaments
validation_errors:
one: I a quicòm que truca ! Mercés de corregir l’error çai-jos
other: I a quicòm que truca ! Mercés de corregir las %{count} errors çai-jos
+ identity_proofs:
+ authorize: Òc, autorizar
+ authorize_connection_prompt: Autorizar aquesta connexion criptografica ?
+ i_am_html: Soi %{username} a %{service}.
+ identity: Identitat
+ status: Estatut de verificacion
imports:
- preface: Podètz importar qualques donadas coma lo monde que seguètz o blocatz a-n aquesta instància d’un fichièr creat d’una autra instància.
+ modes:
+ merge: Fondre
+ merge_long: Gardar los enregistraments existents e ajustar los nòus
+ overwrite: Remplaçar
+ overwrite_long: Remplaçar los enregistraments actuals pels nòus
+ preface: Podètz importar qualques donadas d’un autre servidor, coma lo monde que seguètz o blocatz.
success: Vòstras donadas son ben estadas mandadas e seràn tractadas tre que possible
types:
blocking: Lista de blocatge
+ domain_blocking: Lista dels domenis blocats
following: Lista de monde que seguètz
muting: Lista de monde que volètz pas legir
upload: Importar
@@ -709,11 +718,11 @@ oc:
one: 1 persona
other: "%{count} personas"
max_uses_prompt: Cap de limit
- prompt: Generar e partejar los ligams per donar accès a aquesta instància
+ prompt: Generar e partejar los ligams per donar accès a aqueste servidor
table:
expires_at: Expirats
uses: Usatges
- title: Convidar de mond
+ title: Convidar de monde
lists:
errors:
limit: Avètz atengut lo maximum de listas
@@ -779,13 +788,31 @@ oc:
older: Mai ancians
prev: Precedent
truncate: "…"
+ polls:
+ errors:
+ already_voted: Avètz ja votat per aqueste sondatge
+ duplicate_options: conten d’opcions en doble
+ duration_too_long: es tròp alonhat dins lo futur
+ duration_too_short: es tròp d’ora
+ expired: Lo sondatge es ja acabat
+ over_character_limit: pòt pas èsser superior a %{max} caractèrs cadun
+ too_few_options: deu contenir mai d’una opcion
+ too_many_options: pòt pas contenir mai de %{max} opcions
preferences:
languages: Lengas
other: Autre
publishing: Publicar
web: Interfàcia Web
+ relationships:
+ activity: Activitat del compte
+ dormant: Inactiu
+ moved: Mudat
+ mutual: Mutuala
+ primary: Pirmària
+ relationship: Relacion
+ status: Estat del compte
remote_follow:
- acct: Picatz vòstre utilizaire@instància que cal utilizar per sègre aqueste utilizaire
+ acct: Picatz vòstre utilizaire@domeni que que volètz utilizar per sègre aqueste utilizaire
missing_resource: URL de redireccion pas trobada
no_account_html: Avètz pas cap de compte ? Podètz
vos marcar aquí
proceed: Clicatz per sègre
@@ -856,15 +883,14 @@ oc:
delete: Supression de compte
development: Desvolopament
edit_profile: Modificar lo perfil
- export: Export donadas
- followers: Seguidors autorizats
- import: Importar
+ export: Exportar de donadas
+ featured_tags: Etiquetas en avant
+ import: Importar de donadas
migrate: Migracion de compte
notifications: Notificacions
preferences: Preferéncias
- settings: Paramètres
+ relationships: Abonaments e seguidors
two_factor_authentication: Autentificacion en dos temps
- your_apps: Vòstras aplicacions
statuses:
attached:
description: 'Ajustat : %{attached}'
@@ -887,6 +913,11 @@ oc:
ownership: Se pòt pas penjar lo tut de qualqu’un mai
private: Se pòt pas penjar los tuts pas publics
reblog: Se pòt pas penjar un tut partejat
+ poll:
+ total_votes:
+ one: "%{count} vòte"
+ other: "%{count} vòtes"
+ vote: Votar
show_more: Ne veire mai
sign_in_to_participate: Inscrivètz-vos per participar a la conversacion
title: '%{name} : "%{quote}"'
@@ -987,9 +1018,9 @@ oc:
Prima adaptacion de la politica de confidencialitat de Discourse.
title: Condicions d’utilizacion e politica de confidencialitat de %{instance}
themes:
- contrast: Fòrt contrast
- default: Mastodon
- mastodon-light: Mastodon (clar)
+ contrast: Mastodon (Fòrt contrast)
+ default: Mastodon (Escur)
+ mastodon-light: Mastodon (Clar)
time:
formats:
default: Lo %d %b de %Y a %Ho%M
@@ -1038,7 +1069,7 @@ oc:
final_action: Començar de publicar
final_step: 'Començatz de publicar ! Quitament s’avètz pas de seguidors los autres pòdon veire vòstres messatges publics, per exemple pel flux d’actualitat local e per las etiquetas. Benlèu que volètz vos presentar amb l’etiquetas #introductions.'
full_handle: Vòstre escais-nom complèt
- full_handle_hint: Es aquò que vos cal donar a vòstres amics per que pòscan vos escriure o sègre a partir d’una autra instància.
+ full_handle_hint: Es aquò que vos cal donar a vòstres amics per que pòscan vos escriure o sègre a partir d’un autre servidor.
review_preferences_action: Cambiar las preferéncias
review_preferences_step: Pensatz de configurar vòstras preferéncias, tal coma los corrièls que volètz recebrer o lo nivèl de confidencialitat de vòstres tuts per defaut. O se l’animacion vos dòna pas enveja de rendre, podètz activar la lectura automatica dels GIF.
subject: Benvengut a Mastodon
diff --git a/config/locales/pl.yml b/config/locales/pl.yml
index beadae14d..1b9bb614c 100644
--- a/config/locales/pl.yml
+++ b/config/locales/pl.yml
@@ -4,31 +4,30 @@ pl:
about_hashtag_html: Znajdują się tu publiczne wpisy oznaczone hashtagiem
#%{hashtag}. Możesz dołączyć do dyskusji, jeżeli posiadasz konto gdziekolwiek w Fediwersum.
about_mastodon_html: Mastodon jest wolną i otwartą siecią społecznościową, zdecentralizowaną alternatywą dla zamkniętych, komercyjnych platform.
about_this: O tej instancji
+ active_count_after: aktywni
+ active_footnote: Aktywni użytkownicy miesięcznie (MAU)
administered_by: 'Administrowana przez:'
api: API
apps: Aplikacje
- closed_registrations: Rejestracja na tej instancji jest obecnie zamknięta. Możesz jednak zarejestrować się na innej instancji, uzyskując dostęp do tej samej sieci.
+ apps_platforms: Korzystaj z Mastodona z poziomu iOS-a, Androida i innych
+ browse_directory: Przeglądaj katalog profilów i filtruj z uwzględnieniem zainteresowań
+ browse_public_posts: Przeglądaj strumień publicznych wpisów na Mastodonie na żywo
contact: Kontakt
contact_missing: Nie ustawiono
contact_unavailable: Nie dotyczy
+ discover_users: Odkrywaj użytkowników
documentation: Dokumentacja
extended_description_html: |
Dobre miejsce na zasady użytkowania
Nie ustawiono jeszcze szczegółowego opisu
- features:
- humane_approach_body: Nauczeni na błędach innych sieci społecznościowych, zaprojektowaliśmy Mastodona tak, aby uniknąć częstych nadużyć.
- humane_approach_title: Bardziej ludzkie podejście
- not_a_product_body: Mastodon nie jest komercyjną siecią. Nie doświadczysz tu reklam, zbierania danych, ani centralnego ośrodka, tak jak w przypadku wielu rozwiązań.
- not_a_product_title: Jesteś człowiekiem, nie produktem
- real_conversation_body: Mając do dyspozycji 500 znaków na wpis, rozdrobnienie zawartości i ostrzeżenia o multimediach, możesz wyrażać siebie na wszystkie możliwe sposoby.
- real_conversation_title: Zaprojektowany do prawdziwych rozmów
- within_reach_body: Wiele aplikacji dla Androida, iOS i innych platform dzięki przyjaznemu programistom API sprawia, że możesz utrzymywać kontakt ze znajomymi praktycznie wszędzie.
- within_reach_title: Zawsze w Twoim zasięgu
+ federation_hint_html: Z kontem na %{instance}, możesz śledzić użytkowników każdego serwera Mastodona i nie tylko.
generic_description: "%{domain} jest jednym z serwerów sieci"
+ get_apps: Spróbuj aplikacji mobilnej
hosted_on: Mastodon uruchomiony na %{domain}
learn_more: Dowiedz się więcej
- other_instances: Lista instancji
privacy_policy: Polityka prywatności
+ see_whats_happening: Zobacz co się dzieje
+ server_stats: 'Statystyki serwera:'
source_code: Kod źródłowy
status_count_after:
few: wpisów
@@ -36,6 +35,7 @@ pl:
one: wpisu
other: wpisów
status_count_before: Są autorami
+ tagline: Śledź znajomych i poznawal nowych
terms: Zasady użytkowania
user_count_after:
few: użytkowników
@@ -87,6 +87,7 @@ pl:
delete: Usuń
destroyed_msg: Pomyślnie usunięto notatkę moderacyjną!
accounts:
+ approve: Przyjmij
are_you_sure: Jesteś tego pewien?
avatar: Awatar
by_domain: Domena
@@ -132,6 +133,7 @@ pl:
moderation:
active: Aktywne
all: Wszystkie
+ pending: Oczekujące
silenced: Wyciszone
suspended: Zawieszone
title: Moderacja
@@ -141,6 +143,7 @@ pl:
no_limits_imposed: Nie nałożono ograniczeń
not_subscribed: Nie zasubskrybowano
outbox_url: Adres skrzynki nadawczej
+ pending: Oczekuje na przegląd
perform_full_suspension: Zawieś
profile_url: Adres profilu
promote: Podnieś uprawnienia
@@ -148,6 +151,7 @@ pl:
public: Publiczne
push_subscription_expires: Subskrypcja PuSH wygasa
redownload: Odśwież profil
+ reject: Odrzuć
remove_avatar: Usun awatar
remove_header: Usuń nagłówek
resend_confirmation:
@@ -249,6 +253,7 @@ pl:
feature_profile_directory: Katalog profilów
feature_registrations: Rejestracja
feature_relay: Przekazywanie federacji
+ feature_timeline_preview: Podgląd osi czasu
features: Możliwości
hidden_service: Federowanie z ukrytymi usługami
open_reports: otwarte zgłoszenia
@@ -312,6 +317,7 @@ pl:
back_to_account: Wróć do konta
title: Śledzący %{acct}
instances:
+ by_domain: Domena
delivery_available: Doręczanie jest dostępne
known_accounts:
few: "%{count} znane konta"
@@ -398,14 +404,14 @@ pl:
desc_html: Modyfikuj wygląd pliku CSS ładowanego na każdej stronie
title: Niestandardowy CSS
hero:
- desc_html: Wyświetlany na stronie głównej. Zalecany jest rozmiar przynajmniej 600x100 pikseli. Jeżeli nie ustawiony, zostanie użyta miniatura instancji
+ desc_html: Wyświetlany na stronie głównej. Zalecany jest rozmiar przynajmniej 600x100 pikseli. Jeżeli nie ustawiony, zostanie użyta miniatura serwera
title: Obraz bohatera
mascot:
desc_html: Wyświetlany na wielu stronach. Zalecany jest rozmiar przynajmniej 293px × 205px. Jeżeli nie ustawiono, zostanie użyta domyślna
title: Obraz maskotki
peers_api_enabled:
- desc_html: Nazwy domen, z którymi ta instancja wchodziła w interakcje
- title: Publikuj listę znanych instancji
+ desc_html: Nazwy domen, z którymi ten serwer wchodził w interakcje
+ title: Publikuj listę znanych serwerów
preview_sensitive_media:
desc_html: Podgląd odnośników na innych instancjach będzie wyświetlał miniaturę nawet jeśli zawartość multimedialna zostanie oznaczona jako wrażliwa
title: Wyświetlaj zawartość wrażliwą w podglądzie OpenGraph
@@ -422,9 +428,12 @@ pl:
min_invite_role:
disabled: Nikt
title: Kto może zapraszać użytkowników
- open:
- desc_html: Pozwól każdemu na założenie konta
- title: Otwarta rejestracja
+ registrations_mode:
+ modes:
+ approved: Przyjęcie jest wymagane do rejestracji
+ none: Nikt nie może się zarejestrować
+ open: Każdy może się zarejestrować
+ title: Tryb rejestracji
show_known_fediverse_at_about_page:
desc_html: Jeśli włączone, podgląd instancji będzie wyświetlał wpisy z całego Fediwersum. W innym przypadku, będą wyświetlane tylko lokalne wpisy.
title: Pokazuj wszystkie znane wpisy na podglądzie instancji
@@ -433,20 +442,20 @@ pl:
title: Pokazuj odznakę administracji
site_description:
desc_html: Akapit wprowadzający, widoczny na stronie głównej. Opisz, co czyni tę instancję wyjątkową. Możesz korzystać ze znaczników HTML, w szczególności
<a>
i
<em>
.
- title: Opis instancji
+ title: Opis serwera
site_description_extended:
- desc_html: Dobre miejsce na zasady użytkowania, wprowadzenie i inne rzeczy, które wyróżniają tę instancję. Możesz korzystać ze znaczników HTML
+ desc_html: Dobre miejsce na zasady użytkowania, wprowadzenie i inne rzeczy, które wyróżniają ten serwer. Możesz korzystać ze znaczników HTML
title: Niestandardowy opis strony
site_short_description:
- desc_html: Wyświetlany na pasku bocznym i w znacznikach meta. Opisz, czym jest Mastodon i czym wyróżnia się ta instancja w jednym akapicie. Jeżeli pusty, zostanie użyty opis instancji.
- title: Krótki opis instancji
+ desc_html: Wyświetlany na pasku bocznym i w znacznikach meta. Opisz w jednym akapicie, czym jest Mastodon i czym wyróżnia się ten serwer. Jeżeli pusty, zostanie użyty opis serwera.
+ title: Krótki opis serwera
site_terms:
desc_html: Miejsce na własną politykę prywatności, zasady użytkowania i inne unormowania prawne. Możesz korzystać ze znaczników HTML
title: Niestandardowe zasady użytkowania
- site_title: Nazwa instancji
+ site_title: Nazwa serwera
thumbnail:
desc_html: 'Używana w podglądzie przez OpenGraph i API. Zalecany rozmiar: 1200x630 pikseli'
- title: Miniatura instancji
+ title: Miniatura serwera
timeline_preview:
desc_html: Wyświetlaj publiczną oś czasu na stronie widocznej dla niezalogowanych
title: Podgląd osi czasu
@@ -487,6 +496,9 @@ pl:
edit_preset: Edytuj szablon ostrzeżenia
title: Zarządzaj szablonami ostrzeżeń
admin_mailer:
+ new_pending_account:
+ body: Poniżej znajdują się szczegóły dotycząće nowego konta. Możesz przyjąć lub odrzucić to podanie.
+ subject: Nowe konto czeka na przegląd na %{instance} (%{username})
new_report:
body: Użytkownik %{reporter} zgłosił(a) %{target}
body_remote: Użytkownik instancji %{domain} zgłosił(a) %{target}
@@ -507,8 +519,9 @@ pl:
warning: Przechowuj te dane ostrożnie. Nie udostępniaj ich nikomu!
your_token: Twój token dostępu
auth:
- agreement_html: Rejestrując się, oświadczasz, że zapoznałeś(-aś) się z
informacjami o instancji i
zasadami korzystania z usługi.
+ apply_for_account: Poproś o zaproszenie
change_password: Hasło
+ checkbox_agreement_html: Zgadzam się z
regułami serwera i
zasadami korzystania z usługi
confirm_email: Potwierdź adres e-mail
delete_account: Usunięcie konta
delete_account_html: Jeżeli chcesz usunąć konto,
przejdź tutaj. Otrzymasz prośbę o potwierdzenie.
@@ -519,17 +532,17 @@ pl:
logout: Wyloguj się
migrate_account: Przenieś konto
migrate_account_html: Jeżeli chcesz skonfigurować przekierowanie z obecnego konta na inne, możesz
zrobić to tutaj.
- or: lub
or_log_in_with: Lub zaloguj się z użyciem
providers:
cas: CAS
saml: SAML
register: Rejestracja
- register_elsewhere: Zarejestruj się na innym serwerze
+ registration_closed: "%{instance} nie przyjmuje nowych członków"
resend_confirmation: Ponownie prześlij instrukcje weryfikacji
reset_password: Zresetuj hasło
security: Bezpieczeństwo
set_new_password: Ustaw nowe hasło
+ trouble_logging_in: Masz problem z zalogowaniem się?
authorize_follow:
already_following: Już śledzisz to konto
error: Niestety, podczas sprawdzania zdalnego konta wystąpił błąd
@@ -561,12 +574,15 @@ pl:
description_html: Ta opcja usunie
bezpowrotnie i nieodwracalnie całą zawartość konta i zdezaktywuje je. Twoja nazwa użytkownika pozostanie zarezerwowana, aby zapobiec nadużyciom.
proceed: Usuń konto
success_msg: Twoje konto zostało pomyślnie usunięte
- warning_html: Możemy usunąć zawartość jedynie w obrębie tej instancji. Zawartość udostępniona publicznie pozostawia trwałe ślady. Serwery niepodłączone do sieci bądź nieśledzące Twoich aktualizacji mogą zachować Twoje dane.
+ warning_html: Możemy usunąć zawartość jedynie w obrębie tego serwera. Zawartość udostępniona publicznie pozostawia trwałe ślady. Serwery niepodłączone do sieci bądź nieśledzące Twoich aktualizacji mogą zachować Twoje dane.
warning_title: Dostępność usuniętej zawartości
directories:
directory: Katalog profilów
+ 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"
@@ -584,6 +600,9 @@ pl:
content: Przepraszamy, coś poszło nie tak, po naszej stronie.
title: Ta strona jest nieprawidłowa
noscript_html: Aby korzystać z aplikacji Mastodon, włącz JavaScript. Możesz też skorzystać z jednej z
natywnych aplikacji obsługującej Twoje urządzenie.
+ existing_username_validator:
+ not_found: nie znaleziono lokalnego użytkownika o tej nazwie
+ not_found_multiple: nie znaleziono %{usernames}
exports:
archive_takeout:
date: Data
@@ -599,6 +618,10 @@ pl:
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
@@ -615,33 +638,52 @@ pl:
title: Filtry
new:
title: Dodaj nowy filtr
- followers:
- domain: Domena
- explanation_html: Jeżeli chcesz mieć pewność, kto może przeczytać Twoje wpisy, musisz kontrolować, kto śledzi Twój profil.
Twoje prywatne wpisy są dostarczane na te instancje, na których jesteś śledzony. Możesz sprawdzać, kto Cię śledzi i blokować ich, jeśli nie ufasz właścicielom lub oprogramowaniu danej instancji.
- followers_count: Liczba śledzących
- lock_link: Zablokuj swoje konto
- purge: Przestań śledzić
- success: 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
footer:
developers: Dla programistów
more: Więcej…
resources: Zasoby
generic:
+ all: Wszystkie
changes_saved_msg: Ustawienia zapisane!
+ copy: Kopiuj
+ order_by: Uporządkuj według
save_changes: Zapisz zmiany
validation_errors:
few: Coś jest wciąż nie tak! Przejrzyj %{count} poniższe błędy
many: Coś jest wciąż nie tak! Przejrzyj %{count} poniższych błędów
one: Coś jest wciąż nie tak! Przyjrzyj się poniższemu błędowi
other: Coś jest wciąż nie tak! Przejrzyj poniższe błędy (%{count})
+ html_validator:
+ invalid_markup: 'zawiera nieprawidłową składnię HTML: %{error}'
+ identity_proofs:
+ active: Aktywny
+ authorize: Tak, autoryzuj
+ authorize_connection_prompt: Czy chcesz autoryzować to połączenie kryptograficzne?
+ errors:
+ failed: Połączenioe kryptograficzne nie powiodło się. Spróbuj ponownie z poziomu %{provider}.
+ keybase:
+ invalid_token: Tokeny Keybase są hashami podpisów i musza składać się z 66 znaków heksadecymalnych
+ verification_failed: Keybase nie rozpoznaje tego tokenu jako podpisu użytkownika Keybase %{kb_username}. Spróbuj ponownie z poziomu Keybase.
+ wrong_user: Nie można utworzyć dowodu dla %{proving}, gdy jesteś zalogowany(-a) jako %{current}. Zaloguj się jako %{proving} i spróbuj ponownie.
+ explanation_html: Tutaj możesz połączyć kryptograficznie swoje inne tożsamości, takie jak profil Keybase. To pozwoli innym wysłać Ci szyfrowane wiadomości i zaufać zawartości którą im wysyłasz.
+ i_am_html: Jestem %{username} na %{service}.
+ identity: Tożsamość
+ inactive: Niekatywny
+ publicize_checkbox: 'I opublikuj to:'
+ publicize_toot: 'Udowodnione! Jestem %{username} na %{service}: %{url}'
+ status: Stan weryfikacji
+ view_proof: Wyświetl dowód
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
@@ -665,7 +707,7 @@ pl:
one: jedno użycie
other: "%{count} użyć"
max_uses_prompt: Bez ograniczenia
- prompt: Wygeneruj odnośniki i udostępnij je innym, aby pozwolić na rejestrację na instancji
+ prompt: Wygeneruj odnośniki i udostępnij je innym, aby pozwolić na rejestrację na tym serwerze
table:
expires_at: Wygaśnie po
uses: Użycia
@@ -739,21 +781,59 @@ pl:
older: Starsze
prev: Poprzednia
truncate: "…"
+ polls:
+ errors:
+ already_voted: Już oddałeś(-aś) głos w tym głosowaniu
+ duplicate_options: zawiera powtarzające się opcje
+ duration_too_long: jest zbyt odległa
+ duration_too_short: jest zbyt bliska
+ expired: To głosowanie już zakończyło się
+ over_character_limit: nie może zawierać więcej niż %{max} znaków
+ too_few_options: musi zawierać przynajmniej dwie opcje
+ too_many_options: nie może zawierać więcej niż %{max} opcji
preferences:
languages: Języki
other: Pozostałe
publishing: Publikowanie
web: Sieć
+ relationships:
+ activity: Aktywność konta
+ dormant: Uśpione
+ last_active: Ostatnia aktywność
+ most_recent: Ostatnie
+ moved: Przeniesione
+ mutual: Wspólna
+ primary: Jednostronna
+ relationship: Relacja
+ remove_selected_domains: Usuń wszystkich śledzących z zaznaczonych domen
+ remove_selected_followers: Usuń zaznaczonych śledzących
+ remove_selected_follows: Przestań śledzić zaznaczonych użytkowników
+ status: Stan konta
remote_follow:
acct: Podaj swój adres (nazwa@domena), z którego chcesz wykonać działanie
missing_resource: Nie udało się znaleźć adresu przekierowania z Twojej domeny
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:
+ 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
@@ -802,14 +882,14 @@ pl:
development: Tworzenie aplikacji
edit_profile: Edytuj profil
export: Eksportowanie danych
- followers: Autoryzowani śledzący
+ featured_tags: Wyróżnione hashtagi
+ identity_proofs: Dowody tożsamości
import: Importowanie danych
migrate: Migracja konta
notifications: Powiadomienia
preferences: Preferencje
- settings: Ustawienia
+ relationships: Śledzeni i śledzący
two_factor_authentication: Uwierzytelnianie dwuetapowe
- your_apps: Twoje aplikacje
statuses:
attached:
description: 'Załączono: %{attached}'
@@ -825,7 +905,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
@@ -834,6 +918,13 @@ pl:
ownership: Nie możesz przypiąć cudzego wpisu
private: Nie możesz przypiąć niepublicznego wpisu
reblog: Nie możesz przypiąć podbicia wpisu
+ poll:
+ total_votes:
+ few: "%{count} głosy"
+ many: "%{count} głosy"
+ one: "%{count} głos"
+ other: "%{count} głosy"
+ vote: Głosuj
show_more: Pokaż więcej
sign_in_to_participate: Zaloguj się, aby udzielić się w tej konwersacji
title: '%{name}: "%{quote}"'
@@ -932,9 +1023,9 @@ pl:
Bazowano na polityce prywatności Discourse.
title: Zasady korzystania i polityka prywatności %{instance}
themes:
- contrast: Wysoki kontrast
- default: Mastodon
- mastodon-light: Mastodon (jasny)
+ contrast: Mastodon (Wysoki kontrast)
+ default: Mastodon (Ciemny)
+ mastodon-light: Mastodon (Jasny)
time:
formats:
default: "%b %d, %Y, %H:%M"
@@ -983,7 +1074,7 @@ pl:
final_action: Zacznij pisać
final_step: 'Zacznij tworzyć! Nawet jeżeli nikt Cię nie śledzi, Twoje publiczne wiadomości będą widziane przez innych, na przykład na lokalnej osi czasu i w hashtagach. Możesz też utworzyć wpis wprowadzający używając hashtagu #introductions.'
full_handle: Twój pełny adres
- full_handle_hint: Ten adres możesz podać znajomym, aby mogli skontaktować się z Tobą lub zacząć śledzić z innej instancji.
+ full_handle_hint: Ten adres możesz podać znajomym, aby mogli skontaktować się z Tobą lub zacząć śledzić z innego serwera.
review_preferences_action: Zmień ustawienia
review_preferences_step: Upewnij się, że zmieniłeś(-aś) ustawienia, takie jak maile, które chciałbyś otrzymywać lub domyślne opcje prywatności. Jeżeli nie masz choroby lokomocyjnej, możesz włączyć automatyczne odtwarzanie animacji GIF.
subject: Witaj w Mastodonie
diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml
index 3dfc625aa..567302f83 100644
--- a/config/locales/pt-BR.yml
+++ b/config/locales/pt-BR.yml
@@ -4,36 +4,36 @@ pt-BR:
about_hashtag_html: Estes são toots públicos com a hashtag
#%{hashtag}. Você pode interagir com eles se tiver uma conta em qualquer lugar no fediverso.
about_mastodon_html: Mastodon é uma rede social baseada em protocolos abertos e software gratuito e de código aberto. É descentralizada como e-mail.
about_this: Sobre
+ active_count_after: Ativo
+ active_footnote: Usuários ativos mensais (UAM)
administered_by: 'Administrado por:'
api: API
apps: Apps
- closed_registrations: Os cadastros estão atualmente fechados nesta instância. No entanto, você pode procurar uma instância diferente na qual possa criar uma conta e acessar a mesma rede por lá.
+ apps_platforms: Use o Mastodon a partir de iOS, Android e outras plataformas
+ browse_directory: Navegue pelo diretório de perfis e filtre por interesses
+ browse_public_posts: Navegue pelos posts públicos sendo postados ao vivo no Mastodon
contact: Contato
contact_missing: Não definido
contact_unavailable: Não disponível
+ discover_users: Descubra usuários
documentation: Documentação
extended_description_html: |
Um bom lugar para regras
A descrição da instância ainda não foi feita.
- features:
- humane_approach_body: Aprendendo com erros de outras redes, Mastodon tem como objetivo fazer decisões éticas de design para combater o desuso de redes sociais.
- humane_approach_title: Uma abordagem mais humana
- not_a_product_body: Mastodon não é uma rede comercial. Sem propagandas, coleta de dados, jardins fechados. Não há uma autoridade central.
- not_a_product_title: Você é uma pessoa e não um produto
- real_conversation_body: Com 500 caracteres à sua disposição e suporte para conteúdo granular e avisos de conteúdo, você pode se expressar da maneira que desejar.
- real_conversation_title: Feito para conversas reais
- within_reach_body: Vários apps para iOS, Android e outras plataformas graças a um ecossistema de API amigável para desenvolvedores permitem que você possa se manter atualizado sobre seus amigos de qualquer lugar.
- within_reach_title: Sempre ao seu alcance
+ federation_hint_html: Com uma conta em %{instance} você vai poder seguir pessoas em qualquer servidor Mastodon ou outros do fediverso.
generic_description: "%{domain} é um servidor na rede"
+ get_apps: Experimente um aplicativo
hosted_on: Mastodon hospedado em %{domain}
learn_more: Saiba mais
- other_instances: Lista de instâncias
privacy_policy: Política de Privacidade
+ see_whats_happening: Veja o que está acontecendo
+ server_stats: 'Estatísticas do servidor:'
source_code: Código-fonte
status_count_after:
one: status
other: status
status_count_before: Autores de
+ tagline: Siga amigos e encontre novos
terms: Termos de serviço
user_count_after:
one: usuário
@@ -79,6 +79,7 @@ pt-BR:
delete: Excluir
destroyed_msg: Nota de moderação excluída com sucesso!
accounts:
+ approve: Aprovar
are_you_sure: Você tem certeza?
avatar: Avatar
by_domain: Domínio
@@ -124,6 +125,7 @@ pt-BR:
moderation:
active: Ativo
all: Todos
+ pending: Pendente
silenced: Silenciados
suspended: Suspensos
title: Moderação
@@ -133,6 +135,7 @@ pt-BR:
no_limits_imposed: Nenhum limite imposto
not_subscribed: Não está inscrito
outbox_url: URL da caixa de saída
+ pending: Esperando revisão
perform_full_suspension: Suspender
profile_url: URL do perfil
promote: Promover
@@ -140,6 +143,7 @@ pt-BR:
public: Público
push_subscription_expires: Inscrição PuSH expira
redownload: Atualizar perfil
+ reject: Rejeitar
remove_avatar: Remover avatar
remove_header: Remover cabeçalho
resend_confirmation:
@@ -241,6 +245,7 @@ pt-BR:
feature_profile_directory: Diretório de perfis
feature_registrations: Cadastros
feature_relay: Repetidor da federação
+ feature_timeline_preview: pré-visualização da timeline
features: Funcionalidades
hidden_service: Federação com serviços onion
open_reports: Denúncias em aberto
@@ -302,6 +307,7 @@ pt-BR:
back_to_account: Voltar para a conta
title: Pessoas que seguem %{acct}
instances:
+ by_domain: Domínio
delivery_available: Entrega está disponível
known_accounts:
one: "%{count} conta conhecida"
@@ -381,7 +387,7 @@ pt-BR:
title: Usuários a serem seguidos por padrão por novas contas
contact_information:
email: E-mail
- username: Contate usuário
+ username: Usuário de contato
custom_css:
desc_html: Modificar o visual com CSS que é carregado em todas as páginas
title: CSS customizado
@@ -410,9 +416,12 @@ pt-BR:
min_invite_role:
disabled: Ninguém
title: Permitir convites de
- open:
- desc_html: Permitir que qualquer um crie uma conta
- title: Cadastro aberto
+ registrations_mode:
+ modes:
+ approved: Aprovação necessária para cadastro
+ none: Ninguém pode se cadastrar
+ open: Qualquer um pode se cadastrar
+ title: Modo de cadastro
show_known_fediverse_at_about_page:
desc_html: Quando ligado, vai mostrar toots de todo o fediverso conhecido na prévia da timeline. Senão, mostra somente toots locais.
title: Mostrar fediverso conhecido na prévia da timeline
@@ -475,6 +484,9 @@ pt-BR:
edit_preset: Editar o aviso pré-definido
title: Gerenciar os avisos pré-definidos
admin_mailer:
+ new_pending_account:
+ body: Os detalhes da nova conta estão abaixo. Você pode aprovar ou rejeitar essa aplicação.
+ subject: Nova conta para revisão em %{instance} (%{username})
new_report:
body: "%{reporter} denunciou %{target}"
body_remote: Alguém da instância %{domain} reportou %{target}
@@ -495,8 +507,9 @@ pt-BR:
warning: Tenha cuidado com estes dados. Nunca compartilhe com alguém!
your_token: Seu token de acesso
auth:
- agreement_html: Ao se cadastrar você concorda em seguir
as regras da instância e
os nossos termos de serviço.
+ apply_for_account: Pedir um convite
change_password: Senha
+ checkbox_agreement_html: Eu concordo com
as regras do servidor e com
os termos de serviço
confirm_email: Confirmar e-mail
delete_account: Excluir conta
delete_account_html: Se você deseja excluir a sua conta, você pode
prosseguir para cá. Uma confirmação será requisitada.
@@ -507,17 +520,17 @@ pt-BR:
logout: Sair
migrate_account: Mudar para uma conta diferente
migrate_account_html: Se você quer redirecionar essa conta para uma outra você pode
configurar isso aqui.
- or: ou
or_log_in_with: Ou faça login com
providers:
cas: CAS
saml: SAML
register: Cadastrar-se
- register_elsewhere: Cadastrar-se em um outro servidor
+ registration_closed: "%{instance} não está aceitando novos membros"
resend_confirmation: Reenviar instruções de confirmação
reset_password: Redefinir senha
security: Segurança
set_new_password: Definir uma nova senha
+ trouble_logging_in: Problemas para se conectar?
authorize_follow:
already_following: Você já está seguindo esta conta
error: Infelizmente, ocorreu um erro ao buscar a conta remota
@@ -553,8 +566,11 @@ pt-BR:
warning_title: Disponibilidade de conteúdo disseminado
directories:
directory: Diretório de perfis
+ enabled: Você está na lista do diretório.
+ enabled_but_waiting: Você escolheu ser listado no diretório, mas você ainda não tem o mínimo de seguidores (%{min_followers}) para ser listado.
explanation: Descobrir usuários baseado em seus interesses
explore_mastodon: Explorar %{title}
+ how_to_enable: Você não se inscreveu no diretório. Você pode se inscrever abaixo. Use hashtags no texto da sua bio para ser listado em hashtags específicas!
people:
one: "%{count} pessoa"
other: "%{count} pessoas"
@@ -570,6 +586,9 @@ pt-BR:
content: Desculpe, algo deu errado.
title: Esta página não está certa
noscript_html: Para usar o aplicativo web do Mastodon, por favor ative o JavaScript. Ou, se quiser, experimente um dos
apps nativos para o Mastodon em sua plataforma.
+ existing_username_validator:
+ not_found: não foi possível encontrar um usuário local com esse nome de usuário
+ not_found_multiple: não foi possível encontrar %{usernames}
exports:
archive_takeout:
date: Data
@@ -585,6 +604,10 @@ pt-BR:
lists: Listas
mutes: Você silenciou
storage: Armazenamento de mídia
+ featured_tags:
+ add_new: Adicionar uma nova hashtag
+ errors:
+ limit: Você atingiu o limite de hashtags em destaque
filters:
contexts:
home: Página inicial
@@ -601,34 +624,50 @@ pt-BR:
title: Filtros
new:
title: Adicionar novo filtro
- followers:
- domain: Domínio
- explanation_html: Se você quer garantir a privacidade de suas postagens, você deve ficar atento a quem está te seguindo.
Suas postagens privadas são enviadas para todas as instâncias em que você tem seguidores. Convém revisá-las e remover seguidores se você acredita que a sua privacidade não será respeitada pela equipe ou software destas instâncias.
- followers_count: Número de seguidores
- lock_link: Tranque a sua conta
- purge: Remover de seus seguidores
- success:
- one: No processo de bloqueio suave de seguidores de outro domínio...
- other: No processo de bloqueio suave de seguidores de outros %{count} domínios...
- true_privacy_html: Lembre-se de que
a verdadeira privacidade só pode ser alcançada através de encriptação ponto-a-ponto.
- unlocked_warning_html: Qualquer pessoa pode te seguir e ver as suas postagens privadas. %{lock_link} para ser capaz de revisar e rejeitar seguidores.
- unlocked_warning_title: A sua conta não está trancada
footer:
developers: Desenvolvedores
more: Mais…
resources: Recursos
generic:
+ all: Tudo
changes_saved_msg: Mudanças salvas com sucesso!
copy: Copiar
+ order_by: Ordenar por
save_changes: Salvar mudanças
validation_errors:
one: Algo não está certo! Por favor, reveja o erro abaixo
other: Algo não está certo! Por favor, reveja os %{count} erros abaixo
+ html_validator:
+ invalid_markup: 'contém HTML inválido: %{error}'
+ identity_proofs:
+ active: Ativo
+ authorize: Sim, autorizar
+ authorize_connection_prompt: Autorizar essa conexão criptográfica?
+ errors:
+ failed: A conexão criptográfica falhou. Por favor tente novamente a partir de %{provider}.
+ keybase:
+ invalid_token: Tokens keybase são hashs de assinatura e devem conter 66 caracteres hexa
+ verification_failed: Keybase não reconhece esse token como uma assinatura do usuário keybase %{kb_username}. Por favor tente novamente a partir de Keybase.
+ wrong_user: Não é possível criar uma prova para %{proving} estando logado como %{current}. Faça login como %{proving} e tente novamente.
+ explanation_html: Você pode conectar criptograficamente suas outras identidades, tais quais seu perfil Keybase. Isso permite outras pessoas de lhe enviarem mensagens encriptadas e confiar no conteúdo que você as envia.
+ i_am_html: Eu sou %{username} em %{service}.
+ identity: Identidade
+ inactive: Inativo
+ publicize_checkbox: 'E publique isso:'
+ publicize_toot: 'Está provado! Eu sou %{username} no %{service}: %{url}'
+ status: Status da verificação
+ view_proof: Ver prova
imports:
+ modes:
+ merge: Juntar
+ merge_long: Manter os registros existentes e adicionar os novos
+ overwrite: Sobreescrever
+ overwrite_long: Substituir os registros atuais com os novos
preface: Você pode importar dados que você exportou de outra instância, como a lista de pessoas que você segue ou bloqueou.
success: Os seus dados foram enviados com sucesso e serão processados em instantes
types:
blocking: Lista de bloqueio
+ domain_blocking: Lista de domínios bloqueados
following: Pessoas que você segue
muting: Lista de silêncio
upload: Enviar
@@ -720,11 +759,34 @@ pt-BR:
older: Mais antigo
prev: Anterior
truncate: "…"
+ polls:
+ errors:
+ already_voted: Você já votou nessa enquete
+ duplicate_options: contém itens duplicados
+ duration_too_long: está muito longe no futuro
+ duration_too_short: é curto demais
+ expired: A enquete já terminou
+ over_character_limit: não pode ter mais que %{max} caracteres em cada
+ too_few_options: deve ter mais que um item
+ too_many_options: não pode ter mais que %{max} itens
preferences:
languages: Idiomas
other: Outro
publishing: Publicação
web: Web
+ relationships:
+ activity: Atividade da conta
+ dormant: Inativo
+ last_active: Ativo por último em
+ most_recent: Mais recente
+ moved: Mudou-se
+ mutual: Mútuo
+ primary: Primário
+ relationship: Relação
+ remove_selected_domains: Remover todos os seguidores dos domínios selecionados
+ remove_selected_followers: Remover os seguidores selecionados
+ remove_selected_follows: Deixar de seguir usuários selecionados
+ status: Status da conta
remote_follow:
acct: Insira o seu usuário@domínio a partir do qual você deseja agir
missing_resource: Não foi possível encontrar a URL de direcionamento para a sua conta
@@ -798,14 +860,14 @@ pt-BR:
development: Desenvolvimento
edit_profile: Editar perfil
export: Exportar dados
- followers: Seguidores autorizados
+ featured_tags: Hashtags em destaque
+ identity_proofs: Provas de identidade
import: Importar
migrate: Migração de conta
notifications: Notificações
preferences: Preferências
- settings: Configurações
+ relationships: Seguindo e seguidores
two_factor_authentication: Autenticação em dois passos
- your_apps: Seus aplicativos
statuses:
attached:
description: 'Anexado: %{attached}'
@@ -829,6 +891,11 @@ pt-BR:
ownership: Toots de outras pessoas não podem ser fixados
private: Toot não-público não pode ser fixado
reblog: Um compartilhamento não pode ser fixado
+ poll:
+ total_votes:
+ one: "%{count} voto"
+ other: "%{count} votos"
+ vote: Votar
show_more: Mostrar mais
sign_in_to_participate: Entre para participar dessa conversa
title: '%{name}: "%{quote}"'
@@ -927,8 +994,8 @@ pt-BR:
Adaptado originalmente a partir da política de privacidade Discourse.
title: "%{instance} Termos de Serviço e Política de Privacidade"
themes:
- contrast: Alto contraste
- default: Mastodon
+ contrast: Mastodon (Alto contraste)
+ default: Mastodon (Escuro)
mastodon-light: Mastodon (claro)
time:
formats:
diff --git a/config/locales/pt.yml b/config/locales/pt.yml
index 3e2986861..b827184e9 100644
--- a/config/locales/pt.yml
+++ b/config/locales/pt.yml
@@ -4,49 +4,64 @@ pt:
about_hashtag_html: Estes são toots públicos marcados com
#%{hashtag}. Podes interagir com eles se tiveres uma conta Mastodon.
about_mastodon_html: Mastodon é uma rede social baseada em protocolos abertos da web e software livre e gratuito. É descentralizado como e-mail.
about_this: Sobre esta instância
- closed_registrations: Novos registos estão fechados nesta instância. No entanto! Podes procurar uma instância diferente na qual criar uma conta e obter acesso à mesma rede desde lá.
+ administered_by: 'Administrado por:'
+ api: API
+ apps: Aplicações móveis
contact: Contacto
contact_missing: Não configurado
contact_unavailable: n.d.
+ documentation: Documentação
extended_description_html: |
Um bom lugar para regras
A descrição estendida ainda não foi configurada.
- features:
- humane_approach_body: Aprendendo com erros de outras redes sociais, Mastodon tem como objetivo fazer decisões éticas de design para combater o utilização errada de redes sociais.
- humane_approach_title: Uma abordagem mais humana
- not_a_product_body: Mastodon não é uma rede comercial. Sem publicidade, sem recolha de dados ou portas fechadas. Não existe uma autoridade central.
- not_a_product_title: Tu és uma pessoa, não um produto
- real_conversation_body: Com 500 caracteres à sua disposição e suporte para conteúdo granular e avisos de conteúdo, podes te expressar da forma que desejares.
- real_conversation_title: Feito para conversas reais
- within_reach_body: Várias aplicações para iOS, Android e outras plataformas graças a um ecossistema de API amigável para desenvolvedores, permitem-te que te mantenhas em contacto com os teus amigos em qualquer lugar.
- within_reach_title: Sempre ao teu alcance
generic_description: "%{domain} é um servidor na rede"
hosted_on: Mastodon em %{domain}
learn_more: Saber mais
- other_instances: Outras instâncias
+ privacy_policy: Política de privacidade
source_code: Código fonte
- status_count_after: publicações
+ status_count_after:
+ one: publicação
+ other: publicações
status_count_before: Que fizeram
- user_count_after: utilizadores
+ terms: termos de serviço
+ user_count_after:
+ one: utilizador
+ other: utilizadores
user_count_before: Casa para
what_is_mastodon: O que é o Mastodon?
accounts:
+ choices_html: 'escolhas de %{name}:'
follow: Seguir
- followers: Seguidores
+ followers:
+ one: Seguidor
+ other: Seguidores
following: A seguir
+ joined: Aderiu %{date}
+ last_active: última vez activo
+ link_verified_on: A posse deste link foi verificada em %{date}
media: Media
moved_html: "%{name} mudou-se para %{new_profile_link}:"
+ network_hidden: Esta informação não está disponível
nothing_here: Não há nada aqui!
people_followed_by: Pessoas seguidas por %{name}
people_who_follow: Pessoas que seguem %{name}
- posts: Posts
+ pin_errors:
+ following: Tu tens de estar a seguir a pessoa que pretendes apoiar
+ posts:
+ one: Publicação
+ other: Publicações
+ posts_tab_heading: Publicações
posts_with_replies: Posts e Respostas
reserved_username: Este nome de utilizadores é reservado
roles:
admin: Administrador
+ bot: Robô
moderator: Moderador
unfollow: Deixar de seguir
admin:
+ account_actions:
+ action: Executar acção
+ title: Executar acção de moderação em %{acct}
account_moderation_notes:
create: Criar
created_msg: Nota de moderação criada com sucesso!
@@ -54,10 +69,19 @@ pt:
destroyed_msg: Nota de moderação excluída com sucesso!
accounts:
are_you_sure: Tens a certeza?
+ avatar: Avatar
by_domain: Domínio
+ change_email:
+ changed_msg: E-mail da conta alterado com sucesso!
+ current_email: E-mail actual
+ label: Alterar e-mail
+ new_email: Novo e-mail
+ submit: Alterar e-mail
+ title: Alterar e-mail para %{username}
confirm: Confirme
confirmed: Confirmado
confirming: Confirmer
+ deleted: Apagada
demote: Rebaixar
disable: Desativar
disable_two_factor_authentication: Desativar 2FA
@@ -73,8 +97,11 @@ pt:
followers: Seguidores
followers_url: URL dos seguidores
follows: A seguir
+ header: Cabeçalho
inbox_url: URL da caixa de entrada
+ invited_by: Convidado por
ip: IP
+ joined: Aderiu
location:
all: Todos
local: Local
@@ -84,6 +111,7 @@ pt:
media_attachments: Media anexa
memorialize: Converter em memorial
moderation:
+ active: Activo
all: Todos
silenced: Silenciados
suspended: Supensos
@@ -91,6 +119,7 @@ pt:
moderation_notes: Notas de moderação
most_recent_activity: Actividade mais recente
most_recent_ip: IP mais recente
+ no_limits_imposed: Sem limites impostos
not_subscribed: Não inscrito
outbox_url: URL da caixa de saída
perform_full_suspension: Fazer suspensão completa
@@ -100,6 +129,8 @@ pt:
public: Público
push_subscription_expires: A Inscrição PuSH expira
redownload: Atualizar avatar
+ remove_avatar: Remover o avatar
+ remove_header: Remover o cabeçalho
resend_confirmation:
already_confirmed: Este usuário já está confirmado
send: Reenviar um email de confirmação
@@ -120,21 +151,29 @@ pt:
created_reports: Relatórios gerados por esta conta
targeted_reports: Relatórios feitos sobre esta conta
silence: Silêncio
+ silenced: Silenciada
statuses: Status
subscribe: Inscrever-se
+ suspended: Suspensa
title: Contas
+ unconfirmed_email: E-mail não confirmado
undo_silenced: Desfazer silenciar
undo_suspension: Desfazer supensão
unsubscribe: Cancelar inscrição
username: Usuário
+ warn: Aviso
web: Web
action_logs:
actions:
+ assigned_to_self_report: "%{name} atribuiu o relatório %{target} a si próprios"
+ change_email_user: "%{name} alterou o endereço de e-mail do utilizador %{target}"
confirm_user: "%{name} confirmou o endereço de e-mail do utilizador %{target}"
+ create_account_warning: "%{name} enviou um aviso para %{target}"
create_custom_emoji: "%{name} enviado emoji novo %{target}"
create_domain_block: "%{name} bloqueou o domínio %{target}"
create_email_domain_block: "%{name} adicionou na lista negra o domínio de correio electrónico %{target}"
demote_user: "%{name} rebaixou o utilizador %{target}"
+ destroy_custom_emoji: "%{name} destruiu o emoji %{target}"
destroy_domain_block: "%{name} desbloqueou o domínio %{target}"
destroy_email_domain_block: "%{name} adicionou na lista branca o domínio de correio electrónico %{target}"
destroy_status: "%{name} removeu o publicação feita por %{target}"
@@ -145,14 +184,18 @@ pt:
enable_user: "%{name} ativou o acesso para o utilizador %{target}"
memorialize_account: "%{name} transformou a conta de %{target} em um memorial"
promote_user: "%{name} promoveu o utilizador %{target}"
+ remove_avatar_user: "%{name} removeu o avatar de %{target}"
+ reopen_report: "%{name} reabriu o relatório %{target}"
reset_password_user: "%{name} restabeleceu a palavra-passe do utilizador %{target}"
resolve_report: "%{name} recusou o relatório %{target}"
silence_account: "%{name} silenciou a conta de %{target}"
suspend_account: "%{name} suspendeu a conta de %{target}"
+ unassigned_report: "%{name} não atribuiu o relatório %{target}"
unsilence_account: "%{name} desativou o silêncio de %{target}"
unsuspend_account: "%{name} desativou a suspensão de %{target}"
update_custom_emoji: "%{name} atualizou o emoji %{target}"
update_status: "%{name} atualizou o estado de %{target}"
+ deleted_status: "(apagou a publicação)"
title: Registo de auditoria
custom_emojis:
by_domain: Domínio
@@ -179,6 +222,28 @@ pt:
update_failed_msg: Não foi possível atualizar esse emoji
updated_msg: Emoji atualizado com sucesso!
upload: Enviar
+ dashboard:
+ backlog: trabalhos atrasados
+ config: Configuração
+ feature_deletions: Eliminações da conta
+ feature_invites: Links de convites
+ feature_profile_directory: Directório de perfil
+ feature_registrations: Registos
+ feature_relay: Repetidor da federação
+ features: Componentes
+ hidden_service: Federação com serviços escondidos
+ open_reports: relatórios abertos
+ recent_users: Utilizadores recentes
+ search: Pesquisa com texto completo
+ single_user_mode: Modo de utilizador único
+ software: Software
+ space: Utilização do espaço
+ title: Painel de controlo
+ total_users: total de utilizadores
+ trends: Tendências
+ week_interactions: interacções desta semana
+ week_users_active: activo esta semana
+ week_users_new: utilizadores nesta semana
domain_blocks:
add_new: Adicionar novo
created_msg: Bloqueio do domínio está a ser processado
@@ -195,6 +260,13 @@ 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
+ reject_reports: Rejeitar relatórios
+ reject_reports_hint: Ignorar todos os relatórios vindos deste domínio. Irrelevantes para efectuar suspensões
+ rejecting_media: a rejeitar ficheiros de media
+ rejecting_reports: a rejeitar relatórios
+ severity:
+ silence: silenciado
+ suspend: suspenso
show:
affected_accounts:
one: Uma conta na base de dados afectada
@@ -215,28 +287,81 @@ pt:
create: Adicionar domínio
title: Novo bloqueio de domínio de email
title: Bloqueio de Domínio de Email
+ followers:
+ back_to_account: Voltar à conta
+ title: Seguidores de %{acct}
instances:
+ by_domain: Domínio
+ delivery_available: Entrega disponível
+ known_accounts:
+ one: "%{count} conta conhecida"
+ other: "%{count} contas conhecidas"
+ moderation:
+ all: Todas
+ limited: Limitadas
+ title: Moderação
title: Instâncias conhecidas
+ total_blocked_by_us: Bloqueadas por nós
+ total_followed_by_them: Seguidas por eles
+ total_followed_by_us: Seguidas por nós
+ total_reported: Relatórios sobre eles
+ total_storage: Anexos de media
invites:
+ deactivate_all: Desactivar todos
filter:
all: Todos
available: Disponíveis
expired: Expirados
title: Filtro
title: Convites
+ relays:
+ add_new: Adicionar novo repetidor
+ delete: Apagar
+ description_html: Um
repetidor da federação é um servidor intermediário que troca grandes volumes de publicações públicas entre servidores que o subscrevem e publicam.
Ele pode ajudar pequenos e médios servidores a descobrir conteúdo do "fediverse"que, de outro modo, exigiria que os utilizadores locais seguissem manualmente outras pessoas em servidores remotos.
+ disable: Desactivar
+ disabled: Desactivado
+ enable: Activar
+ enable_hint: Uma vez activado, o teu servidor irá subscrever a todas as publicações deste repetidor e irá começar a enviar as suas publicações públicas para ele.
+ enabled: Ativado
+ inbox_url: URL do repetidor
+ pending: À espera da aprovação do repetidor
+ save_and_enable: Guardar e ativar
+ setup: Configurar uma ligação ao repetidor
+ status: Estado
+ title: Retransmissores
+ report_notes:
+ created_msg: Relatório criado com sucesso!
+ destroyed_msg: Relatório apagado com sucesso!
reports:
+ account:
+ note: nota
+ report: relatório
action_taken_by: Ação tomada por
are_you_sure: Tens a certeza?
+ assign_to_self: Atribuí-me a mim
+ assigned: Atribuído ao moderador
comment:
none: Nenhum
+ created_at: Relatado
mark_as_resolved: Marcar como resolvido
+ mark_as_unresolved: Marcar como não resolvido
+ notes:
+ create: Adicionar nota
+ create_and_resolve: Resolver com nota
+ create_and_unresolve: Reabrir com nota
+ delete: Apagar
+ placeholder: Descreve as ações que foram tomadas ou quaisquer outras atualizações relacionadas...
+ reopen: Reabrir relatório
report: 'Denúncia #%{id}'
reported_account: Conta denunciada
reported_by: Denúnciada por
resolved: Resolvido
+ resolved_msg: Relatório resolvido com sucesso!
status: Estado
title: Denúncias
+ unassign: Não atribuir
unresolved: Por resolver
+ updated_at: Atualizado
settings:
activity_api_enabled:
desc_html: Contagem semanais de publicações locais, utilizadores activos e novos registos
@@ -247,9 +372,24 @@ pt:
contact_information:
email: Inserir um endereço de email para tornar público
username: Insira um nome de utilizador
+ custom_css:
+ desc_html: Modificar a aparência com CSS carregado em cada página
+ title: CSS personalizado
+ hero:
+ desc_html: Apresentado na primeira página. Pelo menos 600x100px recomendados. Quando não é definido, é apresentado o thumbnail do servidor
+ title: Imagem Hero
+ mascot:
+ desc_html: Apresentada em múltiplas páginas. Pelo menos 293x205px recomendados. Quando não é definida, é apresentada a mascote predefinida
+ title: Imagem da mascote
peers_api_enabled:
desc_html: Nomes de domínio que esta instância encontrou no fediverso
title: Publicar lista de instâncias descobertas
+ preview_sensitive_media:
+ desc_html: Previsualização de links noutros websites irá apresentar uma miniatura, mesmo que a media seja marcada como sensível
+ title: Mostrar media sensível em previsualizações OpenGraph
+ profile_directory:
+ desc_html: Permite aos utilizadores serem descobertos
+ title: Ativar directório do perfil
registrations:
closed_message:
desc_html: Mostrar na página inicial quando registos estão encerrados
Podes usar tags HTML
@@ -260,9 +400,9 @@ pt:
min_invite_role:
disabled: Ninguém
title: Permitir convites de
- open:
- desc_html: Permitir que qualquer um crie uma conta
- title: Aceitar novos registos
+ show_known_fediverse_at_about_page:
+ desc_html: Quando comutado, irá mostrar a previsualização de publicações de todo o fediverse conhecido. De outro modo só mostrará publicações locais.
+ title: Mostrar o fediverse conhecido na previsualização da cronologia
show_staff_badge:
desc_html: Mostrar um crachá da equipa na página de utilizador
title: Mostrar crachá da equipa
@@ -272,6 +412,9 @@ pt:
site_description_extended:
desc_html: Mostrar na página de mais informações
Podes usar tags HTML
title: Página de mais informações
+ site_short_description:
+ desc_html: Mostrada na barra lateral e em etiquetas de metadados. Descreve o que o Mastodon é e o que torna este servidor especial num único parágrafo. Se deixada em branco, remete para a descrição do servidor.
+ title: Breve descrição do servidor
site_terms:
desc_html: Podes escrever a tua própria política de privacidade, termos de serviço, entre outras coisas. Podes usar tags HTML
title: Termos de serviço customizados
@@ -293,8 +436,9 @@ pt:
media:
title: Média
no_media: Não há média
+ no_status_selected: Nenhum estado foi alterado porque nenhum foi selecionado
title: Estado das contas
- with_media: Com média
+ with_media: Com media
subscriptions:
callback_url: URL de Callback
confirmed: Confirmado
@@ -302,10 +446,25 @@ pt:
last_delivery: Última entrega
title: WebSub
topic: Tópico
+ tags:
+ accounts: Contas
+ hidden: Escondidas
+ hide: Esconder no diretório
+ name: Hashtag
+ title: Hashtags
+ unhide: Mostrar no diretório
+ visible: Visível
title: Administração
+ warning_presets:
+ add_new: Adicionar novo
+ delete: Apagar
+ edit: Editar
+ edit_preset: Editar o aviso predefinido
+ title: Gerir os avisos predefinidos
admin_mailer:
new_report:
body: "%{reporter} relatou %{target}"
+ body_remote: Alguém de %{domain} relatou %{target}
subject: Novo relatório sobre %{instance} (#%{id})
application_mailer:
notification_preferences: Alterar preferências de e-mail
@@ -323,7 +482,7 @@ pt:
warning: Cuidado com estes dados. Não partilhar com ninguém!
your_token: O teu token de acesso
auth:
- agreement_html: Registando-te concordas em seguir
as regras da instância e
os nossos termos de serviço.
+ change_password: Palavra-passe
confirm_email: Confirmar e-mail
delete_account: Eliminar conta
delete_account_html: Se desejas eliminar a conta, podes
continua aqui. Uma confirmação será pedida.
@@ -334,12 +493,17 @@ pt:
logout: Sair
migrate_account: Mudar para uma conta diferente
migrate_account_html: Se desejas redirecionar esta conta para uma outra podes
configurar isso aqui.
+ or_log_in_with: Ou iniciar sessão com
+ providers:
+ cas: CAS
+ saml: SAML
register: Registar
resend_confirmation: Reenviar instruções de confirmação
reset_password: Criar nova palavra-passe
security: Alterar palavra-passe
set_new_password: Editar palavra-passe
authorize_follow:
+ already_following: Tu já estás a seguir esta conta
error: Infelizmente, ocorreu um erro ao buscar a conta remota
follow: Seguir
follow_request: 'Enviaste uma solicitação de seguidor para:'
@@ -373,6 +537,16 @@ pt:
Apenas a eliminação de conteúdo desta instância é garantido.
Conteúdo que tenha sido partilhado com outras instâncias muito provavelmente deixará pegadas. Servidores offline e servidores que se desinscreveram das tuas atualizações não atualizarão as suas bases de dados.
warning_title: Disponibilidade de conteúdo disseminado
+ directories:
+ directory: Dirétorio de perfil
+ enabled: Neste momento tu estás listado no dirétorio.
+ enabled_but_waiting: Tu escolheste ser listado no diretório, mas ainda não tens o número mínimo de seguidores (%{min_followers}) para integrares esta lista.
+ explanation: Descobre utilizadores com base nos seus interesses
+ explore_mastodon: Explorar %{title}
+ how_to_enable: Tu ainda não integras este directório. Podes fazer isso abaixo. Usa hashtags na tua biografia para seres listado em hashtags específicas!
+ people:
+ one: "%{count} pessoa"
+ other: "%{count} pessoas"
errors:
'403': Não tens a permissão necessária para ver esta página.
'404': A página que estás a procurar não existe.
@@ -386,34 +560,62 @@ pt:
title: Esta página não está correta
noscript_html: Para usar o aplicativo web do Mastodon, por favor ativa o JavaScript. Alternativamente, experimenta um dos
apps nativos para o Mastodon na sua plataforma.
exports:
+ archive_takeout:
+ date: Data
+ download: Descarregar o teu arquivo
+ hint_html: Podes pedir um arquivo das tuas
publicações e ficheiros de media carregados. Os dados do ficheiro exportado estarão no formato ActivityPub, que pode ser lido com qualquer software compatível. Tu podes pedir um arquivo destes a cada 7 dias.
+ in_progress: A compilar o seu arquivo...
+ request: Pede o teu arquivo
+ size: Tamanho
blocks: Bloqueaste
csv: CSV
+ domain_blocks: Bloqueios de domínio
follows: Segues
+ lists: Listas
mutes: Tens em silêncio
storage: Armazenamento de média
- followers:
- domain: Domínio
- explanation_html: Se queres garantir a privacidade das tuas publicações, deves ficar atento a quem te está a seguir.
As tuas publicações privadas são enviadas para todas as instâncias nas que tens seguidores. Convém revisá-las e remover seguidores se achares que a tua privacidade não será respeitada pela equipa ou software destas instâncias.
- followers_count: Número de seguidores
- lock_link: Bloquear a tua conta
- purge: Eliminar dos seguidores
- success:
- one: No processo de bloqueio suave de seguidores de outro domínio...
- other: No processo de bloqueio suave de seguidores de outros %{count} domínios...
- true_privacy_html: Por favor leva em conta que
a verdadeira privacidade só pode ser alcançada através de encriptação ponto-a-ponto.
- unlocked_warning_html: Qualquer pessoa pode seguir-te e ver as tuas publicações privadas. %{lock_link} para ser capaz de revisar e rejeitar seguidores.
- unlocked_warning_title: A tua conta não está bloqueada
+ featured_tags:
+ add_new: Adicionar nova
+ errors:
+ limit: Já atingiste o limite máximo de hashtags
+ filters:
+ contexts:
+ home: Cronologia inicial
+ notifications: Notificações
+ public: Cronologias públicas
+ thread: Conversações
+ edit:
+ title: Editar filtros
+ errors:
+ invalid_context: Inválido ou nenhum contexto fornecido
+ invalid_irreversible: Filtragem irreversível só funciona no contexto das notificações ou do início
+ index:
+ delete: Apagar
+ title: Filtros
+ new:
+ title: Adicionar novo filtro
+ footer:
+ developers: Responsáveis pelo desenvolvimento
+ more: Mais…
+ resources: Recursos
generic:
changes_saved_msg: Alterações guardadas!
+ copy: Copiar
save_changes: Guardar alterações
validation_errors:
one: Algo não está correcto. Por favor vê o erro abaixo
other: Algo não está correto. Por favor vê os %{count} erros abaixo
imports:
+ modes:
+ merge: Juntar
+ merge_long: Manter os registos existentes e adicionar novos registos
+ overwrite: Escrever por cima
+ overwrite_long: Substituir os registos atuais pelos novos
preface: Podes importar dados que tenhas exportado de outra instância, como a lista de pessoas que segues ou bloqueadas.
success: Os teus dados foram enviados com sucesso e serão processados em breve
types:
blocking: Lista de bloqueio
+ domain_blocking: Lista de domínios bloqueados
following: Lista de pessoas que estás a seguir
muting: Lista de utilizadores silenciados
upload: Enviar
@@ -426,9 +628,11 @@ pt:
'21600': 6 horas
'3600': 1 hora
'43200': 12 horas
+ '604800': 1 semana
'86400': 1 dia
expires_in_prompt: Nunca
generate: Gerar
+ invited_by: 'Tu foste convidado por:'
max_uses:
one: 1 uso
other: "%{count} usos"
@@ -498,9 +702,21 @@ pt:
trillion: T
unit: ''
pagination:
+ newer: Mais nova
next: Seguinte
+ older: Mais velha
prev: Anterior
truncate: "…"
+ polls:
+ errors:
+ already_voted: Tu já votaste nesta sondagem
+ duplicate_options: contém itens duplicados
+ duration_too_long: está demasiado à frente no futuro
+ duration_too_short: é demasiado cedo
+ expired: A sondagem já terminou
+ over_character_limit: não pode ter mais do que %{max} caracteres cada um
+ too_few_options: tem de ter mais do que um item
+ too_many_options: não pode conter mais do que %{max} itens
preferences:
languages: Idiomas
other: Outro
@@ -509,8 +725,28 @@ pt:
remote_follow:
acct: Entre seu usuário@domínio do qual quer seguir
missing_resource: Não foi possível achar a URL de redirecionamento para sua conta
+ no_account_html: Não tens uma conta? Tu podes
aderir aqui
proceed: Prossiga para seguir
prompt: 'Você vai seguir:'
+ reason_html: "
Porque é que este passo é necessário? %{instance}
pode não ser o servidor onde tu estás registado. Por isso, nós precisamos de te redirecionar para o teu servidor inicial em primeiro lugar."
+ remote_interaction:
+ favourite:
+ proceed: Prosseguir para os favoritos
+ prompt: 'Queres favoritar esta publicação:'
+ reblog:
+ proceed: Prosseguir com partilha
+ prompt: 'Queres partilhar esta publicação:'
+ reply:
+ proceed: Prosseguir com resposta
+ prompt: 'Queres responder a esta publicação:'
+ remote_unfollow:
+ error: Erro
+ title: Título
+ unfollowed: Não seguido
+ scheduled_statuses:
+ over_daily_limit: Excedeste o limite de %{limit} publicações agendadas para esse dia
+ over_total_limit: Tu excedeste o limite de %{limit} publicações agendadas
+ too_soon: A data de agendamento tem de ser futura
sessions:
activity: Última atividade
browser: Navegador
@@ -526,6 +762,7 @@ pt:
micro_messenger: MicroMessenger
nokia: Navegador Nokia S40 Ovi
opera: Opera
+ otter: Lontra
phantom_js: PhantomJS
qq: QQ Browser
safari: Safari
@@ -540,7 +777,7 @@ pt:
android: Android
blackberry: Blackberry
chrome_os: ChromeOS
- firefox_os: Firefox OS
+ firefox_os: SO Firefox
ios: iOS
linux: Linux
mac: Mac
@@ -558,16 +795,27 @@ pt:
development: Desenvolvimento
edit_profile: Editar perfil
export: Exportar dados
- followers: Seguidores autorizados
+ featured_tags: Hashtags destacadas
import: Importar
migrate: Migração de conta
notifications: Notificações
preferences: Preferências
- settings: Configurações
two_factor_authentication: Autenticação em dois passos
- your_apps: As tuas aplicações
statuses:
- local_only: Somente local
+ attached:
+ description: 'Anexadas: %{attached}'
+ image:
+ one: "%{count} imagem"
+ other: "%{count} imagens"
+ video:
+ one: "%{count} vídeo"
+ other: "%{count} vídeos"
+ boosted_from_html: Partilhadas de %{acct_link}
+ content_warning: 'Aviso de conteúdo: %{warning}'
+ disallowed_hashtags:
+ one: 'continha uma hashtag proibida: %{tags}'
+ other: 'continha as hashtags proibidas: %{tags}'
+ language_detection: Detectar automaticamente a língua
open_in_web: Abrir no browser
over_character_limit: limite de caracter excedeu %{max}
pin_errors:
@@ -575,7 +823,13 @@ pt:
ownership: Posts de outras pessoas não podem ser fixados
private: Post não-público não pode ser fixado
reblog: Não podes fixar uma partilha
+ poll:
+ total_votes:
+ one: "%{count} voto"
+ other: "%{count} votos"
+ vote: Votar
show_more: Mostrar mais
+ sign_in_to_participate: Inicie a sessão para participar na conversa
title: '%{name}: "%{quote}"'
visibilities:
private: Mostrar apenas para seguidores
@@ -586,15 +840,99 @@ pt:
unlisted_long: Todos podem ver, porém não será postado nas timelines públicas
stream_entries:
pinned: Toot fixado
- reblogged: boosted
+ reblogged: partilhado
sensitive_content: Conteúdo sensível
terms:
+ body_html: |
+
Política de privacidade
+
Que informação nós recolhemos?
+
+
+ - Informação básica da conta: Se te registares neste servidor, pode-te ser pedido que indiques um nome de utilizador, um endereço de e-mail e uma palavra-passe. Também podes introduzir informação adicional de perfil, tal como um nome a mostrar e dados biográficos, que carregues uma fotografia para o teu perfil e para o cabeçalho. O nome de utilizador, o nome a mostrar, a biografia, a imagem de perfil e a imagem de cabeçalho são sempre listados publicamente.
+ - Publicações, seguimento e outra informação pública: A lista de pessoas que tu segues é pública, o mesmo é verdade para os teus seguidores. Quando tu publicas uma mensagem, a data e a hora são guardados, tal como a aplicação a partir da qual a mensagem foi enviada. As mensagens podem conter anexos multimédia, tais como fotografias ou vídeos. Publicações públicas e não listadas são acessíveis publicamente. Quando expões uma publicação no teu perfil, isso é também informação disponível publicamente. As tuas publicações são enviadas aos teus seguidores. Em alguns casos isso significa que elas são enviadas para servidores diferentes onde são guardadas cópias. Quando tu apagas publicações, isso também é enviado para os teus seguidores. A acção de republicar ou favoritar outra publicação é sempre pública.
+ - Publicações directas e exclusivas para seguidores: Todas as publicações são guardadas e processadas no servidor. Publicações exclusivas para seguidores são enviadas para os teus seguidores e para utilizadores que são nelas mencionados. As publicações directas são enviadas apenas para os utilizadores nelas mencionados. Em alguns casos isso significa que elas são enviadas para diferentes servidores onde são guardadas cópias das mesmas. Nós fazemos um grande esforço para limitar o acesso a estas publicações aos utilizadores autorizados, mas outros servidores podem falhar neste objectivo. Por isso, tu deves rever os servidores a que os teus seguidores pertencem. Tu podes activar uma opção para aprovar e rejeitar manualmente novos seguidores nas configurações. Por favor, tem em mente que os gestores do servidor e qualquer servidor que receba a publicação pode lê-lae que os destinatários podem fazer uma captura de tela, copiar ou partilhar a publicação. Não partilhes qualquer informação perigosa no Mastodon.
+ - IPs e outros metadados: Quando inicias sessão, nós guardamos o endereço de IP a partir do qual iniciaste a sessão, tal como o nome do teu navegador. Todas as sessões estão disponíveis para verificação e revogação nas configurações. O último endereço de IP usado é guardado até 12 meses. Nós também podemos guardar registos de servidor, os quais incluem o endereço de IP de cada pedido dirigido ao nosso servidor.
+
+
+
+
+
Para que usamos a tua informação?
+
+
Qualquer informação que recolhemos sobre ti pode ser usada dos seguintes modos:
+
+
+ - Para providenciar a funcionalidade central do Mastodon. Tu só podes interagir com o conteúdo de outras pessoas e publicar o teu próprio conteúdo depois de teres iniciado sessão. Por exemplo, tu podes seguir outras pessoas para veres as suas publicações na tua cronologia inicial personalizada.
+ - Para ajudar na moderação da comunidade para, por exemplo, comparar o teu endereço IP com outros conhecidos, para determinar a fuga ao banimento ou outras violações.
+ - O endereço de e-mail que tu forneces pode ser usado para te enviar informações e/ou notificações sobre outras pessoas que estão a interagir com o teu conteúdo ou a enviar-te mensagens, para responderes a inquéritos e/ou outros pedidos ou questões.
+
+
+
+
+
Como é que nós protegemos a tua informação?
+
+
Nós implementamos uma variedade de medidas de segurança para garantir a segurança da tua informação pessoal quando tu introduzes, submetes ou acedes à mesma. Entre outras coisas, a tua sessão de navegação, tal como o tráfego entre as tuas aplicações e a API, estão seguras por SSL e a tua palavra-passe é codificada usando um forte algoritmo de sentido único. Tu podes activar a autenticação em dois passos para aumentares ainda mais a segurança do acesso à tua conta.
+
+
+
+
Qual é a nossa política de retenção de dados?
+
+
Nós envidaremos todos os esforços no sentido de:
+
+
+ - Guardar registos do servidor contendo o endereço de IP de todos os pedidos feitos a este servidor, considerando que estes registos não serão guardados por mais de 90 dias.
+ - Guardar os endereços de IP associados aos utilizadores registados durante um período que não ultrapassará os 12 meses.
+
+
+
Tu podes pedir e descarregar um ficheiro com o teu conteúdo, incluindo as tuas publicações, os ficheiros multimédia, a imagem de perfil e a imagem de cabeçalho.
+
+
Tu podes apagar a tua conta de modo definitivo e a qualquer momento.
+
+
+
+
Usamos cookies?
+
+
Sim. Cookies são pequenos ficheiros que um site ou o seu fornecedor de serviço transfere para o disco rígido do teu computador através do teu navegador (se tu permitires). Estes cookies permitem ao site reconhecer o teu navegador e, se tu tiveres uma conta registada, associá-lo a ela.
+
+
Nós usamos os cookies para compreender e guardar as tuas preferências para as visitas futuras.
+
+
+
+
Nós divulgamos alguma informação para entidades externas?
+
+
Nós não vendemos, trocamos ou transferimos de qualquer modo a tua informação pessoal que seja identificável para qualquer entidade externa. Isto não inclui terceiros de confiança que nos ajudam a manter o nosso site, conduzir o nosso negócio ou prestar-te este serviço, desde que esses terceiros concordem em manter essa informação confidencial. Poderemos também revelar a tua informação quando nós acreditamos que isso é apropriado para cumprir a lei, forçar a aplicação dos nossos termos de serviço ou proteger os direitos, propriedade e segurança, nossos e de outrem.
+
+
O teu conteúdo público pode ser descarregado por outros servidores na rede. As tuas publicações públicas e exclusivas para os teus seguidores são enviadas para os servidores onde os teus seguidores residem e as mensagens directas são entregues aos servidores dos seus destinatários, no caso desses seguidores ou destinatários residirem num servidor diferente deste.
+
+
Quando tu autorizas uma aplicação a usar a tua conta, dependendo da abrangência das permissões que tu aprovas, ela pode ter acesso à informação pública do teu perfil, à lista de quem segues, aos teus seguidores, às tuas listas, a todas as tuas publicações e aos teus favoritos. As aplicações nunca terão acesso ao teu endereço de e-mail ou à tua palavra-passe.
+
+
+
+
Utilização do site por crianças
+
+
Se este servidor estiver na EU ou na EEA: O nosso site, produtos e serviços são todos dirigidos a pessoas que têm, pelo menos, 16 de idade. Se tu tens menos de 16 anos, devido aos requisitos da GDPR (General Data Protection Regulation) não uses este site.
+
+
Se este servidor estiver nos EUA: O nosso site, produtos e serviços são todos dirigidos a pessoas que têm, pelo menos, 13 anos de idade. Se tu tens menos de 13 anos de idade, devido aos requisitos da COPPA (Children's Online Privacy Protection Act) não uses este site.
+
+
Os requisitos legais poderão ser diferentes se este servidor estiver noutra jurisdição.
+
+
+
+
Alterações à nossa Política de Privacidade
+
+
Se nós decidirmos alterar a nossa política de privacidade, nós iremos publicar essas alterações nesta página.
+
+
Este documento é CC-BY-SA. Ele foi actualizado pela última vez em 7 de Março 2018.
+
+
Originalmente adaptado de Discourse privacy policy.
title: "%{instance} Termos de Serviço e Política de Privacidade"
themes:
+ contrast: Mastodon (Elevado contraste)
default: Mastodon
+ mastodon-light: Mastodon (Leve)
time:
formats:
default: "%b %d, %Y, %H:%M"
+ month: "%b %Y"
two_factor_authentication:
code_hint: Entre o código gerado pelo seu aplicativo para confirmar
description_html: Se ativar a
autenticação em dois passos, quando logar será necessário o seu telefone que vai gerar os tokens para validação.
@@ -608,9 +946,54 @@ pt:
manual_instructions: 'Se você não puder scanear o código QR e precisa digita-los manualmente, aqui está o segredo em texto.:'
recovery_codes: Cópia de segurança dos códigos de recuperação
recovery_codes_regenerated: Códigos de recuperação foram gerados com sucesso
+ recovery_instructions_html: Se tu alguma vez perderes o teu smartphone, to poderás usar um dos códigos de recuperação para voltares a ter acesso à tua conta.
Mantém os códigos de recuperação seguros. Por exemplo, tu podes imprimi-los e guardá-los junto a outros documentos importantes.
setup: Configurar
wrong_code: O código inserido é invalido! O horário do servidor e o horário do seu aparelho estão corretos?
+ user_mailer:
+ backup_ready:
+ explanation: Pediste uma cópia completa da tua conta Mastodon. Ela já está pronta para descarregares!
+ subject: O teu arquivo está pronto para descarregar
+ title: Arquivo de ficheiros
+ warning:
+ explanation:
+ disable: Enquanto a tua conta está congelada, os seus dados permanecem intactos, mas tu não podes executar quaisquer acções até que ela seja desbloqueada.
+ silence: Enquanto a tua conta estiver limitada, só pessoas que já estiveres a seguir irão ver as tuas publicações neste servidor e poderás ser excluído de várias listagens públicas. No entanto, outros ainda te poderão seguir de forma manual.
+ suspend: A tua conta foi suspensa e todas as tuas publicações e os teus ficheiros de media foram irreversivelmente removidos deste servidor e dos servidores onde tinhas seguidores.
+ review_server_policies: Revê as políticas do servidor
+ subject:
+ disable: A tua conta %{acct} foi congelada
+ none: Aviso para %{acct}
+ silence: A tua conta %{acct} foi limitada
+ suspend: A tua conta %{acct} foi suspensa
+ title:
+ disable: Conta congelada
+ none: Aviso
+ silence: Conta limitada
+ suspend: Conta suspensa
+ welcome:
+ edit_profile_action: Configura o perfil
+ edit_profile_step: Tu podes personalizar o teu perfil por carregar um avatar, cabeçalho, alterar o teu nickname e mais. Se tu preferires rever os novos seguidores antes deles te poderem seguir, podes bloquear a tua conta.
+ explanation: Aqui estão algumas dicas para começares
+ final_action: Começa a publicar
+ final_step: 'Começa a publicar! Mesmo sem seguidores, as tuas mensagens públicas podem ser vistas por outros, por exemplo, na cronologia local e em hashtags. Tu podes querer apresentar-te na hashtag #introductions.'
+ full_handle: O teu nome completo
+ full_handle_hint: Isto é o que tu dirias aos teus amigos para que eles te possam enviar mensagens ou seguir-te a partir de outro servidor.
+ review_preferences_action: Alterar preferências
+ review_preferences_step: Certifica-te de configurar as tuas preferências, tais como os e-mails que gostarias de receber ou o nível de privacidade que desejas que as tuas publicações tenham por defeito. Se não sofres de enjoo, podes activar a opção GIF autoplay.
+ subject: Bem-vindo ao Mastodon
+ tip_federated_timeline: A cronologia federativa é uma visão global da rede Mastodon. Mas só inclui pessoas que os teus vizinhos subscrevem, por isso não é uma visão completa.
+ tip_following: Tu segues o(s) administrador(es) do teu servidor por defeito. Para encontrares mais pessoas interessantes, procura nas cronologias local e federativa.
+ tip_local_timeline: A cronologia local é uma visão global das pessoas em %{instance}. Estes são os teus vizinhos próximos!
+ tip_mobile_webapp: Se o teu navegador móvel te oferecer a possibilidade de adicionar o Mastodon ao teu homescreen, tu podes receber notificações push. Ele age como uma aplicação nativa de vários modos!
+ tips: Dicas
+ title: Bem-vindo a bordo, %{name}!
users:
+ follow_limit_reached: Não podes seguir mais do que %{limit} pessoas
invalid_email: O endereço de e-mail é inválido
invalid_otp_token: Código de autenticação inválido
+ otp_lost_help_html: Se tu perdeste acesso a ambos, tu podes entrar em contacto com %{email}
+ seamless_external_login: Tu estás ligado via um serviço externo. Por isso, as configurações da palavra-passe e do e-mail não estão disponíveis.
signed_in_as: 'Registado como:'
+ verification:
+ explanation_html: 'Tu podes
comprovar que és o dono dos links nos metadados do teu perfil. Para isso, o website para o qual o link aponta tem de conter um link para o teu perfil do Mastodon. Este link
tem de ter um
rel="me"
atributo. O conteúdo do texto não é relevante. Aqui está um exemplo:'
+ verification: Verificação
diff --git a/config/locales/ro.yml b/config/locales/ro.yml
index aa4d3c967..cdb68c72a 100644
--- a/config/locales/ro.yml
+++ b/config/locales/ro.yml
@@ -1,8 +1,6 @@
---
ro:
about:
- features:
- not_a_product_title: Ești o persoană, nu un produs
hosted_on: Mastodon găzduit de %{domain}
accounts:
posts:
@@ -10,7 +8,6 @@ ro:
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
@@ -22,13 +19,11 @@ ro:
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
@@ -113,9 +108,3 @@ ro:
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 3e37391a8..edccd9e7c 100644
--- a/config/locales/ru.yml
+++ b/config/locales/ru.yml
@@ -4,30 +4,30 @@ ru:
about_hashtag_html: Это публичные статусы, отмеченные хэштегом
#%{hashtag}. Вы можете взаимодействовать с ними при наличии у Вас аккаунта в глобальной сети Mastodon.
about_mastodon_html: Mastodon - это
свободная социальная сеть с
открытым исходным кодом. Как
децентрализованная альтернатива коммерческим платформам, Mastodon предотвращает риск монополизации Вашего общения одной компанией. Выберите сервер, которому Вы доверяете — что бы Вы ни выбрали, Вы сможете общаться со всеми остальными. Любой может запустить свой собственный узел Mastodon и участвовать в
социальной сети совершенно бесшовно.
about_this: Об этом узле
+ active_count_after: активных
+ active_footnote: Ежемесячно активные пользователи (MAU)
administered_by: 'Администратор узла:'
api: API
apps: Приложения
- closed_registrations: В данный момент регистрация на этом узле закрыта. Но вы можете найти другой узел, создать на нём учётную запись и получить доступ к той же сети оттуда.
+ apps_platforms: Используйте Mastodon на iOS, Android и других платформах
+ browse_directory: Изучайте каталог профилей и ищите по интересам
+ browse_public_posts: Просматривайте в реальном времени новые статусы в Mastodon
contact: Связаться
- contact_missing: Не установлено
- contact_unavailable: Недоступен
+ contact_missing: не указан
+ contact_unavailable: неизв.
+ discover_users: Находите пользователей
+ 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: Различные приложения для iOS, Android и других платформ, написанные благодаря дружественной к разработчикам экосистеме API, позволят Вам держать связь с Вашими друзьями где угодно.
- within_reach_title: Всегда под рукой
+ federation_hint_html: С учётной записью на %{instance} вы сможете подписываться на людей с любого сервера Mastodon и не только.
generic_description: "%{domain} - один из серверов сети"
+ get_apps: Попробуйте мобильное приложение
hosted_on: Mastodon размещен на %{domain}
learn_more: Узнать больше
- other_instances: Другие узлы
privacy_policy: Политика конфиденциальности
+ see_whats_happening: Узнавайте, что происходит вокруг
+ server_stats: 'Статистика сервера:'
source_code: Исходный код
status_count_after:
few: статуса
@@ -35,6 +35,7 @@ ru:
one: статус
other: статусов
status_count_before: Опубликовано
+ tagline: Подписывайтесь на друзей и заводите новые знакомства
terms: Условия использования
user_count_after:
few: пользователя
@@ -53,6 +54,8 @@ ru:
other: подписчиков
following: подписки
joined: 'Дата регистрации: %{date}'
+ last_active: последняя активность
+ link_verified_on: Владение этой ссылкой было проверено %{date}
media: Медиа
moved_html: "%{name} переехал(а) на %{new_profile_link}:"
network_hidden: Эта информация недоступна
@@ -73,14 +76,20 @@ ru:
admin: Администратор
bot: Бот
moderator: Модератор
+ unavailable: Профиль недоступен
unfollow: Отписаться
admin:
+ account_actions:
+ action: Выполнить действие
+ title: Произвести модерацию аккаунта %{acct}
account_moderation_notes:
create: Создать
created_msg: Заметка модератора успешно создана!
delete: Удалить
destroyed_msg: Заметка модератора успешно удалена!
accounts:
+ approve: Подтвердить
+ approve_all: Подтвердить все
are_you_sure: Вы уверены?
avatar: Аватар
by_domain: Домен
@@ -94,6 +103,7 @@ ru:
confirm: Подтвердить
confirmed: Подтверждено
confirming: Подтверждение
+ deleted: Удалён
demote: Разжаловать
disable: Отключить
disable_two_factor_authentication: Отключить 2FA
@@ -109,8 +119,11 @@ ru:
followers: Подписчики
followers_url: URL подписчиков
follows: Подписки
+ header: Заголовок
inbox_url: URL входящих
+ invited_by: Приглашение выдал(а)
ip: IP
+ joined: Дата регистрации
location:
all: Все
local: Локальные
@@ -120,15 +133,20 @@ ru:
media_attachments: Мультимедийные вложения
memorialize: Превратить в Памятник
moderation:
+ active: Действующие
all: Все
+ pending: В ожидании
silenced: Заглушенные
suspended: Заблокированные
title: Модерация
moderation_notes: Заметки модератора
most_recent_activity: Последняя активность
most_recent_ip: Последний IP
+ no_account_selected: Ничего не выбрано, никакие аккаунты не изменены
+ no_limits_imposed: Без ограничений
not_subscribed: Не подписаны
outbox_url: URL исходящих
+ pending: Ожидает рассмотрения
perform_full_suspension: Полная блокировка
profile_url: URL профиля
promote: Повысить
@@ -136,7 +154,10 @@ ru:
public: Публичный
push_subscription_expires: Подписка PuSH истекает
redownload: Обновить аватар
+ reject: Отклонить
+ reject_all: Отклонить все
remove_avatar: Удалить аватар
+ remove_header: Удалить шапку
resend_confirmation:
already_confirmed: Этот пользователь уже подтвержден
send: Повторно отправить подтверждение по электронной почте
@@ -156,25 +177,30 @@ ru:
show:
created_reports: Жалобы, отправленные этим аккаунтом
targeted_reports: Жалобы на этот аккаунт
- silence: Глушение
+ silence: Заглушить
+ silenced: Заглушен
statuses: Статусы
subscribe: Подписаться
+ suspended: Заморожен
title: Аккаунты
unconfirmed_email: Неподтверждённый e-mail
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}"
@@ -228,8 +254,10 @@ ru:
config: Конфигурация
feature_deletions: Удаление аккаунтов
feature_invites: Пригласительные ссылки
+ feature_profile_directory: Каталог профилей
feature_registrations: Регистрация
feature_relay: Ретрансляторы
+ feature_timeline_preview: Предпросмотр ленты
features: Возможности
hidden_service: Федерация со скрытыми сервисами
open_reports: открытых жалоб
@@ -245,7 +273,7 @@ ru:
week_users_active: активно на этой неделе
week_users_new: пользователей на этой неделе
domain_blocks:
- add_new: Добавить новую
+ add_new: Заблокировать домен
created_msg: Блокировка домена обрабатывается
destroyed_msg: Блокировка домена снята
domain: Домен
@@ -259,7 +287,14 @@ ru:
suspend: Блокировка
title: Новая доменная блокировка
reject_media: Запретить медиаконтент
- reject_media_hint: Удаляет локально хранимый медиаконтент и запрещает его загрузку в будущем. Не имеет значения в случае блокировки
+ reject_media_hint: Удаляет локально хранимый медиаконтент и запрещает его загрузку в будущем. Не имеет значения в случае блокировки.
+ reject_reports: Отклонять жалобы
+ reject_reports_hint: Игнорировать все жалобы с этого домена. Не имеет значения в случае блокировки.
+ rejecting_media: отклонение медиафайлов
+ rejecting_reports: отклонение жалоб
+ severity:
+ silence: заглушен
+ suspend: заморожен
show:
affected_accounts:
few: Влияет на %{count} аккаунта в базе данных
@@ -271,7 +306,7 @@ ru:
suspend: Снять блокировку со всех существующих аккаунтов этого домена
title: Снять блокировку с домена %{domain}
undo: Отменить
- undo: Отменить
+ undo: Отменить блокировку домена
email_domain_blocks:
add_new: Добавить новую
created_msg: Доменная блокировка еmail успешно создана
@@ -282,8 +317,27 @@ ru:
create: Создать блокировку
title: Новая доменная блокировка еmail
title: Доменная блокировка email
+ followers:
+ back_to_account: Вернуться к аккаунту
+ title: Подписчики пользователя %{acct}
instances:
+ by_domain: Домен
+ 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: Жалобы на них
+ total_storage: Медиафайлы
invites:
deactivate_all: Отключить все
filter:
@@ -292,10 +346,17 @@ ru:
expired: Истёкшие
title: Фильтр
title: Приглашения
+ pending_accounts:
+ title: Ожидающие аккаунты (%{count})
relays:
add_new: Добавить ретранслятор
+ delete: Удалить
description_html: "
Федеративный ретранслятор – это промежуточный сервер, который передаёт большие объёмы публичных статусов между серверами, которые подписываются и публикуют туда.
Это может помочь небольшим и средним серверам находить записи со всей федерации, ведь в противном случае пользователям нужно будет вручную подписываться на людей с удалённых узлов."
+ disable: Отключить
+ disabled: Отключено
+ enable: Включить
enable_hint: Если включено, ваш сервер будет подписан на все публичные статусы с этого ретранслятора и начнёт туда отправлять публичные статусы со своего узла.
+ enabled: Включено
inbox_url: URL ретранслятора
pending: Ожидание подтверждения ретранслятора
save_and_enable: Сохранить и включить
@@ -307,8 +368,8 @@ ru:
destroyed_msg: Примечание жалобы удалено!
reports:
account:
- note: заметка
- report: жалоба
+ note: заметок
+ report: жалоб
action_taken_by: 'Действие предпринято:'
are_you_sure: Вы уверены?
assign_to_self: Назначить себе
@@ -328,7 +389,7 @@ ru:
report: 'Жалоба #%{id}'
reported_account: Аккаунт нарушителя
reported_by: Отправитель жалобы
- resolved: Разрешено
+ resolved: Разрешенные
resolved_msg: Жалоба успешно обработана!
status: Статус
title: Жалобы
@@ -351,12 +412,18 @@ ru:
hero:
desc_html: Отображается на главной странице. Рекомендуется разрешение не менее 600х100px. Если не установлено, используется изображение узла
title: Баннер узла
+ mascot:
+ desc_html: Отображается на различных страницах. Рекомендуется размер не менее 293×205px. Если ничего не выбрано, используется персонаж по умолчанию
+ title: Персонаж сервера
peers_api_enabled:
desc_html: Домены, которые были замечены этим узлом среди всей федерации
title: Публикация списка обнаруженных узлов
preview_sensitive_media:
desc_html: Предпросмотр ссылок с остальных веб-сайтов будет показан даже если медиаконтент отмечен как чувствительный
title: Показывать чувствительный медиаконтент в предпросмотре OpenGraph
+ profile_directory:
+ desc_html: Позволять находить пользователей
+ title: Включить каталог профилей
registrations:
closed_message:
desc_html: Отображается на титульной странице, когда закрыта регистрация
Можно использовать HTML-теги
@@ -367,9 +434,12 @@ ru:
min_invite_role:
disabled: Никого
title: Разрешать приглашения от
- open:
- desc_html: Позволяет любому создавать аккаунт
- title: Открыть регистрацию
+ registrations_mode:
+ modes:
+ approved: Для регистрации требуется подтверждение
+ none: Никто не может регистрироваться
+ open: Все могут регистрироваться
+ title: Режим регистраций
show_known_fediverse_at_about_page:
desc_html: Если включено, показывает посты со всех известных узлов в предпросмотре ленты. В противном случае отображаются только локальные посты.
title: Показывать известные узлы в предпросмотре ленты
@@ -416,8 +486,25 @@ ru:
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_pending_account:
+ body: Ниже указана информация об аккаунте. Вы можете одобрить или отклонить заявку.
+ subject: Новый аккаунт для рассмотрения на %{instance} (%{username})
new_report:
body: "%{reporter} подал(а) жалобу на %{target}"
body_remote: Кто-то с узла %{domain} пожаловался на %{target}
@@ -438,8 +525,9 @@ ru:
warning: Будьте очень внимательны с этими данными. Не делитесь ими ни с кем!
your_token: Ваш токен доступа
auth:
- agreement_html: Создавая аккаунт, вы соглашаетесь с
правилами узла и
нашими условиями обслуживания.
+ apply_for_account: Запросить приглашение
change_password: Пароль
+ checkbox_agreement_html: Я соглашаюсь с
правилами сервера и
Условиями использования
confirm_email: Подтвердите email
delete_account: Удалить аккаунт
delete_account_html: Если Вы хотите удалить свой аккаунт, вы можете
перейти сюда. У Вас будет запрошено подтверждение.
@@ -450,17 +538,17 @@ ru:
logout: Выйти
migrate_account: Перенести аккаунт
migrate_account_html: Если Вы хотите перенести этот аккаунт на другой, вы можете
сделать это здесь.
- or: или
or_log_in_with: Или войти с помощью
providers:
cas: CAS
saml: SAML
register: Зарегистрироваться
- register_elsewhere: Зарегистрироваться на другом узле
+ registration_closed: "%{instance} не принимает новых участников"
resend_confirmation: Повторить отправку инструкции для подтверждения
reset_password: Сбросить пароль
security: Безопасность
set_new_password: Задать новый пароль
+ trouble_logging_in: Не удаётся войти?
authorize_follow:
already_following: Вы уже подписаны на этот аккаунт
error: К сожалению, при поиске удаленного аккаунта возникла ошибка
@@ -494,6 +582,18 @@ ru:
success_msg: Ваш аккаунт был успешно удален
warning_html: Гарантируется удаление контента только на этом узле. Широко распространившийся контент, скорее всего, оставит следы. Сервера, отключенные от сети или отписавшиеся от Ваших обновлений, не обновят свои базы данных.
warning_title: О доступности распространившегося контента
+ directories:
+ directory: Каталог профилей
+ enabled: В настоящий момент вы указаны в каталоге.
+ enabled_but_waiting: Вы согласились находиться в каталоге, но у вас ещё нет необходимого количества подписчиков (%{min_followers}), чтобы оказаться в каталоге.
+ explanation: Находите пользователей по интересам
+ explore_mastodon: Изучайте %{title}
+ how_to_enable: Вы ещё не находитесь в каталоге. Можете добавиться ниже. Используйте хэштеги в разделе "о себе", чтобы вас находили по этим хэштегам!
+ people:
+ few: "%{count} человека"
+ many: "%{count} человек"
+ one: "%{count} человек"
+ other: "%{count} человек"
errors:
'403': У Вас нет доступа к просмотру этой страницы.
'404': Страница, которую Вы искали, не существует.
@@ -506,6 +606,9 @@ ru:
content: Приносим извинения, но на нашей стороне что-то пошло не так.
title: Страница неверна
noscript_html: Для работы с Mastodon, пожалуйста, включите JavaScript. Кроме того, вы можете использовать одно из
приложений Mastodon для Вашей платформы.
+ existing_username_validator:
+ not_found: не удалось найти локального пользователя с таким именем
+ not_found_multiple: не удалось найти %{usernames}
exports:
archive_takeout:
date: Дата
@@ -516,9 +619,15 @@ ru:
size: Размер
blocks: Список блокировки
csv: CSV
+ domain_blocks: Доменные блокировки
follows: Подписки
+ lists: Списки
mutes: Список глушения
storage: Ваш медиаконтент
+ featured_tags:
+ add_new: Добавить
+ errors:
+ limit: Вы уже добавили максимальное число хэштегов
filters:
contexts:
home: Домашняя лента
@@ -535,37 +644,52 @@ ru:
title: Фильтры
new:
title: Добавить фильтр
- followers:
- domain: Домен
- explanation_html: Если Вы хотите быть уверены в приватности Ваших статусов, Вы должны иметь четкое представление о том, кто на Вас подписан.
Ваши приватные статусы отправляются всем узлам, на которых у Вас есть подписчики. Рекомендуем удалить из подписчиков пользователей узлов, администрации или программному обеспечению которых Вы не доверяете.
- followers_count: Количество подписчиков
- lock_link: Закройте аккаунт
- purge: Удалить из подписчиков
- success:
- few: В процессе мягкой блокировки подписчиков с %{count} доменов...
- many: В процессе мягкой блокировки подписчиков с %{count} доменов...
- one: В процессе мягкой блокировки подписчиков с одного домена...
- other: В процессе мягкой блокировки подписчиков с %{count} доменов...
- true_privacy_html: Пожалуйста, заметьте, что
настоящая конфиденциальность может быть достигнута только при помощи end-to-end шифрования.
- unlocked_warning_html: Кто угодно может подписаться на Вас и получить доступ к просмотру Ваших приватных статусов. %{lock_link}, чтобы получить возможность рассматривать и вручную подтверждать запросы о подписке.
- unlocked_warning_title: Ваш аккаунт не закрыт для подписки
footer:
developers: Разработчикам
more: Ещё…
resources: Ссылки
generic:
+ all: Все
changes_saved_msg: Изменения успешно сохранены!
+ copy: Копировать
+ order_by: Сортировать по
save_changes: Сохранить изменения
validation_errors:
few: Что-то здесь не так! Пожалуйста, прочитайте о %{count} ошибках ниже
many: Что-то здесь не так! Пожалуйста, прочитайте о %{count} ошибках ниже
one: Что-то здесь не так! Пожалуйста, прочитайте об ошибке ниже
other: Что-то здесь не так! Пожалуйста, прочитайте о %{count} ошибках ниже
+ html_validator:
+ invalid_markup: 'contains invalid HTML markup: %{error}'
+ identity_proofs:
+ active: Активно
+ authorize: Да, авторизовать
+ authorize_connection_prompt: Авторизовать эту криптографическую связь?
+ errors:
+ failed: Криптографическое соединение не установлено. Попробуйте ещё раз на %{provider}.
+ keybase:
+ invalid_token: Токены Keybase — это хэши от подписей и должны быть по длине в 66 hex-символов
+ verification_failed: Keybase не распознаёт этот токен как подпись пользователя %{kb_username}. Пожалуйста, повторите на Keybase.
+ wrong_user: Невозможно подтвердить пользователя %{proving}, будучи залогиненным как %{current}. Выполните вход как %{proving} и попробуйте ещё раз.
+ explanation_html: Здесь вы можете криптографически связать свои остальные идентификаторы, такие как профиль Keybase. Это позволит другим дюдям отправлять вам зашифрованные сообщения и верить отправляемым вами сообщениям.
+ i_am_html: Я %{username} на %{service}.
+ identity: Идентификатор
+ inactive: Неактивно
+ publicize_checkbox: 'И опубликуйте текст:'
+ publicize_toot: 'Подтверждено! Я %{username} на %{service}: %{url}'
+ status: Статус подтверждения
+ view_proof: Посмотреть доказательство личности
imports:
+ modes:
+ merge: Объединить
+ merge_long: Сохранить имеющиеся данные и добавить новые
+ overwrite: Перезаписать
+ overwrite_long: Перезаписать имеющиеся данные новыми
preface: Вы можете загрузить некоторые данные, например, списки людей, на которых Вы подписаны или которых блокируете, в Ваш аккаунт на этом узле из файлов, экспортированных с другого узла.
success: Ваши данные были успешно загружены и будут обработаны с должной скоростью
types:
blocking: Список блокировки
+ domain_blocking: Список доменных блокировок
following: Подписки
muting: Список глушения
upload: Загрузить
@@ -582,6 +706,7 @@ ru:
'86400': 1 день
expires_in_prompt: Никогда
generate: Сгенерировать
+ invited_by: 'Вас пригласил(а):'
max_uses:
few: "%{count} исп."
many: "%{count} исп."
@@ -604,7 +729,7 @@ ru:
acct: имя@домен нового аккаунта
currently_redirecting: 'Ваш профиль будет перенаправлен на:'
proceed: Сохранить
- updated_msg: Настройки миграции Вашего аккаунта обновлены!
+ updated_msg: Настройки миграции вашего аккаунта обновлены!
moderation:
title: Модерация
notification_mailer:
@@ -613,28 +738,28 @@ ru:
body: Кратко о пропущенных Вами сообщениях с Вашего последнего захода %{since}
mention: "%{name} упомянул(а) Вас в:"
new_followers_summary:
- few: У Вас появилось %{count} новых подписчика! Отлично!
- many: У Вас появилось %{count} новых подписчиков! Отлично!
- one: Также, пока вас не было, у Вас появился новый подписчик! Ура!
- other: Также, пока вас не было, у Вас появилось %{count} новых подписчиков! Отлично!
+ few: У вас появилось %{count} новых подписчика! Отлично!
+ many: У вас появилось %{count} новых подписчиков! Отлично!
+ one: Также, пока вас не было, у вас появился новый подписчик! Ура!
+ other: Также, пока вас не было, у вас появилось %{count} новых подписчиков! Отлично!
subject:
- few: "%{count} новых уведомления с Вашего последнего захода \U0001F418"
- many: "%{count} новых уведомлений с Вашего последнего захода \U0001F418"
- one: "1 новое уведомление с Вашего последнего захода \U0001F418"
- other: "%{count} новых уведомлений с Вашего последнего захода \U0001F418"
+ few: "%{count} новых уведомления с вашего последнего захода \U0001F418"
+ many: "%{count} новых уведомлений с вашего последнего захода \U0001F418"
+ one: "1 новое уведомление с вашего последнего захода \U0001F418"
+ other: "%{count} новых уведомлений с вашего последнего захода \U0001F418"
title: В ваше отсутствие…
favourite:
body: 'Ваш статус понравился %{name}:'
- subject: "%{name} понравился Ваш статус"
+ subject: "%{name} понравился ваш статус"
title: Понравившийся статус
follow:
- body: "%{name} теперь подписан(а) на Вас!"
- subject: "%{name} теперь подписан(а) на Вас"
+ body: "%{name} теперь подписан(а) на вас!"
+ subject: "%{name} теперь подписан(а) на вас"
title: Новый подписчик
follow_request:
action: Управление запросами на подписку
- body: "%{name} запросил Вас о подписке"
- subject: "%{name} хочет подписаться на Вас"
+ body: "%{name} запросил вас о подписке"
+ subject: "%{name} хочет подписаться на вас"
title: Новый запрос о подписке
mention:
action: Ответить
@@ -643,7 +768,7 @@ ru:
title: Новое упоминание
reblog:
body: 'Ваш статус был продвинут %{name}:'
- subject: "%{name} продвинул(а) Ваш статус"
+ subject: "%{name} продвинул(а) ваш статус"
title: Новое продвижение
number:
human:
@@ -662,21 +787,59 @@ ru:
older: Старше
prev: Пред
truncate: "…"
+ polls:
+ errors:
+ already_voted: Вы уже голосовали в этом опросе
+ duplicate_options: содержит одинаковые варианты
+ duration_too_long: слишком далеко в будущем
+ duration_too_short: слишком короткий срок
+ expired: Опрос уже завершился
+ over_character_limit: каждый не вариант не может быть длиннее %{max} символов
+ too_few_options: должно быть больше 1 варианта
+ too_many_options: может содержать не больше %{max} вариантов
preferences:
languages: Языки
other: Другое
publishing: Публикация
web: WWW
+ relationships:
+ activity: Активность аккаунта
+ dormant: Заброшенные
+ last_active: Недавно активные
+ most_recent: Новые
+ moved: Переехавший
+ mutual: Общие
+ primary: Основной
+ relationship: Связь
+ remove_selected_domains: Удалить всех подписчиков для выбранных доменов
+ remove_selected_followers: Удалить выбранных подписчиков
+ remove_selected_follows: Отписаться от выбранных пользователей
+ status: Статус аккаунта
remote_follow:
acct: Введите свой username@domain для продолжения
missing_resource: Поиск требуемого перенаправления URL для Вашего аккаунта завершился неудачей
no_account_html: Нет учётной записи? Вы можете
зарегистрироваться здесь
proceed: Продолжить подписку
prompt: 'Вы хотите подписаться на:'
+ reason_html: "
Почему это необходимо? %{instance}
может не являться сервером, на котором вы зарегистрированы, поэтому нам сперва нужно перенаправить вас на домашний сервер."
+ remote_interaction:
+ 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: Браузер
@@ -719,20 +882,25 @@ ru:
revoke_success: Сессия завершена успешно
title: Сессии
settings:
+ account: Учётная запись
+ account_settings: Настройки учётной записи
+ appearance: Внешний вид
authorized_apps: Авторизованные приложения
back: Назад в Mastodon
delete: Удаление аккаунта
development: Разработка
edit_profile: Изменить профиль
export: Экспорт данных
- followers: Авторизованные подписчики
+ featured_tags: Особенные хэштеги
+ identity_proofs: Подтверждения личности
import: Импорт
+ import_and_export: Импорт и экспорт
migrate: Перенос аккаунта
notifications: Уведомления
preferences: Настройки
- settings: Опции
+ profile: Профиль
+ relationships: Подписки и подписчики
two_factor_authentication: Двухфакторная аутентификация
- your_apps: Ваши приложения
statuses:
attached:
description: 'Вложение: %{attached}'
@@ -761,6 +929,13 @@ ru:
ownership: Нельзя закрепить чужой статус
private: Нельзя закрепить непубличный статус
reblog: Нельзя закрепить продвинутый статус
+ poll:
+ total_votes:
+ few: "%{count} голоса"
+ many: "%{count} голосов"
+ one: "%{count} голос"
+ other: "%{count} голосов"
+ vote: Голосовать
show_more: Ещё
sign_in_to_participate: Войдите, чтобы принять участие в дискуссии
title: '%{name}: "%{quote}"'
@@ -855,12 +1030,13 @@ ru:
Originally adapted from the Discourse privacy policy.
title: Условия обслуживания и политика конфиденциальности %{instance}
themes:
- contrast: Высококонтрастная
- default: Mastodon
+ contrast: Mastodon (высококонтрастная)
+ default: Mastodon (тёмная)
mastodon-light: Mastodon (светлая)
time:
formats:
- default: "%b %d, %Y, %H:%M"
+ default: "%d %b %Y, %H:%M"
+ month: "%m.%Y"
two_factor_authentication:
code_hint: Для подтверждения введите код, сгенерированный приложением аутентификатора
description_html: При включении
двухфакторной аутентификации, вход потребует от Вас использования Вашего телефона, который сгенерирует входные токены.
@@ -882,26 +1058,46 @@ ru:
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: Вы можете настроить свой профиль, загрузив аватар, обложку, сменив имя и много чего ещё. Если Вы хотите фильтровать подписчиков до того, как они смогут на Вас подписаться, Вы можете закрыть свой аккаунт.
+ edit_profile_step: Вы можете настроить свой профиль, загрузив аватар, обложку, сменив имя и много чего ещё. Если вы хотите фильтровать подписчиков до того, как они смогут на вас подписаться, вы можете закрыть свой аккаунт.
explanation: Несколько советов для новичков
final_action: Начать постить
- final_step: 'Начните постить! Ваши публичные посты могут видеть другие, например, в локальной ленте или по хэштегам, даже если у Вас нет подписчиков. Вы также можете поздороваться с остальными и представиться, используя хэштек #приветствие.'
+ final_step: 'Начните постить! Ваши публичные посты могут видеть другие, например, в локальной ленте или по хэштегам, даже если у вас нет подписчиков. Вы также можете поздороваться с остальными и представиться, используя хэштег #приветствие.'
full_handle: Ваше обращение
full_handle_hint: То, что Вы хотите сообщить своим друзьям, чтобы они могли написать Вам или подписаться с другого узла.
review_preferences_action: Изменить настройки
- review_preferences_step: Проверьте все настройки, например, какие письма Вы хотите получать или уровень приватности статусов по умолчанию. Если Вы не страдаете морской болезнь, можете включить автовоспроизведение GIF.
+ review_preferences_step: Проверьте все настройки, например, какие письма вы хотите получать или уровень приватности статусов по умолчанию. Если вы не страдаете морской болезнью, можете включить автовоспроизведение GIF.
subject: Добро пожаловать в Mastodon
- tip_federated_timeline: В глобальной ленте отображается сеть Mastodon. Но в ней показаны посты только от людей, на которых подписаны Вы и Ваши соседи, поэтому лента может быть неполной.
- tip_following: По умолчанию Вы подписаны на администратора(-ов) Вашего узла. Чтобы найти других интересных людей, проверьте локальную и глобальную ленты.
- tip_local_timeline: В локальной ленте показаны посты от людей с %{instance}. Это Ваши непосредственные соседи!
- tip_mobile_webapp: Если Ваш мобильный браузер предлагает добавить иконку Mastodon на домашний экран, то Вы можете получать push-уведомления. Прямо как полноценное приложение!
+ tip_federated_timeline: В глобальной ленте отображается сеть Mastodon. Но в ней показаны посты только от людей, на которых подписаны вы и ваши соседи, поэтому лента может быть неполной.
+ tip_following: По умолчанию вы подписаны на администратора(-ов) вашего узла. Чтобы найти других интересных людей, проверьте локальную и глобальную ленты.
+ tip_local_timeline: В локальной ленте показаны посты от людей с %{instance}. Это ваши непосредственные соседи!
+ tip_mobile_webapp: Если ваш мобильный браузер предлагает добавить иконку Mastodon на домашний экран, то вы можете получать push-уведомления. Прямо как полноценное приложение!
tips: Советы
title: Добро пожаловать на борт, %{name}!
users:
+ follow_limit_reached: Вы не можете подписаться больше, чем на %{limit} человек
invalid_email: Введенный e-mail неверен
invalid_otp_token: Введен неверный код двухфакторной аутентификации
otp_lost_help_html: Если Вы потеряли доступ к обоим, свяжитесь с %{email}
seamless_external_login: Вы залогинены через сторонний сервис, поэтому настройки e-mail и пароля недоступны.
signed_in_as: 'Выполнен вход под именем:'
+ verification:
+ explanation_html: 'Вы можете
подтвердить себя как владельца ссылок в вашем профиле. Для этого указанный веб-сайт должен содержать обратную ссылку на ваш профиль в Mastodon. У обратной ссылки
должен быть атрибут
rel="me"
. Сам текст ссылки не имеет значения. Пример:'
+ verification: Подтверждение
diff --git a/config/locales/simple_form.ar.yml b/config/locales/simple_form.ar.yml
index ef1d269ee..f0d121135 100644
--- a/config/locales/simple_form.ar.yml
+++ b/config/locales/simple_form.ar.yml
@@ -33,8 +33,10 @@ ar:
setting_noindex: ذلك يؤثر على حالة ملفك الشخصي و صفحاتك
setting_theme: ذلك يؤثر على الشكل الذي سيبدو عليه ماستدون عندما تقوم بالدخول مِن أي جهاز.
username: اسم المستخدم الخاص بك سوف يكون فريدا مِن نوعه على %{domain}
+ featured_tag:
+ name: 'رُبَّما تريد/ي استخدام أحد هؤلاء:'
imports:
- data: ملف CSV تم تصديره مِن مثيل خادوم ماستدون آخر
+ data: ملف CSV تم تصديره مِن خادوم ماستدون آخر
sessions:
otp: 'قم بإدخال رمز المصادقة بخطوتين الذي قام بتوليده تطبيق جهازك أو إستخدم أحد رموز النفاذ الإحتياطية :'
user:
@@ -97,6 +99,7 @@ ar:
setting_hide_network: إخفِ شبكتك
setting_noindex: عدم السماح لمحركات البحث بفهرسة ملفك الشخصي
setting_reduce_motion: تخفيض عدد الصور في الوسائط المتحركة
+ setting_show_application: إكشف/ي البرامج التي كانت تُرسل تبويقات
setting_system_font_ui: إستخدم الخطوط الإفتراضية للنظام
setting_theme: سمة الموقع
setting_unfollow_modal: إظهار مربع حوار للتأكيد قبل إلغاء متابعة أي حساب
@@ -105,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 4c2b1636d..db87fb116 100644
--- a/config/locales/simple_form.ca.yml
+++ b/config/locales/simple_form.ca.yml
@@ -33,11 +33,14 @@ ca:
setting_display_media_show_all: Mostra sempre els elements multimèdia marcats com a sensibles
setting_hide_network: Qui tu segueixes i els que et segueixen a tu no es mostraran en el teu perfil
setting_noindex: Afecta el teu perfil públic i les pàgines d'estat
+ setting_show_application: L'aplicació que fas servir per a publicar es mostrarà a la vista detallada dels teus toots
setting_theme: Afecta l'aspecte de Mastodon quan es visita des de qualsevol dispositiu.
username: El teu nom d'usuari serà únic a %{domain}
whole_word: Quan la paraula clau o la frase sigui només alfanumèrica, s'aplicarà si coincideix amb la paraula sencera
+ featured_tag:
+ name: 'És possible que vulguis utilitzar un d''aquests:'
imports:
- data: Fitxer CSV exportat des de una altra instància de Mastodon
+ data: Fitxer CSV exportat des d'un altre servidor de Mastodon
sessions:
otp: 'Introdueix el codi de dos factors generat per el teu telèfon o utilitza un dels teus codis de recuperació:'
user:
@@ -100,6 +103,7 @@ ca:
setting_hide_network: Amaga la teva xarxa
setting_noindex: Desactivació de la indexació del motor de cerca
setting_reduce_motion: Redueix el moviment en animacions
+ setting_show_application: Desvela l'aplicació utilitzada per enviar toots
setting_system_font_ui: Utilitza el tipus de lletra predeterminat del sistema
setting_theme: Tema del lloc
setting_unfollow_modal: Mostra el diàleg de confirmació abans de deixar de seguir a algú
@@ -108,6 +112,8 @@ ca:
username: Nom d'usuari
username_or_email: Nom d'usuari o adreça electrònica
whole_word: Paraula sencera
+ featured_tag:
+ name: Etiqueta
interactions:
must_be_follower: Blocar les notificacions de persones que no et segueixen
must_be_following: Bloca les notificacions de persones que no segueixes
diff --git a/config/locales/simple_form.co.yml b/config/locales/simple_form.co.yml
index 2fb035556..3a521e85e 100644
--- a/config/locales/simple_form.co.yml
+++ b/config/locales/simple_form.co.yml
@@ -33,11 +33,16 @@ 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
+ invite_request:
+ text: Quessu ci aiutarà à valutà a vostra dumanda
sessions:
otp: 'Entrate u codice d’identificazione à dui fattori nant’à u vostru telefuninu, o unu di i vostri codici di ricuperazione:'
user:
@@ -100,6 +105,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
@@ -108,16 +114,21 @@ 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
must_be_following_dm: Bluccà e missaghji diretti di quelli·e ch’ùn seguitate
+ invite_request:
+ text: Perchè vulete ghjunghje?
notification_emails:
digest: Mandà e-mail di ricapitulazione
favourite: Mandà un’e-mail quandu qualch’unu aghjunghje i mo statuti à i so favuriti
follow: Mandà un’e-mail quandu qualch’unu mi seguita
follow_request: Mandà un’e-mail quandu qualch’unu vole seguitami
mention: Mandà un’e-mail quandu qualch’unu mi mintuva
+ pending_account: Mandà un'e-mail quandu un novu contu hà bisognu d'esse valutatu
reblog: Mandà un’e-mail quandu qualch’unu sparte i mo statuti
report: Mandà un'e-mail quandu c'hè un novu signalamentu
'no': Nò
diff --git a/config/locales/simple_form.cs.yml b/config/locales/simple_form.cs.yml
index 0e255e4dc..2b4888424 100644
--- a/config/locales/simple_form.cs.yml
+++ b/config/locales/simple_form.cs.yml
@@ -6,40 +6,45 @@ cs:
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í
+ text_html: Volitelné. Můžete používat syntaxi tootů. Pro ušetření času si můžete
přidat předlohy 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
+ warning_preset_id: Volitelné. Můžete stále vložit na konec předlohy 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
+ context: Jeden č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.
+ scopes: Která API bude aplikaci povoleno používat. Pokud vyberete rozsah nejvyššího stupně, nebudete je muset vybírat jednotlivě.
setting_aggregate_reblogs: Nezobrazovat nové boosty pro tooty, které byly nedávno boostnuty (ovlivňuje pouze nově přijaté boosty)
setting_default_language: Jazyk vašich tootů může být detekován automaticky, není to však vždy přesné
setting_display_media_default: Skrývat média označená jako citlivá
setting_display_media_hide_all: Vždy skrývat všechna média
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_noindex: Ovlivňuje váš veřejný profil a stránky tootů
+ setting_show_application: Aplikace, kterou používáte k 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
+ invite_request:
+ text: To nám pomůže posoudit váš požadavek
sessions:
- otp: 'Napište dvoufaktorový kód vygenerovaný vaší mobilní aplikací, nebo použijte jeden z vašich záložních kódů:'
+ otp: 'Napište dvoufázový kód vygenerovaný vaší mobilní aplikací, nebo použijte jeden z vašich záložních kódů:'
user:
chosen_languages: Je-li tohle zaškrtnuto, budou ve veřejných časových osách zobrazeny pouze tooty ve zvolených jazycích
labels:
@@ -48,7 +53,7 @@ cs:
name: Označení
value: Obsah
account_warning_preset:
- text: Text přednastavení
+ text: Text předlohy
admin_account_action:
send_email_notification: Informovat uživatele e-mailem
text: Vlastní varování
@@ -58,7 +63,7 @@ cs:
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í
+ warning_preset_id: Použít předlohu pro varování
defaults:
autofollow: Pozvat ke sledování vašeho účtu
avatar: Avatar
@@ -72,17 +77,17 @@ cs:
discoverable: Zveřejnit tento účet v adresáři
display_name: Zobrazované jméno
email: E-mailová adresa
- expires_in: Expirovat po
+ expires_in: Vypršet za
fields: Metadata profilu
- header: Hlavičkový obrázek
- inbox_url: URL schránky mostu
+ header: Záhlaví
+ inbox_url: URL příchozí schránky mostu
irreversible: Zahodit místo skrytí
locale: Jazyk rozhraní
- locked: Zamknout účet
+ locked: Uzamknout účet
max_uses: Maximální počet použití
new_password: Nové heslo
note: O vás
- otp_attempt: Dvoufaktorový kód
+ otp_attempt: Dvoufázový kód
password: Heslo
phrase: Klíčové slovo či fráze
setting_aggregate_reblogs: Seskupovat boosty v časových osách
@@ -100,6 +105,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
@@ -108,17 +114,22 @@ 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
must_be_following_dm: Blokovat přímé zprávy od lidí, které nesledujete
+ invite_request:
+ text: Proč se chcete připojit?
notification_emails:
digest: Posílat e-maily s přehledem
- favourite: Posílat e-maily, když si někdo oblíbí váš příspěvek
+ favourite: Posílat e-maily, když si někdo oblíbí váš toot
follow: Posílat e-maily, když vás někdo začne sledovat
follow_request: Posílat e-maily, když vás někdo požádá o sledování
mention: Posílat e-maily, když vás někdo zmíní
- reblog: Posílat e-maily, když někdo boostne váš příspěvek
+ pending_account: Posílat e-maily, když je třeba posoudit nový účet
+ reblog: Posílat e-maily, když někdo boostne váš toot
report: Posílat e-maily, je-li odesláno nové nahlášení
'no': Ne
required:
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 f73dbac96..483be7055 100644
--- a/config/locales/simple_form.da.yml
+++ b/config/locales/simple_form.da.yml
@@ -29,7 +29,7 @@ da:
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:
diff --git a/config/locales/simple_form.de.yml b/config/locales/simple_form.de.yml
index 3958e315f..779476069 100644
--- a/config/locales/simple_form.de.yml
+++ b/config/locales/simple_form.de.yml
@@ -33,11 +33,16 @@ de:
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_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 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
+ inivte_request:
+ text: Dies wird uns helfen deine Anfrage besser zu verstehen
sessions:
otp: 'Gib den Zwei-Faktor-Authentisierungscode von deinem Telefon ein oder benutze einen deiner Wiederherstellungscodes:'
user:
@@ -74,7 +79,7 @@ de:
email: E-Mail-Adresse
expires_in: Läuft ab
fields: Profil-Metadaten
- header: Kopfbild
+ header: Titelbild
inbox_url: Inbox-URL des Relays
irreversible: Verwerfen statt verstecken
locale: Sprache der Benutzeroberfläche
@@ -100,6 +105,7 @@ de:
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 jemandem entfolgt wird
@@ -108,16 +114,21 @@ de:
username: Profilname
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
+ invite_request:
+ text: Warum möchtest du beitreten?
notification_emails:
digest: Schicke Übersichts-E-Mails
favourite: E-Mail senden, wenn jemand meinen Beitrag favorisiert
follow: E-Mail senden, wenn mir jemand folgt
follow_request: E-Mail senden, wenn mir jemand folgen möchte
mention: E-Mail senden, wenn mich jemand erwähnt
+ pending_account: E-Mail senden, wenn ein Benutzerkonto zur Überprüfung aussteht
reblog: E-Mail senden, wenn jemand meinen Beitrag teilt
report: E-Mail senden, wenn ein neuer Bericht vorliegt
'no': Nein
diff --git a/config/locales/simple_form.el.yml b/config/locales/simple_form.el.yml
index fecddd11f..3d812204c 100644
--- a/config/locales/simple_form.el.yml
+++ b/config/locales/simple_form.el.yml
@@ -33,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:
@@ -100,6 +103,7 @@ el:
setting_hide_network: Κρύψε τις διασυνδέσεις σου
setting_noindex: Επέλεξε να μην συμμετέχεις στα αποτελέσματα μηχανών αναζήτησης
setting_reduce_motion: Μείωση κίνησης κινουμένων στοιχείων
+ setting_show_application: Να αποκαλύπτεται η εφαρμογή που χρησιμοποιήθηκε για την αποστολή των τουτ
setting_system_font_ui: Χρησιμοποίησε την προεπιλεγμένη γραμματοσειρά του συστήματος
setting_theme: Θέμα ιστότοπου
setting_unfollow_modal: Εμφάνιση ερώτησης επιβεβαίωσης πριν διακόψεις την παρακολούθηση κάποιου
@@ -108,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 2f32f2c7a..1eae6064f 100644
--- a/config/locales/simple_form.en.yml
+++ b/config/locales/simple_form.en.yml
@@ -33,11 +33,16 @@ 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
+ invite_request:
+ text: This will help us review your application
sessions:
otp: 'Enter the two-factor code generated by your phone app or use one of your recovery codes:'
user:
@@ -101,6 +106,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
@@ -109,16 +115,21 @@ 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
must_be_following_dm: Block direct messages from people you don't follow
+ invite_request:
+ text: Why do you want to join?
notification_emails:
digest: Send digest e-mails
favourite: Send e-mail when someone favourites your status
follow: Send e-mail when someone follows you
follow_request: Send e-mail when someone requests to follow you
mention: Send e-mail when someone mentions you
+ pending_account: Send e-mail when a new account needs review
reblog: Send e-mail when someone boosts your status
report: Send e-mail when a new report is submitted
'no': 'No'
diff --git a/config/locales/simple_form.en_GB.yml b/config/locales/simple_form.en_GB.yml
index d9e1a256f..6eac4bf3c 100644
--- a/config/locales/simple_form.en_GB.yml
+++ b/config/locales/simple_form.en_GB.yml
@@ -1,2 +1,133 @@
---
-{}
+en_GB:
+ simple_form:
+ hints:
+ account_warning_preset:
+ text: You can use toot syntax, such as URLs, hashtags and mentions
+ admin_account_action:
+ send_email_notification: The user will receive an explanation of what happened with their account
+ text_html: Optional. You can use toot syntax. You can
add warning presets to save time
+ type_html: Choose what to do with
%{acct}
+ warning_preset_id: Optional. You can still add custom text to end of the preset
+ defaults:
+ autofollow: People who sign up through the invite will automatically follow you
+ avatar: PNG, GIF or JPG. At most %{size}. Will be downscaled to %{dimensions}px
+ bot: This account mainly performs automated actions and might not be monitored
+ context: One or multiple contexts where the filter should apply
+ digest: Only sent after a long period of inactivity and only if you have received any personal messages in your absence
+ discoverable_html: The
directory lets people find accounts based on interests and activity. Requires at least %{min_followers} followers
+ email: You will be sent a confirmation e-mail
+ fields: You can have up to 4 items displayed as a table on your profile
+ header: PNG, GIF or JPG. At most %{size}. Will be downscaled to %{dimensions}px
+ inbox_url: Copy the URL from the frontpage of the relay you want to use
+ irreversible: Filtered toots will disappear irreversibly, even if filter is later removed
+ locale: The language of the user interface, e-mails and push notifications
+ locked: Requires you to manually approve followers
+ password: Use at least 8 characters
+ phrase: Will be matched regardless of casing in text or content warning of a toot
+ scopes: Which APIs the application will be allowed to access. If you select a top-level scope, you don't need to select individual ones.
+ setting_aggregate_reblogs: Do not show new boosts for toots that have been recently boosted (only affects newly-received boosts)
+ setting_default_language: The language of your toots can be detected automatically, but it's not always accurate
+ setting_display_media_default: Hide media marked as sensitive
+ setting_display_media_hide_all: Always hide all media
+ 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 server
+ sessions:
+ otp: 'Enter the two-factor code generated by your phone app or use one of your recovery codes:'
+ user:
+ chosen_languages: When checked, only toots in selected languages will be displayed in public timelines
+ labels:
+ account:
+ fields:
+ name: Label
+ value: Content
+ account_warning_preset:
+ text: Preset text
+ admin_account_action:
+ send_email_notification: Notify the user per e-mail
+ text: Custom warning
+ type: Action
+ types:
+ disable: Disable
+ none: Do nothing
+ silence: Silence
+ suspend: Suspend and irreversibly delete account data
+ warning_preset_id: Use a warning preset
+ defaults:
+ autofollow: Invite to follow your account
+ avatar: Avatar
+ bot: This is a bot account
+ chosen_languages: Filter languages
+ confirm_new_password: Confirm new password
+ confirm_password: Confirm password
+ context: Filter contexts
+ current_password: Current password
+ data: Data
+ discoverable: List this account on the directory
+ display_name: Display name
+ email: E-mail address
+ expires_in: Expire after
+ fields: Profile metadata
+ header: Header
+ inbox_url: URL of the relay inbox
+ irreversible: Drop instead of hide
+ locale: Interface language
+ locked: Lock account
+ max_uses: Max number of uses
+ new_password: New password
+ note: Bio
+ otp_attempt: Two-factor code
+ password: Password
+ phrase: Keyword or phrase
+ setting_aggregate_reblogs: Group boosts in timelines
+ setting_auto_play_gif: Auto-play animated GIFs
+ setting_boost_modal: Show confirmation dialog before boosting
+ setting_default_language: Posting language
+ setting_default_privacy: Post privacy
+ setting_default_sensitive: Always mark media as sensitive
+ setting_delete_modal: Show confirmation dialog before deleting a toot
+ setting_display_media: Media display
+ setting_display_media_default: Default
+ setting_display_media_hide_all: Hide all
+ setting_display_media_show_all: Show all
+ setting_expand_spoilers: Always expand toots marked with content warnings
+ 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
+ severity: Severity
+ type: Import type
+ 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
+ must_be_following_dm: Block direct messages from people you don't follow
+ notification_emails:
+ digest: Send digest e-mails
+ favourite: Send e-mail when someone favourites your status
+ follow: Send e-mail when someone follows you
+ follow_request: Send e-mail when someone requests to follow you
+ mention: Send e-mail when someone mentions you
+ reblog: Send e-mail when someone boosts your status
+ report: Send e-mail when a new report is submitted
+ 'no': 'No'
+ required:
+ mark: "*"
+ text: required
+ 'yes': 'Yes'
diff --git a/config/locales/simple_form.eo.yml b/config/locales/simple_form.eo.yml
index b78d2dd81..f4e1df32a 100644
--- a/config/locales/simple_form.eo.yml
+++ b/config/locales/simple_form.eo.yml
@@ -2,12 +2,20 @@
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
+ text_html: Malnepra. Vi povas uzi skribmanierojn de mesaĝoj. Vi povas
aldoni avertajn antaŭagordojn por ŝpari tempon
+ type_html: Elektu kion fari kun
%{acct}
+ warning_preset_id: Malnepra. Vi povas ankoraŭ aldoni propran tekston al la fino de la antaŭagordo
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
bot: Tiu konto ĉefe faras aŭtomatajn agojn, kaj povas esti ne kontrolata
context: Unu ol pluraj kuntekstoj kie la filtrilo devus agi
digest: Sendita nur post longa tempo de neaktiveco, kaj nur se vi ricevis personan mesaĝon en via foresto
+ discoverable_html: La
profilujo permesas al homoj trovi kontojn laŭ interesoj kaj aktiveco. Postulas almenaŭ %{min_followers} sekvantojn
email: Vi ricevos konfirman retmesaĝon
fields: Vi povas havi ĝis 4 tabelajn elementojn en via profilo
header: Formato PNG, GIF aŭ JPG. Ĝis %{size}. Estos malgrandigita al %{dimensions}px
@@ -17,17 +25,22 @@ eo:
locked: Vi devos aprobi ĉiun peton de sekvado mane
password: Uzu almenaŭ 8 signojn
phrase: Estos provita senzorge pri la uskleco de teksto aŭ averto pri enhavo de mesaĝo
+ scopes: Kiujn API-ojn la aplikaĵo permesiĝos atingi. Se vi elektas supran amplekson, vi ne bezonas elekti la individuajn.
+ setting_aggregate_reblogs: Ne montri novajn diskonigojn de mesaĝoj laste diskonigitaj (nur efikas al novaj diskonigoj)
setting_default_language: La lingvo de viaj mesaĝoj povas esti aŭtomate detektitaj, sed tio ne ĉiam ĝustas
setting_display_media_default: Kaŝi aŭdovidaĵojn markitajn kiel tiklaj
setting_display_media_hide_all: Ĉiam kaŝi ĉiujn aŭdovidaĵojn
setting_display_media_show_all: Ĉiam montri aŭdovidaĵojn markitajn kiel tiklaj
setting_hide_network: Tiuj, kiujn vi sekvas, kaj tiuj, kiuj sekvas vin ne estos videblaj en via profilo
setting_noindex: Influas vian publikan profilon kaj mesaĝajn paĝojn
+ setting_show_application: La aplikaĵo, kiun vi uzas por afiŝi, estos montrita en la detala vido de viaj mesaĝoj
setting_theme: Influas kiel Mastodon aspektas post ensaluto de ajna aparato.
username: Via uzantnomo estos unika ĉe %{domain}
whole_word: Kiam la vorto aŭ frazo estas nur litera aŭ cifera, ĝi estos uzata nur se ĝi kongruas kun la tuta vorto
+ featured_tag:
+ name: 'Vi povus uzi iun el la jenaj:'
imports:
- data: CSV-dosiero el alia nodo de Mastodon
+ data: CSV-dosiero el alia Mastodon-servilo
sessions:
otp: 'Enmetu la kodon de dufaktora aŭtentigo el via telefono aŭ uzu unu el viaj realiraj kodoj:'
user:
@@ -37,6 +50,18 @@ eo:
fields:
name: Etikedo
value: Enhavo
+ account_warning_preset:
+ text: Antaŭagordita teksto
+ admin_account_action:
+ send_email_notification: Atentigi la uzanton retpoŝte
+ text: Propra averto
+ type: Ago
+ types:
+ disable: Malebligi
+ none: Fari nenion
+ silence: Silentigi
+ suspend: Haltigi kaj nemalfereble forigi kontajn datumojn
+ warning_preset_id: Uzi antaŭagorditan averton
defaults:
autofollow: Inviti al sekvi vian konton
avatar: Profilbildo
@@ -47,6 +72,7 @@ eo:
context: Filtri kuntekstojn
current_password: Nuna pasvorto
data: Datumoj
+ discoverable: Montri ĉi tiun konton en la profilujo
display_name: Publika nomo
email: Retadreso
expires_in: Eksvalidiĝas post
@@ -62,6 +88,7 @@ eo:
otp_attempt: Kodo de dufaktora aŭtentigo
password: Pasvorto
phrase: Vorto aŭ frazo
+ setting_aggregate_reblogs: Grupigi diskonigojn en tempolinioj
setting_auto_play_gif: Aŭtomate ekigi GIF-ojn
setting_boost_modal: Montri fenestron por konfirmi antaŭ ol diskonigi
setting_default_language: Publikada lingvo
@@ -76,6 +103,7 @@ eo:
setting_hide_network: Kaŝi viajn sekvantojn kaj sekvatojn
setting_noindex: Ellistiĝi de retserĉila indeksado
setting_reduce_motion: Malrapidigi animaciojn
+ setting_show_application: Publikigi la aplikaĵon uzatan por sendi mesaĝojn
setting_system_font_ui: Uzi la dekomencan tiparon de la sistemo
setting_theme: Reteja etoso
setting_unfollow_modal: Montri fenestron por konfirmi antaŭ ol ĉesi sekvi iun
@@ -84,6 +112,8 @@ eo:
username: Uzantnomo
username_or_email: Uzantnomo aŭ Retadreso
whole_word: Tuta vorto
+ featured_tag:
+ name: Kradvorto
interactions:
must_be_follower: Bloki sciigojn de nesekvantoj
must_be_following: Bloki sciigojn de homoj, kiujn vi ne sekvas
diff --git a/config/locales/simple_form.eu.yml b/config/locales/simple_form.eu.yml
index 0ffc22b53..f4fadb29d 100644
--- a/config/locales/simple_form.eu.yml
+++ b/config/locales/simple_form.eu.yml
@@ -33,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:
@@ -57,6 +60,7 @@ eu:
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
@@ -99,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
@@ -107,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..b7ba444aa 100644
--- a/config/locales/simple_form.fa.yml
+++ b/config/locales/simple_form.fa.yml
@@ -2,12 +2,20 @@
fa:
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} پیکسل تبدیل خواهد شد
bot: این حساب بیشتر به طور خودکار فعالیت میکند و نظارت پیوستهای روی آن وجود ندارد
context: یک یا چند زمینه که فیلتر باید در آنها اعمال شود
digest: تنها وقتی فرستاده میشود که مدتی طولانی فعالیتی نداشته باشید و در این مدت برای شما پیغام خصوصیای نوشته شده باشد
+ discoverable_html: با
فهرست گزیدهٔ کاربران مردم میتوانند حسابهای این سرور را بر اساس علاقهمندیها و فعالیتشان پیدا کنند. هر حساب دستکم باید %{min_followers} پیگیر داشته باشد
email: به شما ایمیل تأییدی فرستاده خواهد شد
fields: شما میتوانید تا چهار مورد را در یک جدول در نمایهٔ خود نمایش دهید
header: یکی از قالبهای PNG یا GIF یا JPG. بیشترین اندازه %{size}. تصویر به اندازهٔ %{dimensions} پیکسل تبدیل خواهد شد
@@ -18,15 +26,19 @@ fa:
password: دستکم باید ۸ نویسه داشته باشد
phrase: مستقل از کوچکی و بزرگی حروف، با متن اصلی یا هشدار محتوای بوقها مقایسه میشود
scopes: واسطهای برنامهنویسی که این برنامه به آن دسترسی دارد. اگر بالاترین سطح دسترسی را انتخاب کنید، دیگر نیازی به انتخاب سطحهای پایینی ندارید.
+ 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_show_application: برنامهای که به کمک آن بوق میزنید، در جزئیات بوق شما نمایش خواهد یافت
setting_theme: ظاهر ماستدون را وقتی که از هر دستگاهی به آن وارد میشوید تعیین میکند.
username: نام کاربری شما روی %{domain} یکتا خواهد بود
whole_word: اگر کلیدواژه فقط دارای حروف و اعداد باشد، تنها وقتی پیدا میشود که با کل یک واژه در متن منطبق باشد، نه با بخشی از یک واژه
+ featured_tag:
+ name: 'شاید بخواهید چنین چیزهایی را به کار ببرید:'
imports:
data: پروندهٔ CSV که از سرور ماستدون دیگری برونسپاری شده
sessions:
@@ -38,6 +50,18 @@ fa:
fields:
name: برچسب
value: محتوا
+ account_warning_preset:
+ text: متن از پیش آمادهشده
+ admin_account_action:
+ send_email_notification: اطلاعرسانی به کاربر از راه ایمیل
+ text: هشدار موردی
+ type: نوع کنش
+ types:
+ disable: غیرفعالکردن
+ none: کاری نکن
+ silence: بیصدا کردن
+ suspend: تعلیق و پاککردن کامل همهٔ اطلاعات حساب
+ warning_preset_id: یک هشدار از پیشآماده را به کار ببرید
defaults:
autofollow: دعوت از دیگران برای عضو شدن و پیگیری حساب شما
avatar: تصویر نمایه
@@ -48,6 +72,7 @@ fa:
context: زمینههای فیلترکردن
current_password: رمز فعلی
data: دادهها
+ discoverable: این حساب را در فهرست گزیدهٔ کاربران نشان بده
display_name: نمایش به نام
email: نشانی ایمیل
expires_in: تاریخ انقضا
@@ -63,6 +88,7 @@ fa:
otp_attempt: کد ورود دومرحلهای
password: رمز
phrase: کلیدواژه یا عبارت
+ setting_aggregate_reblogs: بازبوقها را متحد کن
setting_auto_play_gif: پخش خودکار تصویرهای متحرک
setting_boost_modal: نمایش پیغام تأیید پیش از بازبوقیدن
setting_default_language: زبان نوشتههای شما
@@ -77,6 +103,7 @@ fa:
setting_hide_network: نهفتن شبکهٔ ارتباطی
setting_noindex: درخواست از موتورهای جستجوگر برای ظاهر نشدن در نتایج جستجو
setting_reduce_motion: کاستن از حرکت در پویانماییها
+ setting_show_application: برنامهای که به کار میبرید آشکار شود
setting_system_font_ui: بهکاربردن قلم پیشفرض سیستم
setting_theme: تم سایت
setting_unfollow_modal: نمایش پیغام تأیید پیش از لغو پیگیری دیگران
@@ -85,6 +112,8 @@ fa:
username: نام کاربری (لاتین)
username_or_email: نام کاربری یا ایمیل
whole_word: تطابق واژهٔ کامل
+ featured_tag:
+ name: برچسب
interactions:
must_be_follower: مسدودکردن اعلانهای همه به جز پیگیران
must_be_following: مسدودکردن اعلانهای کسانی که شما پی نمیگیرید
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 730a69522..0469ebe06 100644
--- a/config/locales/simple_form.fr.yml
+++ b/config/locales/simple_form.fr.yml
@@ -33,11 +33,14 @@ 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
+ data: Un fichier CSV généré par un autre serveur de Mastodon
sessions:
otp: 'Entrez le code d’authentification à deux facteurs généré par l’application de votre téléphone ou utilisez un de vos codes de récupération :'
user:
@@ -100,6 +103,7 @@ fr:
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
@@ -108,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 d5e0ef574..434b8caff 100644
--- a/config/locales/simple_form.gl.yml
+++ b/config/locales/simple_form.gl.yml
@@ -33,15 +33,18 @@ 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:
@@ -97,9 +100,10 @@ gl:
setting_display_media_hide_all: Ocultar todo
setting_display_media_show_all: Mostrar todo
setting_expand_spoilers: Despregar sempre as mensaxes marcadas con avisos de contido
- setting_hide_network: Agochar a súa rede
+ setting_hide_network: Non mostrar contactos
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
@@ -108,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 dd43898d2..9061844fe 100644
--- a/config/locales/simple_form.it.yml
+++ b/config/locales/simple_form.it.yml
@@ -33,11 +33,14 @@ it:
setting_display_media_show_all: Nascondi sempre i media segnati come sensibili
setting_hide_network: Chi segui e chi segue te non saranno mostrati sul tuo profilo
setting_noindex: Ha effetto sul tuo profilo pubblico e sulle pagine degli status
+ setting_show_application: L'applicazione che usi per pubblicare i toot sarà mostrata nella vista di dettaglio dei tuoi toot
setting_theme: Ha effetto sul modo in cui Mastodon verrà visualizzato quando sarai collegato da qualsiasi dispositivo.
username: Il tuo nome utente sarà unico su %{domain}
whole_word: Quando la parola chiave o la frase è solo alfanumerica, si applica solo se corrisponde alla parola intera
+ featured_tag:
+ name: 'Eccone alcuni che potresti usare:'
imports:
- data: File CSV esportato da un'altra istanza di Mastodon
+ data: File CSV esportato da un altro server Mastodon
sessions:
otp: 'Inserisci il codice a due fattori generato dall''app del tuo telefono o usa uno dei codici di recupero:'
user:
@@ -100,14 +103,17 @@ it:
setting_hide_network: Nascondi la tua rete
setting_noindex: Non farti indicizzare dai motori di ricerca
setting_reduce_motion: Riduci movimento nelle animazioni
+ setting_show_application: Rendi pubblica l'applicazione usata per inviare i toot
setting_system_font_ui: Usa il carattere predefinito del sistema
setting_theme: Tema sito
- setting_unfollow_modal: Mostra dialogo di conferma prima di smettere di seguire qualcuno
+ setting_unfollow_modal: Chiedi conferma prima di smettere di seguire qualcuno
severity: Severità
type: Tipo importazione
username: Nome utente
username_or_email: Nome utente o email
whole_word: Parola intera
+ featured_tag:
+ name: Hashtag
interactions:
must_be_follower: Blocca notifiche da chi non ti segue
must_be_following: Blocca notifiche dalle persone che non segui
diff --git a/config/locales/simple_form.ja.yml b/config/locales/simple_form.ja.yml
index f9beedb7e..05933e016 100644
--- a/config/locales/simple_form.ja.yml
+++ b/config/locales/simple_form.ja.yml
@@ -33,11 +33,16 @@ 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ファイルを選択して下さい
+ invite_request:
+ text: このサーバーは現在承認制です。申請を承認する際に役立つメッセージを添えてください
sessions:
otp: '携帯電話のアプリで生成された二段階認証コードを入力するか、リカバリーコードを使用してください:'
user:
@@ -100,6 +105,7 @@ ja:
setting_hide_network: 繋がりを隠す
setting_noindex: 検索エンジンによるインデックスを拒否する
setting_reduce_motion: アニメーションの動きを減らす
+ setting_show_application: トゥートの送信に使用したアプリを開示する
setting_system_font_ui: システムのデフォルトフォントを使う
setting_theme: サイトテーマ
setting_unfollow_modal: フォローを解除する前に確認ダイアログを表示する
@@ -108,16 +114,21 @@ ja:
username: ユーザー名
username_or_email: ユーザー名またはメールアドレス
whole_word: 単語全体にマッチ
+ featured_tag:
+ name: ハッシュタグ
interactions:
must_be_follower: フォロワー以外からの通知をブロック
must_be_following: フォローしていないユーザーからの通知をブロック
must_be_following_dm: フォローしていないユーザーからのダイレクトメッセージをブロック
+ invite_request:
+ text: 意気込みをお聞かせください
notification_emails:
digest: タイムラインからピックアップしてメールで通知する
favourite: お気に入りに登録された時にメールで通知する
follow: フォローされた時にメールで通知する
follow_request: フォローリクエストを受けた時にメールで通知する
mention: 返信が来た時にメールで通知する
+ pending_account: 新しいアカウントの承認が必要な時にメールで通知する
reblog: トゥートがブーストされた時にメールで通知する
report: 通報を受けた時にメールで通知する
'no': いいえ
diff --git a/config/locales/simple_form.kk.yml b/config/locales/simple_form.kk.yml
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/config/locales/simple_form.kk.yml
@@ -0,0 +1 @@
+{}
diff --git a/config/locales/simple_form.ko.yml b/config/locales/simple_form.ko.yml
index fd0a1940e..9c5fc413d 100644
--- a/config/locales/simple_form.ko.yml
+++ b/config/locales/simple_form.ko.yml
@@ -33,11 +33,16 @@ 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 파일
+ invite_request:
+ text: 이 정보는 우리가 심사를 하는 데에 참고할 수 있습니다
sessions:
otp: '휴대전화에서 생성 된 2단계 인증 코드를 입력하거나, 복구 코드 중 하나를 사용하세요:'
user:
@@ -64,10 +69,10 @@ ko:
avatar: 아바타
bot: 이것은 봇 계정입니다
chosen_languages: 언어 필터링
- confirm_new_password: 새로운 비밀번호 다시 입력
- confirm_password: 현재 비밀번호 다시 입력
+ confirm_new_password: 암호 다시 입력
+ confirm_password: 암호 다시 입력
context: 필터 컨텍스트
- current_password: 현재 비밀번호 입력
+ current_password: 현재 암호 입력
data: 데이터
discoverable: 이 계정을 디렉토리에서 찾을 수 있도록 합니다
display_name: 표시되는 이름
@@ -80,10 +85,10 @@ ko:
locale: 인터페이스 언어
locked: 계정 잠금
max_uses: 사용 횟수 제한
- new_password: 새로운 비밀번호 입력
+ new_password: 새로운 암호 입력
note: 자기소개
otp_attempt: 2단계 인증 코드
- password: 비밀번호
+ password: 암호
phrase: 키워드 또는 문장
setting_aggregate_reblogs: 타임라인의 부스트를 그룹화
setting_auto_play_gif: 애니메이션 GIF를 자동 재생
@@ -100,6 +105,7 @@ ko:
setting_hide_network: 내 네트워크 숨기기
setting_noindex: 검색엔진의 인덱싱을 거절
setting_reduce_motion: 애니메이션 줄이기
+ setting_show_application: 툿 작성에 사용한 앱을 공개
setting_system_font_ui: 시스템의 초기 설정 폰트를 사용
setting_theme: 사이트 테마
setting_unfollow_modal: 언팔로우 전 언팔로우 확인 표시
@@ -108,16 +114,21 @@ ko:
username: 유저 이름
username_or_email: 유저네임 또는 이메일
whole_word: 단어 전체에 매칭
+ featured_tag:
+ name: 해시태그
interactions:
must_be_follower: 나를 팔로우 하지 않는 사람에게서 온 알림을 차단
must_be_following: 내가 팔로우 하지 않는 사람에게서 온 알림을 차단
must_be_following_dm: 내가 팔로우 하지 않은 사람에게서 오는 다이렉트메시지를 차단
+ invite_request:
+ text: 가입하려는 이유가 무엇인가요?
notification_emails:
digest: 요약 이메일 보내기
favourite: 누군가 내 상태를 즐겨찾기로 등록했을 때 이메일 보내기
follow: 누군가 나를 팔로우 했을 때 이메일 보내기
follow_request: 누군가 나를 팔로우 하길 원할 때 이메일 보내기
mention: 누군가 나에게 답장했을 때 이메일 보내기
+ pending_account: 새 계정이 심사가 필요할 때 이메일 보내기
reblog: 누군가 내 툿을 부스트 했을 때 이메일 보내기
report: 새 신고 등록시 이메일로 알리기
'no': 아니오
diff --git a/config/locales/simple_form.nl.yml b/config/locales/simple_form.nl.yml
index 6eb784c30..0d7d1a847 100644
--- a/config/locales/simple_form.nl.yml
+++ b/config/locales/simple_form.nl.yml
@@ -33,9 +33,12 @@ 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:
@@ -100,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
@@ -108,6 +112,8 @@ 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
diff --git a/config/locales/simple_form.oc.yml b/config/locales/simple_form.oc.yml
index 6ded448e9..3efaa34df 100644
--- a/config/locales/simple_form.oc.yml
+++ b/config/locales/simple_form.oc.yml
@@ -33,11 +33,16 @@ 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
+ invite_request:
+ text: Aquò nos ajudarà per validar vòstra demanda
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:
@@ -100,6 +105,7 @@ oc:
setting_hide_network: Amagar vòstre malhum
setting_noindex: Èsser pas indexat pels motors de recèrca
setting_reduce_motion: Reduire la velocitat de las animacions
+ setting_show_application: Revelar lo nom de l’aplicacion utilizada per enviar de tuts
setting_system_font_ui: Utilizar la polissa del sistèma
setting_theme: Tèma del site
setting_unfollow_modal: Mostrar una confirmacion abans de quitar de sègre qualqu’un
@@ -108,16 +114,21 @@ oc:
username: Nom d’utilizaire
username_or_email: Nom d’utilizaire o corrièl
whole_word: Mot complèt
+ featured_tag:
+ name: Etiqueta
interactions:
must_be_follower: Blocar las notificacions del mond que vos sègon pas
must_be_following: Blocar las notificacions del mond que seguètz pas
must_be_following_dm: Blocar los messatges del monde que seguètz pas
+ invite_request:
+ text: Perqué volètz vos marcar ?
notification_emails:
digest: Enviar un corrièl recapitulatiu
favourite: Enviar un corrièl quand qualqu’un plaça vòstre estatut en favorit
follow: Enviar un corrièl quand qualqu’un vos sèc
follow_request: Enviar un corrièl quand qualqu’un demanda de vos sègre
mention: Enviar un corrièl quand qualqu’un vos menciona
+ pending_account: Enviar un corrièl quand cal validar un compte novèl
reblog: Enviar un corrièl quand qualqu’un tòrna partejar vòstre estatut
report: Enviar un corrièl pels nòus senhalaments
'no': Non
diff --git a/config/locales/simple_form.pl.yml b/config/locales/simple_form.pl.yml
index bbc55e8a9..abc2c17a9 100644
--- a/config/locales/simple_form.pl.yml
+++ b/config/locales/simple_form.pl.yml
@@ -33,11 +33,14 @@ pl:
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
+ data: Plik CSV wyeksportowany z innego serwera Mastodona
sessions:
otp: 'Wprowadź kod weryfikacji dwuetapowej z telefonu lub wykorzystaj jeden z kodów zapasowych:'
user:
@@ -101,6 +104,7 @@ pl:
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
@@ -109,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 411305b2d..da5f56505 100644
--- a/config/locales/simple_form.pt-BR.yml
+++ b/config/locales/simple_form.pt-BR.yml
@@ -6,7 +6,7 @@ pt-BR:
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.
+ 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:
@@ -33,9 +33,12 @@ pt-BR:
setting_display_media_show_all: Sempre mostrar mídia marcada como sensível
setting_hide_network: Quem você segue e quem segue você não serão exibidos no seu perfil
setting_noindex: Afeta seu perfil público e as páginas de suas postagens
+ setting_show_application: A aplicação que você usar para enviar seus toots vai aparecer na visão detalhada dos seus toots
setting_theme: Afeta a aparência do Mastodon quando em sua conta em qualquer aparelho.
username: Seu nome de usuário será único em %{domain}
whole_word: Quando a palavra ou frase é inteiramente alfanumérica, ela será aplicada somente se corresponder a palavra inteira
+ featured_tag:
+ name: 'Você pode querer usar um destes:'
imports:
data: Arquivo CSV exportado de outra instância do Mastodon
sessions:
@@ -101,6 +104,7 @@ pt-BR:
setting_hide_network: Esconder as suas redes
setting_noindex: Não quero ser indexado por mecanismos de busca
setting_reduce_motion: Reduz movimento em animações
+ setting_show_application: Mostrar o nome da aplicação utilizada para enviar os toots
setting_system_font_ui: Usar a fonte padrão de seu sistema
setting_theme: Tema do site
setting_unfollow_modal: Mostrar diálogo de confirmação antes de deixar de seguir alguém
@@ -109,6 +113,8 @@ pt-BR:
username: Nome de usuário
username_or_email: Nome de usuário ou e-mail
whole_word: Palavra inteira
+ featured_tag:
+ name: Hashtag
interactions:
must_be_follower: Bloquear notificações de não-seguidores
must_be_following: Bloquear notificações de pessoas que você não segue
diff --git a/config/locales/simple_form.pt.yml b/config/locales/simple_form.pt.yml
index 88be3ac70..589f5cf5c 100644
--- a/config/locales/simple_form.pt.yml
+++ b/config/locales/simple_form.pt.yml
@@ -2,28 +2,84 @@
pt:
simple_form:
hints:
+ account_warning_preset:
+ text: Tu podes usar sintaxe de escrita, como URLs, hashtags e referências
+ admin_account_action:
+ send_email_notification: O utilizador receberá uma explicação sobre o que aconteceu com a sua conta
+ text_html: Opcional. Tu podes usar sintaxe de escrita. Tu podes
adicionar predefinições de aviso para poupar tempo
+ type_html: Escolhe o que fazer com
%{acct}
+ warning_preset_id: Opcional. Tu ainda podes adicionar texto personalizado no fim do predefinido
defaults:
+ autofollow: As pessoas que aderem através do convite seguir-te-ão automaticamente
avatar: PNG, GIF or JPG. Arquivos até %{size}. Vão ser reduzidos para %{dimensions}px
+ bot: Esta conta executa essencialmente acções automáticas e pode não poder ser monitorizada
+ context: Um ou múltiplos contextos nos quais o filtro deve ser aplicado
digest: Enviado após um longo período de inatividade e apenas se foste mencionado na tua ausência
+ discoverable_html: O
directory permite encontrar contas de pessoas com base nos seus interesses e actividades. Exige, pelo menos %{min_followers} seguidores
+ email: Será enviado um e-mail de confirmação
+ fields: Podes ter até 4 itens expostos, em forma de tabela, no teu perfil
header: PNG, GIF or JPG. Arquivos até %{size}. Vão ser reduzidos para %{dimensions}px
+ inbox_url: Copia a URL da página inicial do repetidor que queres usar
+ irreversible: Publicações filtradas irão desaparecer irremediavelmente, mesmo que o filtro seja removido posteriormente
+ locale: A língua da interface de utilizador, e-mails e notificações push
locked: Requer aprovação manual de seguidores
+ password: Usa, pelo menos, 8 caracteres
+ phrase: Será correspondido independentemente da capitalização ou do aviso de conteúdo duma publicação
+ scopes: Quais as APIs a que será concedido acesso. Se escolheres uma abrangência de nível superior, não precisarás de as seleccionar individualmente.
+ setting_aggregate_reblogs: Não mostrar novas partilhas que foram partilhadas recentemente (só afecta as novas partilhas)
+ setting_default_language: A língua das tuas publicações pode ser detectada automaticamente, mas isso nem sempre é preciso
+ setting_display_media_default: Esconder media marcada como sensível
+ setting_display_media_hide_all: Esconder sempre toda a media
+ setting_display_media_show_all: Mostrar sempre a media marcada como sensível
+ setting_hide_network: Quem tu segues e quem te segue não será mostrado no teu perfil
setting_noindex: Afecta o teu perfil público e as páginas das tuas publicações
+ setting_show_application: A aplicação que tu usas para publicar será mostrada na vista detalhada das tuas publicações
setting_theme: Afecta a aparência do Mastodon quando entras na tua conta em qualquer dispositivo.
+ username: O teu nome de utilizador será único em %{domain}
+ whole_word: Quando a palavra-chave ou expressão-chave é somente alfanumérica, ela só será aplicada se corresponder à palavra completa
+ featured_tag:
+ name: 'Poderás querer usar um destes:'
imports:
- data: Arquivo CSV exportado de outra instância do Mastodon
+ data: Arquivo CSV exportado de outro servidor do Mastodon
sessions:
- otp: Inserir o código de autenticação de dois factores do teu telemóvel ou usa um dos códigos de recuperação.
+ otp: 'Insere o código de autenticação em dois passos gerado pelo teu telemóvel ou usa um dos teus códigos de recuperação:'
+ user:
+ chosen_languages: Quando seleccionado, só publicações nas línguas escolhidas serão mostradas nas cronologias públicas
labels:
+ account:
+ fields:
+ name: Rótulo
+ value: Conteúdo
+ account_warning_preset:
+ text: Texto pré-definido
+ admin_account_action:
+ send_email_notification: Notificar o utilizador por e-mail
+ text: Aviso personalizado
+ type: Acção
+ types:
+ disable: Desactivar
+ none: Não fazer algo
+ silence: Silenciar
+ suspend: Suspender e apagar irreversivelmente os dados da conta
+ warning_preset_id: Usar um aviso pré-definido
defaults:
+ autofollow: Convidar para seguir a tua conta
avatar: Imagem de Perfil
+ bot: Esta é uma conta robô
+ chosen_languages: Filtrar línguas
confirm_new_password: Confirmar nova palavra-passe
confirm_password: Confirmar palavra-passe
+ context: Filtrar contextos
current_password: Palavra-passe actual
data: Dados
+ discoverable: Listar esta conta no directório
display_name: Nome Público
email: Endereço de e-mail
expires_in: Expira em
+ fields: Meta-dados de perfil
header: Cabeçalho
+ inbox_url: URL da caixa de entrada do repetidor
+ irreversible: Expandir em vez de esconder
locale: Idioma
locked: Trancar conta
max_uses: Número máximo de utilizações
@@ -31,19 +87,33 @@ pt:
note: Biografia
otp_attempt: Código de autenticação em dois passos
password: Palavra-passe
+ phrase: Palavra ou expressão-chave
+ setting_aggregate_reblogs: Agrupar partilhas em cronologias
setting_auto_play_gif: Reproduzir GIFs automaticamente
setting_boost_modal: Solicitar confirmação antes de partilhar uma publicação
+ setting_default_language: Língua de publicação
setting_default_privacy: Privacidade da publicação
setting_default_sensitive: Sempre marcar media como sensível
setting_delete_modal: Solicitar confirmação antes de eliminar uma publicação
+ setting_display_media: Exposição de media
+ setting_display_media_default: Pré-definição
+ setting_display_media_hide_all: Esconder todos
+ setting_display_media_show_all: Mostrar todos
+ setting_expand_spoilers: Expandir sempre as publicações marcadas com avisos de conteúdo
+ setting_hide_network: Esconder a tua rede
setting_noindex: Não quero ser indexado por motores de pesquisa
setting_reduce_motion: Reduz movimento em animações
+ setting_show_application: Revelar sempre qual a aplicação usada para enviar as publicações
setting_system_font_ui: Usar a fonte padrão do teu sistema
setting_theme: Tema do site
setting_unfollow_modal: Solicitar confirmação antes de deixar de seguir alguém
severity: Gravidade
type: Tipo de importação
username: Nome de utilizador
+ username_or_email: Nome de utilizador ou e-mail
+ whole_word: Palavra completa
+ featured_tag:
+ name: Hashtag
interactions:
must_be_follower: Bloquear notificações de não-seguidores
must_be_following: Bloquear notificações de pessoas que não segues
@@ -55,6 +125,7 @@ pt:
follow_request: Enviar e-mail quando alguém solicita ser teu seguidor
mention: Enviar e-mail quando alguém te menciona
reblog: Enviar e-mail quando alguém partilha uma publicação tua
+ report: Enviar um e-mail quando um novo relatório é submetido
'no': Não
required:
mark: "*"
diff --git a/config/locales/simple_form.ru.yml b/config/locales/simple_form.ru.yml
index 44cd7ccd6..4196076a9 100644
--- a/config/locales/simple_form.ru.yml
+++ b/config/locales/simple_form.ru.yml
@@ -2,29 +2,47 @@
ru:
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: Отсылается лишь после длительной неактивности, если Вы в это время получали личные сообщения
+ digest: Отсылается лишь после длительной неактивности, если вы в это время получали личные сообщения
+ discoverable_html:
Каталог позволяет пользователям искать людей по интересам и активности. Необходимо наличие не менее %{min_followers} подписчиков
+ email: Вам будет отправлено электронное письмо с подтверждением
fields: В профиле можно отобразить до 4 пунктов как таблицу
header: PNG, GIF или JPG. Максимально %{size}. Будет уменьшено до %{dimensions}px
- inbox_url: Копировать URL с главной страницы ретранслятора, который Вы хотите использовать
+ inbox_url: Копировать URL с главной страницы ретранслятора, который вы хотите использовать
irreversible: Отфильтрованные статусы будут утеряны навсегда, даже если в будущем фильтр будет убран
locale: Язык интерфейса, e-mail писем и push-уведомлений
- locked: Потребует от Вас ручного подтверждения подписчиков, изменит приватность постов по умолчанию на "только для подписчиков"
+ locked: Потребует от вас ручного подтверждения подписчиков, изменит приватность постов по умолчанию на "только для подписчиков"
+ password: Укажите не менее 8 символов
phrase: Будет сопоставлено независимо от присутствия в тексте или предупреждения о содержании статуса
- scopes: Какие API приложению будет позволено использовать. Если Вы выберите самый верхний, нижестоящие будут выбраны автоматически.
- setting_default_language: Язык Ваших статусов может быть определён автоматически, но не всегда правильно
- setting_hide_network: Те, на кого Вы подписаны и кто подписан на Вас, не будут отображены в Вашем профиле
- setting_noindex: Относится к Вашему публичному профилю и страницам статусов
+ 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_show_application: В окне просмотра вашего статуса будет видно, с какого приложения он был отправлен
setting_theme: Влияет на внешний вид Mastodon при выполненном входе в аккаунт.
+ username: Ваш юзернейм будет уникальным на %{domain}
whole_word: Если слово или фраза состоит только из букв и цифр, сопоставление произойдёт только по полному совпадению
+ featured_tag:
+ name: 'Возможно, вы захотите выбрать из них:'
imports:
data: Файл CSV, экспортированный с другого узла Mastodon
sessions:
- otp: 'Введите код двухфакторной аутентификации, сгенерированный в мобильном приложении, или используйте один из Ваших кодов восстановления:'
+ otp: 'Введите код двухфакторной аутентификации, сгенерированный в мобильном приложении, или используйте один из ваших кодов восстановления:'
user:
chosen_languages: Если выбрано, то в публичных лентах будут показаны только посты на выбранных языках
labels:
@@ -32,6 +50,18 @@ ru:
fields:
name: Пункт
value: Значение
+ account_warning_preset:
+ text: Текст шаблона
+ admin_account_action:
+ send_email_notification: Уведомить юзера по e-mail
+ text: Свой текст предупреждения
+ type: Действие
+ types:
+ disable: Заморозить
+ none: Ничего не делать
+ silence: Заглушить
+ suspend: Заблокировать и безвозвратно удалить все данные аккаунта
+ warning_preset_id: Использовать шаблон
defaults:
autofollow: Пригласите подписаться на Ваш аккаунт
avatar: Аватар
@@ -42,6 +72,7 @@ ru:
context: Контекст фильтра
current_password: Текущий пароль
data: Данные
+ discoverable: Показывать этот аккаунт в каталоге
display_name: Показываемое имя
email: Адрес e-mail
expires_in: Истекает через
@@ -57,15 +88,22 @@ ru:
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: Отказаться от индексации в поисковых машинах
setting_reduce_motion: Уменьшить движение в анимации
+ setting_show_application: Раскрывать приложение, с которого отправляются статусы
setting_system_font_ui: Использовать шрифт системы по умолчанию
setting_theme: Тема сайта
setting_unfollow_modal: Показывать диалог подтверждения перед тем, как отписаться от аккаунта
@@ -74,17 +112,19 @@ ru:
username: Имя пользователя
username_or_email: Имя пользователя или e-mail
whole_word: Слово целиком
+ featured_tag:
+ name: Хэштег
interactions:
must_be_follower: Заблокировать уведомления не от подписчиков
- must_be_following: Заблокировать уведомления от людей, на которых Вы не подписаны
- must_be_following_dm: Заблокировать личные сообщения от людей, на которых Вы не подписаны
+ must_be_following: Заблокировать уведомления от людей, на которых вы не подписаны
+ must_be_following_dm: Заблокировать личные сообщения от людей, на которых вы не подписаны
notification_emails:
digest: Присылать дайджест по e-mail
- favourite: Уведомлять по e-mail, когда кому-то нравится Ваш статус
- follow: Уведомлять по e-mail, когда кто-то подписался на Вас
+ favourite: Уведомлять по e-mail, когда кому-то нравится ваш статус
+ follow: Уведомлять по e-mail, когда кто-то подписался на вас
follow_request: Уведомлять по e-mail, когда кто-то запрашивает разрешение на подписку
- mention: Уведомлять по e-mail, когда кто-то упомянул Вас
- reblog: Уведомлять по e-mail, когда кто-то продвинул Ваш статус
+ mention: Уведомлять по e-mail, когда кто-то упомянул вас
+ reblog: Уведомлять по e-mail, когда кто-то продвинул ваш статус
report: Уведомлять по e-mail при создании жалобы
'no': Нет
required:
diff --git a/config/locales/simple_form.sk.yml b/config/locales/simple_form.sk.yml
index f2d26cf02..17be44e67 100644
--- a/config/locales/simple_form.sk.yml
+++ b/config/locales/simple_form.sk.yml
@@ -14,7 +14,7 @@ sk:
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
@@ -22,22 +22,25 @@ sk:
inbox_url: Skopíruj adresu z hlavnej stránky mostíka, ktorý chceš používať
irreversible: Vytriedené príspevky zmiznú nenávratne, aj keď triedenie neskôr zrušíš
locale: Jazyk užívateľského rozhrania, emailových, a nástenkových oboznámení
- locked: Vyžaduje, aby si manuálne schvaľoval/a následovateľov
+ 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é vyzdvihnutia pre príspevky, ktoré už boli len nedávno povýšené (týka sa iba nanovo získaných vyzdvihnutí)
+ setting_aggregate_reblogs: Nezobrazuj nové vyzdvihnutia pre príspevky, ktoré už boli len nedávno povýšené (týka sa iba nanovo získaných povýšení)
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:
@@ -69,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
@@ -99,19 +102,22 @@ 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
+ setting_unfollow_modal: Vyžaduj potvrdenie pred skončením sledovania iného užívateľa
severity: Závažnosť
type: Typ importu
username: Prezývka
username_or_email: Prezívka, alebo email
whole_word: Celé slovo
+ featured_tag:
+ name: Haštag
interactions:
- must_be_follower: Blokuj oboznámenia ohľadom užívateľov, ktorí ťa nesledujú
- must_be_following: Blokuj oboznámenia ohľadom ľudí ktorých nesleduješ
- must_be_following_dm: Blokuj súkromné správy od ľudí ktorých nesleduješ
+ must_be_follower: Blokuj oboznámenia od užívateľov, ktorí ma nenásledujú
+ must_be_following: Blokuj oboznámenia od ľudí, ktorých nesledujem
+ must_be_following_dm: Blokuj súkromné správy od ľudí ktorých nesledujem
notification_emails:
digest: Posielaj súhrnné emaily
favourite: Poslať email ak si niekto obľúbi tvoj príspevok
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.sv.yml b/config/locales/simple_form.sv.yml
index 8bc82c609..62d0b3769 100644
--- a/config/locales/simple_form.sv.yml
+++ b/config/locales/simple_form.sv.yml
@@ -2,15 +2,23 @@
sv:
simple_form:
hints:
+ account_warning_preset:
+ text: Du kan använda inläggssyntax som webbadresser, hashtaggar och omnämnanden
+ admin_account_action:
+ send_email_notification: Användaren kommer att få en förklaring av vad som hände med sitt konto
+ type_html: Välj vad du vill göra med
%{acct}
defaults:
autofollow: Användarkonton som skapas genom din inbjudan kommer automatiskt följa dig
- avatar: Högst %{size}. Kommer att skalas ner till %{dimensions}px
+ avatar: PNG, GIF eller JPG. Högst %{size}. Kommer att skalas ner till %{dimensions}px
bot: Detta konto utför huvudsakligen automatiserade åtgärder och kanske inte övervakas
digest: Skickas endast efter en lång period av inaktivitet och endast om du har fått några personliga meddelanden i din frånvaro
+ email: Ett konfirmationsmeddelande kommer att skickas till dig via epost
fields: Du kan ha upp till 4 objekt visade som en tabell på din profil
- header: NG, GIF eller JPG. Högst %{size}. Kommer nedskalas till %{dimensions}px
- locale: Användargränssnittets språk, e-post och push aviseringar
+ header: PNG, GIF eller JPG. Högst %{size}. Kommer att skalas ner till %{dimensions}px
+ irreversible: Filtrerade inlägg kommer att försvinna oåterkalleligt, även om filter tas bort senare
+ locale: Användargränssnittets språk, e-post och push-aviseringar
locked: Kräver att du manuellt godkänner följare
+ password: Använd minst 8 tecken
setting_default_language: Språket av dina inlägg kan upptäckas automatiskt, men det är inte alltid rätt
setting_hide_network: Vem du följer och vilka som följer dig kommer inte att visas på din profilsida
setting_noindex: Påverkar din offentliga profil och statussidor
diff --git a/config/locales/simple_form.th.yml b/config/locales/simple_form.th.yml
index a8611c2f7..bce5eaac6 100644
--- a/config/locales/simple_form.th.yml
+++ b/config/locales/simple_form.th.yml
@@ -2,48 +2,132 @@
th:
simple_form:
hints:
+ account_warning_preset:
+ text: คุณสามารถใช้ไวยากรณ์โพสต์ เช่น URL, แฮชแท็ก และการกล่าวถึง
+ admin_account_action:
+ send_email_notification: ผู้ใช้จะได้รับคำอธิบายว่าเกิดอะไรขึ้นกับบัญชีของเขา
+ text_html: ตัวเลือกเพิ่มเติม คุณสามารถใช้ไวยากรณ์โพสต์ คุณสามารถ
เพิ่มคำเตือนที่ตั้งไว้ล่วงหน้า เพื่อประหยัดเวลา
+ type_html: เลือกสิ่งที่จะทำกับ
%{acct}
+ warning_preset_id: ตัวเลือกเพิ่มเติม คุณยังคงสามารถเพิ่มข้อความที่กำหนดเองที่จุดสิ้นสุดของค่าที่ตั้งไว้ล่วงหน้า
defaults:
- avatar: PNG, GIF or JPG. At most %{size}. Will be downscaled to %{dimensions}px
- header: PNG, GIF or JPG. At most %{size}. Will be downscaled to %{dimensions}px
- locked: Requires you to manually approve followers and defaults post privacy to followers-only
+ 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 จากหน้าแรกของรีเลย์ที่คุณต้องการใช้
+ irreversible: โพสต์ที่กรองจะหายไปอย่างถาวร แม้ว่าจะเอาตัวกรองออกในภายหลัง
+ locale: ภาษาของส่วนติดต่อผู้ใช้, อีเมล และการแจ้งเตือนแบบผลัก
+ locked: คุณต้องอนุมัติผู้ติดตามด้วยตนเอง
+ 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_show_application: จะแสดงผลแอปพลิเคชันที่คุณใช้เพื่อโพสต์ในมุมมองโดยละเอียดของโพสต์ของคุณ
+ setting_theme: มีผลต่อลักษณะของ Mastodon เมื่อคุณเข้าสู่ระบบจากอุปกรณ์ใด ๆ
+ username: ชื่อผู้ใช้ของคุณจะไม่ซ้ำกันบน %{domain}
+ whole_word: เมื่อคำสำคัญหรือวลีมีแค่ตัวอักษรและตัวเลข จะถูกใช้หากตรงกันทั้งคำเท่านั้น
+ featured_tag:
+ name: 'คุณอาจต้องการใช้หนึ่งในนี้:'
imports:
- data: CSV file exported from another Mastodon instance
+ data: ไฟล์ CSV ที่ส่งออกจากเซิร์ฟเวอร์ Mastodon อื่น
sessions:
- otp: Enter the Two-factor code from your phone or use one of your recovery codes.
+ otp: 'ป้อนรหัสสองปัจจัยที่สร้างโดยแอปในโทรศัพท์ของคุณหรือใช้หนึ่งในรหัสกู้คืนของคุณ:'
+ user:
+ chosen_languages: เมื่อกาเครื่องหมาย จะแสดงผลเฉพาะโพสต์ในภาษาที่เลือกในเส้นเวลาสาธารณะ
labels:
+ account:
+ fields:
+ name: ป้ายชื่อ
+ value: เนื้อหา
+ account_warning_preset:
+ text: ข้อความที่ตั้งไว้ล่วงหน้า
+ admin_account_action:
+ send_email_notification: แจ้งเตือนผู้ใช้ทางอีเมล
+ text: คำเตือนที่กำหนดเอง
+ type: การกระทำ
+ types:
+ disable: ปิดใช้งาน
+ none: ไม่ทำสิ่งใด
+ silence: เงียบ
+ suspend: ระงับและลบข้อมูลบัญชีอย่างถาวร
+ warning_preset_id: ใช้คำเตือนที่ตั้งไว้ล่วงหน้า
defaults:
- avatar: Avatar
- confirm_new_password: Confirm new password
- confirm_password: Confirm password
- current_password: Current password
+ autofollow: เชิญให้ติดตามบัญชีของคุณ
+ avatar: ภาพประจำตัว
+ bot: นี่คือบัญชีบอต
+ chosen_languages: กรองภาษา
+ confirm_new_password: ยืนยันรหัสผ่านใหม่
+ confirm_password: ยืนยันรหัสผ่าน
+ context: บริบทตัวกรอง
+ current_password: รหัสผ่านปัจจุบัน
data: ข้อมูล
- display_name: Display name
- email: E-mail address
- header: Header
- locale: ภาษา
- locked: Lock account
- new_password: New password
- note: Bio
- otp_attempt: Two-factor code
- password: พาร์สเวิร์ด
- setting_auto_play_gif: Auto-play animated GIFs
- setting_boost_modal: Show confirmation dialog before boosting
- setting_default_privacy: Post privacy
- severity: Severity
- type: Import type
- username: Username
+ discoverable: แสดงรายการบัญชีนี้ในไดเรกทอรี
+ display_name: ชื่อที่แสดงผล
+ email: ที่อยู่อีเมล
+ expires_in: หมดอายุหลังจาก
+ fields: ข้อมูลเมตาโปรไฟล์
+ header: ส่วนหัว
+ inbox_url: URL กล่องขาเข้าแบบรีเลย์
+ irreversible: ลบแทนที่จะซ่อน
+ locale: ภาษาส่วนติดต่อ
+ locked: ล็อคบัญชี
+ max_uses: จำนวนการใช้งานสูงสุด
+ new_password: รหัสผ่านใหม่
+ note: ชีวประวัติ
+ 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: เลือกไม่รับการทำดัชนีโดยเครื่องมือค้นหา
+ setting_reduce_motion: ลดการเคลื่อนไหวในภาพเคลื่อนไหว
+ setting_show_application: เปิดเผยแอปพลิเคชันที่ใช้ในการส่งโพสต์
+ setting_system_font_ui: ใช้แบบอักษรเริ่มต้นของระบบ
+ setting_theme: ชุดรูปแบบไซต์
+ setting_unfollow_modal: แสดงกล่องโต้ตอบการยืนยันก่อนเลิกติดตามใครสักคน
+ severity: ความรุนแรง
+ type: ชนิดการนำเข้า
+ username: ชื่อผู้ใช้
+ username_or_email: ชื่อผู้ใช้หรืออีเมล
+ whole_word: ทั้งคำ
+ featured_tag:
+ name: แฮชแท็ก
interactions:
- must_be_follower: Block notifications from non-followers
- must_be_following: Block notifications from people you don't follow
+ must_be_follower: ปิดกั้นการแจ้งเตือนจากที่ไม่ใช่ผู้ติดตาม
+ must_be_following: ปิดกั้นการแจ้งเตือนจากผู้คนที่คุณไม่ได้ติดตาม
+ must_be_following_dm: ปิดกั้นข้อความโดยตรงจากผู้คนที่คุณไม่ได้ติดตาม
notification_emails:
- digest: Send digest e-mails
- favourite: Send e-mail when someone favourites your status
- follow: Send e-mail when someone follows you
- follow_request: Send e-mail when someone requests to follow you
- mention: Send e-mail when someone mentions you
- reblog: Send e-mail when someone boosts your status
+ digest: ส่งอีเมลสรุป
+ favourite: ส่งอีเมลเมื่อใครสักคนชื่นชอบสถานะของคุณ
+ follow: ส่งอีเมลเมื่อใครสักคนติดตามคุณ
+ follow_request: ส่งอีเมลเมื่อใครสักคนขอติดตามคุณ
+ mention: ส่งอีเมลเมื่อใครสักคนกล่าวถึงคุณ
+ reblog: ส่งอีเมลเมื่อใครสักคนดันสถานะของคุณ
+ report: ส่งอีเมลเมื่อมีการส่งรายงานใหม่
'no': ไม่
required:
mark: "*"
- text: required
+ text: ต้องระบุ
'yes': ใช่
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/simple_form.zh-TW.yml b/config/locales/simple_form.zh-TW.yml
index 3747fbb98..61d07825c 100644
--- a/config/locales/simple_form.zh-TW.yml
+++ b/config/locales/simple_form.zh-TW.yml
@@ -2,90 +2,130 @@
zh-TW:
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: 這個帳號由程式進行自動式操作
+ autofollow: 通過邀請網址註冊的使用者將自動關注你
+ avatar: 支援 PNG, GIF 或 JPG 圖片,檔案最大為 %{size},會等比例縮減成 %{dimensions} 像素
+ bot: 此帳戶主要執行自動操作且可能未被監控
context: 應該套用過濾器的一項或多項內容
- digest: 僅在你長時間未登入,並且收到了私訊時發送
- fields: 個人資訊頁至多可顯示 4 個項目
- header: 支援 PNG, GIF 或 JPG 圖片,檔案最大為 %{size},會縮裁成 %{dimensions}px
- inbox_url: 從您想要使用的中繼首頁複製 URL
- irreversible: 已過濾的嘟文將會不可逆的消失,即便過濾器之後也一樣
- locale: 使用者介面、 E-mail 與通知的語言
- locked: 你必須手動核准每個使用者對你的關注請求,而你的貼文隱私將會被設定為「只有關注你的人能看」
+ digest: 僅在你長時間未登入且在未登入期間收到私訊時傳送
+ discoverable_html:
目錄 讓使用者們能基於興趣與活動尋找帳戶。需要至少 %{min_followers} 位關注者
+ email: 您將收到一封確認電子郵件
+ fields: 您可在個人資料上有至多 4 個以表格形式顯示的項目
+ header: 支援 PNG, GIF 或 JPG 圖片,檔案最大為 %{size},會按比例縮小成 %{dimensions} 像素
+ inbox_url: 從您想要使用的中繼首頁複製網址
+ irreversible: 已過濾的嘟文將會不可逆的消失,即便過濾器移除之後也一樣
+ locale: 使用者介面、電子信件和推送通知的語言
+ locked: 需要您手動核准關注請求
+ password: 使用至少 8 個字元
phrase: 無論是嘟文的本文或是內容警告都會被過濾
- scopes: 應用程式將會被允許存取哪些 API。若您選取了最高階的範圍,您就不需要再選取單獨的了。
- setting_default_language: 你嘟文的語言會被自動偵測,但不一定完全準確
+ 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: 此設定會影響到你從任意設備登入 Mastodon 時的顯示樣式。
- whole_word: 如果關鍵字或詞組僅有字母與數字,它將只會在符合整個單字的時候才會套用
+ setting_noindex: 會影響您的公開個人資料與嘟文頁面
+ setting_show_application: 您用來發嘟文的應用程式將會在您嘟文的詳細檢視顯示
+ setting_theme: 會影響從任何裝置登入所看到的 Mastodon 樣式。
+ username: 您的使用者名稱將在 %{domain} 是獨一無二的
+ whole_word: 如果關鍵字或詞組僅有字母與數字,則其將只在符合整個單字的時候才會套用
+ featured_tag:
+ name: 您可能想使用其中一個:
imports:
- data: 自其他站點匯出的 CSV 檔案
+ data: 從其他 Mastodon 伺服器匯出的 CSV 檔案
sessions:
- otp: 輸入你手機上產生的兩階段認證碼,或著任意一個備用驗證碼:
+ otp: 請輸入產生自您手機 App 的兩步驟驗證碼,或輸入其中一個復原代碼:
user:
- chosen_languages: 只有被選擇的語言會在公開時間軸內顯示
+ chosen_languages: 當核取時,只有選取語言的嘟文會在公開時間軸中顯示
labels:
account:
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: 頭像
- bot: 這個帳號是機器人
- chosen_languages: 語言篩選
+ avatar: 大頭貼
+ bot: 此帳號是台機器人
+ chosen_languages: 過濾語言
confirm_new_password: 確認新密碼
confirm_password: 確認密碼
- context: 過濾範圍
+ context: 過濾情境
current_password: 目前密碼
data: 資料
+ discoverable: 在目錄列出此帳戶
display_name: 顯示名稱
- email: E-mail
+ email: 電子信箱位址
expires_in: 失效時間
- fields: 資料
- header: 個人頁面圖片
+ fields: 個人資料中繼資料
+ header: 頁面頂端
inbox_url: 中繼收件匣的 URL
irreversible: 放棄而非隱藏
locale: 介面語言
- locked: 將帳號轉為「私密」
+ locked: 鎖定帳號
max_uses: 最大使用次數
new_password: 新密碼
note: 簡介
- otp_attempt: 兩階段認證碼
+ otp_attempt: 兩步驟驗證碼
password: 密碼
phrase: 關鍵字或片語
- setting_auto_play_gif: 自動播放 GIF
+ setting_aggregate_reblogs: 時間軸中的群組轉嘟
+ setting_auto_play_gif: 自動播放 GIF 動畫
setting_boost_modal: 在轉嘟前先詢問我
setting_default_language: 嘟文語言
- setting_default_privacy: 嘟文預設為
+ setting_default_privacy: 嘟文可見範圍
setting_default_sensitive: 總是將媒體標記為敏感內容
setting_delete_modal: 刪除嘟文前先詢問我
- setting_hide_network: 隱藏你的社交網路
- setting_noindex: 阻止搜尋引擎收錄
- setting_reduce_motion: 減低動畫效果
+ 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: 阻止搜尋引擎建立索引
+ setting_reduce_motion: 減少過渡動畫效果
+ setting_show_application: 顯示用來傳送嘟文的應用程式
setting_system_font_ui: 使用系統預設字型
- setting_theme: 主題外觀
- setting_unfollow_modal: 取消關注前先詢問我
- severity: 等級
- type: 匯入資料類型
+ setting_theme: 站點主題
+ setting_unfollow_modal: 取消關注某人前先詢問我
+ severity: 優先級
+ type: 匯入類型
username: 使用者名稱
- username_or_email: 使用者名稱或 E-mail
- whole_word: 整個詞
+ username_or_email: 使用者名稱或電子信箱位址
+ whole_word: 整個詞彙
+ featured_tag:
+ name: "「#」標籤"
interactions:
- must_be_follower: 隱藏沒有關注你的使用者通知
- must_be_following: 隱藏你沒關注的使用者通知
- must_be_following_dm: 隱藏你沒關注的使用者私訊
+ must_be_follower: 封鎖非關注者的通知
+ must_be_following: 封鎖您未關注之使用者的通知
+ must_be_following_dm: 封鎖您未關注之使用者的私訊
notification_emails:
- digest: 定期發送摘要郵件
- favourite: 當有使用者喜歡你的嘟文時,發送 E-mail 通知
- follow: 當有使用者關注你時,發送 E-mail 通知
- follow_request: 當有使用者要求關注你時,發送 E-mail 通知
- mention: 當有使用者在嘟文提及你時,發送 E-mail 通知
- reblog: 都有使用者轉嘟你的嘟文時,發送 E-mail 通知
- report: 當遞交新報告時傳送電子郵件
+ digest: 傳送摘要信件
+ favourite: 當有使用者喜歡你的嘟文時,傳送電子信件通知
+ follow: 當有使用者關注你時,傳送電子信件通知
+ follow_request: 當有使用者請求關注你時,傳送電子信件通知
+ mention: 當有使用者在嘟文提及你時,傳送電子信件通知
+ reblog: 當有使用者轉嘟你的嘟文時,傳送電子信件通知
+ report: 當提交新檢舉時傳送電子郵件
'no': 否
required:
mark: "*"
diff --git a/config/locales/sk.yml b/config/locales/sk.yml
index d8a81bbbf..bf7898ed7 100644
--- a/config/locales/sk.yml
+++ b/config/locales/sk.yml
@@ -1,45 +1,45 @@
---
sk:
about:
- about_hashtag_html: Toto sú verejné príspevky otagované pod
#%{hashtag}. Ak máš účet hocikde v rámci fediversa, môžeš ich využívať.
+ 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 tejto instancii
+ about_this: O tomto serveri
+ active_count_after: aktívni
+ active_footnote: Mesačne aktívnych užívateľov (MAU)
administered_by: 'Správcom je:'
api: API
apps: 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_platforms: Uživaj Mastodon z iOSu, Androidu a iných platforiem
+ browse_directory: Prehľadávaj databázu profilov a filtruj ju podľa záujmov
+ browse_public_posts: Prebádaj naživo prúd verejných príspevkov na Mastodone
contact: Kontakt
contact_missing: Nezadaný
contact_unavailable: Neuvedený
+ discover_users: Objavuj užívateľov
documentation: Dokumentácia
extended_description_html: |
Pravidlá
-
Žiadne zatiaľ nie sú
- features:
- humane_approach_body: Poučený z chýb iných sociálnych sietí, Mastodon sa snaží bojovať so zneužívaním siete voľbou etických návrhov.
- humane_approach_title: Ľudskejší prístup
- not_a_product_body: Mastodon nie je komerčná sieť. Žiadne reklamy, žiadne dolovanie dát, žiadne múry. Nieje tu žiadna centrálna autorita.
- not_a_product_title: Si človekom, nie produktom
- real_conversation_body: K dispozícii s 500 znakmi a podporou pre varovania o obsahu a médiách sa môžeš vyjadriť tak ako budeš chcieť.
- real_conversation_title: Vytvorený pre naozajstnú konverzáciu
- within_reach_body: Viacero aplikácií pre iOS, Android a iné platformy, ktoré ti vďaka jednoduchému API ekosystému dovoľujú byť online so svojimi priateľmi kdekoľvek.
- within_reach_title: Stále v dosahu
+
Žiadne zatiaľ uvedené nie sú
+ federation_hint_html: S účtom na %{instance} budeš môcť následovať ľúdí na hociakom inom Mastodon serveri, ale aj inde.
generic_description: "%{domain} je jeden server v sieti"
+ get_apps: Vyskúšaj mobilnú aplikáciu
hosted_on: Mastodon hostovaný na %{domain}
learn_more: Zisti viac
- other_instances: Zoznam ďalších inštancií
privacy_policy: Ustanovenia o súkromí
+ see_whats_happening: Pozoruj, čo sa deje
+ server_stats: 'Serverové štatistiky:'
source_code: Zdrojový kód
status_count_after:
few: príspevkov
one: príspevok
other: príspevkov
status_count_before: Ktorí napísali
+ tagline: Následuj kamarátov, a objavuj nových
terms: Podmienky užívania
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:
@@ -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é
@@ -80,10 +80,11 @@ sk:
account_moderation_notes:
create: Zanechaj poznámku
created_msg: Poznámka moderátora bola úspešne vytvorená!
- delete: Zmazať
- destroyed_msg: Poznámka moderátora bola úspešne zmazaná!
+ delete: Vymaž
+ destroyed_msg: Moderátorska poznámka bola úspešne zmazaná!
accounts:
- are_you_sure: Si si istý?
+ approve: Schváľ
+ are_you_sure: Si si istý/á?
avatar: Maskot
by_domain: Doména
change_email:
@@ -93,13 +94,13 @@ sk:
new_email: Nový email
submit: Zmeň email
title: Zmeň email pre %{username}
- confirm: Potvrdiť
+ confirm: Potvrď
confirmed: Potvrdený
confirming: Potvrdzujúci
deleted: Zmazané
demote: Degradovať
- disable: Zablokovať
- disable_two_factor_authentication: Zakázať 2FA
+ disable: Zablokuj
+ disable_two_factor_authentication: Zakáž 2FA
disabled: Blokovaný
display_name: Zobraziť meno
domain: Doména
@@ -122,37 +123,40 @@ sk:
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
+ pending: Čakajúci
silenced: Umlčané
suspended: Vylúčený/á
title: Moderácia
moderation_notes: Moderátorské poznámky
most_recent_activity: Posledná aktivita
most_recent_ip: Posledná IP
- no_limits_imposed: Niesú stanovené žiadné obmedzenia
- not_subscribed: Nezaregistrované
+ no_limits_imposed: Nie sú stanovené žiadné obmedzenia
+ not_subscribed: Neodoberá
outbox_url: URL poslaných
- perform_full_suspension: Zablokovať
+ pending: Vyžaduje posúdenie
+ perform_full_suspension: Vylúč
profile_url: URL profilu
- promote: Povýšiť
+ promote: Povýš
protocol: Protokol
public: Verejná os
push_subscription_expires: PuSH odoberanie expiruje
redownload: Obnov profil
+ reject: Odmietni
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
+ already_confirmed: Tento užívateľ je už potvrdený
+ send: Odošli potvrdzovací email znovu
success: Potvrdzujúci email bol úspešne odoslaný!
reset: Resetuj
reset_password: Obnov heslo
- resubscribe: Znovu odoberať
+ resubscribe: Znovu odoberaj
role: Oprávnenia
roles:
admin: Administrátor
@@ -165,15 +169,15 @@ sk:
show:
created_reports: Vytvorené hlásenia
targeted_reports: Nahlásenia od ostatných
- silence: Stíšiť
- silenced: Utíšení
+ silence: Stíš
+ silenced: Utíšený/é
statuses: Príspevky
subscribe: Odoberať
suspended: Zablokovaní
title: Účty
unconfirmed_email: Nepotvrdený email
undo_silenced: Zrušiť stíšenie
- undo_suspension: Zrušiť suspendáciu
+ undo_suspension: Zruš blokovanie
unsubscribe: Prestaň odoberať
username: Prezývka
warn: Varovať
@@ -214,9 +218,9 @@ sk:
title: Kontrólny záznam
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
+ copied_msg: Miestna kópia emoji bola úspešne vytvorená
+ 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ý!
@@ -228,10 +232,10 @@ sk:
image_hint: PNG do 50KB
listed: V zozname
new:
- title: Pridať nový vlastný emoji
- overwrite: Prepísať
+ title: Pridaj nové, vlastné emoji
+ overwrite: Prepíš
shortcode: Skratka
- shortcode_hint: Aspoň 2 znaky, povolené sú alfanumerické alebo podčiarkovník
+ shortcode_hint: Aspoň 2 znaky, povolené sú alfanumerické, alebo podčiarkovník
title: Vlastné emoji
unlisted: Nie je na zozname
update_failed_msg: Nebolo možné aktualizovať toto emoji
@@ -246,7 +250,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
@@ -256,7 +260,7 @@ 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:
@@ -265,16 +269,16 @@ sk:
destroyed_msg: Blokovanie domény bolo zrušené
domain: Doména
new:
- create: Blokovať doménu
- hint: Blokovanie domény stále dovolí vytvárať nové účty v databáze, ale tieto budú automaticky moderované.
+ create: Vytvor blokovanie domény
+ hint: Blokovanie domény stále dovolí vytvárať nové účty v databázi, ale tieto budú spätne automaticky moderované.
severity:
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ť
+ silence: Stíš
+ suspend: Vylúč
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_media: Odmietaj súbory s obrázkami, alebo videami
+ reject_media_hint: Vymaže miestne uložené súbory médií a odmietne ich sťahovanie v budúcnosti. Nepodstatné pri vylúčení
reject_reports: Zamietni hlásenia
reject_reports_hint: Ignoruj všetky hlásenia prichádzajúce z tejto domény. Nevplýva na blokovania
rejecting_media: odmietanie médiálnych súborov
@@ -307,6 +311,7 @@ sk:
back_to_account: Späť na účet
title: Následovatielia užívateľa %{acct}
instances:
+ by_domain: Doména
delivery_available: Je v dosahu doručovania
known_accounts:
few: "%{count} známe účty"
@@ -392,19 +397,19 @@ 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í
+ desc_html: Povoľ užívateľom, aby mohli byť nájdení
title: Zapni profilový katalóg
registrations:
closed_message:
@@ -416,9 +421,12 @@ sk:
min_invite_role:
disabled: Nikto
title: Povoliť pozvánky od
- open:
- desc_html: Povoliť každému aby si mohli vytvoriť účet
- title: Verejná registrácia
+ registrations_mode:
+ modes:
+ approved: Pre registráciu je nutné povolenie
+ none: Nikto sa nemôže registrovať
+ open: Ktokoľvek sa môže zaregistrovať
+ title: Režím registrácií
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 príspevky z miestnej osi.
title: Ukáž celé známe fediverse na náhľade osi
@@ -426,21 +434,21 @@ sk:
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. 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 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>
a
<em>
.
+ 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
@@ -481,6 +489,8 @@ sk:
edit_preset: Uprav varovnú predlohu
title: Spravuj varovné predlohy
admin_mailer:
+ new_pending_account:
+ body: Podrobnosti o novom účte sú uvedené nižšie. Môžeš túto registračnú požiadavku buď prijať, alebo zamietnúť.
new_report:
body: "%{reporter} nahlásil/a %{target}"
body_remote: Niekto z %{domain} nahlásil/a %{target}
@@ -488,10 +498,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ť
@@ -501,25 +511,22 @@ 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.
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.
- or: alebo
+ 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_log_in_with: Alebo prihlásiť z
providers:
cas: CAS
saml: SAML
register: Zaregistruj sa
- register_elsewhere: Zaregistruj sa na inom serveri
resend_confirmation: Poslať potvrdzujúce pokyny znovu
reset_password: Resetovať heslo
security: Zabezpečenie
@@ -555,7 +562,7 @@ 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
@@ -569,22 +576,22 @@ sk:
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.
+ '403': Nemáš povolenie pre zobrazenie tejto stránky.
+ '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
download: Stiahni si svoj archív
- hint_html: Môžeš si opýtať
archív svojích príspevkov a nahratých médií. Exportované dáta budú v ActivityPub formáte, čítateľné hociakým kompatibilným softvérom. Archív si je možné vyžiadať každých sedem dní.
+ hint_html: Môžeš si vyžiadať
archív svojích príspevkov a nahratých médií. Exportované dáta budú v ActivityPub formáte, čítateľné hociakým kompatibilným softvérom. Archív si je možné vyžiadať každých sedem dní.
in_progress: Balím tvoj archív...
request: Vyžiadaj si tvoj archív
size: Veľkosť
@@ -595,10 +602,14 @@ sk:
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:
@@ -607,40 +618,33 @@ 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.
- followers_count: Počet následovateľov
- lock_link: Zamknite svoj účet
- purge: Odstrániť ná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...
- other: Počas utišovania sledovateľov z %{count} domén...
- true_privacy_html: Prosím ber na vedomie,
že ozajstné súkromie sa dá dosiahnúť iba za pomoci end-to-end enkrypcie.
- unlocked_warning_html: Hocikto ťa môže následovať aby mohol/a ihneď vidieť tvoje súkromné príspevky. %{lock_link} aby si mohla skontrolovať a odmietať sledovateľov.
- unlocked_warning_title: Tvoj účet nieje zamknutý
footer:
developers: Vývojári
more: Viac…
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ť
@@ -732,8 +736,18 @@ sk:
newer: Novšie
next: Ďalšie
older: Staršie
- prev: Predošlé
+ prev: Predchádzajúce
truncate: "…"
+ polls:
+ errors:
+ already_voted: V tejto ankete si už hlasoval/a
+ duplicate_options: obsahuje opakujúce sa položky
+ duration_too_long: je príliš ďaleko do budúcnosti
+ duration_too_short: je príliš skoro
+ expired: Anketa už skončila
+ over_character_limit: každá nemôže byť dlhšia ako %{max} znakov
+ too_few_options: musí mať viac ako jednu položku
+ too_many_options: nemôže zahŕňať viac ako %{max} položiek
preferences:
languages: Jazyky
other: Ostatné
@@ -741,8 +755,8 @@ 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."
@@ -812,14 +826,12 @@ sk:
development: Vývoj
edit_profile: Uprav profil
export: Exportovať dáta
- followers: Povolení následovatelia
+ featured_tags: Popredne zvýraznené haštagy
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
- your_apps: Tvoje aplikácie
statuses:
attached:
description: 'Priložené: %{attached}'
@@ -845,6 +857,12 @@ sk:
ownership: Nieje možné pripnúť hlášku od niekoho iného
private: Neverejné príspevky nemôžu byť pripnuté
reblog: Pozdvihnutie sa nedá pripnúť
+ poll:
+ total_votes:
+ few: "%{count} hlas(y)ov"
+ one: "%{count} hlas"
+ other: "%{count} hlas(y)ov"
+ vote: Hlasuj
show_more: Ukáž viac
sign_in_to_participate: Prihlás sa pre zapojenie do diskusie
title: '%{name}: „%{quote}"'
@@ -869,20 +887,27 @@ 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 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é.
+ 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!
+
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:
@@ -892,7 +917,7 @@ sk:
code_hint: Pre potvrdenie teraz zadaj kód vygenerovaný pomocou tvojej overovacej aplikácie
description_html: Ak povolíš dvoj-faktorové overovanie, na prihlásenie potom budeš potrebovať svoj telefón, ktorý vygeneruje prístupové kódy, čo musíš zadať.
disable: Zakáž
- enable: Povoliť
+ enable: Povoľ
enabled: Dvoj-faktorové overovanie je povolené
enabled_success: Dvoj-faktorové overovanie bolo úspešne povolené
generate_recovery_codes: Vygeneruj zálohové kódy
@@ -912,7 +937,7 @@ sk:
warning:
explanation:
disable: Pokiaľ je tvoj účet zamrazený, tvoje dáta zostávajú nedoknuté, ale nemôžeš v rámci neho nič robiť, až kým nebude odomknutý.
- silence: Kým je úč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.
+ 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:
@@ -930,9 +955,9 @@ sk:
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 594c58acc..3d99f7708 100644
--- a/config/locales/sl.yml
+++ b/config/locales/sl.yml
@@ -7,7 +7,6 @@ sl:
administered_by: 'Upravlja:'
api: API
apps: Mobilne aplikacije
- closed_registrations: Registracije so trenutno zaprte na tem vozlišču. Vendar! Tukaj lahko najdete druga vozlišča, na katerih se prijavite in dostopate do istega omrežja od tam.
contact: Kontakt
contact_missing: Ni nastavljeno
contact_unavailable: Ni na voljo
@@ -15,32 +14,22 @@ sl:
extended_description_html: |
Dober prostor za pravila
Razširjen opis še ni bil nastavljen.
- features:
- humane_approach_body: Na podlagi učenja od neuspehov drugih omrežij, želi Mastodon oblikovati etične načrte za boj proti zlorabi socialnih medijev.
- humane_approach_title: Bolj human pristop
- not_a_product_body: Mastodon ni komercialno omrežje. Brez oglaševanja, brez podatkovnega rudarjenja, brez obzidanih vrtov. Ni osrednjega organa.
- not_a_product_title: Ti si oseba, ne izdelek
- real_conversation_body: S 500 znaki, ki so vam na voljo, in podporo za zrnate vsebine ter opozorila pred mediji, se lahko izrazite tako, kot želite.
- real_conversation_title: Zgrajen za pravi pogovor
- within_reach_body: Zahvaljujoč razvijalcem prijaznemu API ekosistemu, obstaja več aplikacija za iOS, Arduino in druge platforme, ki vam omogočajo, da sledite svojim prijateljem kjerkoli.
- within_reach_title: Vedno na dosegu roke
generic_description: "%{domain} je en strežnik v omrežju"
hosted_on: Mastodon gostuje na %{domain}
learn_more: Spoznaj več
- other_instances: Seznam vozlišč
privacy_policy: Politika zasebnosti
source_code: Izvorna koda
status_count_after:
few: stanja
one: stanje
- other: stanja
+ other: stanj
two: stanja
- status_count_before: Kdo je avtor
+ status_count_before: Ki so avtorji
terms: Pogoji storitve
user_count_after:
few: uporabniki
one: uporabnik
- other: uporabniki
+ other: uporabnikov
two: uporabniki
user_count_before: Dom za
what_is_mastodon: Kaj je Mastodon?
@@ -54,6 +43,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 +67,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 +89,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 +105,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 +119,7 @@ sl:
media_attachments: Medijske priloge
memorialize: Spremenite v spomin
moderation:
+ active: Dejaven
all: Vse
silenced: Utišan
suspended: Suspendiran
@@ -129,7 +127,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
+ 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..ea36a2189
--- /dev/null
+++ b/config/locales/sq.yml
@@ -0,0 +1,978 @@
+---
+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
+ 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.
+ generic_description: "%{domain} është një shërbyes te rrjeti"
+ hosted_on: Mastodon i strehuar në %{domain}
+ learn_more: Mësoni më tepër
+ 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
+ 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:
+ 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_log_in_with: Ose bëni hyrjen me
+ providers:
+ cas: CAS
+ saml: SAML
+ register: Regjistrohuni
+ resend_confirmation: Ridërgo udhëzime ripohimi
+ reset_password: Ricaktoni fjalëkalimin
+ security: Siguri
+ set_new_password: Caktoni fjalëkalim të ri
+ 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
+ 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
+ import: Importo
+ migrate: Migrim llogarie
+ notifications: Njoftime
+ preferences: Parapëlqime
+ two_factor_authentication: Mirëfilltësim Dyfaktorësh
+ 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 82739c9bb..2292b6a7f 100644
--- a/config/locales/sr-Latn.yml
+++ b/config/locales/sr-Latn.yml
@@ -4,26 +4,15 @@ sr-Latn:
about_hashtag_html: Ovo su javni statusi tagovani sa #%{hashtag}. Možete odgovarati na njih ako imate nalog bilo gde u fediversu.
about_mastodon_html: Mastodont je društvena mreža bazirana na otvorenim protokolima i slobodnom softveru otvorenog koda. Decentralizovana je kao što je decentralizovana e-pošta.
about_this: O instanci
- closed_registrations: Registracije su trenutno zatvorene na ovoj instanci. Ipak! Možete naći drugu instancu na kojoj ćete napraviti nalog i odatle dobiti pristup istoj ovoj mreži.
contact: Kontakt
contact_missing: Nije postavljeno
contact_unavailable: N/A
extended_description_html: |
Dobro mesto za pravila
Prošireni opis koji još nije postavljen.
- features:
- humane_approach_body: Učeći od grešaka sa ostalih mreža, a da bi se borio protiv zloupotreba na društvenim mrežama, Mastodont pokušava da pravi što etičkije odluke prilikom razvoja.
- humane_approach_title: Humaniji pristup
- not_a_product_body: Mastodont nije komercijalna mreža. Nema reklama, nema skupljanja privatnih podataka, nema zaštićenih delova. Nema centralnog autoriteta.
- not_a_product_title: Vi ste osoba, ne proizvod
- real_conversation_body: Sa 500 karaktera na raspolaganju i podrškom za granularniji sadržaj i upozorenja na osetljiviji sadržaj, možete se izraziti kako god želite.
- real_conversation_title: Pravljen za pravi razgovor
- within_reach_body: Više aplikacija za iOS, Android, kao i druge platforme zahvaljujući ekosistemu dobrih API-ja će Vam omogućiti da ostanete u kontaktu sa prijateljima svuda.
- within_reach_title: Uvek u kontaktu
generic_description: "%{domain} je server na mreži"
hosted_on: Mastodont hostovan na %{domain}
learn_more: Saznajte više
- other_instances: Lista instanci
source_code: Izvorni kod
status_count_after: statusa
status_count_before: Koji su napisali
@@ -256,9 +245,6 @@ sr-Latn:
min_invite_role:
disabled: Niko
title: Samo preko pozivnice
- open:
- desc_html: Dozvoli svakome da kreira nalog
- title: Otvorena registracija
show_staff_badge:
desc_html: Prikaži bedž osoblja na korisničkoj strani
title: Prikaži bedž osoblja
@@ -316,7 +302,6 @@ sr-Latn:
warning: Oprezno sa ovim podacima. Nikad je ne delite ni sa kim!
your_token: Vaš pristupni token
auth:
- agreement_html: Pristupanjem instanci se slažete sa pravilima instance i uslovima korišćenja.
delete_account: Obriši nalog
delete_account_html: Ako želite da obrišete Vaš nalog, možete nastaviti ovde. Bićete upitani da potvrdite.
didnt_get_confirmation: Niste dobili poruku sa uputstvima za potvrdu naloga?
@@ -381,20 +366,6 @@ sr-Latn:
follows: Pratite
mutes: Ućutkali ste
storage: Multimedijalno skladište
- followers:
- domain: Domen
- explanation_html: Ako želite da osigurate privatnost Vaših statusa, morate biti svesni ko Vas prati. Vaši privatni statusi se šalju na sve instance na kojima imate pratioce. Možda želite da ih pregledate i da uklonite one pratioce na onim instancama za koje nemate poverenja da će poštovati Vašu privatnost.
- followers_count: Broj pratilaca
- lock_link: Zaključajte nalog
- purge: Ukloni iz pratioca
- success:
- few: U procesu blokiranja pratioca sa %{count} domena...
- many: U procesu blokiranja pratioca sa %{count} domena...
- one: U procesu blokiranja pratioca sa jednog domena...
- other: U procesu blokiranja pratioca sa %{count} domena...
- true_privacy_html: Zapamtite da se prava privatnost može postići samo šifrovanjem sa kraja na kraj.
- unlocked_warning_html: Svako može da Vas zaprati da odmah vidi Vaše privatne statuse. %{lock_link} da biste pregledali i odbacili pratioce.
- unlocked_warning_title: Vaš nalog nije zaključan
generic:
changes_saved_msg: Izmene uspešno sačuvane!
save_changes: Snimi izmene
@@ -548,14 +519,11 @@ sr-Latn:
development: Razvoj
edit_profile: Izmena profila
export: Izvoz podataka
- followers: Autorizovani pratioci
import: Uvoz
migrate: Prebacivanje naloga
notifications: Obaveštenja
preferences: Podešavanja
- settings: Postavke
two_factor_authentication: Dvofaktorska identifikacija
- your_apps: Vaše aplikacije
statuses:
open_in_web: Otvori u vebu
over_character_limit: ograničenje od %{max} karaktera prekoračeno
diff --git a/config/locales/sr.yml b/config/locales/sr.yml
index 1d373ed67..2bf9001ce 100644
--- a/config/locales/sr.yml
+++ b/config/locales/sr.yml
@@ -7,7 +7,6 @@ sr:
administered_by: 'Администрирано од стране:'
api: API
apps: Мобилне апликације
- closed_registrations: Регистрације су тренутно затворене на овој инстанци. Међутим! Можете наћи другу инстанцу на којој ћете направити налог и одатле добити приступ на истој овој мрежи.
contact: Контакт
contact_missing: Није постављено
contact_unavailable: N/A
@@ -15,33 +14,23 @@ sr:
extended_description_html: |
Добро место за правила
Проширени опис који још није постављен.
- features:
- humane_approach_body: Учећи од грешака са осталих мрежа, а да би се борио против злоупотреба на друштвеним мрежама, Мастодонт покушава да прави што етичкије одлуке приликом развоја.
- humane_approach_title: Хуманији приступ
- not_a_product_body: Мастодонт није комерцијална мрежа. Нема реклама, нема скупљања приватних података, нема заштићених делова. Нема централног ауторитета.
- not_a_product_title: Ви сте особа, не производ
- real_conversation_body: Са 500 карактера на располагању и подршком за грануларнији садржај и упозорења на осетљивији садржај, можете се изразити како год желите.
- 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:
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,7 +43,7 @@ sr:
other: Пратиоци
following: Пратим
joined: Придружио/ла се %{date}
- last_active: последњи активни
+ last_active: последњи пут активни
link_verified_on: Власништво над овом везом је проверено %{date}
media: Медији
moved_html: "%{name} је прешао на %{new_profile_link}:"
@@ -421,9 +410,6 @@ sr:
min_invite_role:
disabled: Нико
title: Само преко позивнице
- open:
- desc_html: Дозволи свакоме да креира налог
- title: Отворена регистрација
show_known_fediverse_at_about_page:
desc_html: Када се упали, показаће трубе из свих знаних федиверса на преглед. У супротном ће само показати локалне трубе.
title: Покажи познате здружене инстанце у прегледнику временске линије
@@ -506,7 +492,6 @@ sr:
warning: Опрезно са овим подацима. Никад је не делите ни са ким!
your_token: Ваш приступни токен
auth:
- agreement_html: Приступањем инстанци се слажете са правилима инстанце и условима коришћења.
change_password: Лозинка
confirm_email: Потврдите адресу е-поште
delete_account: Обриши налог
@@ -518,13 +503,11 @@ sr:
logout: Одјава
migrate_account: Помери у други налог
migrate_account_html: Ако желите да преусмерите овај налог на неки други, можете то подесити овде.
- or: или
or_log_in_with: Или се пријавите са
providers:
cas: CAS-ом
saml: SAML-ом
register: Региструј се
- register_elsewhere: Региструјте се на другом серверу
resend_confirmation: Пошаљи поруку са упутствима о потврди налога поново
reset_password: Ресетуј лозинку
security: Безбедност
@@ -570,8 +553,8 @@ sr:
people:
few: "%{count} људе"
many: "%{count} људе"
- one: "%{count} особу"
- other: "%{count} људе"
+ one: "%{count} особа/е"
+ other: "%{count} људи"
errors:
'403': Немате дозвола да видите ову страну.
'404': Страна коју сте тражили не постоји.
@@ -615,20 +598,6 @@ sr:
title: Филтери
new:
title: Додај нови филтер
- followers:
- domain: Домен
- explanation_html: Ако желите да осигурате приватност Ваших статуса, морате бити свесни ко Вас прати. Ваши приватни статуси се шаљу на све инстанце на којима имате пратиоце. Можда желите да их прегледате и да уклоните оне пратиоце на оним инстанцама за које немате поверења да ће поштовати Вашу приватност.
- followers_count: Број пратилаца
- lock_link: Закључајте налог
- purge: Уклони из пратиоца
- success:
- few: У процесу блокирања пратиоца са %{count} домена...
- many: У процесу блокирања пратиоца са %{count} домена...
- one: У процесу блокирања пратиоца са једног домена...
- other: У процесу блокирања пратиоца са %{count} домена...
- true_privacy_html: Запамтите да се права приватност може постићи само шифровањем са краја на крај.
- unlocked_warning_html: Свако може да Вас запрати да одмах види Ваше приватне статусе. %{lock_link} да бисте прегледали и одбацили пратиоце.
- unlocked_warning_title: Ваш налог није закључан
footer:
developers: Програмери
more: Више…
@@ -819,14 +788,11 @@ sr:
development: Развој
edit_profile: Измена профила
export: Извоз података
- followers: Ауторизовани пратиоци
import: Увоз
migrate: Пребацивање налога
notifications: Обавештења
preferences: Подешавања
- settings: Поставке
two_factor_authentication: Двофакторска идентификација
- your_apps: Ваше апликације
statuses:
attached:
description: 'У прилогу: %{attached}'
diff --git a/config/locales/sv.yml b/config/locales/sv.yml
index aa5b3420d..91d4c2496 100644
--- a/config/locales/sv.yml
+++ b/config/locales/sv.yml
@@ -5,26 +5,15 @@ sv:
about_mastodon_html: Mastodon är ett socialt nätverk baserat på öppna webbprotokoll och gratis, öppen källkodsprogramvara. Det är decentraliserat som e-post.
about_this: Om
administered_by: 'Administreras av:'
- closed_registrations: Registreringar är för närvarande stängda i denna instans. Dock så kan du hitta en annan instans för att skapa ett konto och få tillgång till samma nätverk från det.
contact: Kontakt
contact_missing: Inte inställd
contact_unavailable: N/A
extended_description_html: |
En bra plats för regler
Den utökade beskrivningen har inte konfigurerats ännu.
- features:
- humane_approach_body: Mastodon, har lärt sig från tidigare misslyckanden i andra nätverk och syftar till att göra etiska designval i Mastodon för att bekämpa missbruk av sociala medier.
- humane_approach_title: En mer human inställning
- not_a_product_body: Mastodon är inte ett kommersiellt nätverk. Ingen reklam, ingen datautvinning, inga muromgärdade trädgårdar. Det finns ingen central myndighet.
- not_a_product_title: Du är en person, inte en produkt
- real_conversation_body: Med 500 tecken till ditt förfogande och stöd för granulärt innehåll och mediavarningar så kan du uttrycka dig själv, som du vill.
- real_conversation_title: Byggd för riktiga konversationer
- within_reach_body: Flera appar för iOS, Android och andra plattformar tack vare ett utvecklingsvänligt API-ekosystem gör att du kan hålla kontakten med dina vänner var som helst.
- within_reach_title: Alltid inom räckhåll
generic_description: "%{domain} är en server i nätverket"
hosted_on: Mastodon värd på %{domain}
learn_more: Lär dig mer
- other_instances: Instanslista
source_code: Källkod
status_count_after: statusar
status_count_before: Som skapat
@@ -301,9 +290,6 @@ sv:
min_invite_role:
disabled: Ingen
title: Tillåt inbjudningar av
- open:
- desc_html: Tillåt alla att skapa ett konto
- title: Öppen registrering
show_known_fediverse_at_about_page:
desc_html: När den växlas, kommer toots från hela fediverse visas på förhandsvisning. Annars visas bara lokala toots.
title: Visa det kända fediverse på tidslinjens förhandsgranskning
@@ -368,7 +354,6 @@ sv:
warning: Var mycket försiktig med denna data. Dela aldrig den med någon!
your_token: Din access token
auth:
- agreement_html: Genom att registrera dig godkänner du att följa instansens regler och våra användarvillkor.
change_password: Lösenord
confirm_email: Bekräfta e-postadress
delete_account: Ta bort konto
@@ -380,13 +365,11 @@ sv:
logout: Logga ut
migrate_account: Flytta till ett annat konto
migrate_account_html: Om du vill omdirigera detta konto till ett annat, kan du konfigurera det här.
- or: eller
or_log_in_with: Eller logga in med
providers:
cas: CAS
saml: SAML
register: Registrera
- register_elsewhere: Registrera dig på en annan server
resend_confirmation: Skicka instruktionerna om bekräftelse igen
reset_password: Återställ lösenord
security: Säkerhet
@@ -449,18 +432,6 @@ sv:
follows: Du följer
mutes: Du tystar
storage: Medialagring
- followers:
- domain: Domän
- explanation_html: Om du vill försäkra integriteten av dina statusar måste du vara medveten om vem som följer dig. Dina privata statusar levereras till alla instanser där du har följare. Du kanske vill granska och eventuellt ta bort följare om du inte litar på att din integritet respekteras hos medarbetarna eller programvara i dessa instanser.
- followers_count: Antal följare
- lock_link: Lås ditt konto
- purge: Ta bort från följare
- success:
- one: I processen med soft-blocking följare från en domän ...
- other: I processen med soft-blocking följare från %{count} domäner...
- true_privacy_html: Kom ihåg att sann integritet kan bara uppnås med end-to-end kryptering.
- unlocked_warning_html: Vem som helst kan följa dig för att omedelbart se dina privata statusar. %{lock_link} för att kunna granska och avvisa följare.
- unlocked_warning_title: Ditt konto är inte låst
generic:
changes_saved_msg: Ändringar sparades framgångsrikt!
save_changes: Spara ändringar
@@ -625,14 +596,11 @@ sv:
development: Utveckling
edit_profile: Redigera profil
export: Exportera data
- followers: Auktoriserade följare
import: Import
migrate: Kontoflytt
notifications: Meddelanden
preferences: Inställningar
- settings: Inställningar
two_factor_authentication: Tvåstegsautentisering
- your_apps: Dina applikationer
statuses:
attached:
description: 'Bifogad: %{attached}'
diff --git a/config/locales/te.yml b/config/locales/te.yml
index f0f6942ab..1dfc87060 100644
--- a/config/locales/te.yml
+++ b/config/locales/te.yml
@@ -7,7 +7,6 @@ te:
administered_by: 'నిర్వహణలో:'
api: API
apps: మొబైల్ యాప్స్
- closed_registrations: ప్రస్తుతం ఈ ఇన్స్టెన్స్ లో రిజిస్టేషన్లు మూసివేయబడ్డాయి. అయితే, వేరే ఇన్స్టెన్స్ లో ఖాతా తెరచికూడా ఈ ఇన్స్టెన్స్ ను అక్కడినుండే యాక్సెస్ చేయవచ్చు.
contact: సంప్రదించండి
contact_missing: ఇంకా సెట్ చేయలేదు
contact_unavailable: వర్తించదు
@@ -15,19 +14,9 @@ te:
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:
diff --git a/config/locales/th.yml b/config/locales/th.yml
index 5be8e02c0..2ebd6c7f1 100644
--- a/config/locales/th.yml
+++ b/config/locales/th.yml
@@ -1,240 +1,530 @@
---
th:
about:
- about_mastodon_html: แมสโทดอน เป็น ดีเซ็นทรัลไลซ์ฟรีโอเพ่นซอร์ส โซเชี่ยวเน็ตเวริ์ค. เป็นทางเลือกทดแทนโซเชี่ยวเน็ตเวิร์คที่ทำเป็นธุรกิจการค้า, ป้องกันการผูกขาดช่องทางการสื่อสารของคุณ. เลือกเซร์ฟเวอร์ที่คุณไว้ใจ — ที่คุณเลือกได้เอง, สื่อสารกับคนที่คุณต้องการได้เสมอ. ใครๆก็รันแมสโทดอนอินซะแตนซ์ได้ และ เชื่อมต่อกับโซเชี่ยวเน็ตเวิร์ค โดยไม่มีอะไรมาขวางกั้น.
- about_this: เกี่ยวกับอินซะแตนซ์นี้
- closed_registrations: อินซะแตนซ์นี้ปิดรับลงทะเบียนแล้ว.
+ about_mastodon_html: Mastodon เป็นเครือข่ายสังคมที่ทำงานบนโปรโตคอลเว็บแบบเปิดและซอฟต์แวร์เสรีที่เปิดต้นฉบับ กระจายศูนย์เหมือนอีเมล
+ about_this: เกี่ยวกับ
+ active_count_after: ที่ใช้งาน
+ active_footnote: ผู้ใช้งานรายเดือน (MAU)
+ administered_by: 'ดูแลโดย:'
+ api: API
+ apps: แอปสำหรับมือถือ
+ apps_platforms: ใช้ Mastodon จาก iOS, Android และแพลตฟอร์มอื่น ๆ
+ browse_directory: เรียกดูไดเรกทอรีโปรไฟล์และกรองตามความสนใจ
+ browse_public_posts: เรียกดูสตรีมสดของโพสต์สาธารณะใน Mastodon
contact: ติดต่อ
- other_instances: อินซะแตนซ์อื่นๆ
- source_code: ซอร์สโค๊ด
- status_count_after: สถานะ
- status_count_before: Who authored
- user_count_after: ผู้ใช้
- user_count_before: Home to
+ contact_missing: ไม่ได้ตั้ง
+ contact_unavailable: ไม่มี
+ discover_users: ค้นพบผู้ใช้
+ documentation: เอกสารประกอบ
+ extended_description_html: |
+ สถานที่ที่ดีสำหรับกฎ
+ ยังไม่ได้ตั้งคำอธิบายแบบขยาย
+ generic_description: "%{domain} เป็นเซิร์ฟเวอร์หนึ่งในเครือข่าย"
+ get_apps: ลองแอปสำหรับมือถือ
+ learn_more: เรียนรู้เพิ่มเติม
+ privacy_policy: นโยบายความเป็นส่วนตัว
+ server_stats: 'สถิติเซิร์ฟเวอร์:'
+ source_code: โค้ดต้นฉบับ
+ status_count_after:
+ one: สถานะ
+ other: สถานะ
+ status_count_before: ผู้สร้าง
+ user_count_after:
+ one: ผู้ใช้
+ other: ผู้ใช้
+ user_count_before: บ้านของ
+ what_is_mastodon: Mastodon คืออะไร?
accounts:
follow: ติดตาม
- followers: ผู้ติดตาม
+ followers:
+ one: ผู้ติดตาม
+ other: ผู้ติดตาม
following: กำลังติดตาม
- nothing_here: ไม่พบสิ่งใดที่นี่!
- people_followed_by: ถูกติดตามโดย %{name}
- people_who_follow: คนที่ติดตาม %{name}
- posts: โพสต์
+ joined: เข้าร่วมเมื่อ %{date}
+ last_active: ใช้งานล่าสุด
+ media: สื่อ
+ moved_html: "%{name} ได้ย้ายไปยัง %{new_profile_link}:"
+ network_hidden: ไม่มีข้อมูลนี้
+ nothing_here: ไม่มีสิ่งใดที่นี่!
+ people_followed_by: ผู้คนที่ %{name} ติดตาม
+ people_who_follow: ผู้คนที่ติดตาม %{name}
+ posts:
+ one: โพสต์
+ other: โพสต์
+ posts_tab_heading: โพสต์
+ posts_with_replies: โพสต์และการตอบกลับ
+ roles:
+ admin: ผู้ดูแล
+ bot: บอต
+ moderator: ผู้ควบคุม
unfollow: เลิกติดตาม
admin:
+ account_moderation_notes:
+ created_msg: สร้างหมายเหตุการควบคุมสำเร็จ!
+ delete: ลบ
+ destroyed_msg: ทำลายหมายเหตุการควบคุมสำเร็จ!
accounts:
- are_you_sure: แน่ใจนะ?
+ approve: อนุมัติ
+ are_you_sure: คุณแน่ใจหรือไม่?
+ avatar: ภาพประจำตัว
+ by_domain: โดเมน
+ change_email:
+ changed_msg: เปลี่ยนอีเมลบัญชีสำเร็จ!
+ current_email: อีเมลปัจจุบัน
+ label: เปลี่ยนอีเมล
+ new_email: อีเมลใหม่
+ submit: เปลี่ยนอีเมล
+ title: เปลี่ยนอีเมลสำหรับ %{username}
confirm: ยืนยัน
- confirmed: ยึนยันแล้ว
- confirming: ยืนยัน
- disable_two_factor_authentication: Disable 2FA
- display_name: ชื่อสำหรับดีสเพล
- domain: โดแมน
+ confirmed: ยืนยันแล้ว
+ confirming: กำลังยืนยัน
+ deleted: ลบแล้ว
+ demote: ลดระดับ
+ disable: ปิดใช้งาน
+ disable_two_factor_authentication: ปิดใช้งาน 2FA
+ disabled: ปิดใช้งานอยู่
+ display_name: ชื่อที่แสดงผล
+ domain: โดเมน
edit: แก้ไข
- email: อีเมล์
+ email: อีเมล
email_status: สถานะอีเมล
- feed_url: Feed URL
+ enable: เปิดใช้งาน
+ enabled: เปิดใช้งานอยู่
+ feed_url: URL ฟีด
followers: ผู้ติดตาม
+ followers_url: URL ผู้ติดตาม
follows: ติดตาม
+ header: ส่วนหัว
+ inbox_url: URL กล่องขาเข้า
+ invited_by: เชิญโดย
+ ip: IP
+ joined: เข้าร่วมเมื่อ
location:
all: ทั้งหมด
- local: โลคอล
- remote: รีโมทย์
- title: สถานที่
- media_attachments: สื่อที่แนบมา
+ local: ในเว็บ
+ remote: ระยะไกล
+ title: ตำแหน่งที่ตั้ง
+ login_status: สถานะการเข้าสู่ระบบ
+ media_attachments: ไฟล์แนบสื่อ
moderation:
all: ทั้งหมด
- silenced: ปิดเสียง
- suspended: หยุดไว้
- title: Moderation
+ silenced: เงียบอยู่
+ suspended: ระงับอยู่
+ title: การควบคุม
+ moderation_notes: หมายเหตุการควบคุม
most_recent_activity: กิจกรรมล่าสุด
most_recent_ip: IP ล่าสุด
- not_subscribed: Not subscribed
- perform_full_suspension: Perform full suspension
- profile_url: Profile URL
+ not_subscribed: ไม่ได้บอกรับ
+ outbox_url: URL กล่องขาออก
+ perform_full_suspension: ระงับ
+ profile_url: URL โปรไฟล์
+ protocol: โปรโตคอล
public: สาธารณะ
- push_subscription_expires: PuSH subscription expires
+ push_subscription_expires: การบอกรับ PuSH หมดอายุเมื่อ
+ reject: ปฏิเสธ
+ remove_avatar: เอาภาพประจำตัวออก
+ remove_header: เอาส่วนหัวออก
resend_confirmation:
- already_confirmed: ผู้ใช้รายนี้ได้รับการยืนยันแล้ว
+ already_confirmed: ผู้ใช้นี้ได้รับการยืนยันอยู่แล้ว
send: ส่งอีเมลยืนยันอีกครั้ง
- success: ยืนยันอีเมลเรียบร้อยแล้ว!
- reset_password: รีเซ็ตรหัสผ่าน
+ success: ส่งอีเมลยืนยันสำเร็จ!
+ reset_password: ตั้งรหัสผ่านใหม่
+ resubscribe: บอกรับใหม่
+ roles:
+ admin: ผู้ดูแล
+ moderator: ผู้ควบคุม
+ staff: พนักงาน
+ user: ผู้ใช้
salmon_url: Salmon URL
+ search: ค้นหา
show:
- created_reports: รายงานที่ถูกสร้างโดย แอคเคาท์นี้
- targeted_reports: รายงานเกี่ยวกับแอคเคาท์นี้
- silence: ปิดเสียง
+ created_reports: รายงานที่สร้าง
+ targeted_reports: รายงานโดยผู้อื่น
+ silence: เงียบ
+ silenced: เงียบอยู่
statuses: สถานะ
+ subscribe: บอกรับ
+ suspended: ระงับอยู่
title: บัญชี
- undo_silenced: ยกเลิกการปิดเสียง
- undo_suspension: ยกเลิกการหยุด
+ undo_silenced: เลิกทำการเงียบ
+ undo_suspension: เลิกทำการระงับ
+ unsubscribe: เลิกบอกรับ
username: ชื่อผู้ใช้
+ warn: เตือน
web: เว็บ
+ action_logs:
+ deleted_status: "(สถานะที่ลบแล้ว)"
+ title: รายการบันทึกการตรวจสอบ
+ custom_emojis:
+ by_domain: โดเมน
+ copy: คัดลอก
+ created_msg: สร้างอีโมจิสำเร็จ!
+ delete: ลบ
+ disable: ปิดใช้งาน
+ emoji: อีโมจิ
+ enable: เปิดใช้งาน
+ new:
+ title: เพิ่มอีโมจิที่กำหนดเองใหม่
+ overwrite: เขียนทับ
+ shortcode: รหัสย่อ
+ title: อีโมจิที่กำหนดเอง
+ unlisted: ไม่อยู่ในรายการ
+ update_failed_msg: ไม่สามารถอัปเดตอีโมจินั้น
+ updated_msg: อัปเดตอีโมจิสำเร็จ!
+ upload: อัปโหลด
+ dashboard:
+ config: การกำหนดค่า
+ feature_deletions: การลบบัญชี
+ feature_invites: ลิงก์เชิญ
+ feature_profile_directory: ไดเรกทอรีโปรไฟล์
+ feature_registrations: การลงทะเบียน
+ features: คุณลักษณะ
+ 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: ยกเลิกการบล๊อกโดเมน
+ add_new: เพิ่มการปิดกั้นโดเมนใหม่
+ created_msg: กำลังประมวลผลการปิดกั้นโดเมน
+ destroyed_msg: เลิกทำการปิดกั้นโดเมนแล้ว
domain: โดเมน
new:
- create: สร้างการบล๊อก
- hint: การบล๊อคโดเมนไม่สามารถป้องกันการสร้างแอคเค๊าท์ในฐานข้อมูล, but will retroactively and automatically apply specific moderation methods on those accounts.
+ create: สร้างการปิดกั้น
+ hint: การปิดกั้นโดเมนจะไม่ป้องกันการสร้างรายการบัญชีในฐานข้อมูล แต่จะใช้วิธีการควบคุมเฉพาะกับบัญชีเหล่านั้นย้อนหลังและโดยอัตโนมัติ
severity:
- desc_html: "การปิดเสียง จะทำให้ผู้ที่ไมไ่ด้ติดตามไม่เห็นโพสต์ของเขา. การหยุด จะนำเนื้อหา สื่อ และ โปรไฟล์ ออก."
- silence: ปิดเสียง
- suspend: หยุดไว้
- title: การบล๊อกโดเมนใหม่
- reject_media: ไม่อนุมัติไฟล์สื่อ
- reject_media_hint: ลบไฟล์สื่อที่เก็บไว้ในเครื่อง และ ป้องกันการดาวน์โหลดในอนาคต. Irrelevant for suspensions
+ desc_html: "เงียบ จะทำให้โพสต์ของบัญชีมองไม่เห็นกับใครก็ตามที่ไม่ได้กำลังติดตามบัญชี ระงับ จะเอาเนื้อหา, สื่อ และข้อมูลโปรไฟล์ทั้งหมดของบัญชีออก ใช้ ไม่มี หากคุณเพียงแค่ต้องการปฏิเสธไฟล์สื่อ"
+ noop: ไม่มี
+ silence: เงียบ
+ suspend: ระงับ
+ title: การปิดกั้นโดเมนใหม่
+ reject_media: ปฏิเสธไฟล์สื่อ
+ reject_media_hint: เอาไฟล์สื่อที่จัดเก็บไว้ในเว็บออกและปฏิเสธที่จะดาวน์โหลดไฟล์ใด ๆ ในอนาคต ไม่เกี่ยวข้องกับการระงับ
+ reject_reports: ปฏิเสธรายงาน
+ severity:
+ silence: เงียบอยู่
+ suspend: ระงับอยู่
show:
affected_accounts:
- one: มีผลต่อหนึ่งแอคเค๊าท์ในฐานข้อมูล
- other: มีผลต่อแอคเค๊าท์ในฐานข้อมูลจำนวน %{count}
+ one: มีผลต่อหนึ่งบัญชีในฐานข้อมูล
+ other: มีผลต่อ %{count} บัญชีในฐานข้อมูล
retroactive:
- silence: ยกเลิกการปิดเสียงทุกแอคเค๊าท์จากโดเมน
- suspend: ยกเลิกการหยุดทุกแอคเค๊าท์จากโดเมน
- title: ยกเลิกการบล๊อกโดเมน %{domain}
- undo: ยกเลิก
- undo: ยกเลิก
+ silence: เลิกเงียบบัญชีที่มีอยู่ทั้งหมดจากโดเมนนี้
+ suspend: เลิกระงับบัญชีที่มีอยู่ทั้งหมดจากโดเมนนี้
+ title: เลิกทำการปิดกั้นโดเมนสำหรับ %{domain}
+ undo: เลิกทำ
+ undo: เลิกทำการปิดกั้นโดเมน
+ email_domain_blocks:
+ add_new: เพิ่มใหม่
+ delete: ลบ
+ domain: โดเมน
+ new:
+ create: เพิ่มโดเมน
+ followers:
+ back_to_account: กลับไปที่บัญชี
+ title: ผู้ติดตามของ %{acct}
instances:
- title: Known Instances
+ by_domain: โดเมน
+ moderation:
+ all: ทั้งหมด
+ limited: จำกัดอยู่
+ title: การควบคุม
+ title: การติดต่อกับภายนอก
+ total_storage: ไฟล์แนบสื่อ
+ invites:
+ deactivate_all: ปิดใช้งานทั้งหมด
+ title: คำเชิญ
+ relays:
+ add_new: เพิ่มรีเลย์ใหม่
+ delete: ลบ
+ disable: ปิดใช้งาน
+ disabled: ปิดใช้งานอยู่
+ enable: เปิดใช้งาน
+ enabled: เปิดใช้งานอยู่
+ inbox_url: URL รีเลย์
+ status: สถานะ
+ title: รีเลย์
+ report_notes:
+ created_msg: สร้างหมายเหตุรายงานสำเร็จ!
+ destroyed_msg: ลบหมายเหตุรายงานสำเร็จ!
reports:
+ account:
+ note: หมายเหตุ
+ report: รายงาน
+ are_you_sure: คุณแน่ใจหรือไม่?
+ assign_to_self: มอบหมายให้ฉัน
comment:
- none: None
- mark_as_resolved: ทำเครื่องหมายว่าจัดการแล้ว
- report: 'Report #%{id}'
- reported_account: รายงานแอคเคาท์
+ none: ไม่มี
+ created_at: รายงานเมื่อ
+ mark_as_resolved: ทำเครื่องหมายว่าแก้ปัญหาแล้ว
+ mark_as_unresolved: ทำเครื่องหมายว่ายังไม่ได้แก้ปัญหา
+ notes:
+ create: เพิ่มหมายเหตุ
+ delete: ลบ
+ report: 'รายงาน #%{id}'
+ reported_account: บัญชีที่ได้รับการรายงาน
reported_by: รายงานโดย
- resolved: จัดการแล้ว
+ resolved: แก้ปัญหาแล้ว
+ resolved_msg: แก้ปัญหารายงานสำเร็จ!
status: สถานะ
title: รายงาน
- unresolved: Unresolved
+ unassign: เลิกมอบหมาย
+ unresolved: ยังไม่ได้แก้ปัญหา
+ updated_at: อัปเดตเมื่อ
settings:
contact_information:
- email: กรอกที่อยู่อีเมล์สาธารณะ
- username: กรอกชื่อผู้ใช้
+ email: อีเมลธุรกิจ
+ username: ชื่อผู้ใช้ในการติดต่อ
+ custom_css:
+ title: CSS ที่กำหนดเอง
+ profile_directory:
+ title: เปิดใช้งานไดเรกทอรีโปรไฟล์
registrations:
closed_message:
- desc_html: Displayed on frontpage when registrations are closed
ใช้ HTML tags ได้
- title: ปิดข้อความลงทะเบียน
- open:
- title: เปิดรับลงทะเบียน
+ desc_html: แสดงผลในหน้าแรกเมื่อปิดการลงทะเบียน คุณสามารถใช้แท็ก HTML
+ title: ข้อความการปิดการลงทะเบียน
+ deletion:
+ desc_html: อนุญาตให้ใครก็ตามลบบัญชีของเขา
+ title: เปิดการลบบัญชี
+ min_invite_role:
+ disabled: ไม่มีใคร
+ title: อนุญาตคำเชิญโดย
+ registrations_mode:
+ modes:
+ none: ไม่มีใครสามารถลงทะเบียน
+ open: ใครก็ตามสามารถลงทะเบียน
+ title: โหมดการลงทะเบียน
+ show_staff_badge:
+ desc_html: แสดงป้ายพนักงานในหน้าผู้ใช้
+ title: แสดงป้ายพนักงาน
site_description:
- desc_html: Displayed as a paragraph on the frontpage and used as a meta tag.
ใช้ HTML tags ได้, in particular <a>
และ <em>
.
- title: คำอธิบายไซต์
+ desc_html: ย่อหน้าเกริ่นนำในหน้าแรก อธิบายถึงสิ่งที่ทำให้เซิร์ฟเวอร์ Mastodon นี้พิเศษและสิ่งอื่นใดที่สำคัญ คุณสามารถใช้แท็ก HTML โดยเฉพาะอย่างยิ่ง <a>
และ <em>
+ title: คำอธิบายเซิร์ฟเวอร์
site_description_extended:
- desc_html: Displayed on extended information page
You can use HTML tags
- title: คำอธิบายไซต์เพิ่มเติม
- site_title: ชื่อไซต์
- title: ตั้งค่าไซต์
+ desc_html: สถานที่ที่ดีสำหรับแนวทางปฏิบัติ, กฎ, หลักเกณฑ์ และสิ่งอื่น ๆ ของคุณที่ทำให้เซิร์ฟเวอร์ของคุณแตกต่าง คุณสามารถใช้แท็ก HTML
+ title: ข้อมูลแบบขยายที่กำหนดเอง
+ site_short_description:
+ title: คำอธิบายเซิร์ฟเวอร์แบบสั้น
+ site_title: ชื่อเซิร์ฟเวอร์
+ timeline_preview:
+ desc_html: แสดงเส้นเวลาสาธารณะในหน้าเริ่มต้น
+ title: ตัวอย่างเส้นเวลา
+ title: การตั้งค่าไซต์
+ statuses:
+ back_to_account: กลับไปที่หน้าบัญชี
+ batch:
+ delete: ลบ
+ nsfw_off: ทำเครื่องหมายว่าไม่ละเอียดอ่อน
+ nsfw_on: ทำเครื่องหมายว่าละเอียดอ่อน
+ media:
+ title: สื่อ
+ no_media: ไม่มีสื่อ
+ title: สถานะบัญชี
subscriptions:
- callback_url: Callback URL
- confirmed: ยืนยัน
+ callback_url: URL เรียกกลับ
+ confirmed: ยืนยันแล้ว
expires_in: หมดอายุภายใน
- last_delivery: จัดส่งครั้งล่าสุด
+ last_delivery: ส่งล่าสุด
title: WebSub
- topic: ชื่อเรื่อง
- title: แอดมิน
+ topic: หัวข้อ
+ tags:
+ accounts: บัญชี
+ hidden: ซ่อนอยู่
+ hide: ซ่อนจากไดเรกทอรี
+ name: แฮชแท็ก
+ title: แฮชแท็ก
+ unhide: แสดงในไดเรกทอรี
+ visible: มองเห็น
+ title: การดูแล
+ warning_presets:
+ add_new: เพิ่มใหม่
+ delete: ลบ
+ edit: แก้ไข
+ edit_preset: แก้ไขคำเตือนที่ตั้งไว้ล่วงหน้า
+ title: จัดการคำเตือนที่ตั้งไว้ล่วงหน้า
application_mailer:
- settings: 'เปลี่ยนอีเมล์ preferences: %{link}'
- view: 'วิว:'
+ notification_preferences: เปลี่ยนการกำหนดลักษณะอีเมล
+ settings: 'เปลี่ยนการกำหนดลักษณะอีเมล: %{link}'
+ view: 'มุมมอง:'
+ view_profile: ดูโปรไฟล์
+ view_status: ดูสถานะ
applications:
- invalid_url: URL ที่ระบุไม่ถูกตั้ง
+ invalid_url: URL ที่ระบุไม่ถูกต้อง
auth:
+ apply_for_account: ขอคำเชิญ
+ change_password: รหัสผ่าน
+ confirm_email: ยืนยันอีเมล
+ delete_account: ลบบัญชี
didnt_get_confirmation: Didn't receive confirmation instructions?
- forgot_password: คุณลืมพาสเวริ์ดใช่ัม้ย?
- login: ล๊อคอิน
- logout: ล๊อคเอาท์
- register: สมัคร
+ forgot_password: ลืมรหัสผ่านของคุณ?
+ login: เข้าสู่ระบบ
+ logout: ออกจากระบบ
+ migrate_account: ย้ายไปยังบัญชีอื่น
+ or_log_in_with: หรือเข้าสู่ระบบด้วย
+ providers:
+ cas: CAS
+ saml: SAML
+ register: ลงทะเบียน
resend_confirmation: ส่งขั้นตอนวิธีการยืนยันใหม่อีกครั้ง
- reset_password: เปลี่ยนรหัสผ่าน
- security: Credentials
+ reset_password: ตั้งรหัสผ่านใหม่
+ security: ความปลอดภัย
set_new_password: ตั้งรหัสผ่านใหม่
+ trouble_logging_in: มีปัญหาในการเข้าสู่ระบบ?
authorize_follow:
+ already_following: คุณกำลังติดตามบัญชีนี้อยู่แล้ว
error: Unfortunately, there was an error looking up the remote account
follow: ติดตาม
+ following: 'สำเร็จ! คุณกำลังติดตาม:'
+ post_follow:
+ return: แสดงโปรไฟล์ของผู้ใช้
+ web: ไปยังเว็บ
title: ติดตาม %{acct}
datetime:
distance_in_words:
- about_x_hours: "%{count}ช"
- about_x_months: "%{count}ด"
- about_x_years: "%{count}ป"
- almost_x_years: "%{count}ป"
- half_a_minute: ครึ่งนาที
- less_than_x_minutes: "%{count}ม"
- less_than_x_seconds: ไม่ถึงนาที
- over_x_years: "%{count}ป"
- x_days: "%{count}ด"
- x_minutes: "%{count}น"
- x_months: "%{count}ด"
- x_seconds: "%{count}ว"
+ about_x_hours: "%{count} ชั่วโมง"
+ about_x_months: "%{count} เดือน"
+ about_x_years: "%{count} ปี"
+ almost_x_years: "%{count} ปี"
+ half_a_minute: เมื่อกี้นี้
+ less_than_x_minutes: "%{count} นาที"
+ less_than_x_seconds: เมื่อกี้นี้
+ over_x_years: "%{count} ปี"
+ x_days: "%{count} วัน"
+ x_minutes: "%{count} นาที"
+ x_months: "%{count} เดือน"
+ x_seconds: "%{count} วินาที"
+ deletes:
+ proceed: ลบบัญชี
+ success_msg: ลบบัญชีของคุณสำเร็จ
+ directories:
+ directory: ไดเรกทอรีโปรไฟล์
+ explanation: ค้นพบผู้ใช้ตามความสนใจของเขา
+ explore_mastodon: สำรวจ %{title}
errors:
- '403': คุณไม่มีสิทธิ์เข้าดูหน้านี้.
- '404': ไม่พบเพจที่คุณต้องการดู.
- '410': เพจที่คุณต้องการดูไม่มีแล้ว.
+ '403': คุณไม่มีสิทธิดูหน้านี้
+ '404': หน้าที่คุณกำลังมองหาไม่ได้อยู่ที่นี่
+ '410': หน้าที่คุณกำลังมองหาไม่มีอยู่ที่นี่อีกต่อไป
'422':
- content: การตรวจสอบความปลอดภัยล้มเหลว. คุณกำลังบล๊อกคุกกี้อยู่?
+ content: การตรวจสอบความปลอดภัยล้มเหลว คุณกำลังปิดกั้นคุกกี้หรือไม่?
title: การตรวจสอบความปลอดภัยล้มเหลว
'429': Throttled
+ '500':
+ title: หน้านี้ไม่ถูกต้อง
exports:
- blocks: คุณบล๊อก
+ archive_takeout:
+ date: วันที่
+ download: ดาวน์โหลดการเก็บถาวรของคุณ
+ request: ขอการเก็บถาวรของคุณ
+ size: ขนาด
+ blocks: คุณปิดกั้น
csv: CSV
+ domain_blocks: การปิดกั้นโดเมน
follows: คุณติดตาม
+ lists: รายการ
mutes: คุณปิดเสียง
- storage: ที่เก็บสื่อ
- followers:
- 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.
- followers_count: จำนวนผู้ติดตาม
- lock_link: ล๊อคแอคเค๊าท์ของคุณ
- purge: นำผู้ติดตามออก
- success:
- one: In the process of soft-blocking followers from one domain...
- other: In the process of soft-blocking followers from %{count} domains...
- true_privacy_html: Please mind that true privacy can only be achieved with end-to-end encryption.
- unlocked_warning_html: Anyone can follow you to immediately view your private statuses. %{lock_link} to be able to review and reject followers.
- unlocked_warning_title: แอคเค๊าท์ของคุณไม่ได้ล๊อค
+ storage: ที่เก็บข้อมูลสื่อ
+ featured_tags:
+ add_new: เพิ่มใหม่
+ filters:
+ contexts:
+ home: เส้นเวลาหน้าแรก
+ notifications: การแจ้งเตือน
+ public: เส้นเวลาสาธารณะ
+ thread: การสนทนา
+ edit:
+ title: แก้ไขตัวกรอง
+ index:
+ delete: ลบ
+ title: ตัวกรอง
+ new:
+ title: เพิ่มตัวกรองใหม่
+ footer:
+ developers: นักพัฒนา
+ more: เพิ่มเติม…
+ resources: ทรัพยากร
generic:
- changes_saved_msg: บันทึกการแก้ไขแล้ว!
+ all: ทั้งหมด
+ changes_saved_msg: บันทึกการเปลี่ยนแปลงสำเร็จ!
+ copy: คัดลอก
save_changes: บันทึกการเปลี่ยนแปลง
validation_errors:
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:
+ modes:
+ merge: ผสาน
+ overwrite: เขียนทับ
preface: You can import certain data like all the people you are following or blocking into your account on this instance, from files created by an export on another instance.
success: Your data was successfully uploaded and will now be processed in due time
types:
- blocking: Blocking list
- following: Following list
- muting: Muting list
- upload: Upload
+ blocking: รายการปิดกั้น
+ following: รายการติดตาม
+ muting: รายการปิดเสียง
+ upload: อัปโหลด
+ invites:
+ delete: ปิดใช้งาน
+ expires_in:
+ '1800': 30 นาที
+ '21600': 6 ชั่วโมง
+ '3600': 1 ชั่วโมง
+ '43200': 12 ชั่วโมง
+ '604800': 1 สัปดาห์
+ '86400': 1 วัน
+ expires_in_prompt: ไม่เลย
+ generate: สร้าง
+ max_uses_prompt: ไม่มีขีดจำกัด
+ table:
+ expires_at: หมดอายุเมื่อ
+ title: เชิญผู้คน
media_attachments:
validations:
- images_and_video: Cannot attach a video to a status that already contains images
- too_many: แนบมากกว่า 4 ไฟล์ไม่ได้
+ images_and_video: ไม่สามารถแนบวิดีโอกับสถานะที่มีภาพอยู่แล้ว
+ too_many: ไม่สามารถแนบมากกว่า 4 ไฟล์
+ migrations:
+ acct: username@domain ของบัญชีใหม่
+ proceed: บันทึก
+ moderation:
+ title: การควบคุม
notification_mailer:
digest:
+ action: ดูการแจ้งเตือนทั้งหมด
body: Here is a brief summary of the messages you missed since your last visit on %{since}
- mention: "%{name} ส่งข้อความถึงคุณ:"
+ mention: "%{name} ได้กล่าวถึงคุณใน:"
new_followers_summary:
- one: ยินดีด้วยคุณได้ผู้ติดตามคนใหม่! Yay!
+ one: นอกจากนี้คุณยังมีหนึ่งผู้ติดตามใหม่ขณะที่ไม่อยู่! เย่!
other: You have gotten %{count} new followers! Amazing!
subject:
one: "1 new notification since your last visit \U0001F418"
other: "%{count} new notifications since your last visit \U0001F418"
favourite:
- body: 'สเตตัสของคุณได้รับการกดถูกใจโดย %{name} :'
- subject: "%{name} กดถูกใจสเตตัสของคุณ"
+ body: 'สถานะของคุณได้รับการชื่นชอบโดย %{name}:'
+ subject: "%{name} ได้ชื่นชอบสถานะของคุณ"
+ title: รายการโปรดใหม่
follow:
- body: "%{name} กำลังติดตามคุณ"
- subject: "%{name} ได้ติดตามคุณแล้ว"
+ body: "%{name} กำลังติดตามคุณ!"
+ subject: "%{name} กำลังติดตามคุณ"
+ title: ผู้ติดตามใหม่
follow_request:
+ action: จัดการคำขอติดตาม
body: "%{name} ได้ขอติดตามคุณ"
- subject: 'Pending follower: %{name}'
+ subject: 'ผู้ติดตามที่รอดำเนินการ: %{name}'
+ title: คำขอติดตามใหม่
mention:
- body: 'You were mentioned by %{name} in:'
- subject: You were mentioned by %{name}
+ action: ตอบกลับ
+ body: 'คุณได้รับการกล่าวถึงโดย %{name} ใน:'
+ subject: คุณได้รับการกล่าวถึงโดย %{name}
+ title: การกล่าวถึงใหม่
reblog:
- body: 'Your status was boosted by %{name}:'
- subject: "%{name} boosted your status"
+ body: 'สถานะของคุณได้รับการดันโดย %{name}:'
+ subject: "%{name} ได้ดันสถานะของคุณ"
+ title: การดันใหม่
number:
human:
decimal_units:
@@ -247,55 +537,128 @@ th:
trillion: T
unit: ''
pagination:
- next: ต่อไป
- prev: ย้อนกลับ
+ newer: ใหม่กว่า
+ next: ถัดไป
+ older: เก่ากว่า
+ prev: ก่อนหน้า
truncate: "…"
+ preferences:
+ languages: ภาษา
+ other: อื่น ๆ
+ publishing: การเผยแพร่
+ web: เว็บ
+ relationships:
+ activity: กิจกรรมบัญชี
+ relationship: ความสัมพันธ์
+ remove_selected_domains: เอาผู้ติดตามทั้งหมดออกจากโดเมนที่เลือก
+ remove_selected_followers: เอาผู้ติดตามที่เลือกออก
+ remove_selected_follows: เลิกติดตามผู้ใช้ที่เลือก
+ status: สถานะบัญชี
remote_follow:
- acct: Enter your username@domain you want to follow from
+ acct: ป้อน username@domain ของคุณที่คุณต้องการกระทำจาก
missing_resource: Could not find the required redirect URL for your account
- proceed: Proceed to follow
- prompt: 'You are going to follow:'
+ no_account_html: ไม่มีบัญชี? คุณสามารถ ลงทะเบียนที่นี่
+ proceed: ดำเนินการต่อเพื่อติดตาม
+ prompt: 'คุณกำลังจะติดตาม:'
+ remote_interaction:
+ favourite:
+ proceed: ดำเนินการต่อเพื่อชื่นชอบ
+ prompt: 'คุณต้องการชื่นชอบโพสต์นี้:'
+ reblog:
+ proceed: ดำเนินการต่อเพื่อดัน
+ prompt: 'คุณต้องการดันโพสต์นี้:'
+ reply:
+ proceed: ดำเนินการต่อเพื่อตอบกลับ
+ prompt: 'คุณต้องการตอบกลับโพสต์นี้:'
+ remote_unfollow:
+ error: ข้อผิดพลาด
+ title: ชื่อเรื่อง
+ unfollowed: เลิกติดตามแล้ว
+ sessions:
+ activity: กิจกรรมล่าสุด
+ browser: เบราว์เซอร์
+ ip: IP
+ revoke: เพิกถอน
settings:
- authorized_apps: Authorized apps
- back: กลับไปที่แมสโทดอน
+ authorized_apps: แอปที่ได้รับอนุญาต
+ back: กลับไปที่ Mastodon
+ delete: การลบบัญชี
+ development: การพัฒนา
edit_profile: แก้ไขโปรไฟล์
- export: นำข้อมูลออก
- followers: Authorized followers
+ export: การส่งออกข้อมูล
import: นำเข้า
- preferences: Preferences
- settings: ตั้งค่า
- two_factor_authentication: Two-factor Authentication
+ notifications: การแจ้งเตือน
+ preferences: การกำหนดลักษณะ
+ relationships: การติดตามและผู้ติดตาม
+ two_factor_authentication: การรับรองความถูกต้องด้วยสองปัจจัย
statuses:
+ attached:
+ description: 'แนบ: %{attached}'
+ image:
+ one: "%{count} ภาพ"
+ other: "%{count} ภาพ"
+ video:
+ one: "%{count} วิดีโอ"
+ other: "%{count} วิดีโอ"
+ content_warning: 'คำเตือนเนื้อหา: %{warning}'
open_in_web: เปิดในเว็บ
over_character_limit: character limit of %{max} exceeded
- show_more: แสดงเพิ่มอีก
+ pin_errors:
+ reblog: ไม่สามารถปักหมุดการดัน
+ poll:
+ total_votes:
+ one: "%{count} การลงคะแนน"
+ other: "%{count} การลงคะแนน"
+ show_more: แสดงเพิ่มเติม
+ sign_in_to_participate: ลงชื่อเข้าเพื่อเข้าร่วมการสนทนา
+ title: '%{name}: "%{quote}"'
visibilities:
- private: สำหรับผู้ติดตามเท่านั้น
- private_long: ให้เห็นเฉพาะผู้ติดตาม
- public: Public
- public_long: เปิดให้ทุกคนเห็นได้
- unlisted: Unlisted
+ private: ผู้ติดตามเท่านั้น
+ private_long: แสดงต่อผู้ติดตามเท่านั้น
+ public: สาธารณะ
+ public_long: ทุกคนสามารถเห็น
+ unlisted: ไม่อยู่ในรายการ
unlisted_long: Everyone can see, but not listed on public timelines
stream_entries:
+ pinned: โพสต์ที่ปักหมุด
reblogged: boosted
- sensitive_content: Sensitive content
+ sensitive_content: เนื้อหาที่ละเอียดอ่อน
+ themes:
+ contrast: Mastodon (ความคมชัดสูง)
+ default: Mastodon (มืด)
+ mastodon-light: Mastodon (สว่าง)
time:
formats:
- default: "%b %d, %Y, %H:%M"
+ default: "%d %b %Y, %H:%M"
+ month: "%b %Y"
two_factor_authentication:
code_hint: Enter the code generated by your authenticator app to confirm
description_html: If you enable two-factor authentication, logging in will require you to be in possession of your phone, which will generate tokens for you to enter.
- disable: ปิด
- enable: เปิด
- enabled_success: Two-factor authentication successfully enabled
- generate_recovery_codes: สร้าง Recovery Codes
+ disable: ปิดใช้งาน
+ enable: เปิดใช้งาน
+ enabled: เปิดใช้งานการรับรองความถูกต้องด้วยสองปัจจัยแล้ว
+ enabled_success: เปิดใช้งานการรับรองความถูกต้องด้วยสองปัจจัยสำเร็จ
+ generate_recovery_codes: สร้างรหัสกู้คืน
instructions_html: "Scan this QR code into Google Authenticator or a similiar TOTP app on your phone. From now on, that app will generate tokens that you will have to enter when logging in."
lost_recovery_codes: Recovery codes allow you to regain access to your account if you lose your phone. If you've lost your recovery codes, you can regenerate them here. Your old recovery codes will be invalidated.
manual_instructions: 'If you can''t scan the QR code and need to enter it manually, here is the plain-text secret:'
recovery_codes_regenerated: Recovery codes successfully regenerated
recovery_instructions_html: If you ever lose access to your phone, you can use one of the recovery codes below to regain access to your account. Keep the recovery codes safe, for example by printing them and storing them with other important documents.
setup: ตั้งค่า
- wrong_code: รหัสที่กรอกไม่ถูกต้อง! Are server time and device time correct?
+ wrong_code: รหัสที่ป้อนไม่ถูกต้อง! เวลาเซิร์ฟเวอร์และเวลาอุปกรณ์ถูกต้องหรือไม่?
+ user_mailer:
+ warning:
+ title:
+ none: คำเตือน
+ silence: จำกัดบัญชีอยู่
+ suspend: ระงับบัญชีอยู่
+ welcome:
+ review_preferences_action: เปลี่ยนการกำหนดลักษณะ
+ subject: ยินดีต้อนรับสู่ Mastodon
+ tips: เคล็ดลับ
users:
- invalid_email: อีเมล์ไม่ถูกต้อง
- invalid_otp_token: two-factor code ไม่ถูกต้อง
+ invalid_email: ที่อยู่อีเมลไม่ถูกต้อง
+ invalid_otp_token: รหัสสองปัจจัยไม่ถูกต้อง
+ signed_in_as: 'ลงชื่อเข้าเป็น:'
+ verification:
+ verification: การตรวจสอบ
diff --git a/config/locales/tr.yml b/config/locales/tr.yml
index c38b73f2e..e3e27e3ef 100644
--- a/config/locales/tr.yml
+++ b/config/locales/tr.yml
@@ -1,73 +1,166 @@
---
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
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ış.
+ generic_description: "%{domain} ağdaki bir sunucudur"
+ hosted_on: Mastodon %{domain} üzerinde barındırılıyor
+ learn_more: Daha fazla bilgi edinin
+ 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
- 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
@@ -114,8 +207,6 @@ tr:
closed_message:
desc_html: Kayıt alımları kapatıldığında ana sayfada görüntülenecek mesajdır.
HTML etiketleri kullanabilirsiniz
title: Kayıt alımları kapatılma mesajı
- open:
- title: Kayıt alımları
site_description:
desc_html: Ana sayfada paragraf olarak görüntülenecek bilgidir.
Özellikle <a>
ve <em>
olmak suretiyle HTML etiketlerini kullanabilirsiniz.
title: Site açıklaması
@@ -131,7 +222,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:'
@@ -178,18 +277,6 @@ tr:
follows: Takip ettikleriniz
mutes: Susturduklarınız
storage: Ortam deposu
- followers:
- domain: Domain
- explanation_html: Eğer gönderilerinizin gizliliğini garanti altına almak istiyorsanız, sizi kimin takip ettiğinden emin olmak zorundasınız. Gizli gönderileriniz, takipçilerinizin olduğu bütün sunuculara iletilir. Gönderilerinizi gözden geçirmek isteyebilir, ve o sunuculardaki yazılımın veya ilgili çalışanın, gizliliğinizi suistimal edeceğinizi düşünüyorsanız, o sunucudaki takipçilerinizi silebilirsiniz.
- followers_count: Takipçi sayısı
- lock_link: Hesabımı kilitle
- purge: Takipçilerimden çıkar
- success:
- one: Domaindeki takipçilerin engellenmesi sürüyor...
- other: "%{count} domaindeki takipçilerin engellenmesi sürüyor..."
- true_privacy_html: 'Lütfen aklınızda bulundurun: gerçek gizlilik yalnızca uçtan-uca şifreleme ile sağlanır.'
- unlocked_warning_html: Herhangi bir kişi sizi takip edebilir ve paylaştığınız gizli gönderilerinizi görebilir. %{lock_link}'e tıklayarak takipçilerinizi gözden geçirebilir ve reddedebilirsiniz.
- unlocked_warning_title: Hesabınız kilitlendi
generic:
changes_saved_msg: Değişiklikler başarıyla kaydedildi!
save_changes: Değişiklikleri kaydet
@@ -258,10 +345,8 @@ tr:
back: Mastodon'a geri dön
edit_profile: Profili düzenle
export: Dışa aktar
- followers: İzin verilmiş takipçiler
import: İçe aktar
preferences: Tercihler
- settings: Ayarlar
two_factor_authentication: İki-faktörlü doğrulama
statuses:
open_in_web: Web sayfasında aç
diff --git a/config/locales/uk.yml b/config/locales/uk.yml
index 9a63854b5..a582b2385 100644
--- a/config/locales/uk.yml
+++ b/config/locales/uk.yml
@@ -6,7 +6,6 @@ uk:
about_this: Про цю інстанцію
administered_by: 'Адміністратор:'
api: API
- closed_registrations: На даний момент реєстрація на цій інстанції закрита.
contact: Зв'язатися
contact_missing: Не зазначено
contact_unavailable: Недоступно
@@ -14,19 +13,9 @@ uk:
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: Велика кількість застосунків для iOS, Android та інших платформ, завдяки дружній до розробника екосистемі дозволяє бути на звязку з друзями звідусіль.
- within_reach_title: Завжди на звязку
generic_description: "%{domain} є одним сервером у мережі"
hosted_on: Mastodon розміщено на %{domain}
learn_more: Дізнатися більше
- other_instances: Інші інстанції
privacy_policy: Політика приватності
source_code: Вихідний код
status_count_after: статусів
@@ -331,9 +320,6 @@ uk:
min_invite_role:
disabled: Ніхто
title: Дозволити запрошення від
- open:
- desc_html: Дозволити будь-ком створювати аккаунт
- title: Відкрити реєстрацію
show_known_fediverse_at_about_page:
desc_html: Коли увімкнено, будуть показані пости з усього відомого федисвіту у передпоказі. Інакше будуть показані локальні пости.
title: Показувати доступний федисвіт у передпоказі фіду
@@ -400,7 +386,6 @@ uk:
warning: Будьте дуже обережні з цими даними. Ніколи не діліться ними ні з ким!
your_token: Ваш токен доступу
auth:
- agreement_html: Реєструючись, ви погоджуєтеся виконувати правила інстанції та наші умови використання.
change_password: Пароль
confirm_email: Підтвердьте e-mail адресу
delete_account: Видалити аккаунт
@@ -412,13 +397,11 @@ uk:
logout: Вийти
migrate_account: Переїхати до іншого аккаунту
migrate_account_html: Якщо ви бажаєте, щоб відвідувачі цього акканту були перенаправлені до іншого, ви можете налаштувати це тут.
- or: або
or_log_in_with: Або увійдіть з
providers:
cas: CAS
saml: SAML
register: Зареєструватися
- register_elsewhere: Зареєструватися на іншому сервері
resend_confirmation: Повторно відправити інструкції з підтвердження
reset_password: Скинути пароль
security: Зміна паролю
@@ -497,16 +480,6 @@ uk:
title: Фільтри
new:
title: Додати фільтр
- followers:
- domain: Домен
- explanation_html: Якщо Ви хочете бути впевнені в приватності Ваших статусів, Ви повинні мати чітке уявлення про те, хто на Вас підписаний. Ваші приватні статусі відправляються усім сайтам, на яких у Вас є підписники. Рекомендуємо видалити з підписників користувачів інстанцій, адміністрації чи програмному забезпеченню яких Ви не довіряєте.
- followers_count: Кількість підписників
- lock_link: Закрийте акаунт
- purge: Видалити з підписників
- success: У процесі м'якого блокування підписників з %{count} доменів...
- true_privacy_html: Будь ласка, помітьте, що справжняя конфіденційність може бути досягнена тільки за допомогою end-to-end шифрування.
- unlocked_warning_html: Хто завгодно може підписатися на Вас та отримати доступ до перегляду Ваших приватних статусів. %{lock_link}, щоб отримати можливість роздивлятися та вручну підтверджувати запити щодо підписки.
- unlocked_warning_title: Ваш аккаунт не закритий для підписки
generic:
changes_saved_msg: Зміни успішно збережені!
save_changes: Зберегти зміни
@@ -671,14 +644,11 @@ uk:
development: Розробка
edit_profile: Редагувати профіль
export: Експорт даних
- followers: Авторизовані підписники
import: Імпорт
migrate: Міграція акаунту
notifications: Сповіщення
preferences: Налаштування
- settings: Опції
two_factor_authentication: Двофакторна авторизація
- your_apps: Ваші затосунки
statuses:
attached:
description: 'Прикріплено: %{attached}'
diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml
index e482e9c41..ae49c0537 100644
--- a/config/locales/zh-CN.yml
+++ b/config/locales/zh-CN.yml
@@ -4,10 +4,11 @@ zh-CN:
about_hashtag_html: 这里展示的是带有话题标签 #%{hashtag} 的公开嘟文。如果你想与他们互动,你需要在任意一个 Mastodon 实例或与其兼容的网站上拥有一个帐户。
about_mastodon_html: Mastodon(长毛象)是一个建立在开放式网络协议和自由、开源软件之上的社交网络,有着类似于电子邮件的分布式设计。
about_this: 关于本实例
+ active_count_after: 活跃
+ active_footnote: 每月活跃用户
administered_by: 本实例的管理员:
api: API
apps: 移动应用
- closed_registrations: 这个实例目前没有开放注册。不过,你可以前往其他实例注册一个帐户,同样可以加入到这个网络中哦!
contact: 联系方式
contact_missing: 未设定
contact_unavailable: 未公开
@@ -15,25 +16,19 @@ zh-CN:
extended_description_html: |
这里可以写一些规定
本站尚未设置详细介绍。
- features:
- humane_approach_body: Mastodon 从其他网络的失败经验中汲取了教训,致力于在与错误的社交媒体使用方式的斗争中做出符合伦理化设计的选择。
- humane_approach_title: 更加以人为本
- not_a_product_body: Mastodon 绝非一个商业网络。这里既没有广告,也没有数据挖掘,更没有围墙花园。中心机构在这里不复存在。
- not_a_product_title: 作为用户,你并非一件商品
- real_conversation_body: Mastodon 有着高达 500 字的字数限制,以及对内容的细化控制和媒体警告提示的支持,只为让你能够畅所欲言。
- real_conversation_title: 为真正的交流而生
- within_reach_body: 通过一个面向开发者友好的 API 生态系统,Mastodon 让你可以随时随地通过众多 iOS、Android 以及其他平台的应用与朋友们保持联系。
- within_reach_title: 始终触手可及
generic_description: "%{domain} 是这个庞大网络中的一台服务器"
hosted_on: 一个在 %{domain} 上运行的 Mastodon 实例
learn_more: 了解详情
- other_instances: 其他实例
privacy_policy: 隐私政策
source_code: 源代码
- status_count_after: 条嘟文
+ status_count_after:
+ one: 条嘟文
+ other: 条嘟文
status_count_before: 他们共嘟出了
terms: 使用条款
- user_count_after: 位用户
+ user_count_after:
+ one: 位用户
+ other: 位用户
user_count_before: 这里共注册有
what_is_mastodon: Mastodon 是什么?
accounts:
@@ -115,13 +110,13 @@ zh-CN:
most_recent_ip: 最后一次活跃的 IP 地址
not_subscribed: 未订阅
outbox_url: 发件箱(Outbox)URL
- perform_full_suspension: 永久封禁
+ perform_full_suspension: 封禁
profile_url: 个人资料页面 URL
promote: 升任
protocol: 协议
public: 公开页面
push_subscription_expires: PuSH 订阅过期时间
- redownload: 刷新头像
+ redownload: 刷新个人资料
remove_avatar: 删除头像
resend_confirmation:
already_confirmed: 该用户已被确认
@@ -136,7 +131,7 @@ zh-CN:
moderator: 监察员
staff: 管理人员
user: 普通用户
- salmon_url: Salmon URL
+ salmon_url: 三文鱼协议网址(Salmon URL)
search: 搜索
shared_inbox_url: 公用收件箱(Shared Inbox)URL
show:
@@ -206,7 +201,7 @@ zh-CN:
shortcode_hint: 至少 2 个字符,只能使用字母、数字和下划线
title: 自定义表情
unlisted: 已隐藏
- update_failed_msg: 表情更新失败!
+ update_failed_msg: 表情更新失败
updated_msg: 表情更新成功!
upload: 上传新表情
dashboard:
@@ -231,7 +226,7 @@ zh-CN:
week_users_active: 本周活跃用户数
week_users_new: 本周新用户数
domain_blocks:
- add_new: 添加新条目
+ add_new: 添加新屏蔽域名
created_msg: 正在进行域名屏蔽
destroyed_msg: 域名屏蔽已撤销
domain: 域名
@@ -255,7 +250,7 @@ zh-CN:
suspend: 对此域名的所有帐户解除封禁
title: 撤销对 %{domain} 的域名屏蔽
undo: 撤销
- undo: 撤销
+ undo: 撤销屏蔽域名
email_domain_blocks:
add_new: 添加新条目
created_msg: 电子邮件域名屏蔽添加成功
@@ -351,9 +346,6 @@ zh-CN:
min_invite_role:
disabled: 没有人
title: 允许发送邀请的用户组
- open:
- desc_html: 允许所有人建立帐户
- title: 开放注册
show_known_fediverse_at_about_page:
desc_html: 启用此选项将会在预览中显示来自已知实例的嘟文,否则只会显示本站时间轴的内容.
title: 在时间轴预览中显示已知实例
@@ -361,7 +353,7 @@ zh-CN:
desc_html: 在个人资料页上显示管理人员标志
title: 显示管理人员标志
site_description:
- desc_html: 用于首页展示以及 meta 标签中的网站简介。可以使用 HTML 标签,包括 <a>
和 <em>
+ desc_html: 首页上的介绍文字。 描述一下本 Mastodon 实例的特殊之处以及其他重要信息。可以使用 HTML 标签,包括 <a>
和 <em>
。
title: 本站简介
site_description_extended:
desc_html: 可以填写行为守则、规定、指南或其他本站特有的内容。可以使用 HTML 标签
@@ -404,7 +396,7 @@ zh-CN:
subject: 来自 %{instance} 的用户举报(#%{id})
application_mailer:
notification_preferences: 更改电子邮件首选项
- salutation: "%{name}:"
+ salutation: "%{name},"
settings: 使用此链接更改你的电子邮件首选项:%{link}
view: 点此链接查看详情:
view_profile: 查看个人资料页
@@ -418,7 +410,6 @@ zh-CN:
warning: 一定小心,千万不要把它分享给任何人!
your_token: 你的访问令牌
auth:
- agreement_html: 注册即表示你同意遵守本实例的相关规定和我们的使用条款。
change_password: 密码
confirm_email: 确认电子邮件地址
delete_account: 删除帐户
@@ -430,13 +421,11 @@ zh-CN:
logout: 登出
migrate_account: 迁移到另一个帐户
migrate_account_html: 如果你希望引导他人关注另一个帐户,请点击这里进行设置。
- or: 或者
or_log_in_with: 或通过其他方式登录
providers:
cas: CAS
saml: SAML
register: 注册
- register_elsewhere: 前往其他实例注册
resend_confirmation: 重新发送确认邮件
reset_password: 重置密码
security: 帐户安全
@@ -477,7 +466,7 @@ zh-CN:
errors:
'403': 你没有访问这个页面的权限。
'404': 无法找到你所要访问的页面。
- '410': 你所要访问的页面已被删除。
+ '410': 你所要访问的页面此处已不存在。
'422':
content: 无法确认登录信息。你是不是屏蔽了 Cookie?
title: 无法确认登录信息
@@ -514,16 +503,6 @@ zh-CN:
title: 过滤器
new:
title: 添加新的过滤器
- followers:
- domain: 域名
- explanation_html: 为保证你的嘟文的隐私安全,你应当经常检查你的关注者列表。受保护的嘟文将会发送到所有关注者所在的实例上。有些实例使用的软件代码或其管理员可能不会尊重你的隐私设置,因此你应当复查一下关注者列表,并移除那些你无法信任的关注者。
- followers_count: 关注者数量
- lock_link: 为你的帐户开启保护
- purge: 从关注者中移除
- success: 正在从 %{count} 个域名中移除关注者……
- true_privacy_html: 请始终铭记:真正的隐私只能靠端到端加密来实现!
- unlocked_warning_html: 任何人都可以在关注你后立即查看非公开的嘟文。只要%{lock_link},你就可以审核并拒绝关注请求。
- unlocked_warning_title: 你的帐户未受到保护
generic:
changes_saved_msg: 更改保存成功!
save_changes: 保存更改
@@ -595,7 +574,7 @@ zh-CN:
title: 新的关注者
follow_request:
action: 处理关注请求
- body: "%{name} 向你发送了关注请求!"
+ body: "%{name} 向你发送了关注请求"
subject: 来自 %{name} 的关注请求
title: 新的关注请求
mention:
@@ -623,7 +602,7 @@ zh-CN:
next: 下一页
older: 更早
prev: 上一页
- truncate: "…"
+ truncate: "…"
preferences:
languages: 语言
other: 其他
@@ -687,14 +666,11 @@ zh-CN:
development: 开发
edit_profile: 更改个人资料
export: 导出
- followers: 已授权的关注者
import: 导入
migrate: 帐户迁移
notifications: 通知
preferences: 首选项
- settings: 设置
two_factor_authentication: 双重认证
- your_apps: 你的应用
statuses:
attached:
description: 附加媒体:%{attached}
@@ -733,8 +709,8 @@ zh-CN:
terms:
title: "%{instance} 使用条款和隐私权政策"
themes:
- contrast: 高对比度
- default: Mastodon
+ contrast: Mastodon(高对比度)
+ default: Mastodon(暗色主题)
mastodon-light: Mastodon(亮色主题)
time:
formats:
@@ -754,7 +730,7 @@ zh-CN:
recovery_codes_regenerated: 恢复代码重新生成成功
recovery_instructions_html: 如果你的手机无法使用,你可以使用下列任意一个恢复代码来重新获得对帐户的访问权。请妥善保管好你的恢复代码(例如,你可以将它们打印出来,然后和其他重要的文件放在一起)。
setup: 设置
- wrong_code: 输入的认证码无效!请核对一下你的设备显示的时间,如果正确,你可能需要联系一下实例的管理员,让他们校准服务器的时间。
+ wrong_code: 输入的认证码无效!请确认服务器时间与设备时间是否正确?
user_mailer:
backup_ready:
explanation: 你请求了一份 Mastodon 帐户的完整备份。现在你可以下载了!
diff --git a/config/locales/zh-HK.yml b/config/locales/zh-HK.yml
index 737ca000c..aade1debb 100644
--- a/config/locales/zh-HK.yml
+++ b/config/locales/zh-HK.yml
@@ -5,26 +5,15 @@ zh-HK:
about_mastodon_html: Mastodon(萬象)是自由、開源的社交網絡。服務站各自獨立而互連,避免單一商業機構壟斷。找你所信任的服務站,建立帳號,你即可與任何服務站上的用戶溝通,享受無縫的網絡交流。
about_this: 關於本服務站
administered_by: 管理者:
- closed_registrations: 本服務站暫時停止接受登記。
contact: 聯絡
contact_missing: 未設定
contact_unavailable: 未公開
extended_description_html: |
這裡可以寫一些網站規則
本站未有詳細介紹
- features:
- humane_approach_body: Mastodon 從其他網絡的失敗經驗中汲取教訓,以合乎道德的設計對抗社交媒體的濫用問題。
- humane_approach_title: 以人為本
- not_a_product_body: Mastodon 不是商業網絡。沒有廣告,沒有數據挖掘,也沒有中央機構操控。平台完全開放。
- not_a_product_title: 你是用戶,不是商品
- real_conversation_body: Mastodon 的字數限制高達 500 字,並支援仔細的媒體警告選項,令你暢所欲言。
- real_conversation_title: 為真正的交流而生
- within_reach_body: 簡易的 API 系統,令用戶可以透過不同的 iOS、Android 及其他平台的應用軟件,與朋友保持聯繫。
- within_reach_title: 無處不在
generic_description: "%{domain} 是 Mastodon 網絡中其中一個服務站"
hosted_on: 在 %{domain} 運作的 Mastodon 服務站
learn_more: 了解更多
- other_instances: 其他服務站
source_code: 源代碼
status_count_after: 篇文章
status_count_before: 他們共發佈了
@@ -299,9 +288,6 @@ zh-HK:
min_invite_role:
disabled: 沒有人
title: 允許發送邀請的身份
- open:
- desc_html: 允許所有人建立帳戶
- title: 開放註冊
show_known_fediverse_at_about_page:
desc_html: 如果開啟,就會在時間軸預覽顯示跨站文章,否則就只會顯示本站文章。
title: 在時間軸預覽顯示跨站文章
@@ -366,7 +352,6 @@ zh-HK:
warning: 警告,不要把它分享給任何人!
your_token: token
auth:
- agreement_html: 登記即表示你同意遵守本服務站的規則和使用條款。
change_password: 密碼
confirm_email: 確認電郵
delete_account: 刪除帳戶
@@ -378,13 +363,11 @@ zh-HK:
logout: 登出
migrate_account: 轉移到另一個帳號
migrate_account_html: 想要將這個帳號指向另一個帳號可到這裡設定。
- or: 或
or_log_in_with: 或登入於
providers:
cas: CAS
saml: SAML
register: 登記
- register_elsewhere: 在其他服務站登記
resend_confirmation: 重發確認指示電郵
reset_password: 重設密碼
security: 登入資訊
@@ -447,18 +430,6 @@ zh-HK:
follows: 你所關注的用戶
mutes: 你所靜音的用戶
storage: 媒體容量大小
- followers:
- domain: 網域
- explanation_html: 如果你想確保你的私隱,請留意是甚麼用戶在關注你。即使你的將文章設定「私人文章」,它仍為會被遞送至你所有關注者的服務站。如果你不信任某些用戶、或其服務站的管理者會尊重你私隱,請將他們自關注者名單私除。
- followers_count: 關注者數目
- lock_link: 將用戶轉為「私人」
- purge: 私除關注者
- success:
- one: 正準備軟性阻擋 1 個網域的關注者……
- other: 正準備軟性阻擋 %{count} 個網域的關注者……
- true_privacy_html: 請謹記,唯有點對點加密方可以真正確保你的私隱。
- unlocked_warning_html: 目前任何人都可以看到你的私人文章,若%{lock_link}的話,你將可以審批關注者。
- unlocked_warning_title: 你的用戶目前為「公共」
generic:
changes_saved_msg: 已成功儲存修改。
save_changes: 儲存修改
@@ -622,14 +593,11 @@ zh-HK:
development: 開發
edit_profile: 修改個人資料
export: 匯出
- followers: 授權關注
import: 匯入
migrate: 帳戶遷移
notifications: 通知
preferences: 偏好設定
- settings: 設定
two_factor_authentication: 雙重認證
- your_apps: 你的應用程式
statuses:
attached:
description: 附件: %{attached}
diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml
index f4bda0f34..988357e1b 100644
--- a/config/locales/zh-TW.yml
+++ b/config/locales/zh-TW.yml
@@ -2,95 +2,115 @@
zh-TW:
about:
about_hashtag_html: 這些是包含「#%{hashtag}」標籤的公開文章。只要你有任何 Mastodon 站點、或者其他站點的使用者,便可以與他們互動。
- about_mastodon_html: Mastodon (長毛象)是一個自由、開放原始碼的社群網站。它是一個分散式的服務,避免您的通訊被單一商業機構壟斷操控。請您選擇一家您信任的 Mastodon 站點,在上面建立帳號,然後您就可以和任一 Mastodon 站點上的使用者互通,享受無縫的社群網路交流。
+ about_mastodon_html: Mastodon (長毛象)是一個自由、開放原始碼的社群網站。它是一個分散式的服務,避免您的通訊被單一商業機構壟斷操控。請您選擇一家您信任的 Mastodon 站點,在上面建立帳戶,然後您就可以和任一 Mastodon 站點上的使用者互通,享受無縫的社群網路交流。
about_this: 關於本站
+ active_count_after: 活躍
+ active_footnote: 每月活躍使用者 (MAU)
administered_by: 管理者:
api: API
- apps: Mobile apps
- closed_registrations: 本站暫時停止接受註冊。
+ apps: 行動應用程式
+ apps_platforms: 在 iOS、Android 和其他平台使用 Mastodon
+ browse_directory: 依興趣瀏覽個人資料目錄和過濾器
+ browse_public_posts: 在 Mastodon 瀏覽公開嘟文的即時串流
contact: 聯絡我們
contact_missing: 未設定
contact_unavailable: 未公開
+ discover_users: 探索使用者
documentation: 文件
extended_description_html: |
這裡可以寫一些網站規則
本站點未有詳細介紹
- features:
- humane_approach_body: Mastodon 從其他網路的失敗經驗中汲取教訓,以合乎道德的設計對抗社交媒體的濫用問題。
- humane_approach_title: 以人為本
- not_a_product_body: Mastodon 不是商業網站。沒有廣告,沒有數據挖掘,也沒有中央機構操控。平台完全開放。
- not_a_product_title: 你是用戶,不是商品
- real_conversation_body: Mastodon 的字數限制高達 500 字,並支援仔細的媒體警告選項,令你暢所欲言。
- real_conversation_title: 為真正的交流而生
- within_reach_body: 簡易的 API 系統,令用戶可以透過不同的 iOS、Android 及其他平台的應用軟體,與朋友保持聯繫。
- within_reach_title: 始終觸手可及
generic_description: "%{domain} 是 Mastodon 網路中其中一個站點"
+ get_apps: 嘗試行動應用程式
hosted_on: 在 %{domain} 運作的 Mastodon 站點
learn_more: 了解詳細
- other_instances: 其他站點
+ privacy_policy: 隱私權政策
+ see_whats_happening: 看看發生什麼事
+ server_stats: 伺服器統計:
source_code: 原始碼
- status_count_after: 狀態
+ status_count_after:
+ one: 條嘟文
+ other: 條嘟文
status_count_before: 他們共嘟出了
+ tagline: 關注朋友並探索新朋友
terms: 使用條款
- user_count_after: 使用者
- user_count_before: 這裡共註冊有
+ user_count_after:
+ one: 位使用者
+ other: 位使用者
+ user_count_before: 註冊使用者數
what_is_mastodon: 什麼是 Mastodon?
accounts:
+ choices_html: "%{name} 的選擇:"
follow: 關注
- followers: 關注者
+ 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} 的人
- posts: 嘟文
+ posts:
+ one: 嘟文
+ other: 嘟文
posts_tab_heading: 嘟文
posts_with_replies: 嘟文與回覆
- reserved_username: 此用戶名已被保留
+ reserved_username: 此使用者名稱已被保留
roles:
admin: 管理員
bot: 機器人
moderator: 版主
unfollow: 取消關注
admin:
+ account_actions:
+ action: 執行動作
+ title: 在 %{acct} 執行管理員動作
account_moderation_notes:
create: 記錄
created_msg: 已新增管理備忘!
delete: 刪除
destroyed_msg: 成功刪除管理備忘!
accounts:
+ approve: 核准
are_you_sure: 您確定嗎?
avatar: 頭像
- by_domain: 網域
+ by_domain: 站點
change_email:
- changed_msg: E-mail更改成功!
- current_email: 目前的E-mail
- label: 更改E-mail
- new_email: 新的E-mail
- submit: 更改E-mail
- title: 為 %{username} 更改E-mail
+ changed_msg: 已成功變更帳戶電子信箱位址!
+ current_email: 目前的電子信箱位址
+ label: 變更電子信箱位址
+ new_email: 新的電子信箱位址
+ submit: 變更電子信箱位址
+ title: 為 %{username} 變更電子信箱位址
confirm: 確定
confirmed: 已確定
confirming: 確定
+ deleted: 已刪除
demote: 降級
disable: 停用
disable_two_factor_authentication: 停用兩階段認證
disabled: 已停用
display_name: 暱稱
- domain: 網域
+ domain: 站點
edit: 編輯
- email: E-mail
- email_status: E-mail狀態
+ email: 電子信箱位址
+ email_status: 電子信箱狀態
enable: 啟用
enabled: 已啟用
feed_url: 訂閱 URL
followers: 關注者
followers_url: 關注者(Followers)URL
follows: 正在關注
+ header: 開頭
inbox_url: 收件箱 (Inbox) URL
+ invited_by: 邀請者
ip: IP 位址
+ joined: 已加入
location:
all: 全部
local: 本站
@@ -100,25 +120,31 @@ zh-TW:
media_attachments: 多媒體附件
memorialize: 設定為追悼帳戶
moderation:
+ active: 活躍
all: 全部
+ pending: 等待中
silenced: 已靜音
suspended: 已停權
title: 版務
moderation_notes: 管理備忘
most_recent_activity: 最近活動
most_recent_ip: 最近 IP 位址
+ no_limits_imposed: 未受限制
not_subscribed: 未訂閱
outbox_url: 寄件箱 (Outbox) URL
- perform_full_suspension: 進行停權
+ pending: 等待審核中
+ perform_full_suspension: 停權
profile_url: 個人檔案 URL
promote: 晉級
protocol: 協議
public: 公開
push_subscription_expires: PuSH 訂閱過期
- redownload: 更新頭像
+ redownload: 重新整理個人資料
+ reject: 拒絕
remove_avatar: 取消頭像
+ remove_header: 移除開頭
resend_confirmation:
- already_confirmed: 此用戶已被確認
+ already_confirmed: 此使用者已被確認
send: 重新發送驗證信
success: 驗證信發送成功!
reset: 重設
@@ -129,34 +155,39 @@ zh-TW:
admin: 管理員
moderator: 版主
staff: 管理人員
- user: 普通用戶
+ user: 普通使用者
salmon_url: Salmon 網址
search: 搜尋
- shared_inbox_url: 公共收件箱 (Shared Inbox) URL
+ shared_inbox_url: 共享收件箱網址
show:
- created_reports: 這個使用者提交的檢舉
- targeted_reports: 針對這個使用者的檢舉
+ created_reports: 建立檢舉
+ targeted_reports: 由其他人檢舉
silence: 靜音
+ silenced: 已靜音
statuses: 嘟文
subscribe: 訂閱
+ suspended: 已停權
title: 帳戶
- unconfirmed_email: 等待驗證的E-mail
+ unconfirmed_email: 未確認的電子信箱位址
undo_silenced: 取消靜音
undo_suspension: 取消停權
unsubscribe: 取消訂閱
username: 使用者名稱
+ warn: 警告
web: 頁面
action_logs:
actions:
assigned_to_self_report: "%{name} 接受了檢舉 %{target}"
- change_email_user: "%{name} 更改了使用者 %{target} 的E-mail"
- confirm_user: "%{name} 確認了使用者 %{target} 的E-mail"
+ 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} 封鎖了E-mail %{target}"
+ create_domain_block: "%{name} 封鎖了站點 %{target}"
+ create_email_domain_block: "%{name} 封鎖了電子信箱網域 %{target}"
demote_user: "%{name} 把使用者 %{target} 降級"
- destroy_domain_block: "%{name} 取消了對網域 %{target} 的封鎖"
- destroy_email_domain_block: "%{name} 取消了對E-mail %{target} 的封鎖"
+ destroy_custom_emoji: "%{name} 破壞了 %{target} 表情符號"
+ destroy_domain_block: "%{name} 取消了對站點 %{target} 的封鎖"
+ destroy_email_domain_block: "%{name} 取消了對電子信箱網域 %{target} 的封鎖"
destroy_status: "%{name} 刪除了 %{target} 的嘟文"
disable_2fa_user: "%{name} 停用了使用者 %{target} 的兩階段認證"
disable_custom_emoji: "%{name} 停用了自訂表情符號 %{target}"
@@ -176,9 +207,10 @@ zh-TW:
unsuspend_account: "%{name} 取消了使用者 %{target} 的停權狀態"
update_custom_emoji: "%{name} 更新了自訂表情符號 %{target}"
update_status: "%{name} 重整了 %{target} 的嘟文"
+ deleted_status: "(已刪除嘟文)"
title: 營運日誌
custom_emojis:
- by_domain: 網域
+ by_domain: 站點
copied_msg: 成功將表情複製到本地
copy: 複製
copy_failed_msg: 無法將表情複製到本地
@@ -202,42 +234,76 @@ zh-TW:
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: 網域
+ add_new: 新增欲封鎖域名
+ created_msg: 正在進行站點封鎖
+ destroyed_msg: 已撤銷站點封鎖
+ domain: 站點
new:
create: 新增封鎖
- hint: 網域封鎖動作並不會阻止帳戶紀錄被新增至資料庫,但會自動回溯性地對那些帳戶套用特定管理設定。
+ hint: 站點封鎖動作並不會阻止帳戶紀錄被新增至資料庫,但會自動回溯性地對那些帳戶套用特定管理設定。
severity:
- desc_html: "「自動靜音」令該網域下使用者的嘟文,設定為只對關注者顯示,沒有關注的人會看不到。 「自動刪除」會刪除將該網域下使用者的嘟文、媒體檔案和個人資料。「無」則會拒絕接收來自該網域的媒體檔案。"
+ desc_html: "「靜音」令該站點下使用者的嘟文,設定為只對關注者顯示,沒有關注的人會看不到。「停權」會刪除將該站點下使用者的嘟文、媒體檔案和個人資料。「無」則會拒絕接收來自該站點的媒體檔案。"
noop: 無
- silence: 自動靜音
+ silence: 靜音
suspend: 停權
- title: 新增封鎖網域
+ title: 新增封鎖站點
reject_media: 拒絕媒體檔案
- reject_media_hint: 刪除本地緩存的媒體檔案,並且不再接收來自該網域的任何媒體檔案。與自動封鎖無關
+ reject_media_hint: 刪除本地快取的媒體檔案,並且不再接收來自該站點的任何媒體檔案。與停權無關
+ reject_reports: 拒絕檢舉
+ reject_reports_hint: 忽略所有來自此站點的檢舉。與停權無關
+ rejecting_media: 拒絕媒體檔案
+ rejecting_reports: 拒絕檢舉中
+ severity:
+ silence: 已靜音
+ suspend: 已停權
show:
- affected_accounts: 資料庫中有%{count}個使用者受影響
+ affected_accounts:
+ one: 將影響到資料庫中的 1 個帳戶
+ other: 將影響到資料庫中的 %{count} 個帳戶
retroactive:
- silence: 對此網域的所有使用者取消靜音
- suspend: 對此網域的所有使用者取消封鎖
- title: 撤銷 %{domain} 的網域封鎖
+ silence: 對此站點的所有使用者取消靜音
+ suspend: 對此站點的所有使用者取消停權
+ title: 撤銷 %{domain} 的站點封鎖
undo: 撤銷
- undo: 撤銷
+ undo: 復原欲封鎖域名
email_domain_blocks:
add_new: 加入新項目
- created_msg: 已新增E-mail封鎖
+ created_msg: 已成功將電子信箱網域加入黑名單
delete: 刪除
- destroyed_msg: 已刪除E-mail封鎖
- domain: 網域
+ destroyed_msg: 已成功從黑名單刪除電子信箱網域
+ domain: 站點
new:
- create: 新增網域
- title: 新增E-mail封鎖
- title: E-mail封鎖
+ create: 新增站點
+ title: 新增電子信箱黑名單項目
+ title: 電子信箱黑名單
+ followers:
+ back_to_account: 返回帳戶
+ title: "%{acct} 的關注者"
instances:
- title: 已知站點
+ title: 聯邦
invites:
filter:
all: 全部
@@ -245,6 +311,8 @@ zh-TW:
expired: 已失效
title: 篩選
title: 邀請使用者
+ relays:
+ description_html: "聯邦中繼站 是種中繼伺服器,會在訂閱並推送至此中繼站的伺服器之間交換大量的公開嘟文。中繼站也能協助小型或中型伺服器從聯邦中探索內容,而無須本地使用者手動關注遠端伺服器的其他使用者。"
report_notes:
created_msg: 檢舉記錄建立成功!
destroyed_msg: 檢舉記錄刪除成功!
@@ -273,7 +341,7 @@ zh-TW:
reported_by: 檢舉人
resolved: 已解決
resolved_msg: 檢舉已處理!
- status: 狀態
+ status: 嘟文
title: 檢舉
unassign: 取消指派
unresolved: 未解決
@@ -283,17 +351,17 @@ zh-TW:
desc_html: 本站使用者發佈的嘟文數量,以及本站的活躍使用者與一週內新使用者數量
title: 公開使用者活躍度的統計數據
bootstrap_timeline_accounts:
- desc_html: 以半形逗號分隔多個使用者名。只能加入來自本站且未開啟保護的帳號。如果留空,則預設關注本站所有管理員。
+ desc_html: 以半形逗號分隔多個使用者名。只能加入來自本站且未開啟保護的帳戶。如果留空,則預設關注本站所有管理員。
title: 新使用者預設關注
contact_information:
- email: 請輸入一個公開E-mail
+ email: 用於聯絡的公開電子信箱位址
username: 請輸入使用者名稱
hero:
- desc_html: 在首頁顯示。推薦最小 600x100px。如果留空,就會預設為站點預覽圖
+ desc_html: 在首頁顯示。推薦最小 600x100px。如果留空,就會重設回伺服器預覽圖
title: 主題圖片
peers_api_enabled:
- desc_html: 現在本站點在網路中已發現的網域
- title: 公開已知站點的列表
+ desc_html: 本伺服器在聯邦中發現的站點
+ title: 發布已知伺服器的列表
registrations:
closed_message:
desc_html: 關閉註冊時顯示在首頁的內容,可使用 HTML 標籤
@@ -304,9 +372,6 @@ zh-TW:
min_invite_role:
disabled: 沒有人
title: 允許發送邀請的身份
- open:
- desc_html: 允許所有人建立帳戶
- title: 開放註冊
show_known_fediverse_at_about_page:
desc_html: 如果開啟,就會在時間軸預覽顯示其他站點嘟文,否則就只會顯示本站點嘟文。
title: 在時間軸預覽顯示其他站點嘟文
@@ -314,18 +379,18 @@ zh-TW:
desc_html: 在個人資料頁面上顯示管理人員標誌
title: 顯示管理人員標誌
site_description:
- desc_html: "在首頁顯示,及在 meta 標籤中的站點簡介。可以使用 HTML 標籤,包括 1< 2a> 3
4 and 5< 6em> 7
8."
- title: 站點描述
+ desc_html: 首頁上的介紹文字,描述此 Mastodon 伺服器的特別之處和其他重要資訊。可使用 HTML 標籤,包括 <a>
和 <em>
。
+ title: 伺服器描述
site_description_extended:
- desc_html: 顯示在資訊頁的長版描述,可使用 HTML 標籤
+ desc_html: 可放置行為準則、規定以及其他此伺服器特有的內容。可使用 HTML 標籤
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: 時間軸預覽
@@ -356,9 +421,9 @@ zh-TW:
body_remote: 來自 %{domain} 的使用者檢舉了使用者 %{target}
subject: 來自 %{instance} 的使用者檢舉(#%{id})
application_mailer:
- notification_preferences: 更改E-mail設定
- salutation: "%{name},"
- settings: 修改E-mail設定︰ %{link}
+ notification_preferences: 變更電子信件設定
+ salutation: "%{name}、"
+ settings: 變更電子信箱設定︰%{link}
view: '進入瀏覽:'
view_profile: 檢視個人資料頁
view_status: 檢視嘟文
@@ -371,9 +436,8 @@ zh-TW:
warning: 警告,不要把它分享給任何人!
your_token: 你的 token
auth:
- agreement_html: 註冊即表示你同意遵守本站點的規則和使用條款。
change_password: 密碼
- confirm_email: 確認E-mail
+ confirm_email: 確認電子信箱位址
delete_account: 刪除帳戶
delete_account_html: 如果你想刪除你的帳戶,請點擊這裡繼續。你需要確認你的操作。
didnt_get_confirmation: 沒有收到驗證信?
@@ -381,16 +445,14 @@ zh-TW:
invalid_reset_password_token: 密碼重設 token 無效或已過期。請重新設定密碼。
login: 登入
logout: 登出
- migrate_account: 轉移到另一個帳號
+ migrate_account: 轉移到另一個帳戶
migrate_account_html: 如果你希望引導他人關注另一個帳戶,請到這裡設定。
- or: 或
or_log_in_with: 或透過其他方式登入
providers:
cas: CAS
saml: SAML
register: 註冊
- register_elsewhere: 在其他站點註冊
- resend_confirmation: 重新寄送E-mail
+ resend_confirmation: 重新寄送確認指引
reset_password: 重設密碼
security: 登入資訊
set_new_password: 設定新密碼
@@ -422,15 +484,15 @@ zh-TW:
deletes:
bad_password_msg: 想得美,駭客! 密碼輸入錯誤
confirm_password: 輸入你現在的密碼來驗證身份
- description_html: 繼續操作將會永久地、不可還原地刪除帳戶中的所有內容,然後凍結帳戶。你的用戶名將會被保留,以防有人冒用你的身份。
+ description_html: 繼續操作將會永久地、不可還原地刪除帳戶中的所有內容,然後凍結帳戶。你的使用者名稱將會被保留,以防有人冒用你的身份。
proceed: 刪除帳戶
success_msg: 你的帳戶已經成功刪除
- warning_html: 我們只能保證本站點上的內容將會被徹底刪除。對於已經被廣泛傳播的內容,它們在本站點以外的某些地方可能仍然可見。此外,失去連接的站點以及停止接收訂閱的站點所儲存的數據亦無法刪除。
+ warning_html: 我們只能保證本伺服器上的內容將會被徹底刪除。對於已經被廣泛傳播的內容,它們在本伺服器以外的某些地方可能仍然可見。此外,離線伺服器以及停止接收訂閱的伺服器所儲存的資料亦無法刪除。
warning_title: 關於已傳播的內容警告
errors:
'403': 你沒有觀看這個頁面的權限。
'404': 您所尋找的網頁不存在。
- '410': 您所尋找的網頁已不存在。
+ '410': 您所尋找的網頁此處已不存在。
'422':
content: 安全驗證失敗。請確定有開啟瀏覽器 Cookies 功能?
title: 安全驗證失敗
@@ -452,22 +514,12 @@ zh-TW:
follows: 您關注的使用者
mutes: 您靜音的使用者
storage: 儲存空間大小
- followers:
- domain: 網域
- explanation_html: 為確保個人隱私,您必須知道有哪些使用者正關注你。您的私密內容會被發送到所有您有被關注的站點上。如果您不信任這些站點的管理者,您可以選擇檢查或刪除您的關注者。
- followers_count: 關注者數量
- lock_link: 將你的帳戶設定為私人
- purge: 移除關注者
- success: 正準備軟性封鎖 %{count} 個網域的關注者……
- true_privacy_html: 請謹記,唯有點對點加密方可以真正確保你的隱私。
- unlocked_warning_html: 任何人都可以在關注你後立即查看非公開的嘟文。只要%{lock_link},你就可以審核並拒絕關注請求。
- unlocked_warning_title: 你的帳戶是公開的
generic:
changes_saved_msg: 已成功儲存修改!
save_changes: 儲存修改
validation_errors: 送出的資料有 %{count} 個問題
imports:
- preface: 您可以在此匯入您在其他站點所匯出的資料檔,包括關注的使用者、封鎖的使用者名單。
+ preface: 您可以在此匯入您在其他伺服器所匯出的資料檔,包括關注的使用者、封鎖的使用者名單。
success: 資料檔上傳成功,正在匯入,請稍候
types:
blocking: 您封鎖的使用者名單
@@ -490,7 +542,7 @@ zh-TW:
invited_by: 你的邀請人是:
max_uses: "%{count} 次"
max_uses_prompt: 無限制
- prompt: 建立分享連結,邀請他人在本站點註冊
+ prompt: 建立分享連結,邀請他人在本伺服器註冊
table:
expires_at: 失效時間
uses: 已使用次數
@@ -562,7 +614,7 @@ zh-TW:
publishing: 發佈
web: 站內
remote_follow:
- acct: 請輸入您的︰使用者名稱@站點網域
+ acct: 請輸入您的使用者名稱@站點網域
missing_resource: 無法找到資源
proceed: 下一步
prompt: '您希望關注:'
@@ -593,7 +645,7 @@ zh-TW:
weibo: 新浪微博
current_session: 目前的 session
description: "%{platform} 上的 %{browser}"
- explanation: 這些是現在正登入於你的 Mastodon 帳號的瀏覽器。
+ explanation: 這些是現在正登入於你的 Mastodon 帳戶的瀏覽器。
ip: IP 位址
platforms:
adobe_air: ''
@@ -610,14 +662,11 @@ zh-TW:
development: 開發
edit_profile: 編輯使用者資訊
export: 匯出
- followers: 授權關注者
import: 匯入
migrate: 帳戶搬遷
notifications: 通知
preferences: 偏好設定
- settings: 設定
two_factor_authentication: 兩階段認證
- your_apps: 你的應用程式
statuses:
attached:
description: 附件: %{attached}
@@ -650,8 +699,8 @@ zh-TW:
terms:
title: "%{instance} 使用條款和隱私權政策"
themes:
- contrast: 高對比
- mastodon-light: Mastodon (亮色主題)
+ contrast: Mastodon(高對比)
+ mastodon-light: Mastodon(亮色主題)
time:
formats:
default: "%Y年%-m月%d日 %H:%M"
@@ -673,18 +722,18 @@ zh-TW:
wrong_code: 您輸入的認證碼無效! 請確認伺服器時間與設備時間是否正確?
user_mailer:
backup_ready:
- explanation: 你要求的 Mastodon 帳號完整備份檔案現已就緒,可供下載!
+ explanation: 你要求的 Mastodon 帳戶完整備份檔案現已就緒,可供下載!
subject: 你的備份檔已可供下載
title: 檔案匯出
welcome:
edit_profile_action: 設定個人資料
- edit_profile_step: 你可以設定你的個人資料,包括上傳頭像、橫幅圖片、更改顯示名稱等等。如果你想在新的關注者關注你之前對他們進行審核,你也可以選擇為你的帳戶設為「私人」。
+ edit_profile_step: 你可以設定你的個人資料,包括上傳頭像、橫幅圖片、變更顯示名稱等等。如果你想在新的關注者關注你之前對他們進行審核,你也可以選擇為你的帳戶設為「私人」。
explanation: 下面是幾個小幫助,希望它們能幫到你
final_action: 開始嘟嘟
final_step: '開始嘟嘟吧! 即使你現在沒有關注者,其他人仍然能在本站時間軸或著話題標籤等地方看到你的公開嘟文。試著用 #introductions 這個話題標籤介紹一下自己吧。'
full_handle: 你的完整帳戶名稱
- full_handle_hint: 你需要把這個告訴你的朋友們,這樣他們就能從另一個站點向你發送訊息或著關注你。
- review_preferences_action: 更改偏好設定
+ full_handle_hint: 你需要把這告訴你的朋友們,這樣他們就能從另一個伺服器向你發送訊息或著關注你。
+ review_preferences_action: 變更偏好設定
review_preferences_step: 記得調整你的偏好設定,比如你想接收什麼類型的電子郵件,或著你想把你的嘟文可見範圍預設設定什麼級別。如果你沒有暈車的話,考慮一下啟用「自動播放 GIF 動畫」這個選項吧。
subject: 歡迎來到 Mastodon
tip_federated_timeline: 跨站公共時間軸可以讓你一窺更廣闊的 Mastodon 網路。不過,由於它們只顯示你的鄰居們所訂閱的內容,所以並不是全部。
@@ -694,7 +743,7 @@ zh-TW:
tips: 小幫手
title: "%{name} 歡迎你的加入!"
users:
- invalid_email: E-mail格式不正確
+ invalid_email: 電子信箱位址不正確
invalid_otp_token: 兩階段認證碼不正確
otp_lost_help_html: 如果你無法訪問這兩者,可以通過 %{email} 與我們聯繫
seamless_external_login: 由於你是從外部系統登入,所以不能設定密碼與電子郵件。
diff --git a/config/navigation.rb b/config/navigation.rb
index a9521f956..c2a8e45ce 100644
--- a/config/navigation.rb
+++ b/config/navigation.rb
@@ -1,48 +1,53 @@
# frozen_string_literal: true
SimpleNavigation::Configuration.run do |navigation|
- navigation.items do |primary|
- primary.item :web, safe_join([fa_icon('chevron-left fw'), t('settings.back')]), root_url
+ navigation.items do |n|
+ n.item :web, safe_join([fa_icon('chevron-left fw'), t('settings.back')]), root_url
- 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 :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}
- settings.item :two_factor_authentication, safe_join([fa_icon('mobile fw'), t('settings.two_factor_authentication')]), settings_two_factor_authentication_url, highlights_on: %r{/settings/two_factor_authentication}
- settings.item :import, safe_join([fa_icon('cloud-upload fw'), t('settings.import')]), settings_import_url
- settings.item :export, safe_join([fa_icon('cloud-download fw'), t('settings.export')]), settings_export_url
- settings.item :authorized_apps, safe_join([fa_icon('list fw'), t('settings.authorized_apps')]), oauth_authorized_applications_url
- settings.item :follower_domains, safe_join([fa_icon('users fw'), t('settings.followers')]), settings_follower_domains_url
+ n.item :profile, safe_join([fa_icon('user fw'), t('settings.profile')]), settings_profile_url do |s|
+ s.item :profile, safe_join([fa_icon('pencil fw'), t('settings.appearance')]), settings_profile_url, highlights_on: %r{/settings/profile|/settings/migration}
+ s.item :featured_tags, safe_join([fa_icon('hashtag fw'), t('settings.featured_tags')]), settings_featured_tags_url
+ s.item :identity_proofs, safe_join([fa_icon('key fw'), t('settings.identity_proofs')]), settings_identity_proofs_path, highlights_on: %r{/settings/identity_proofs*}, if: proc { current_account.identity_proofs.exists? }
end
- primary.item :filters, safe_join([fa_icon('filter fw'), t('filters.index.title')]), filters_path, highlights_on: %r{/filters}
- primary.item :invites, safe_join([fa_icon('user-plus fw'), t('invites.title')]), invites_path, if: proc { Setting.min_invite_role == 'user' }
+ n.item :preferences, safe_join([fa_icon('cog fw'), t('settings.preferences')]), settings_preferences_url, highlights_on: %r{/settings/preferences|/settings/notifications}
+ n.item :relationships, safe_join([fa_icon('users fw'), t('settings.relationships')]), relationships_url
+ n.item :filters, safe_join([fa_icon('filter fw'), t('filters.index.title')]), filters_path, highlights_on: %r{/filters}
- primary.item :development, safe_join([fa_icon('code fw'), t('settings.development')]), settings_applications_url do |development|
- development.item :your_apps, safe_join([fa_icon('list fw'), t('settings.your_apps')]), settings_applications_url, highlights_on: %r{/settings/applications}
+ n.item :security, safe_join([fa_icon('lock fw'), t('settings.account')]), edit_user_registration_url do |s|
+ s.item :password, safe_join([fa_icon('lock fw'), t('settings.account_settings')]), edit_user_registration_url, highlights_on: %r{/auth/edit|/settings/delete}
+ s.item :two_factor_authentication, safe_join([fa_icon('mobile fw'), t('settings.two_factor_authentication')]), settings_two_factor_authentication_url, highlights_on: %r{/settings/two_factor_authentication}
+ s.item :authorized_apps, safe_join([fa_icon('list fw'), t('settings.authorized_apps')]), oauth_authorized_applications_url
end
- primary.item :moderation, safe_join([fa_icon('gavel fw'), t('moderation.title')]), admin_reports_url, if: proc { current_user.staff? } do |admin|
- admin.item :action_logs, safe_join([fa_icon('bars fw'), t('admin.action_logs.title')]), admin_action_logs_url
- admin.item :reports, safe_join([fa_icon('flag fw'), t('admin.reports.title')]), admin_reports_url, highlights_on: %r{/admin/reports}
- admin.item :accounts, safe_join([fa_icon('users fw'), t('admin.accounts.title')]), admin_accounts_url, highlights_on: %r{/admin/accounts}
- admin.item :invites, safe_join([fa_icon('user-plus fw'), t('admin.invites.title')]), admin_invites_path
- admin.item :tags, safe_join([fa_icon('tag fw'), t('admin.tags.title')]), admin_tags_path
- admin.item :instances, safe_join([fa_icon('cloud fw'), t('admin.instances.title')]), admin_instances_url(limited: '1'), highlights_on: %r{/admin/instances|/admin/domain_blocks}, if: -> { current_user.admin? }
- admin.item :email_domain_blocks, safe_join([fa_icon('envelope fw'), t('admin.email_domain_blocks.title')]), admin_email_domain_blocks_url, highlights_on: %r{/admin/email_domain_blocks}, if: -> { current_user.admin? }
+ n.item :data, safe_join([fa_icon('cloud-download fw'), t('settings.import_and_export')]), settings_export_url do |s|
+ s.item :import, safe_join([fa_icon('cloud-upload fw'), t('settings.import')]), settings_import_url
+ s.item :export, safe_join([fa_icon('cloud-download fw'), t('settings.export')]), settings_export_url
end
- primary.item :admin, safe_join([fa_icon('cogs fw'), t('admin.title')]), admin_dashboard_url, if: proc { current_user.staff? } do |admin|
- admin.item :dashboard, safe_join([fa_icon('tachometer fw'), t('admin.dashboard.title')]), admin_dashboard_url
- admin.item :settings, safe_join([fa_icon('cogs fw'), t('admin.settings.title')]), edit_admin_settings_url, if: -> { current_user.admin? }
- admin.item :custom_emojis, safe_join([fa_icon('smile-o fw'), t('admin.custom_emojis.title')]), admin_custom_emojis_url, highlights_on: %r{/admin/custom_emojis}
- admin.item :relays, safe_join([fa_icon('exchange fw'), t('admin.relays.title')]), admin_relays_url, if: -> { current_user.admin? }, highlights_on: %r{/admin/relays}
- admin.item :subscriptions, safe_join([fa_icon('paper-plane-o fw'), t('admin.subscriptions.title')]), admin_subscriptions_url, if: -> { current_user.admin? }
- admin.item :sidekiq, safe_join([fa_icon('diamond fw'), 'Sidekiq']), sidekiq_url, link_html: { target: 'sidekiq' }, if: -> { current_user.admin? }
- admin.item :pghero, safe_join([fa_icon('database fw'), 'PgHero']), pghero_url, link_html: { target: 'pghero' }, if: -> { current_user.admin? }
+ n.item :invites, safe_join([fa_icon('user-plus fw'), t('invites.title')]), invites_path, if: proc { Setting.min_invite_role == 'user' }
+ n.item :development, safe_join([fa_icon('code fw'), t('settings.development')]), settings_applications_url
+
+ n.item :moderation, safe_join([fa_icon('gavel fw'), t('moderation.title')]), admin_reports_url, if: proc { current_user.staff? } do |s|
+ s.item :action_logs, safe_join([fa_icon('bars fw'), t('admin.action_logs.title')]), admin_action_logs_url
+ s.item :reports, safe_join([fa_icon('flag fw'), t('admin.reports.title')]), admin_reports_url, highlights_on: %r{/admin/reports}
+ s.item :accounts, safe_join([fa_icon('users fw'), t('admin.accounts.title')]), admin_accounts_url, highlights_on: %r{/admin/accounts|/admin/pending_accounts}
+ s.item :invites, safe_join([fa_icon('user-plus fw'), t('admin.invites.title')]), admin_invites_path
+ s.item :tags, safe_join([fa_icon('tag fw'), t('admin.tags.title')]), admin_tags_path
+ s.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? }
+ s.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
- primary.item :logout, safe_join([fa_icon('sign-out fw'), t('auth.logout')]), destroy_user_session_url, link_html: { 'data-method' => 'delete' }
+ n.item :admin, safe_join([fa_icon('cogs fw'), t('admin.title')]), admin_dashboard_url, if: proc { current_user.staff? } do |s|
+ s.item :dashboard, safe_join([fa_icon('tachometer fw'), t('admin.dashboard.title')]), admin_dashboard_url
+ s.item :settings, safe_join([fa_icon('cogs fw'), t('admin.settings.title')]), edit_admin_settings_url, if: -> { current_user.admin? }, highlights_on: %r{/admin/settings}
+ s.item :custom_emojis, safe_join([fa_icon('smile-o fw'), t('admin.custom_emojis.title')]), admin_custom_emojis_url, highlights_on: %r{/admin/custom_emojis}
+ s.item :relays, safe_join([fa_icon('exchange fw'), t('admin.relays.title')]), admin_relays_url, if: -> { current_user.admin? }, highlights_on: %r{/admin/relays}
+ s.item :subscriptions, safe_join([fa_icon('paper-plane-o fw'), t('admin.subscriptions.title')]), admin_subscriptions_url, if: -> { current_user.admin? }
+ s.item :sidekiq, safe_join([fa_icon('diamond fw'), 'Sidekiq']), sidekiq_url, link_html: { target: 'sidekiq' }, if: -> { current_user.admin? }
+ s.item :pghero, safe_join([fa_icon('database fw'), 'PgHero']), pghero_url, link_html: { target: 'pghero' }, if: -> { current_user.admin? }
+ end
+
+ n.item :logout, safe_join([fa_icon('sign-out fw'), t('auth.logout')]), destroy_user_session_url, link_html: { 'data-method' => 'delete' }
end
end
diff --git a/config/routes.rb b/config/routes.rb
index af49845cc..34d0081e7 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -22,6 +22,8 @@ Rails.application.routes.draw do
get '.well-known/host-meta', to: 'well_known/host_meta#show', as: :host_meta, defaults: { format: 'xml' }
get '.well-known/webfinger', to: 'well_known/webfinger#show', as: :webfinger
get '.well-known/change-password', to: redirect('/auth/edit')
+ get '.well-known/keybase-proof-config', to: 'well_known/keybase_proof_config#show'
+
get 'manifest', to: 'manifests#show', defaults: { format: 'json' }
get 'intent', to: 'intents#show'
get 'custom.css', to: 'custom_css#show', as: :custom_css
@@ -56,6 +58,7 @@ Rails.application.routes.draw do
member do
get :activity
get :embed
+ get :replies
end
end
@@ -74,6 +77,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
@@ -104,7 +108,7 @@ Rails.application.routes.draw do
resource :confirmation, only: [:new, :create]
end
- resource :follower_domains, only: [:show, :update]
+ resources :identity_proofs, only: [:index, :show, :new, :create, :update]
resources :applications, except: [:edit] do
member do
@@ -116,6 +120,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
@@ -126,7 +131,9 @@ Rails.application.routes.draw do
resources :emojis, only: [:show]
resources :invites, only: [:index, :create, :destroy]
resources :filters, except: [:show]
+ resource :relationships, only: [:show, :update]
+ get '/public', to: 'public_timelines#show', as: :public_timeline
get '/media_proxy/:id/(*any)', to: 'media_proxy#show', as: :media_proxy
# Remote follow
@@ -183,6 +190,8 @@ Rails.application.routes.draw do
post :remove_avatar
post :remove_header
post :memorialize
+ post :approve
+ post :reject
end
resource :change_email, only: [:show, :update]
@@ -205,6 +214,14 @@ Rails.application.routes.draw do
end
end
+ resources :pending_accounts, only: [:index] do
+ collection do
+ post :approve_all
+ post :reject_all
+ post :batch
+ end
+ end
+
resources :users, only: [] do
resource :two_factor_authentication, only: [:destroy]
end
@@ -243,6 +260,9 @@ Rails.application.routes.draw do
# OEmbed
get '/oembed', to: 'oembed#show', as: :oembed
+ # Identity proofs
+ get :proofs, to: 'proofs#index'
+
# JSON / REST API
namespace :v1 do
resources :statuses, only: [:create, :show, :destroy] do
@@ -280,6 +300,7 @@ Rails.application.routes.draw do
resources :custom_emojis, only: [:index]
resources :suggestions, only: [:index, :destroy]
resources :scheduled_statuses, only: [:index, :show, :update, :destroy]
+ resources :preferences, only: [:index]
resources :conversations, only: [:index, :destroy] do
member do
@@ -341,6 +362,7 @@ Rails.application.routes.draw do
resources :followers, only: :index, controller: 'accounts/follower_accounts'
resources :following, only: :index, controller: 'accounts/following_accounts'
resources :lists, only: :index, controller: 'accounts/lists'
+ resources :identity_proofs, only: :index, controller: 'accounts/identity_proofs'
member do
post :follow
@@ -359,6 +381,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 7b47951ad..5810361f9 100644
--- a/config/settings.yml
+++ b/config/settings.yml
@@ -9,7 +9,7 @@ defaults: &defaults
site_terms: ''
site_contact_username: ''
site_contact_email: ''
- open_registrations: true
+ registrations_mode: 'open'
profile_directory: true
closed_registrations_message: ''
open_deletion: true
@@ -27,6 +27,7 @@ defaults: &defaults
expand_spoilers: false
preview_sensitive_media: false
reduce_motion: false
+ show_application: true
system_font_ui: false
noindex: false
theme: 'default'
@@ -39,6 +40,7 @@ defaults: &defaults
follow_request: true
digest: true
report: true
+ pending_account: true
interactions:
must_be_follower: false
must_be_following: false
diff --git a/config/webpack/configuration.js b/config/webpack/configuration.js
index 4d325a828..80a094c72 100644
--- a/config/webpack/configuration.js
+++ b/config/webpack/configuration.js
@@ -1,12 +1,11 @@
// Common configuration for webpacker loaded from config/webpacker.yml
-const { join, resolve } = require('path');
+const { resolve } = require('path');
const { env } = require('process');
const { safeLoad } = require('js-yaml');
const { readFileSync } = require('fs');
const configPath = resolve('config', 'webpacker.yml');
-const loadersDir = join(__dirname, 'loaders');
const settings = safeLoad(readFileSync(configPath), 'utf8')[env.RAILS_ENV || env.NODE_ENV];
const themePath = resolve('config', 'themes.yml');
@@ -37,6 +36,5 @@ module.exports = {
CDN_HOST: env.CDN_HOST,
NODE_ENV: env.NODE_ENV,
},
- loadersDir,
output,
};
diff --git a/config/webpack/development.js b/config/webpack/development.js
index d54d919ec..1e50a4f46 100644
--- a/config/webpack/development.js
+++ b/config/webpack/development.js
@@ -1,12 +1,10 @@
// Note: You must restart bin/webpack-dev-server for changes to take effect
const merge = require('webpack-merge');
-const sharedConfig = require('./shared.js');
-const { settings, output } = require('./configuration.js');
+const sharedConfig = require('./shared');
+const { settings, output } = require('./configuration');
-const watchOptions = {
- ignored: /node_modules/,
-};
+const watchOptions = {};
if (process.env.VAGRANT) {
// If we are in Vagrant, we can't rely on inotify to update us with changed
@@ -17,7 +15,7 @@ if (process.env.VAGRANT) {
module.exports = merge(sharedConfig, {
mode: 'development',
-
+ cache: true,
devtool: 'cheap-module-eval-source-map',
stats: {
@@ -30,15 +28,33 @@ module.exports = merge(sharedConfig, {
devServer: {
clientLogLevel: 'none',
- https: settings.dev_server.https,
+ compress: settings.dev_server.compress,
+ quiet: settings.dev_server.quiet,
+ disableHostCheck: settings.dev_server.disable_host_check,
host: settings.dev_server.host,
port: settings.dev_server.port,
+ https: settings.dev_server.https,
+ hot: settings.dev_server.hmr,
contentBase: output.path,
+ inline: settings.dev_server.inline,
+ useLocalIp: settings.dev_server.use_local_ip,
+ public: settings.dev_server.public,
publicPath: output.publicPath,
- compress: true,
- headers: { 'Access-Control-Allow-Origin': '*' },
- historyApiFallback: true,
- disableHostCheck: true,
- watchOptions: watchOptions,
+ historyApiFallback: {
+ disableDotRule: true,
+ },
+ headers: settings.dev_server.headers,
+ overlay: settings.dev_server.overlay,
+ stats: {
+ entrypoints: false,
+ errorDetails: false,
+ modules: false,
+ moduleTrace: false,
+ },
+ watchOptions: Object.assign(
+ {},
+ settings.dev_server.watch_options,
+ watchOptions
+ ),
},
});
diff --git a/config/webpack/loaders/assets.js b/config/webpack/loaders/assets.js
deleted file mode 100644
index 643b3eeb0..000000000
--- a/config/webpack/loaders/assets.js
+++ /dev/null
@@ -1,12 +0,0 @@
-const { env, publicPath } = require('../configuration.js');
-
-module.exports = {
- test: /\.(jpg|jpeg|png|gif|svg|eot|ttf|woff|woff2)$/i,
- use: [{
- loader: 'file-loader',
- options: {
- publicPath,
- name: env.NODE_ENV === 'production' ? '[name]-[hash].[ext]' : '[name].[ext]',
- },
- }],
-};
diff --git a/config/webpack/loaders/babel.js b/config/webpack/loaders/babel.js
deleted file mode 100644
index 7509617fd..000000000
--- a/config/webpack/loaders/babel.js
+++ /dev/null
@@ -1,12 +0,0 @@
-const { resolve } = require('path');
-
-const env = process.env.NODE_ENV || 'development';
-
-module.exports = {
- test: /\.js$/,
- exclude: /node_modules/,
- loader: 'babel-loader',
- options: {
- cacheDirectory: env === 'development' ? false : resolve(__dirname, '..', '..', '..', 'tmp', 'cache', 'babel-loader'),
- },
-};
diff --git a/config/webpack/loaders/babel_external.js b/config/webpack/loaders/babel_external.js
deleted file mode 100644
index 39e74ed90..000000000
--- a/config/webpack/loaders/babel_external.js
+++ /dev/null
@@ -1,21 +0,0 @@
-const { resolve } = require('path');
-
-const env = process.env.NODE_ENV || 'development';
-
-if (env === 'development') {
- module.exports = {};
-} else {
- // babel options to apply only to external libraries, e.g. remove-prop-types
- module.exports = {
- test: /\.js$/,
- include: /node_modules/,
- loader: 'babel-loader',
- options: {
- babelrc: false,
- plugins: [
- 'transform-react-remove-prop-types',
- ],
- cacheDirectory: env === 'development' ? false : resolve(__dirname, '..', '..', '..', 'tmp', 'cache', 'babel-loader-external'),
- },
- };
-}
diff --git a/config/webpack/production.js b/config/webpack/production.js
index d37e11792..c829ff6f1 100644
--- a/config/webpack/production.js
+++ b/config/webpack/production.js
@@ -1,15 +1,14 @@
// Note: You must restart bin/webpack-dev-server for changes to take effect
-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');
-const { publicPath } = require('./configuration.js');
const path = require('path');
const { URL } = require('url');
+const merge = require('webpack-merge');
+const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer');
+const OfflinePlugin = require('offline-plugin');
+const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
+const CompressionPlugin = require('compression-webpack-plugin');
+const { output } = require('./configuration');
+const sharedConfig = require('./shared');
let attachmentHost;
@@ -28,15 +27,9 @@ if (process.env.S3_ENABLED === 'true') {
module.exports = merge(sharedConfig, {
mode: 'production',
-
- output: {
- filename: '[name]-[chunkhash].js',
- chunkFilename: '[name]-[chunkhash].js',
- },
-
- devtool: 'source-map', // separate sourcemap file, suitable for production
+ devtool: 'source-map',
stats: 'normal',
-
+ bail: true,
optimization: {
minimize: true,
minimizer: [
@@ -60,23 +53,17 @@ module.exports = merge(sharedConfig, {
plugins: [
new CompressionPlugin({
- algorithm(input, compressionOptions, callback) {
- return zopfli.gzip(input, compressionOptions, callback);
- },
- test: /\.(js|css|html|json|ico|svg|eot|otf|ttf)$/,
+ filename: '[path].gz[query]',
+ cache: true,
+ test: /\.(js|css|html|json|ico|svg|eot|otf|ttf|map)$/,
}),
- new BundleAnalyzerPlugin({ // generates report.html and stats.json
+ new BundleAnalyzerPlugin({ // generates report.html
analyzerMode: 'static',
- generateStatsFile: true,
- statsOptions: {
- // allows usage with http://chrisbateman.github.io/webpack-visualizer/
- chunkModules: true,
- },
openAnalyzer: false,
logLevel: 'silent', // do not bother Webpacker, who runs with --json and parses stdout
}),
new OfflinePlugin({
- publicPath: publicPath, // sw.js must be served from the root to avoid scope issues
+ publicPath: output.publicPath, // sw.js must be served from the root to avoid scope issues
caches: {
main: [':rest:'],
additional: [':externals:'],
diff --git a/config/webpack/rules/babel.js b/config/webpack/rules/babel.js
new file mode 100644
index 000000000..2fc245c43
--- /dev/null
+++ b/config/webpack/rules/babel.js
@@ -0,0 +1,21 @@
+const { join, resolve } = require('path');
+const { env, settings } = require('../configuration');
+
+module.exports = {
+ test: /\.(js|jsx|mjs)$/,
+ include: [
+ settings.source_path,
+ ...settings.resolved_paths,
+ ].map(p => resolve(p)),
+ exclude: /node_modules/,
+ use: [
+ {
+ loader: 'babel-loader',
+ options: {
+ cacheDirectory: join(settings.cache_path, 'babel-loader'),
+ cacheCompression: env.NODE_ENV === 'production',
+ compact: env.NODE_ENV === 'production',
+ },
+ },
+ ],
+};
diff --git a/config/webpack/loaders/sass.js b/config/webpack/rules/css.js
similarity index 70%
rename from config/webpack/loaders/sass.js
rename to config/webpack/rules/css.js
index 67a1890b8..27905a617 100644
--- a/config/webpack/loaders/sass.js
+++ b/config/webpack/rules/css.js
@@ -4,7 +4,14 @@ module.exports = {
test: /\.s?css$/i,
use: [
MiniCssExtractPlugin.loader,
- 'css-loader',
+ {
+ loader: 'css-loader',
+ options: {
+ sourceMap: true,
+ importLoaders: 2,
+ localIdentName: '[name]__[local]___[hash:base64:5]',
+ },
+ },
{
loader: 'postcss-loader',
options: {
diff --git a/config/webpack/rules/file.js b/config/webpack/rules/file.js
new file mode 100644
index 000000000..f2fb58780
--- /dev/null
+++ b/config/webpack/rules/file.js
@@ -0,0 +1,20 @@
+const { join } = require('path');
+const { settings } = require('../configuration');
+
+module.exports = {
+ test: new RegExp(`(${settings.static_assets_extensions.join('|')})$`, 'i'),
+ use: [
+ {
+ loader: 'file-loader',
+ options: {
+ name(file) {
+ if (file.includes(settings.source_path)) {
+ return 'media/[path][name]-[hash].[ext]';
+ }
+ return 'media/[folder]/[name]-[hash:8].[ext]';
+ },
+ context: join(settings.source_path),
+ },
+ },
+ ],
+};
diff --git a/config/webpack/rules/index.js b/config/webpack/rules/index.js
new file mode 100644
index 000000000..bbf6b0187
--- /dev/null
+++ b/config/webpack/rules/index.js
@@ -0,0 +1,14 @@
+const babel = require('./babel');
+const css = require('./css');
+const file = require('./file');
+const nodeModules = require('./node_modules');
+
+// Webpack loaders are processed in reverse order
+// https://webpack.js.org/concepts/loaders/#loader-features
+// Lastly, process static files using file loader
+module.exports = {
+ file,
+ css,
+ nodeModules,
+ babel,
+};
diff --git a/config/webpack/loaders/mark.js b/config/webpack/rules/mark.js
similarity index 100%
rename from config/webpack/loaders/mark.js
rename to config/webpack/rules/mark.js
diff --git a/config/webpack/rules/node_modules.js b/config/webpack/rules/node_modules.js
new file mode 100644
index 000000000..7ed05504b
--- /dev/null
+++ b/config/webpack/rules/node_modules.js
@@ -0,0 +1,23 @@
+const { join } = require('path');
+const { settings, env } = require('../configuration');
+
+module.exports = {
+ test: /\.(js|mjs)$/,
+ include: /node_modules/,
+ exclude: /@babel(?:\/|\\{1,2})runtime/,
+ use: [
+ {
+ loader: 'babel-loader',
+ options: {
+ babelrc: false,
+ plugins: [
+ 'transform-react-remove-prop-types',
+ ],
+ cacheDirectory: join(settings.cache_path, 'babel-loader-node-modules'),
+ cacheCompression: env.NODE_ENV === 'production',
+ compact: false,
+ sourceMaps: false,
+ },
+ },
+ ],
+};
diff --git a/config/webpack/shared.js b/config/webpack/shared.js
index d6199373b..cb4e5a85f 100644
--- a/config/webpack/shared.js
+++ b/config/webpack/shared.js
@@ -6,7 +6,8 @@ const { sync } = require('glob');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const AssetsManifestPlugin = require('webpack-assets-manifest');
const extname = require('path-complete-extname');
-const { env, settings, themes, output, loadersDir } = require('./configuration.js');
+const { env, settings, themes, output } = require('./configuration');
+const rules = require('./rules');
const localePackPaths = require('./generateLocalePacks');
const extensionGlob = `**/*{${settings.extensions.join(',')}}*`;
@@ -33,8 +34,9 @@ module.exports = {
),
output: {
- filename: '[name].js',
- chunkFilename: '[name].js',
+ filename: 'js/[name]-[chunkhash].js',
+ chunkFilename: 'js/[name]-[chunkhash].chunk.js',
+ hotUpdateChunkFilename: 'js/[id]-[hash].hot-update.js',
path: output.path,
publicPath: output.publicPath,
},
@@ -60,7 +62,7 @@ module.exports = {
},
module: {
- rules: sync(join(loadersDir, '*.js')).map(loader => require(loader)),
+ rules: Object.keys(rules).map(key => rules[key]),
},
plugins: [
@@ -73,11 +75,14 @@ module.exports = {
}
),
new MiniCssExtractPlugin({
- filename: env.NODE_ENV === 'production' ? '[name]-[contenthash].css' : '[name].css',
+ filename: 'css/[name]-[contenthash:8].css',
+ chunkFilename: 'css/[name]-[contenthash:8].chunk.css',
}),
new AssetsManifestPlugin({
- publicPath: true,
+ integrity: false,
+ entrypoints: true,
writeToDisk: true,
+ publicPath: true,
}),
],
diff --git a/config/webpack/translationRunner.js b/config/webpack/translationRunner.js
index e6543fbb7..38050baf8 100644
--- a/config/webpack/translationRunner.js
+++ b/config/webpack/translationRunner.js
@@ -48,8 +48,7 @@ Use yarn "manage:translations -- --help" for usage information
}
};
-const { argv } = require('yargs')
- .usage(`Usage: yarn manage:translations -- [OPTIONS] [LANGUAGES]
+const usage = `Usage: yarn manage:translations [OPTIONS] [LANGUAGES]
Manage JavaScript translation files in Mastodon. Generates and update translations in translationsDirectory: ${translationsDirectory}
@@ -58,16 +57,15 @@ The RFC5646 language tag for the language you want to test or fix. If you want t
Available languages:
${availableLanguages.join(', ')}
-`)
- .help('h', 'show this message')
- .alias('h', 'help')
- .options({
- f: {
- alias: 'force',
- default: false,
- describe: 'force using the provided languages. create files if not exists.',
- type: 'boolean',
- },
+`;
+
+const { argv } = require('yargs')
+ .usage(usage)
+ .option('f', {
+ alias: 'force',
+ default: false,
+ describe: 'force using the provided languages. create files if not exists.',
+ type: 'boolean',
});
// check if message directory exists
diff --git a/config/webpacker.yml b/config/webpacker.yml
index ea814a0e6..4ad78a190 100644
--- a/config/webpacker.yml
+++ b/config/webpacker.yml
@@ -3,8 +3,11 @@
default: &default
source_path: app/javascript
source_entry_path: packs
+ public_root_path: public
public_output_path: packs
cache_path: tmp/cache/webpacker
+ check_yarn_integrity: false
+ webpack_compile_output: false
# Additional paths webpack should lookup modules
# ['app/assets', 'engine/foo/app/assets']
@@ -13,11 +16,31 @@ default: &default
# Reload manifest.json on all requests so we reload latest compiled packs
cache_manifest: false
+ # Extract and emit a css file
+ extract_css: true
+
+ static_assets_extensions:
+ - .jpg
+ - .jpeg
+ - .png
+ - .tiff
+ - .ico
+ - .svg
+ - .eot
+ - .otf
+ - .ttf
+ - .woff
+ - .woff2
+
extensions:
+ - .mjs
- .js
- .sass
- .scss
- .css
+ - .module.sass
+ - .module.scss
+ - .module.css
- .png
- .svg
- .gif
@@ -26,24 +49,38 @@ default: &default
development:
<<: *default
+
compile: true
+ # Reference: https://webpack.js.org/configuration/dev-server/
dev_server:
+ https: false
host: localhost
port: 3035
+ public: localhost:3035
hmr: false
- https: false
+ # Inline should be set to true if using HMR
+ inline: true
+ overlay: true
+ compress: true
+ disable_host_check: true
+ use_local_ip: false
+ quiet: false
+ headers:
+ 'Access-Control-Allow-Origin': '*'
+ watch_options:
+ ignored: '**/node_modules/**'
test:
<<: *default
- # Compile test packs to a separate directory
- public_output_path: packs-test
-
# CircleCI precompiles packs prior to running the tests.
# Also avoids race conditions in parallel_tests.
compile: false
+ # Compile test packs to a separate directory
+ public_output_path: packs-test
+
production:
<<: *default
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/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/migrate/20190304152020_add_uri_to_poll_votes.rb b/db/migrate/20190304152020_add_uri_to_poll_votes.rb
new file mode 100644
index 000000000..f6b81f1ba
--- /dev/null
+++ b/db/migrate/20190304152020_add_uri_to_poll_votes.rb
@@ -0,0 +1,5 @@
+class AddUriToPollVotes < ActiveRecord::Migration[5.2]
+ def change
+ add_column :poll_votes, :uri, :string
+ end
+end
diff --git a/db/migrate/20190306145741_add_lock_version_to_polls.rb b/db/migrate/20190306145741_add_lock_version_to_polls.rb
new file mode 100644
index 000000000..5bb8cd3b4
--- /dev/null
+++ b/db/migrate/20190306145741_add_lock_version_to_polls.rb
@@ -0,0 +1,24 @@
+require Rails.root.join('lib', 'mastodon', 'migration_helpers')
+
+class AddLockVersionToPolls < ActiveRecord::Migration[5.2]
+ include Mastodon::MigrationHelpers
+
+ disable_ddl_transaction!
+
+ def up
+ safety_assured do
+ add_column_with_default(
+ :polls,
+ :lock_version,
+ :integer,
+ allow_null: false,
+ default: 0
+ )
+ end
+ end
+
+ def down
+ remove_column :polls, :lock_version
+ end
+end
+
diff --git a/db/migrate/20190307234537_add_approved_to_users.rb b/db/migrate/20190307234537_add_approved_to_users.rb
new file mode 100644
index 000000000..c57a66dbc
--- /dev/null
+++ b/db/migrate/20190307234537_add_approved_to_users.rb
@@ -0,0 +1,23 @@
+require Rails.root.join('lib', 'mastodon', 'migration_helpers')
+
+class AddApprovedToUsers < ActiveRecord::Migration[5.2]
+ include Mastodon::MigrationHelpers
+
+ disable_ddl_transaction!
+
+ def up
+ safety_assured do
+ add_column_with_default(
+ :users,
+ :approved,
+ :bool,
+ allow_null: false,
+ default: true
+ )
+ end
+ end
+
+ def down
+ remove_column :users, :approved
+ end
+end
diff --git a/db/migrate/20190314181829_migrate_open_registrations_setting.rb b/db/migrate/20190314181829_migrate_open_registrations_setting.rb
new file mode 100644
index 000000000..e5fe95009
--- /dev/null
+++ b/db/migrate/20190314181829_migrate_open_registrations_setting.rb
@@ -0,0 +1,15 @@
+class MigrateOpenRegistrationsSetting < ActiveRecord::Migration[5.2]
+ def up
+ open_registrations = Setting.find_by(var: 'open_registrations')
+ return if open_registrations.nil? || open_registrations.value
+ setting = Setting.where(var: 'registrations_mode').first_or_initialize(var: 'registrations_mode')
+ setting.update(value: 'none')
+ end
+
+ def down
+ registrations_mode = Setting.find_by(var: 'registrations_mode')
+ return if registrations_mode.nil?
+ setting = Setting.where(var: 'open_registrations').first_or_initialize(var: 'open_registrations')
+ setting.update(value: registrations_mode.value == 'open')
+ end
+end
diff --git a/db/migrate/20190316190352_create_account_identity_proofs.rb b/db/migrate/20190316190352_create_account_identity_proofs.rb
new file mode 100644
index 000000000..ddcbce3f3
--- /dev/null
+++ b/db/migrate/20190316190352_create_account_identity_proofs.rb
@@ -0,0 +1,16 @@
+class CreateAccountIdentityProofs < ActiveRecord::Migration[5.2]
+ def change
+ create_table :account_identity_proofs do |t|
+ t.belongs_to :account, foreign_key: { on_delete: :cascade }
+ t.string :provider, null: false, default: ''
+ t.string :provider_username, null: false, default: ''
+ t.text :token, null: false, default: ''
+ t.boolean :verified, null: false, default: false
+ t.boolean :live, null: false, default: false
+
+ t.timestamps null: false
+ end
+
+ add_index :account_identity_proofs, [:account_id, :provider, :provider_username], unique: true, name: :index_account_proofs_on_account_and_provider_and_username
+ end
+end
diff --git a/db/migrate/20190317135723_add_uri_to_reports.rb b/db/migrate/20190317135723_add_uri_to_reports.rb
new file mode 100644
index 000000000..47c0f2a21
--- /dev/null
+++ b/db/migrate/20190317135723_add_uri_to_reports.rb
@@ -0,0 +1,5 @@
+class AddUriToReports < ActiveRecord::Migration[5.2]
+ def change
+ add_column :reports, :uri, :string
+ end
+end
diff --git a/db/migrate/20190409054914_create_user_invite_requests.rb b/db/migrate/20190409054914_create_user_invite_requests.rb
new file mode 100644
index 000000000..974e0f69f
--- /dev/null
+++ b/db/migrate/20190409054914_create_user_invite_requests.rb
@@ -0,0 +1,10 @@
+class CreateUserInviteRequests < ActiveRecord::Migration[5.2]
+ def change
+ create_table :user_invite_requests do |t|
+ t.belongs_to :user, foreign_key: { on_delete: :cascade }
+ t.text :text
+
+ t.timestamps
+ end
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 85f69d1d8..5d8a9d802 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: 2019_01_17_114553) do
+ActiveRecord::Schema.define(version: 2019_04_09_054914) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@@ -36,6 +36,19 @@ ActiveRecord::Schema.define(version: 2019_01_17_114553) do
t.index ["account_id", "domain"], name: "index_account_domain_blocks_on_account_id_and_domain", unique: true
end
+ create_table "account_identity_proofs", force: :cascade do |t|
+ t.bigint "account_id"
+ t.string "provider", default: "", null: false
+ t.string "provider_username", default: "", null: false
+ t.text "token", default: "", null: false
+ t.boolean "verified", default: false, null: false
+ t.boolean "live", default: false, null: false
+ t.datetime "created_at", null: false
+ t.datetime "updated_at", null: false
+ t.index ["account_id", "provider", "provider_username"], name: "index_account_proofs_on_account_and_provider_and_username", unique: true
+ t.index ["account_id"], name: "index_account_identity_proofs_on_account_id"
+ end
+
create_table "account_moderation_notes", force: :cascade do |t|
t.text "content", null: false
t.bigint "account_id", null: false
@@ -250,6 +263,17 @@ ActiveRecord::Schema.define(version: 2019_01_17_114553) 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
@@ -290,6 +314,7 @@ ActiveRecord::Schema.define(version: 2019_01_17_114553) 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|
@@ -429,6 +454,34 @@ ActiveRecord::Schema.define(version: 2019_01_17_114553) 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.string "uri"
+ 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.integer "lock_version", default: 0, 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
@@ -485,6 +538,7 @@ ActiveRecord::Schema.define(version: 2019_01_17_114553) do
t.bigint "action_taken_by_account_id"
t.bigint "target_account_id", null: false
t.bigint "assigned_account_id"
+ t.string "uri"
t.index ["account_id"], name: "index_reports_on_account_id"
t.index ["target_account_id"], name: "index_reports_on_target_account_id"
end
@@ -569,6 +623,7 @@ ActiveRecord::Schema.define(version: 2019_01_17_114553) do
t.bigint "account_id", null: false
t.bigint "application_id"
t.bigint "in_reply_to_account_id"
+ t.bigint "poll_id"
t.boolean "local_only"
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"
@@ -625,6 +680,14 @@ ActiveRecord::Schema.define(version: 2019_01_17_114553) do
t.index ["uri"], name: "index_tombstones_on_uri"
end
+ create_table "user_invite_requests", force: :cascade do |t|
+ t.bigint "user_id"
+ t.text "text"
+ t.datetime "created_at", null: false
+ t.datetime "updated_at", null: false
+ t.index ["user_id"], name: "index_user_invite_requests_on_user_id"
+ end
+
create_table "users", force: :cascade do |t|
t.string "email", default: "", null: false
t.datetime "created_at", null: false
@@ -659,6 +722,7 @@ ActiveRecord::Schema.define(version: 2019_01_17_114553) do
t.string "remember_token"
t.string "chosen_languages", array: true
t.bigint "created_by_application_id"
+ t.boolean "approved", default: true, null: false
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"
@@ -690,6 +754,7 @@ ActiveRecord::Schema.define(version: 2019_01_17_114553) do
add_foreign_key "account_conversations", "accounts", on_delete: :cascade
add_foreign_key "account_conversations", "conversations", on_delete: :cascade
add_foreign_key "account_domain_blocks", "accounts", name: "fk_206c6029bd", on_delete: :cascade
+ add_foreign_key "account_identity_proofs", "accounts", on_delete: :cascade
add_foreign_key "account_moderation_notes", "accounts"
add_foreign_key "account_moderation_notes", "accounts", column: "target_account_id"
add_foreign_key "account_pins", "accounts", column: "target_account_id", on_delete: :cascade
@@ -708,6 +773,8 @@ ActiveRecord::Schema.define(version: 2019_01_17_114553) 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
@@ -733,6 +800,10 @@ ActiveRecord::Schema.define(version: 2019_01_17_114553) 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
@@ -754,6 +825,7 @@ ActiveRecord::Schema.define(version: 2019_01_17_114553) do
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 "user_invite_requests", "users", 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
diff --git a/db/seeds.rb b/db/seeds.rb
index cf62ebf39..9a6e9dd78 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, agreement: true).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, approved: true).save!
end
diff --git a/dist/nginx.conf b/dist/nginx.conf
index 3d5741765..7c429bad4 100644
--- a/dist/nginx.conf
+++ b/dist/nginx.conf
@@ -78,6 +78,7 @@ server {
proxy_cache CACHE;
proxy_cache_valid 200 7d;
+ proxy_cache_valid 410 24h;
proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
add_header X-Cached $upstream_cache_status;
add_header Strict-Transport-Security "max-age=31536000";
diff --git a/jest.config.js b/jest.config.js
deleted file mode 100644
index 50bde57e6..000000000
--- a/jest.config.js
+++ /dev/null
@@ -1,25 +0,0 @@
-module.exports = {
- projects: [
- '/app/javascript/mastodon',
- ],
- testPathIgnorePatterns: [
- '/node_modules/',
- '/vendor/',
- '/config/',
- '/log/',
- '/public/',
- '/tmp/',
- ],
- setupFiles: [
- 'raf/polyfill',
- ],
- setupTestFrameworkScriptFile: '/app/javascript/mastodon/test_setup.js',
- collectCoverageFrom: [
- 'app/javascript/mastodon/**/*.js',
- '!app/javascript/mastodon/features/emoji/emoji_compressed.js',
- '!app/javascript/mastodon/locales/locale-data/*.js',
- '!app/javascript/mastodon/service_worker/entry.js',
- '!app/javascript/mastodon/test_setup.js',
- ],
- coverageDirectory: '/coverage',
-};
diff --git a/lib/cli.rb b/lib/cli.rb
index 6036adfbe..b56c6e76f 100644
--- a/lib/cli.rb
+++ b/lib/cli.rb
@@ -5,7 +5,9 @@ require_relative 'mastodon/media_cli'
require_relative 'mastodon/emoji_cli'
require_relative 'mastodon/accounts_cli'
require_relative 'mastodon/feeds_cli'
+require_relative 'mastodon/search_cli'
require_relative 'mastodon/settings_cli'
+require_relative 'mastodon/statuses_cli'
require_relative 'mastodon/domains_cli'
require_relative 'mastodon/version'
@@ -27,12 +29,91 @@ module Mastodon
desc 'feeds SUBCOMMAND ...ARGS', 'Manage feeds'
subcommand 'feeds', Mastodon::FeedsCLI
+ desc 'search SUBCOMMAND ...ARGS', 'Manage the search engine'
+ subcommand 'search', Mastodon::SearchCLI
+
desc 'settings SUBCOMMAND ...ARGS', 'Manage dynamic settings'
subcommand 'settings', Mastodon::SettingsCLI
+ desc 'statuses SUBCOMMAND ...ARGS', 'Manage statuses'
+ subcommand 'statuses', Mastodon::StatusesCLI
+
desc 'domains SUBCOMMAND ...ARGS', 'Manage account domains'
subcommand 'domains', Mastodon::DomainsCLI
+ option :dry_run, type: :boolean
+ desc 'self-destruct', 'Erase the server from the federation'
+ long_desc <<~LONG_DESC
+ Erase the server from the federation by broadcasting account delete
+ activities to all known other servers. This allows a "clean exit" from
+ running a Mastodon server, as it leaves next to no cache behind on
+ other servers.
+
+ This command is always interactive and requires confirmation twice.
+
+ No local data is actually deleted, because emptying the
+ database or removing files is much faster through other, external
+ means, such as e.g. deleting the entire VPS. However, because other
+ servers will delete data about local users, but no local data will be
+ updated (such as e.g. followers), there will be a state mismatch
+ that will lead to glitches and issues if you then continue to run and use
+ the server.
+
+ So either you know exactly what you are doing, or you are starting
+ from a blank slate afterwards by manually clearing out all the local
+ data!
+ LONG_DESC
+ def self_destruct
+ require 'tty-prompt'
+
+ prompt = TTY::Prompt.new
+
+ exit(1) unless prompt.ask('Type in the domain of the server to confirm:', required: true) == Rails.configuration.x.local_domain
+
+ prompt.warn('This operation WILL NOT be reversible. It can also take a long time.')
+ prompt.warn('While the data won\'t be erased locally, the server will be in a BROKEN STATE afterwards.')
+ prompt.warn('A running Sidekiq process is required. Do not shut it down until queues clear.')
+
+ exit(1) if prompt.no?('Are you sure you want to proceed?')
+
+ inboxes = Account.inboxes
+ processed = 0
+ dry_run = options[:dry_run] ? ' (DRY RUN)' : ''
+
+ if inboxes.empty?
+ prompt.ok('It seems like your server has not federated with anything')
+ prompt.ok('You can shut it down and delete it any time')
+ return
+ end
+
+ prompt.warn('Do NOT interrupt this process...')
+
+ Account.local.without_suspended.find_each do |account|
+ payload = ActiveModelSerializers::SerializableResource.new(
+ account,
+ serializer: ActivityPub::DeleteActorSerializer,
+ adapter: ActivityPub::Adapter
+ ).as_json
+
+ json = Oj.dump(ActivityPub::LinkedDataSignature.new(payload).sign!(account))
+
+ unless options[:dry_run]
+ ActivityPub::DeliveryWorker.push_bulk(inboxes) do |inbox_url|
+ [json, account.id, inbox_url]
+ end
+
+ account.update_column(:suspended, true)
+ end
+
+ processed += 1
+ end
+
+ prompt.ok("Queued #{inboxes.size * processed} items into Sidekiq for #{processed} accounts#{dry_run}")
+ prompt.ok('Wait until Sidekiq processes all items, then you can shut everything down and delete the data')
+ rescue TTY::Reader::InputInterrupt
+ exit(1)
+ end
+
map %w(--version -v) => :version
desc 'version', 'Show version'
diff --git a/lib/mastodon/accounts_cli.rb b/lib/mastodon/accounts_cli.rb
index dca31cdca..9dc84f1b5 100644
--- a/lib/mastodon/accounts_cli.rb
+++ b/lib/mastodon/accounts_cli.rb
@@ -219,12 +219,14 @@ module Mastodon
def cull
skip_threshold = 7.days.ago
culled = 0
+ dry_run_culled = []
skip_domains = Set.new
dry_run = options[:dry_run] ? ' (DRY RUN)' : ''
Account.remote.where(protocol: :activitypub).partitioned.find_each do |account|
next if account.updated_at >= skip_threshold || (account.last_webfingered_at.present? && account.last_webfingered_at >= skip_threshold)
+ code = 0
unless skip_domains.include?(account.domain)
begin
code = Request.new(:head, account.uri).perform(&:code)
@@ -236,11 +238,11 @@ module Mastodon
end
if [404, 410].include?(code)
- unless options[:dry_run]
- SuspendAccountService.new.call(account)
- account.destroy
+ if options[:dry_run]
+ dry_run_culled << account.acct
+ else
+ SuspendAccountService.new.call(account, destroy: true)
end
-
culled += 1
say('+', :green, false)
else
@@ -256,6 +258,11 @@ module Mastodon
say('The following servers were not available during the check:', :yellow)
skip_domains.each { |domain| say(' ' + domain) }
end
+
+ unless dry_run_culled.empty?
+ say('The following accounts would have been deleted:', :green)
+ dry_run_culled.each { |account| say(' ' + account) }
+ end
end
option :all, type: :boolean
@@ -360,6 +367,104 @@ module Mastodon
say("OK, unfollowed target from #{processed} accounts, skipped #{failed}", :green)
end
+ option :follows, type: :boolean, default: false
+ option :followers, type: :boolean, default: false
+ desc 'reset-relationships USERNAME', 'Reset all follows and/or followers for a user'
+ long_desc <<-LONG_DESC
+ Reset all follows and/or followers for a user specified by USERNAME.
+
+ With the --follows option, the command unfollows everyone that the account follows,
+ and then re-follows the users that would be followed by a brand new account.
+
+ With the --followers option, the command removes all followers of the account.
+ LONG_DESC
+ def reset_relationships(username)
+ unless options[:follows] || options[:followers]
+ say('Please specify either --follows or --followers, or both', :red)
+ exit(1)
+ end
+
+ account = Account.find_local(username)
+
+ if account.nil?
+ say('No user with such username', :red)
+ exit(1)
+ end
+
+ if options[:follows]
+ processed = 0
+ failed = 0
+
+ say("Unfollowing #{account.username}'s followees, this might take a while...")
+
+ Account.where(id: ::Follow.where(account: account).select(:target_account_id)).find_each do |target_account|
+ begin
+ UnfollowService.new.call(account, target_account)
+ processed += 1
+ say('.', :green, false)
+ rescue StandardError
+ failed += 1
+ say('.', :red, false)
+ end
+ end
+
+ BootstrapTimelineWorker.perform_async(account.id)
+
+ say("OK, unfollowed #{processed} followees, skipped #{failed}", :green)
+ end
+
+ if options[:followers]
+ processed = 0
+ failed = 0
+
+ say("Removing #{account.username}'s followers, this might take a while...")
+
+ Account.where(id: ::Follow.where(target_account: account).select(:account_id)).find_each do |target_account|
+ begin
+ UnfollowService.new.call(target_account, account)
+ processed += 1
+ say('.', :green, false)
+ rescue StandardError
+ failed += 1
+ say('.', :red, false)
+ end
+ end
+
+ say("OK, removed #{processed} followers, skipped #{failed}", :green)
+ end
+ end
+
+ option :number, type: :numeric, aliases: [:n]
+ option :all, type: :boolean
+ desc 'approve [USERNAME]', 'Approve pending accounts'
+ long_desc <<~LONG_DESC
+ When registrations require review from staff, approve pending accounts,
+ either all of them with the --all option, or a specific number of them
+ specified with the --number (-n) option, or only a single specific
+ account identified by its username.
+ LONG_DESC
+ def approve(username = nil)
+ if options[:all]
+ User.pending.find_each(&:approve!)
+ say('OK', :green)
+ elsif options[:number]
+ User.pending.limit(options[:number]).each(&:approve!)
+ say('OK', :green)
+ elsif username.present?
+ account = Account.find_local(username)
+
+ if account.nil?
+ say('No such account', :red)
+ exit(1)
+ end
+
+ account.user&.approve!
+ say('OK', :green)
+ else
+ exit(1)
+ end
+ end
+
private
def rotate_keys_for_account(account, delay = 0)
diff --git a/lib/mastodon/emoji_cli.rb b/lib/mastodon/emoji_cli.rb
index 2262040d4..32827dd45 100644
--- a/lib/mastodon/emoji_cli.rb
+++ b/lib/mastodon/emoji_cli.rb
@@ -66,6 +66,12 @@ module Mastodon
say("Imported #{imported}, skipped #{skipped}, failed to import #{failed}", color(imported, skipped, failed))
end
+ desc 'purge', 'Remove all custom emoji'
+ def purge
+ CustomEmoji.in_batches.destroy_all
+ say('OK', :green)
+ end
+
private
def color(green, _yellow, red)
diff --git a/lib/mastodon/search_cli.rb b/lib/mastodon/search_cli.rb
new file mode 100644
index 000000000..42ad93f1e
--- /dev/null
+++ b/lib/mastodon/search_cli.rb
@@ -0,0 +1,22 @@
+# frozen_string_literal: true
+
+require_relative '../../config/boot'
+require_relative '../../config/environment'
+require_relative 'cli_helper'
+
+module Mastodon
+ class SearchCLI < Thor
+ desc 'deploy', 'Create or update an ElasticSearch index and populate it'
+ long_desc <<~LONG_DESC
+ If ElasticSearch is empty, this command will create the necessary indices
+ and then import data from the database into those indices.
+
+ This command will also upgrade indices if the underlying schema has been
+ changed since the last run.
+ LONG_DESC
+ def deploy
+ processed = Chewy::RakeHelper.upgrade
+ Chewy::RakeHelper.sync(except: processed)
+ end
+ end
+end
diff --git a/lib/mastodon/settings_cli.rb b/lib/mastodon/settings_cli.rb
index c81cfbe52..061650a80 100644
--- a/lib/mastodon/settings_cli.rb
+++ b/lib/mastodon/settings_cli.rb
@@ -12,13 +12,13 @@ module Mastodon
desc 'open', 'Open registrations'
def open
- Setting.open_registrations = true
+ Setting.registrations_mode = 'open'
say('OK', :green)
end
desc 'close', 'Close registrations'
def close
- Setting.open_registrations = false
+ Setting.registrations_mode = 'none'
say('OK', :green)
end
end
diff --git a/lib/mastodon/statuses_cli.rb b/lib/mastodon/statuses_cli.rb
new file mode 100644
index 000000000..7f2fbfa85
--- /dev/null
+++ b/lib/mastodon/statuses_cli.rb
@@ -0,0 +1,62 @@
+# frozen_string_literal: true
+
+require_relative '../../config/boot'
+require_relative '../../config/environment'
+require_relative 'cli_helper'
+
+module Mastodon
+ class StatusesCLI < Thor
+ include ActionView::Helpers::NumberHelper
+
+ def self.exit_on_failure?
+ true
+ end
+
+ option :days, type: :numeric, default: 90
+ desc 'remove', 'Remove unreferenced statuses'
+ long_desc <<~LONG_DESC
+ Remove statuses that are not referenced by local user activity, such as
+ ones that came from relays, or belonging to users that were once followed
+ by someone locally but no longer are.
+
+ This is a computationally heavy procedure that creates extra database
+ indicides before commencing, and removes them afterward.
+ LONG_DESC
+ def remove
+ say('Creating temporary database indices...')
+
+ ActiveRecord::Base.connection.add_index(:accounts, :id, name: :index_accounts_local, where: 'domain is null', algorithm: :concurrently) unless ActiveRecord::Base.connection.index_name_exists?(:accounts, :index_accounts_local)
+ ActiveRecord::Base.connection.add_index(:status_pins, :status_id, name: :index_status_pins_status_id, algorithm: :concurrently) unless ActiveRecord::Base.connection.index_name_exists?(:status_pins, :index_status_pins_status_id)
+ ActiveRecord::Base.connection.add_index(:media_attachments, :remote_url, name: :index_media_attachments_remote_url, where: 'remote_url is not null', algorithm: :concurrently) unless ActiveRecord::Base.connection.index_name_exists?(:media_attachments, :index_media_attachments_remote_url)
+
+ max_id = Mastodon::Snowflake.id_at(options[:days].days.ago)
+ start_at = Time.now.to_f
+
+ say('Beginning removal... This might take a while...')
+
+ Status.remote
+ .where('id < ?', max_id)
+ .where(reblog_of_id: nil) # Skip reblogs
+ .where(in_reply_to_id: nil) # Skip replies
+ .where('id NOT IN (SELECT status_pins.status_id FROM status_pins WHERE statuses.id = status_id)') # Skip statuses that are pinned on profiles
+ .where('id NOT IN (SELECT mentions.status_id FROM mentions WHERE statuses.id = mentions.status_id AND mentions.account_id IN (SELECT accounts.id FROM accounts WHERE domain IS NULL))') # Skip statuses that mention local accounts
+ .where('id NOT IN (SELECT statuses1.in_reply_to_id FROM statuses AS statuses1 WHERE statuses.id = statuses1.in_reply_to_id)') # Skip statuses favourited by local accounts
+ .where('id NOT IN (SELECT statuses1.reblog_of_id FROM statuses AS statuses1 WHERE statuses.id = statuses1.reblog_of_id AND statuses1.account_id IN (SELECT accounts.id FROM accounts WHERE accounts.domain IS NULL))') # Skip statuses reblogged by local accounts
+ .where('account_id NOT IN (SELECT follows.target_account_id FROM follows WHERE statuses.account_id = follows.target_account_id)') # Skip accounts followed by local accounts
+ .in_batches
+ .delete_all
+
+ say('Beginning removal of now-orphaned media attachments to free up disk space...')
+
+ Scheduler::MediaCleanupScheduler.new.perform
+
+ say("Done after #{Time.now.to_f - start_at}s", :green)
+ ensure
+ say('Removing temporary database indices to restore write performance...')
+
+ ActiveRecord::Base.connection.remove_index(:accounts, name: :index_accounts_local) if ActiveRecord::Base.connection.index_name_exists?(:accounts, :index_accounts_local)
+ ActiveRecord::Base.connection.remove_index(:status_pins, name: :index_status_pins_status_id) if ActiveRecord::Base.connection.index_name_exists?(:status_pins, :index_status_pins_status_id)
+ ActiveRecord::Base.connection.remove_index(:media_attachments, name: :index_media_attachments_remote_url) if ActiveRecord::Base.connection.index_name_exists?(:media_attachments, :index_media_attachments_remote_url)
+ end
+ end
+end
diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb
index 81dd253ae..b53205ee4 100644
--- a/lib/mastodon/version.rb
+++ b/lib/mastodon/version.rb
@@ -9,11 +9,11 @@ module Mastodon
end
def minor
- 7
+ 8
end
def patch
- 2
+ 0
end
def pre
diff --git a/package.json b/package.json
index 5fa6fa8b7..63cfa25b8 100644
--- a/package.json
+++ b/package.json
@@ -24,36 +24,65 @@
"iOS >= 9",
"not dead"
],
+ "jest": {
+ "projects": [
+ "/app/javascript/mastodon"
+ ],
+ "testPathIgnorePatterns": [
+ "/node_modules/",
+ "/vendor/",
+ "/config/",
+ "/log/",
+ "/public/",
+ "/tmp/"
+ ],
+ "setupFiles": [
+ "raf/polyfill"
+ ],
+ "setupFilesAfterEnv": [
+ "/app/javascript/mastodon/test_setup.js"
+ ],
+ "collectCoverageFrom": [
+ "app/javascript/mastodon/**/*.js",
+ "!app/javascript/mastodon/features/emoji/emoji_compressed.js",
+ "!app/javascript/mastodon/locales/locale-data/*.js",
+ "!app/javascript/mastodon/service_worker/entry.js",
+ "!app/javascript/mastodon/test_setup.js"
+ ],
+ "coverageDirectory": "/coverage",
+ "moduleDirectories": [
+ "/node_modules",
+ "/app/javascript"
+ ]
+ },
"private": true,
"dependencies": {
- "@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/core": "^7.3.4",
+ "@babel/plugin-proposal-class-properties": "^7.3.4",
+ "@babel/plugin-proposal-decorators": "^7.3.0",
+ "@babel/plugin-proposal-object-rest-spread": "^7.3.4",
"@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/plugin-transform-runtime": "^7.3.4",
+ "@babel/preset-env": "^7.3.4",
"@babel/preset-react": "^7.0.0",
- "@babel/runtime": "^7.2.0",
- "@gfx/zopfli": "^1.0.10",
+ "@babel/runtime": "^7.3.4",
"array-includes": "^3.0.3",
- "autoprefixer": "^9.4.3",
+ "autoprefixer": "^9.4.10",
"axios": "^0.18.0",
- "babel-core": "^7.0.0-bridge.0",
- "babel-loader": "^8.0.4",
+ "babel-loader": "^8.0.5",
"babel-plugin-lodash": "^3.3.4",
"babel-plugin-preval": "^3.0.1",
"babel-plugin-react-intl": "^3.0.1",
- "babel-plugin-transform-react-remove-prop-types": "^0.4.21",
+ "babel-plugin-transform-react-remove-prop-types": "^0.4.24",
"babel-runtime": "^6.26.0",
"classnames": "^2.2.5",
"compression-webpack-plugin": "^2.0.0",
"cross-env": "^5.1.4",
- "css-loader": "^2.1.0",
- "cssnano": "^4.1.8",
+ "css-loader": "^2.1.1",
+ "cssnano": "^4.1.10",
"detect-passive-events": "^1.0.2",
"dotenv": "^6.2.0",
"emoji-mart": "Gargron/emoji-mart#build",
@@ -119,26 +148,25 @@
"requestidlecallback": "^0.3.0",
"reselect": "^4.0.0",
"rimraf": "^2.6.1",
- "sass": "^1.15.2",
+ "sass": "^1.17.2",
"sass-loader": "^7.0.3",
"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": "^2.1.1",
+ "uglifyjs-webpack-plugin": "^2.1.2",
"uuid": "^3.1.0",
"uws": "10.148.0",
- "webpack": "^4.28.3",
+ "webpack": "^4.29.6",
"webpack-assets-manifest": "^3.1.1",
- "webpack-bundle-analyzer": "^3.0.3",
- "webpack-cli": "^3.1.2",
- "webpack-merge": "^4.1.5",
+ "webpack-bundle-analyzer": "^3.1.0",
+ "webpack-cli": "^3.2.3",
+ "webpack-merge": "^4.2.1",
"websocket.js": "^0.1.12"
},
"devDependencies": {
"babel-eslint": "^10.0.1",
- "babel-jest": "^23.6.0",
+ "babel-jest": "^24.5.0",
"enzyme": "^3.8.0",
"enzyme-adapter-react-16": "^1.7.1",
"eslint": "^5.11.1",
@@ -146,14 +174,11 @@
"eslint-plugin-jsx-a11y": "~6.1.2",
"eslint-plugin-promise": "~4.0.1",
"eslint-plugin-react": "~7.12.1",
- "jest": "^23.6.0",
+ "jest": "^24.5.0",
"raf": "^3.4.1",
"react-intl-translations-manager": "^5.0.3",
"react-test-renderer": "^16.7.0",
- "webpack-dev-server": "^3.1.14",
- "yargs": "^8.0.2"
- },
- "optionalDependencies": {
- "fsevents": "*"
+ "webpack-dev-server": "^3.2.1",
+ "yargs": "^12.0.5"
}
}
diff --git a/spec/controllers/accounts_controller_spec.rb b/spec/controllers/accounts_controller_spec.rb
index 3ba5d8aec..b728d719f 100644
--- a/spec/controllers/accounts_controller_spec.rb
+++ b/spec/controllers/accounts_controller_spec.rb
@@ -3,7 +3,7 @@ require 'rails_helper'
RSpec.describe AccountsController, type: :controller do
render_views
- let(:alice) { Fabricate(:account, username: 'alice') }
+ let(:alice) { Fabricate(:account, username: 'alice', user: Fabricate(:user)) }
let(:eve) { Fabricate(:user) }
describe 'GET #show' do
diff --git a/spec/controllers/activitypub/inboxes_controller_spec.rb b/spec/controllers/activitypub/inboxes_controller_spec.rb
index 4055d9342..eab4b8c3e 100644
--- a/spec/controllers/activitypub/inboxes_controller_spec.rb
+++ b/spec/controllers/activitypub/inboxes_controller_spec.rb
@@ -10,7 +10,7 @@ RSpec.describe ActivityPub::InboxesController, type: :controller do
Fabricate(:account)
end
- post :create
+ post :create, body: '{}'
expect(response).to have_http_status(202)
end
end
@@ -21,7 +21,7 @@ RSpec.describe ActivityPub::InboxesController, type: :controller do
false
end
- post :create
+ post :create, body: '{}'
expect(response).to have_http_status(401)
end
end
diff --git a/spec/controllers/admin/settings_controller_spec.rb b/spec/controllers/admin/settings_controller_spec.rb
index eaf99679a..6cf0ee20a 100644
--- a/spec/controllers/admin/settings_controller_spec.rb
+++ b/spec/controllers/admin/settings_controller_spec.rb
@@ -19,6 +19,10 @@ RSpec.describe Admin::SettingsController, type: :controller do
end
describe 'PUT #update' do
+ before do
+ allow_any_instance_of(Form::AdminSettings).to receive(:valid?).and_return(true)
+ end
+
describe 'for a record that doesnt exist' do
around do |example|
before = Setting.site_extended_description
@@ -62,22 +66,6 @@ RSpec.describe Admin::SettingsController, type: :controller do
expect(Setting.site_title).to eq 'New title'
end
end
-
- context do
- around do |example|
- open_registrations = Setting.open_registrations
- example.run
- Setting.open_registrations = open_registrations
- end
-
- it 'typecasts open_registrations to boolean' do
- Setting.open_registrations = false
- patch :update, params: { form_admin_settings: { open_registrations: '1' } }
-
- expect(response).to redirect_to(edit_admin_settings_path)
- expect(Setting.open_registrations).to eq true
- end
- end
end
end
end
diff --git a/spec/controllers/api/proofs_controller_spec.rb b/spec/controllers/api/proofs_controller_spec.rb
new file mode 100644
index 000000000..dbde4927f
--- /dev/null
+++ b/spec/controllers/api/proofs_controller_spec.rb
@@ -0,0 +1,96 @@
+require 'rails_helper'
+
+describe Api::ProofsController do
+ let(:alice) { Fabricate(:account, username: 'alice') }
+
+ before do
+ stub_request(:get, 'https://keybase.io/_/api/1.0/sig/proof_valid.json?domain=cb6e6126.ngrok.io&kb_username=crypto_alice&sig_hash=111111111111111111111111111111111111111111111111111111111111111111&username=alice').to_return(status: 200, body: '{"proof_valid":true,"proof_live":false}')
+ stub_request(:get, 'https://keybase.io/_/api/1.0/sig/proof_live.json?domain=cb6e6126.ngrok.io&kb_username=crypto_alice&sig_hash=111111111111111111111111111111111111111111111111111111111111111111&username=alice').to_return(status: 200, body: '{"proof_valid":true,"proof_live":true}')
+ stub_request(:get, 'https://keybase.io/_/api/1.0/sig/proof_valid.json?domain=cb6e6126.ngrok.io&kb_username=hidden_alice&sig_hash=222222222222222222222222222222222222222222222222222222222222222222&username=alice').to_return(status: 200, body: '{"proof_valid":true,"proof_live":true}')
+ stub_request(:get, 'https://keybase.io/_/api/1.0/sig/proof_live.json?domain=cb6e6126.ngrok.io&kb_username=hidden_alice&sig_hash=222222222222222222222222222222222222222222222222222222222222222222&username=alice').to_return(status: 200, body: '{"proof_valid":true,"proof_live":true}')
+ end
+
+ describe 'GET #index' do
+ describe 'with a non-existent username' do
+ it '404s' do
+ get :index, params: { username: 'nonexistent', provider: 'keybase' }
+
+ expect(response).to have_http_status(:not_found)
+ end
+ end
+
+ describe 'with a user that has no proofs' do
+ it 'is an empty list of signatures' do
+ get :index, params: { username: alice.username, provider: 'keybase' }
+
+ expect(body_as_json[:signatures]).to eq []
+ end
+ end
+
+ describe 'with a user that has a live, valid proof' do
+ let(:token1) { '111111111111111111111111111111111111111111111111111111111111111111' }
+ let(:kb_name1) { 'crypto_alice' }
+
+ before do
+ Fabricate(:account_identity_proof, account: alice, verified: true, live: true, token: token1, provider_username: kb_name1)
+ end
+
+ it 'is a list with that proof in it' do
+ get :index, params: { username: alice.username, provider: 'keybase' }
+
+ expect(body_as_json[:signatures]).to eq [
+ { kb_username: kb_name1, sig_hash: token1 },
+ ]
+ end
+
+ describe 'add one that is neither live nor valid' do
+ let(:token2) { '222222222222222222222222222222222222222222222222222222222222222222' }
+ let(:kb_name2) { 'hidden_alice' }
+
+ before do
+ Fabricate(:account_identity_proof, account: alice, verified: false, live: false, token: token2, provider_username: kb_name2)
+ end
+
+ it 'is a list with both proofs' do
+ get :index, params: { username: alice.username, provider: 'keybase' }
+
+ expect(body_as_json[:signatures]).to eq [
+ { kb_username: kb_name1, sig_hash: token1 },
+ { kb_username: kb_name2, sig_hash: token2 },
+ ]
+ end
+ end
+ end
+
+ describe 'a user that has an avatar' do
+ let(:alice) { Fabricate(:account, username: 'alice', avatar: attachment_fixture('avatar.gif')) }
+
+ context 'and a proof' do
+ let(:token1) { '111111111111111111111111111111111111111111111111111111111111111111' }
+ let(:kb_name1) { 'crypto_alice' }
+
+ before do
+ Fabricate(:account_identity_proof, account: alice, verified: true, live: true, token: token1, provider_username: kb_name1)
+ get :index, params: { username: alice.username, provider: 'keybase' }
+ end
+
+ it 'has two keys: signatures and avatar' do
+ expect(body_as_json.keys).to match_array [:signatures, :avatar]
+ end
+
+ it 'has the correct signatures' do
+ expect(body_as_json[:signatures]).to eq [
+ { kb_username: kb_name1, sig_hash: token1 },
+ ]
+ end
+
+ it 'has the correct avatar url' do
+ first_part = 'https://cb6e6126.ngrok.io/system/accounts/avatars/'
+ last_part = 'original/avatar.gif'
+
+ expect(body_as_json[:avatar]).to match /#{Regexp.quote(first_part)}(?:\d{3,5}\/){3}#{Regexp.quote(last_part)}/
+ end
+ end
+ end
+ end
+end
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/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/auth/registrations_controller_spec.rb b/spec/controllers/auth/registrations_controller_spec.rb
index eeb01d5ad..1095df034 100644
--- a/spec/controllers/auth/registrations_controller_spec.rb
+++ b/spec/controllers/auth/registrations_controller_spec.rb
@@ -5,14 +5,14 @@ RSpec.describe Auth::RegistrationsController, type: :controller do
shared_examples 'checks for enabled registrations' do |path|
around do |example|
- open_registrations = Setting.open_registrations
+ registrations_mode = Setting.registrations_mode
example.run
- Setting.open_registrations = open_registrations
+ Setting.registrations_mode = registrations_mode
end
it 'redirects if it is in single user mode while it is open for registration' do
Fabricate(:account)
- Setting.open_registrations = true
+ Setting.registrations_mode = 'open'
expect(Rails.configuration.x).to receive(:single_user_mode).and_return(true)
get path
@@ -21,7 +21,7 @@ RSpec.describe Auth::RegistrationsController, type: :controller do
end
it 'redirects if it is not open for registration while it is not in single user mode' do
- Setting.open_registrations = false
+ Setting.registrations_mode = 'none'
expect(Rails.configuration.x).to receive(:single_user_mode).and_return(false)
get path
@@ -55,13 +55,13 @@ RSpec.describe Auth::RegistrationsController, type: :controller do
context do
around do |example|
- open_registrations = Setting.open_registrations
+ registrations_mode = Setting.registrations_mode
example.run
- Setting.open_registrations = open_registrations
+ Setting.registrations_mode = registrations_mode
end
it 'returns http success' do
- Setting.open_registrations = true
+ Setting.registrations_mode = 'open'
get :new
expect(response).to have_http_status(200)
end
@@ -83,13 +83,13 @@ RSpec.describe Auth::RegistrationsController, type: :controller do
context do
around do |example|
- open_registrations = Setting.open_registrations
+ registrations_mode = Setting.registrations_mode
example.run
- Setting.open_registrations = open_registrations
+ Setting.registrations_mode = registrations_mode
end
subject do
- Setting.open_registrations = true
+ Setting.registrations_mode = 'open'
request.headers["Accept-Language"] = accept_language
post :create, params: { user: { account_attributes: { username: 'test' }, email: 'test@example.com', password: '12345678', password_confirmation: '12345678' } }
end
diff --git a/spec/controllers/concerns/account_controller_concern_spec.rb b/spec/controllers/concerns/account_controller_concern_spec.rb
index 93685103f..ea2b4a2a1 100644
--- a/spec/controllers/concerns/account_controller_concern_spec.rb
+++ b/spec/controllers/concerns/account_controller_concern_spec.rb
@@ -17,7 +17,15 @@ describe ApplicationController, type: :controller do
context 'when account is suspended' do
it 'returns http gone' do
- account = Fabricate(:account, suspended: true)
+ account = Fabricate(:account, suspended: true, user: Fabricate(:user))
+ get 'success', params: { account_username: account.username }
+ expect(response).to have_http_status(410)
+ end
+ end
+
+ context 'when account is deleted by owner' do
+ it 'returns http gone' do
+ account = Fabricate(:account, suspended: true, user: nil)
get 'success', params: { account_username: account.username }
expect(response).to have_http_status(410)
end
@@ -25,19 +33,19 @@ describe ApplicationController, type: :controller do
context 'when account is not suspended' do
it 'assigns @account' do
- account = Fabricate(:account)
+ account = Fabricate(:account, user: Fabricate(:user))
get 'success', params: { account_username: account.username }
expect(assigns(:account)).to eq account
end
it 'sets link headers' do
- account = Fabricate(:account, username: 'username')
+ account = Fabricate(:account, username: 'username', user: Fabricate(:user))
get 'success', params: { account_username: 'username' }
expect(response.headers['Link'].to_s).to eq '; rel="lrdd"; type="application/xrd+xml", ; rel="alternate"; type="application/atom+xml", ; rel="alternate"; type="application/activity+json"'
end
it 'returns http success' do
- account = Fabricate(:account)
+ account = Fabricate(:account, user: Fabricate(:user))
get 'success', params: { account_username: account.username }
expect(response).to have_http_status(200)
end
diff --git a/spec/controllers/settings/follower_domains_controller_spec.rb b/spec/controllers/relationships_controller_spec.rb
similarity index 64%
rename from spec/controllers/settings/follower_domains_controller_spec.rb
rename to spec/controllers/relationships_controller_spec.rb
index 6d415a654..16e255afe 100644
--- a/spec/controllers/settings/follower_domains_controller_spec.rb
+++ b/spec/controllers/relationships_controller_spec.rb
@@ -1,6 +1,6 @@
require 'rails_helper'
-describe Settings::FollowerDomainsController do
+describe RelationshipsController do
render_views
let(:user) { Fabricate(:user) }
@@ -12,24 +12,17 @@ describe Settings::FollowerDomainsController do
end
describe 'GET #show' do
- subject { get :show, params: { page: 2 } }
+ subject { get :show, params: { page: 2, relationship: 'followed_by' } }
- it 'assigns @account' do
- sign_in user, scope: :user
- subject
- expect(assigns(:account)).to eq user.account
- end
-
- it 'assigns @domains' do
+ it 'assigns @accounts' do
Fabricate(:account, domain: 'old').follow!(user.account)
Fabricate(:account, domain: 'recent').follow!(user.account)
sign_in user, scope: :user
subject
- assigned = assigns(:domains).per(1).to_a
+ assigned = assigns(:accounts).per(1).to_a
expect(assigned.size).to eq 1
- expect(assigned[0].accounts_from_domain).to eq 1
expect(assigned[0].domain).to eq 'old'
end
@@ -49,25 +42,24 @@ describe Settings::FollowerDomainsController do
stub_request(:post, 'http://example.com/salmon').to_return(status: 200)
end
- shared_examples 'redirects back to followers page' do |notice|
+ shared_examples 'redirects back to followers page' do
it 'redirects back to followers page' do
poopfeast.follow!(user.account)
sign_in user, scope: :user
subject
- expect(flash[:notice]).to eq notice
- expect(response).to redirect_to(settings_follower_domains_path)
+ expect(response).to redirect_to(relationships_path)
end
end
context 'when select parameter is not provided' do
subject { patch :update }
- include_examples 'redirects back to followers page', 'In the process of soft-blocking followers from 0 domains...'
+ include_examples 'redirects back to followers page'
end
context 'when select parameter is provided' do
- subject { patch :update, params: { select: ['example.com'] } }
+ subject { patch :update, params: { form_account_batch: { account_ids: [poopfeast.id] }, block_domains: '' } }
it 'soft-blocks followers from selected domains' do
poopfeast.follow!(user.account)
@@ -79,7 +71,7 @@ describe Settings::FollowerDomainsController do
end
include_examples 'authenticate user'
- include_examples 'redirects back to followers page', 'In the process of soft-blocking followers from one domain...'
+ include_examples 'redirects back to followers page'
end
end
end
diff --git a/spec/controllers/settings/exports/following_accounts_controller_spec.rb b/spec/controllers/settings/exports/following_accounts_controller_spec.rb
index 786769d24..78858e772 100644
--- a/spec/controllers/settings/exports/following_accounts_controller_spec.rb
+++ b/spec/controllers/settings/exports/following_accounts_controller_spec.rb
@@ -11,7 +11,7 @@ describe Settings::Exports::FollowingAccountsController do
sign_in user, scope: :user
get :index, format: :csv
- expect(response.body).to eq "username@domain\n"
+ expect(response.body).to eq "Account address,Show boosts\nusername@domain,true\n"
end
end
end
diff --git a/spec/controllers/settings/exports/muted_accounts_controller_spec.rb b/spec/controllers/settings/exports/muted_accounts_controller_spec.rb
index f42d7881e..642f0a9b8 100644
--- a/spec/controllers/settings/exports/muted_accounts_controller_spec.rb
+++ b/spec/controllers/settings/exports/muted_accounts_controller_spec.rb
@@ -11,7 +11,7 @@ describe Settings::Exports::MutedAccountsController do
sign_in user, scope: :user
get :index, format: :csv
- expect(response.body).to eq "username@domain\n"
+ expect(response.body).to eq "Account address,Hide notifications\nusername@domain,true\n"
end
end
end
diff --git a/spec/controllers/settings/identity_proofs_controller_spec.rb b/spec/controllers/settings/identity_proofs_controller_spec.rb
new file mode 100644
index 000000000..2a0f91088
--- /dev/null
+++ b/spec/controllers/settings/identity_proofs_controller_spec.rb
@@ -0,0 +1,168 @@
+require 'rails_helper'
+
+describe Settings::IdentityProofsController do
+ include RoutingHelper
+ render_views
+
+ let(:user) { Fabricate(:user) }
+ let(:valid_token) { '1'*66 }
+ let(:kbname) { 'kbuser' }
+ let(:provider) { 'keybase' }
+ let(:findable_id) { Faker::Number.number(5) }
+ let(:unfindable_id) { Faker::Number.number(5) }
+ let(:new_proof_params) do
+ { provider: provider, provider_username: kbname, token: valid_token, username: user.account.username }
+ end
+ let(:status_text) { "i just proved that i am also #{kbname} on #{provider}." }
+ let(:status_posting_params) do
+ { post_status: '0', status_text: status_text }
+ end
+ let(:postable_params) do
+ { account_identity_proof: new_proof_params.merge(status_posting_params) }
+ end
+
+ before do
+ allow_any_instance_of(ProofProvider::Keybase::Verifier).to receive(:status) { { 'proof_valid' => true, 'proof_live' => true } }
+ sign_in user, scope: :user
+ end
+
+ describe 'new proof creation' do
+ context 'GET #new' do
+ before do
+ allow_any_instance_of(ProofProvider::Keybase::Badge).to receive(:avatar_url) { full_pack_url('media/images/void.png') }
+ end
+
+ context 'with all of the correct params' do
+ it 'renders the template' do
+ get :new, params: new_proof_params
+ expect(response).to render_template(:new)
+ end
+ end
+
+ context 'without any params' do
+ it 'redirects to :index' do
+ get :new, params: {}
+ expect(response).to redirect_to settings_identity_proofs_path
+ end
+ end
+
+ context 'with params to prove a different, not logged-in user' do
+ let(:wrong_user_params) { new_proof_params.merge(username: 'someone_else') }
+
+ it 'shows a helpful alert' do
+ get :new, params: wrong_user_params
+ expect(flash[:alert]).to eq I18n.t('identity_proofs.errors.wrong_user', proving: 'someone_else', current: user.account.username)
+ end
+ end
+
+ context 'with params to prove the same username cased differently' do
+ let(:capitalized_username) { new_proof_params.merge(username: user.account.username.upcase) }
+
+ it 'renders the new template' do
+ get :new, params: capitalized_username
+ expect(response).to render_template(:new)
+ end
+ end
+ end
+
+ context 'POST #create' do
+ context 'when saving works' do
+ before do
+ allow(ProofProvider::Keybase::Worker).to receive(:perform_async)
+ allow_any_instance_of(ProofProvider::Keybase::Verifier).to receive(:valid?) { true }
+ allow_any_instance_of(AccountIdentityProof).to receive(:on_success_path) { root_url }
+ end
+
+ it 'serializes a ProofProvider::Keybase::Worker' do
+ expect(ProofProvider::Keybase::Worker).to receive(:perform_async)
+ post :create, params: postable_params
+ end
+
+ it 'delegates redirection to the proof provider' do
+ expect_any_instance_of(AccountIdentityProof).to receive(:on_success_path)
+ post :create, params: postable_params
+ expect(response).to redirect_to root_url
+ end
+
+ it 'does not post a status' do
+ expect(PostStatusService).not_to receive(:new)
+ post :create, params: postable_params
+ end
+
+ context 'and the user has requested to post a status' do
+ let(:postable_params_with_status) do
+ postable_params.tap { |p| p[:account_identity_proof][:post_status] = '1' }
+ end
+
+ it 'posts a status' do
+ expect_any_instance_of(PostStatusService).to receive(:call).with(user.account, text: status_text)
+
+ post :create, params: postable_params_with_status
+ end
+ end
+ end
+
+ context 'when saving fails' do
+ before do
+ allow_any_instance_of(ProofProvider::Keybase::Verifier).to receive(:valid?) { false }
+ end
+
+ it 'redirects to :index' do
+ post :create, params: postable_params
+ expect(response).to redirect_to settings_identity_proofs_path
+ end
+
+ it 'flashes a helpful message' do
+ post :create, params: postable_params
+ expect(flash[:alert]).to eq I18n.t('identity_proofs.errors.failed', provider: 'Keybase')
+ end
+ end
+
+ context 'it can also do an update if the provider and username match an existing proof' do
+ before do
+ allow_any_instance_of(ProofProvider::Keybase::Verifier).to receive(:valid?) { true }
+ allow(ProofProvider::Keybase::Worker).to receive(:perform_async)
+ Fabricate(:account_identity_proof, account: user.account, provider: provider, provider_username: kbname)
+ allow_any_instance_of(AccountIdentityProof).to receive(:on_success_path) { root_url }
+ end
+
+ it 'calls update with the new token' do
+ expect_any_instance_of(AccountIdentityProof).to receive(:save) do |proof|
+ expect(proof.token).to eq valid_token
+ end
+
+ post :create, params: postable_params
+ end
+ end
+ end
+ end
+
+ describe 'GET #index' do
+ context 'with no existing proofs' do
+ it 'shows the helpful explanation' do
+ get :index
+ expect(response.body).to match I18n.t('identity_proofs.explanation_html')
+ end
+ end
+
+ context 'with two proofs' do
+ before do
+ allow_any_instance_of(ProofProvider::Keybase::Verifier).to receive(:valid?) { true }
+ @proof1 = Fabricate(:account_identity_proof, account: user.account)
+ @proof2 = Fabricate(:account_identity_proof, account: user.account)
+ allow_any_instance_of(AccountIdentityProof).to receive(:badge) { double(avatar_url: '', profile_url: '', proof_url: '') }
+ allow_any_instance_of(AccountIdentityProof).to receive(:refresh!) { }
+ end
+
+ it 'has the first proof username on the page' do
+ get :index
+ expect(response.body).to match /#{Regexp.quote(@proof1.provider_username)}/
+ end
+
+ it 'has the second proof username on the page' do
+ get :index
+ expect(response.body).to match /#{Regexp.quote(@proof2.provider_username)}/
+ end
+ end
+ end
+end
diff --git a/spec/controllers/well_known/keybase_proof_config_controller_spec.rb b/spec/controllers/well_known/keybase_proof_config_controller_spec.rb
new file mode 100644
index 000000000..9067e676d
--- /dev/null
+++ b/spec/controllers/well_known/keybase_proof_config_controller_spec.rb
@@ -0,0 +1,15 @@
+require 'rails_helper'
+
+describe WellKnown::KeybaseProofConfigController, type: :controller do
+ render_views
+
+ describe 'GET #show' do
+ it 'renders json' do
+ get :show
+
+ expect(response).to have_http_status(200)
+ expect(response.content_type).to eq 'application/json'
+ expect { JSON.parse(response.body) }.not_to raise_exception
+ end
+ end
+end
diff --git a/spec/fabricators/account_identity_proof_fabricator.rb b/spec/fabricators/account_identity_proof_fabricator.rb
new file mode 100644
index 000000000..94f40dfd6
--- /dev/null
+++ b/spec/fabricators/account_identity_proof_fabricator.rb
@@ -0,0 +1,8 @@
+Fabricator(:account_identity_proof) do
+ account
+ provider 'keybase'
+ provider_username { sequence(:provider_username) { |i| "#{Faker::Lorem.characters(15)}" } }
+ token { sequence(:token) { |i| "#{i}#{Faker::Crypto.sha1()*2}"[0..65] } }
+ verified false
+ live false
+end
diff --git a/spec/fabricators/assets/TEAPOT b/spec/fabricators/assets/TEAPOT
new file mode 100644
index 000000000..e624ecb4c
--- /dev/null
+++ b/spec/fabricators/assets/TEAPOT
@@ -0,0 +1,6 @@
+This "Utah teapot" photograph is licensed under the Creative Commons
+Attribution-Share Alike 3.0 Unported license:
+ https://creativecommons.org/licenses/by-sa/3.0/deed.en
+
+Original source of work:
+ https://commons.wikimedia.org/wiki/File:Utah_teapot_simple_2.png
diff --git a/spec/fabricators/assets/utah_teapot.png b/spec/fabricators/assets/utah_teapot.png
new file mode 100644
index 000000000..6708361e5
Binary files /dev/null and b/spec/fabricators/assets/utah_teapot.png differ
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/site_upload_fabricator.rb b/spec/fabricators/site_upload_fabricator.rb
index 4a171486f..2efc57e28 100644
--- a/spec/fabricators/site_upload_fabricator.rb
+++ b/spec/fabricators/site_upload_fabricator.rb
@@ -1,2 +1,3 @@
Fabricator(:site_upload) do
+ file { File.open(File.join(Rails.root, 'spec', 'fabricators', 'assets', 'utah_teapot.png')) }
end
diff --git a/spec/fabricators/user_invite_request_fabricator.rb b/spec/fabricators/user_invite_request_fabricator.rb
new file mode 100644
index 000000000..5cc6ae56f
--- /dev/null
+++ b/spec/fabricators/user_invite_request_fabricator.rb
@@ -0,0 +1,4 @@
+Fabricator(:user_invite_request) do
+ user
+ text { Faker::Lorem.sentence }
+end
diff --git a/spec/fixtures/files/mute-imports.txt b/spec/fixtures/files/mute-imports.txt
new file mode 100644
index 000000000..125cbd384
--- /dev/null
+++ b/spec/fixtures/files/mute-imports.txt
@@ -0,0 +1,4 @@
+bob
+
+eve@example.com
+
diff --git a/spec/fixtures/files/new-following-imports.txt b/spec/fixtures/files/new-following-imports.txt
new file mode 100644
index 000000000..5ea6c7346
--- /dev/null
+++ b/spec/fixtures/files/new-following-imports.txt
@@ -0,0 +1,4 @@
+Account address,Show boosts
+bob,true
+eve@example.com,false
+
diff --git a/spec/fixtures/files/new-mute-imports.txt b/spec/fixtures/files/new-mute-imports.txt
new file mode 100644
index 000000000..c1c9bca9b
--- /dev/null
+++ b/spec/fixtures/files/new-mute-imports.txt
@@ -0,0 +1,4 @@
+Account address,Hide notifications
+bob,true
+eve@example.com,false
+
diff --git a/spec/helpers/admin/action_log_helper_spec.rb b/spec/helpers/admin/action_log_helper_spec.rb
new file mode 100644
index 000000000..d7af6b939
--- /dev/null
+++ b/spec/helpers/admin/action_log_helper_spec.rb
@@ -0,0 +1,272 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe Admin::ActionLogsHelper, type: :helper do
+ klass = Class.new do
+ include ActionView::Helpers
+ include Admin::ActionLogsHelper
+ end
+
+ let(:hoge) { klass.new }
+
+ describe '#log_target' do
+ after do
+ hoge.log_target(log)
+ end
+
+ context 'log.target' do
+ let(:log) { double(target: true) }
+
+ it 'calls linkable_log_target' do
+ expect(hoge).to receive(:linkable_log_target).with(log.target)
+ end
+ end
+
+ context '!log.target' do
+ let(:log) { double(target: false, target_type: :type, recorded_changes: :change) }
+
+ it 'calls log_target_from_history' do
+ expect(hoge).to receive(:log_target_from_history).with(log.target_type, log.recorded_changes)
+ end
+ end
+ end
+
+ describe '#relevant_log_changes' do
+ let(:log) { double(target_type: target_type, action: log_action, recorded_changes: recorded_changes) }
+ let(:recorded_changes) { double }
+
+ after do
+ hoge.relevant_log_changes(log)
+ end
+
+ context "log.target_type == 'CustomEmoji' && [:enable, :disable, :destroy].include?(log.action)" do
+ let(:target_type) { 'CustomEmoji' }
+ let(:log_action) { :enable }
+
+ it "calls log.recorded_changes.slice('domain')" do
+ expect(recorded_changes).to receive(:slice).with('domain')
+ end
+ end
+
+ context "log.target_type == 'CustomEmoji' && log.action == :update" do
+ let(:target_type) { 'CustomEmoji' }
+ let(:log_action) { :update }
+
+ it "calls log.recorded_changes.slice('domain', 'visible_in_picker')" do
+ expect(recorded_changes).to receive(:slice).with('domain', 'visible_in_picker')
+ end
+ end
+
+ context "log.target_type == 'User' && [:promote, :demote].include?(log.action)" do
+ let(:target_type) { 'User' }
+ let(:log_action) { :promote }
+
+ it "calls log.recorded_changes.slice('moderator', 'admin')" do
+ expect(recorded_changes).to receive(:slice).with('moderator', 'admin')
+ end
+ end
+
+ context "log.target_type == 'User' && [:change_email].include?(log.action)" do
+ let(:target_type) { 'User' }
+ let(:log_action) { :change_email }
+
+ it "calls log.recorded_changes.slice('email', 'unconfirmed_email')" do
+ expect(recorded_changes).to receive(:slice).with('email', 'unconfirmed_email')
+ end
+ end
+
+ context "log.target_type == 'DomainBlock'" do
+ let(:target_type) { 'DomainBlock' }
+ let(:log_action) { nil }
+
+ it "calls log.recorded_changes.slice('severity', 'reject_media')" do
+ expect(recorded_changes).to receive(:slice).with('severity', 'reject_media')
+ end
+ end
+
+ context "log.target_type == 'Status' && log.action == :update" do
+ let(:target_type) { 'Status' }
+ let(:log_action) { :update }
+
+ it "log.recorded_changes.slice('sensitive')" do
+ expect(recorded_changes).to receive(:slice).with('sensitive')
+ end
+ end
+ end
+
+ describe '#log_extra_attributes' do
+ after do
+ hoge.log_extra_attributes(hoge: 'hoge')
+ end
+
+ it "calls content_tag(:span, key, class: 'diff-key')" do
+ allow(hoge).to receive(:log_change).with(anything)
+ expect(hoge).to receive(:content_tag).with(:span, :hoge, class: 'diff-key')
+ end
+
+ it 'calls safe_join twice' do
+ expect(hoge).to receive(:safe_join).with(
+ ['hoge',
+ '=',
+ 'hoge']
+ )
+
+ expect(hoge).to receive(:safe_join).with([nil], ' ')
+ end
+ end
+
+ describe '#log_change' do
+ after do
+ hoge.log_change(val)
+ end
+
+ context '!val.is_a?(Array)' do
+ let(:val) { 'hoge' }
+
+ it "calls content_tag(:span, val, class: 'diff-neutral')" do
+ expect(hoge).to receive(:content_tag).with(:span, val, class: 'diff-neutral')
+ end
+ end
+
+ context 'val.is_a?(Array)' do
+ let(:val) { %w(foo bar) }
+
+ it 'calls #content_tag twice and #safe_join' do
+ expect(hoge).to receive(:content_tag).with(:span, 'foo', class: 'diff-old')
+ expect(hoge).to receive(:content_tag).with(:span, 'bar', class: 'diff-new')
+ expect(hoge).to receive(:safe_join).with([nil, nil], '→')
+ end
+ end
+ end
+
+ describe '#icon_for_log' do
+ subject { hoge.icon_for_log(log) }
+
+ context "log.target_type == 'Account'" do
+ let(:log) { double(target_type: 'Account') }
+
+ it 'returns "user"' do
+ expect(subject).to be 'user'
+ end
+ end
+
+ context "log.target_type == 'User'" do
+ let(:log) { double(target_type: 'User') }
+
+ it 'returns "user"' do
+ expect(subject).to be 'user'
+ end
+ end
+
+ context "log.target_type == 'CustomEmoji'" do
+ let(:log) { double(target_type: 'CustomEmoji') }
+
+ it 'returns "file"' do
+ expect(subject).to be 'file'
+ end
+ end
+
+ context "log.target_type == 'Report'" do
+ let(:log) { double(target_type: 'Report') }
+
+ it 'returns "flag"' do
+ expect(subject).to be 'flag'
+ end
+ end
+
+ context "log.target_type == 'DomainBlock'" do
+ let(:log) { double(target_type: 'DomainBlock') }
+
+ it 'returns "lock"' do
+ expect(subject).to be 'lock'
+ end
+ end
+
+ context "log.target_type == 'EmailDomainBlock'" do
+ let(:log) { double(target_type: 'EmailDomainBlock') }
+
+ it 'returns "envelope"' do
+ expect(subject).to be 'envelope'
+ end
+ end
+
+ context "log.target_type == 'Status'" do
+ let(:log) { double(target_type: 'Status') }
+
+ it 'returns "pencil"' do
+ expect(subject).to be 'pencil'
+ end
+ end
+ end
+
+ describe '#class_for_log_icon' do
+ subject { hoge.class_for_log_icon(log) }
+
+ %i(enable unsuspend unsilence confirm promote resolve).each do |action|
+ context "log.action == #{action}" do
+ let(:log) { double(action: action) }
+
+ it 'returns "positive"' do
+ expect(subject).to be 'positive'
+ end
+ end
+ end
+
+ context 'log.action == :create' do
+ context 'opposite_verbs?(log)' do
+ let(:log) { double(action: :create, target_type: 'DomainBlock') }
+
+ it 'returns "negative"' do
+ expect(subject).to be 'negative'
+ end
+ end
+
+ context '!opposite_verbs?(log)' do
+ let(:log) { double(action: :create, target_type: '') }
+
+ it 'returns "positive"' do
+ expect(subject).to be 'positive'
+ end
+ end
+ end
+
+ %i(update reset_password disable_2fa memorialize change_email).each do |action|
+ context "log.action == #{action}" do
+ let(:log) { double(action: action) }
+
+ it 'returns "neutral"' do
+ expect(subject).to be 'neutral'
+ end
+ end
+ end
+
+ %i(demote silence disable suspend remove_avatar remove_header reopen).each do |action|
+ context "log.action == #{action}" do
+ let(:log) { double(action: action) }
+
+ it 'returns "negative"' do
+ expect(subject).to be 'negative'
+ end
+ end
+ end
+
+ context 'log.action == :destroy' do
+ context 'opposite_verbs?(log)' do
+ let(:log) { double(action: :destroy, target_type: 'DomainBlock') }
+
+ it 'returns "positive"' do
+ expect(subject).to be 'positive'
+ end
+ end
+
+ context '!opposite_verbs?(log)' do
+ let(:log) { double(action: :destroy, target_type: '') }
+
+ it 'returns "negative"' do
+ expect(subject).to be 'negative'
+ end
+ end
+ end
+ end
+end
diff --git a/spec/helpers/application_helper_spec.rb b/spec/helpers/application_helper_spec.rb
index 61780b46b..f09e32ecc 100644
--- a/spec/helpers/application_helper_spec.rb
+++ b/spec/helpers/application_helper_spec.rb
@@ -69,7 +69,7 @@ describe ApplicationHelper do
describe 'open_registrations?' do
it 'returns true when open for registrations' do
without_partial_double_verification do
- expect(Setting).to receive(:open_registrations).and_return(true)
+ expect(Setting).to receive(:registrations_mode).and_return('open')
end
expect(helper.open_registrations?).to eq true
@@ -77,7 +77,7 @@ describe ApplicationHelper do
it 'returns false when closed for registrations' do
without_partial_double_verification do
- expect(Setting).to receive(:open_registrations).and_return(false)
+ expect(Setting).to receive(:registrations_mode).and_return('none')
end
expect(helper.open_registrations?).to eq false
diff --git a/spec/lib/activitypub/activity/announce_spec.rb b/spec/lib/activitypub/activity/announce_spec.rb
index aa58d9e23..926083a4f 100644
--- a/spec/lib/activitypub/activity/announce_spec.rb
+++ b/spec/lib/activitypub/activity/announce_spec.rb
@@ -12,6 +12,7 @@ RSpec.describe ActivityPub::Activity::Announce do
type: 'Announce',
actor: 'https://example.com/actor',
object: object_json,
+ to: 'http://example.com/followers',
}.with_indifferent_access
end
diff --git a/spec/lib/activitypub/activity/create_spec.rb b/spec/lib/activitypub/activity/create_spec.rb
index 26cb84871..412609de4 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
{
@@ -28,6 +28,20 @@ RSpec.describe ActivityPub::Activity::Create do
subject.perform
end
+ context 'unknown object type' do
+ let(:object_json) do
+ {
+ id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
+ type: 'Banana',
+ content: 'Lorem ipsum',
+ }
+ end
+
+ it 'does not create a status' do
+ expect(sender.statuses.count).to be_zero
+ end
+ end
+
context 'standalone' do
let(:object_json) do
{
@@ -407,6 +421,89 @@ RSpec.describe ActivityPub::Activity::Create do
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
+
+ context 'when a vote to a local poll' do
+ let(:poll) { Fabricate(:poll, options: %w(Yellow Blue)) }
+ let!(:local_status) { Fabricate(:status, poll: poll) }
+
+ let(:object_json) do
+ {
+ id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
+ type: 'Note',
+ name: 'Yellow',
+ inReplyTo: ActivityPub::TagManager.instance.uri_for(local_status)
+ }
+ end
+
+ it 'adds a vote to the poll with correct uri' do
+ vote = poll.votes.first
+ expect(vote).to_not be_nil
+ expect(vote.uri).to eq object_json[:id]
+ expect(poll.reload.cached_tallies).to eq [1, 0]
+ end
+ end
+
+ context 'when a vote to an expired local poll' do
+ let(:poll) do
+ poll = Fabricate.build(:poll, options: %w(Yellow Blue), expires_at: 1.day.ago)
+ poll.save(validate: false)
+ poll
+ end
+ let!(:local_status) { Fabricate(:status, poll: poll) }
+
+ let(:object_json) do
+ {
+ id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
+ type: 'Note',
+ name: 'Yellow',
+ inReplyTo: ActivityPub::TagManager.instance.uri_for(local_status)
+ }
+ end
+
+ it 'does not add a vote to the poll' do
+ expect(poll.votes.first).to be_nil
+ end
+ end
end
context 'when sender is followed by local users' do
diff --git a/spec/lib/activitypub/activity/flag_spec.rb b/spec/lib/activitypub/activity/flag_spec.rb
index 3f082a813..ec7359f2f 100644
--- a/spec/lib/activitypub/activity/flag_spec.rb
+++ b/spec/lib/activitypub/activity/flag_spec.rb
@@ -1,14 +1,15 @@
require 'rails_helper'
RSpec.describe ActivityPub::Activity::Flag do
- let(:sender) { Fabricate(:account, domain: 'example.com') }
+ let(:sender) { Fabricate(:account, domain: 'example.com', uri: 'http://example.com/account') }
let(:flagged) { Fabricate(:account) }
let(:status) { Fabricate(:status, account: flagged, uri: 'foobar') }
+ let(:flag_id) { nil }
let(:json) do
{
'@context': 'https://www.w3.org/ns/activitystreams',
- id: nil,
+ id: flag_id,
type: 'Flag',
content: 'Boo!!',
actor: ActivityPub::TagManager.instance.uri_for(sender),
@@ -34,4 +35,22 @@ RSpec.describe ActivityPub::Activity::Flag do
expect(report.status_ids).to eq [status.id]
end
end
+
+ describe '#perform with a defined uri' do
+ subject { described_class.new(json, sender) }
+ let (:flag_id) { 'http://example.com/reports/1' }
+
+ before do
+ subject.perform
+ end
+
+ it 'creates a report' do
+ report = Report.find_by(account: sender, target_account: flagged)
+
+ expect(report).to_not be_nil
+ expect(report.comment).to eq 'Boo!!'
+ expect(report.status_ids).to eq [status.id]
+ expect(report.uri).to eq flag_id
+ end
+ end
end
diff --git a/spec/lib/activitypub/adapter_spec.rb b/spec/lib/activitypub/adapter_spec.rb
new file mode 100644
index 000000000..ea03797aa
--- /dev/null
+++ b/spec/lib/activitypub/adapter_spec.rb
@@ -0,0 +1,88 @@
+require 'rails_helper'
+
+RSpec.describe ActivityPub::Adapter do
+ class TestObject < ActiveModelSerializers::Model
+ attributes :foo
+ end
+
+ class TestWithBasicContextSerializer < ActivityPub::Serializer
+ attributes :foo
+ end
+
+ class TestWithNamedContextSerializer < ActivityPub::Serializer
+ context :security
+ attributes :foo
+ end
+
+ class TestWithNestedNamedContextSerializer < ActivityPub::Serializer
+ attributes :foo
+
+ has_one :virtual_object, key: :baz, serializer: TestWithNamedContextSerializer
+
+ def virtual_object
+ object
+ end
+ end
+
+ class TestWithContextExtensionSerializer < ActivityPub::Serializer
+ context_extensions :sensitive
+ attributes :foo
+ end
+
+ class TestWithNestedContextExtensionSerializer < ActivityPub::Serializer
+ context_extensions :manually_approves_followers
+ attributes :foo
+
+ has_one :virtual_object, key: :baz, serializer: TestWithContextExtensionSerializer
+
+ def virtual_object
+ object
+ end
+ end
+
+ describe '#serializable_hash' do
+ let(:serializer_class) {}
+
+ subject { ActiveModelSerializers::SerializableResource.new(TestObject.new(foo: 'bar'), serializer: serializer_class, adapter: described_class).as_json }
+
+ context 'when serializer defines no context' do
+ let(:serializer_class) { TestWithBasicContextSerializer }
+
+ it 'renders a basic @context' do
+ expect(subject).to include({ '@context' => 'https://www.w3.org/ns/activitystreams' })
+ end
+ end
+
+ context 'when serializer defines a named context' do
+ let(:serializer_class) { TestWithNamedContextSerializer }
+
+ it 'renders a @context with both items' do
+ expect(subject).to include({ '@context' => ['https://www.w3.org/ns/activitystreams', 'https://w3id.org/security/v1'] })
+ end
+ end
+
+ context 'when serializer has children that define a named context' do
+ let(:serializer_class) { TestWithNestedNamedContextSerializer }
+
+ it 'renders a @context with both items' do
+ expect(subject).to include({ '@context' => ['https://www.w3.org/ns/activitystreams', 'https://w3id.org/security/v1'] })
+ end
+ end
+
+ context 'when serializer defines context extensions' do
+ let(:serializer_class) { TestWithContextExtensionSerializer }
+
+ it 'renders a @context with the extension' do
+ expect(subject).to include({ '@context' => ['https://www.w3.org/ns/activitystreams', { 'sensitive' => 'as:sensitive' }] })
+ end
+ end
+
+ context 'when serializer has children that define context extensions' do
+ let(:serializer_class) { TestWithNestedContextExtensionSerializer }
+
+ it 'renders a @context with both extensions' do
+ expect(subject).to include({ '@context' => ['https://www.w3.org/ns/activitystreams', { 'manuallyApprovesFollowers' => 'as:manuallyApprovesFollowers', 'sensitive' => 'as:sensitive' }] })
+ end
+ end
+ end
+end
diff --git a/spec/lib/language_detector_spec.rb b/spec/lib/language_detector_spec.rb
index 0fa2a59ef..0cb70605a 100644
--- a/spec/lib/language_detector_spec.rb
+++ b/spec/lib/language_detector_spec.rb
@@ -106,11 +106,11 @@ describe LanguageDetector do
end
describe 'remote user' do
- it 'nil for foreign user when language is not present' do
+ it 'detects Korean language' do
string = '안녕하세요'
result = described_class.instance.detect(string, account_remote)
- expect(result).to eq nil
+ expect(result).to eq :ko
end
end
diff --git a/spec/lib/proof_provider/keybase/verifier_spec.rb b/spec/lib/proof_provider/keybase/verifier_spec.rb
new file mode 100644
index 000000000..0081a735d
--- /dev/null
+++ b/spec/lib/proof_provider/keybase/verifier_spec.rb
@@ -0,0 +1,82 @@
+require 'rails_helper'
+
+describe ProofProvider::Keybase::Verifier do
+ let(:my_domain) { Rails.configuration.x.local_domain }
+
+ let(:keybase_proof) do
+ local_proof = AccountIdentityProof.new(
+ provider: 'Keybase',
+ provider_username: 'cryptoalice',
+ token: '11111111111111111111111111'
+ )
+
+ described_class.new('alice', 'cryptoalice', '11111111111111111111111111', my_domain)
+ end
+
+ let(:query_params) do
+ "domain=#{my_domain}&kb_username=cryptoalice&sig_hash=11111111111111111111111111&username=alice"
+ end
+
+ describe '#valid?' do
+ let(:base_url) { 'https://keybase.io/_/api/1.0/sig/proof_valid.json' }
+
+ context 'when valid' do
+ before do
+ json_response_body = '{"status":{"code":0,"name":"OK"},"proof_valid":true}'
+ stub_request(:get, "#{base_url}?#{query_params}").to_return(status: 200, body: json_response_body)
+ end
+
+ it 'calls out to keybase and returns true' do
+ expect(keybase_proof.valid?).to eq true
+ end
+ end
+
+ context 'when invalid' do
+ before do
+ json_response_body = '{"status":{"code":0,"name":"OK"},"proof_valid":false}'
+ stub_request(:get, "#{base_url}?#{query_params}").to_return(status: 200, body: json_response_body)
+ end
+
+ it 'calls out to keybase and returns false' do
+ expect(keybase_proof.valid?).to eq false
+ end
+ end
+
+ context 'with an unexpected api response' do
+ before do
+ json_response_body = '{"status":{"code":100,"desc":"wrong size hex_id","fields":{"sig_hash":"wrong size hex_id"},"name":"INPUT_ERROR"}}'
+ stub_request(:get, "#{base_url}?#{query_params}").to_return(status: 200, body: json_response_body)
+ end
+
+ it 'swallows the error and returns false' do
+ expect(keybase_proof.valid?).to eq false
+ end
+ end
+ end
+
+ describe '#status' do
+ let(:base_url) { 'https://keybase.io/_/api/1.0/sig/proof_live.json' }
+
+ context 'with a normal response' do
+ before do
+ json_response_body = '{"status":{"code":0,"name":"OK"},"proof_live":false,"proof_valid":true}'
+ stub_request(:get, "#{base_url}?#{query_params}").to_return(status: 200, body: json_response_body)
+ end
+
+ it 'calls out to keybase and returns the status fields as proof_valid and proof_live' do
+ expect(keybase_proof.status).to include({ 'proof_valid' => true, 'proof_live' => false })
+ end
+ end
+
+ context 'with an unexpected keybase response' do
+ before do
+ json_response_body = '{"status":{"code":100,"desc":"missing non-optional field sig_hash","fields":{"sig_hash":"missing non-optional field sig_hash"},"name":"INPUT_ERROR"}}'
+ stub_request(:get, "#{base_url}?#{query_params}").to_return(status: 200, body: json_response_body)
+ end
+
+ it 'raises a ProofProvider::Keybase::UnexpectedResponseError' do
+ expect { keybase_proof.status }.to raise_error ProofProvider::Keybase::UnexpectedResponseError
+ end
+ end
+ end
+end
diff --git a/spec/mailers/previews/admin_mailer_preview.rb b/spec/mailers/previews/admin_mailer_preview.rb
new file mode 100644
index 000000000..561a56b78
--- /dev/null
+++ b/spec/mailers/previews/admin_mailer_preview.rb
@@ -0,0 +1,8 @@
+# Preview all emails at http://localhost:3000/rails/mailers/admin_mailer
+
+class AdminMailerPreview < ActionMailer::Preview
+ # Preview this email at http://localhost:3000/rails/mailers/admin_mailer/new_pending_account
+ def new_pending_account
+ AdminMailer.new_pending_account(Account.first, User.pending.first)
+ end
+end
diff --git a/spec/models/account_spec.rb b/spec/models/account_spec.rb
index f7f78d34c..46886b91f 100644
--- a/spec/models/account_spec.rb
+++ b/spec/models/account_spec.rb
@@ -558,6 +558,11 @@ RSpec.describe Account, type: :model do
expect(account).to model_have_error_on_field(:username)
end
+ it 'squishes the username before validation' do
+ account = Fabricate(:account, domain: nil, username: " \u3000bob \t \u00a0 \n ")
+ expect(account.username).to eq 'bob'
+ end
+
context 'when is local' do
it 'is invalid if the username is not unique in case-insensitive comparison among local accounts' do
account_1 = Fabricate(:account, username: 'the_doctor')
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/export_spec.rb b/spec/models/export_spec.rb
index 277dcc526..4e6b824bb 100644
--- a/spec/models/export_spec.rb
+++ b/spec/models/export_spec.rb
@@ -21,20 +21,22 @@ describe Export do
target_accounts.each(&account.method(:mute!))
export = Export.new(account).to_muted_accounts_csv
- results = export.strip.split
+ results = export.strip.split("\n")
- expect(results.size).to eq 2
- expect(results.first).to eq 'one@local.host'
+ expect(results.size).to eq 3
+ expect(results.first).to eq 'Account address,Hide notifications'
+ expect(results.second).to eq 'one@local.host,true'
end
it 'returns a csv of the following accounts' do
target_accounts.each(&account.method(:follow!))
export = Export.new(account).to_following_accounts_csv
- results = export.strip.split
+ results = export.strip.split("\n")
- expect(results.size).to eq 2
- expect(results.first).to eq 'one@local.host'
+ expect(results.size).to eq 3
+ expect(results.first).to eq 'Account address,Show boosts'
+ expect(results.second).to eq 'one@local.host,true'
end
end
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/poll_spec.rb b/spec/models/poll_spec.rb
new file mode 100644
index 000000000..666f8ca68
--- /dev/null
+++ b/spec/models/poll_spec.rb
@@ -0,0 +1,5 @@
+require 'rails_helper'
+
+RSpec.describe Poll, type: :model do
+ pending "add some examples to (or delete) #{__FILE__}"
+end
diff --git a/spec/models/poll_vote_spec.rb b/spec/models/poll_vote_spec.rb
new file mode 100644
index 000000000..354afd535
--- /dev/null
+++ b/spec/models/poll_vote_spec.rb
@@ -0,0 +1,5 @@
+require 'rails_helper'
+
+RSpec.describe PollVote, type: :model do
+ pending "add some examples to (or delete) #{__FILE__}"
+end
diff --git a/spec/models/user_invite_request_spec.rb b/spec/models/user_invite_request_spec.rb
new file mode 100644
index 000000000..1be38d8a4
--- /dev/null
+++ b/spec/models/user_invite_request_spec.rb
@@ -0,0 +1,4 @@
+require 'rails_helper'
+
+RSpec.describe UserInviteRequest, type: :model do
+end
diff --git a/spec/presenters/instance_presenter_spec.rb b/spec/presenters/instance_presenter_spec.rb
index 0babc1b0c..93a4e88e4 100644
--- a/spec/presenters/instance_presenter_spec.rb
+++ b/spec/presenters/instance_presenter_spec.rb
@@ -31,34 +31,6 @@ describe InstancePresenter do
end
end
- context do
- around do |example|
- open_registrations = Setting.open_registrations
- example.run
- Setting.open_registrations = open_registrations
- end
-
- it "delegates open_registrations to Setting" do
- Setting.open_registrations = false
-
- expect(instance_presenter.open_registrations).to eq false
- end
- end
-
- context do
- around do |example|
- closed_registrations_message = Setting.closed_registrations_message
- example.run
- Setting.closed_registrations_message = closed_registrations_message
- end
-
- it "delegates closed_registrations_message to Setting" do
- Setting.closed_registrations_message = "Closed message"
-
- expect(instance_presenter.closed_registrations_message).to eq "Closed message"
- end
- end
-
context do
around do |example|
site_contact_email = Setting.site_contact_email
diff --git a/spec/requests/localization_spec.rb b/spec/requests/localization_spec.rb
index f625a93a4..496a885e8 100644
--- a/spec/requests/localization_spec.rb
+++ b/spec/requests/localization_spec.rb
@@ -11,8 +11,9 @@ describe 'Localization' do
headers = { 'Accept-Language' => 'zh-HK' }
get "/about", headers: headers
+
expect(response.body).to include(
- I18n.t('about.about_mastodon_html', locale: 'zh-HK')
+ I18n.t('about.tagline', locale: 'zh-HK')
)
end
@@ -20,16 +21,18 @@ describe 'Localization' do
headers = { 'Accept-Language' => 'es-FAKE' }
get "/about", headers: headers
+
expect(response.body).to include(
- I18n.t('about.about_mastodon_html', locale: 'es')
+ I18n.t('about.tagline', locale: 'es')
)
end
it 'falls back to english when locale is missing' do
headers = { 'Accept-Language' => '12-FAKE' }
get "/about", headers: headers
+
expect(response.body).to include(
- I18n.t('about.about_mastodon_html', locale: 'en')
+ I18n.t('about.tagline', locale: 'en')
)
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_account_service_spec.rb b/spec/services/activitypub/process_account_service_spec.rb
index d3318b2ed..5141e3f16 100644
--- a/spec/services/activitypub/process_account_service_spec.rb
+++ b/spec/services/activitypub/process_account_service_spec.rb
@@ -28,4 +28,49 @@ RSpec.describe ActivityPub::ProcessAccountService, type: :service do
expect(account.fields[1].value).to eq 'Unit test'
end
end
+
+ context 'identity proofs' do
+ let(:payload) do
+ {
+ id: 'https://foo.test',
+ type: 'Actor',
+ inbox: 'https://foo.test/inbox',
+ attachment: [
+ { type: 'IdentityProof', name: 'Alice', signatureAlgorithm: 'keybase', signatureValue: 'a' * 66 },
+ ],
+ }.with_indifferent_access
+ end
+
+ it 'parses out of attachment' do
+ allow(ProofProvider::Keybase::Worker).to receive(:perform_async)
+
+ account = subject.call('alice', 'example.com', payload)
+
+ expect(account.identity_proofs.count).to eq 1
+
+ proof = account.identity_proofs.first
+
+ expect(proof.provider).to eq 'keybase'
+ expect(proof.provider_username).to eq 'Alice'
+ expect(proof.token).to eq 'a' * 66
+ end
+
+ it 'removes no longer present proofs' do
+ allow(ProofProvider::Keybase::Worker).to receive(:perform_async)
+
+ account = Fabricate(:account, username: 'alice', domain: 'example.com')
+ old_proof = Fabricate(:account_identity_proof, account: account, provider: 'keybase', provider_username: 'Bob', token: 'b' * 66)
+
+ subject.call('alice', 'example.com', payload)
+
+ expect(account.identity_proofs.count).to eq 1
+ expect(account.identity_proofs.find_by(id: old_proof.id)).to be_nil
+ end
+
+ it 'queues a validity check on the proof' do
+ allow(ProofProvider::Keybase::Worker).to receive(:perform_async)
+ account = subject.call('alice', 'example.com', payload)
+ expect(ProofProvider::Keybase::Worker).to have_received(:perform_async)
+ end
+ end
end
diff --git a/spec/services/app_sign_up_service_spec.rb b/spec/services/app_sign_up_service_spec.rb
index d480df348..7948bb53b 100644
--- a/spec/services/app_sign_up_service_spec.rb
+++ b/spec/services/app_sign_up_service_spec.rb
@@ -8,8 +8,10 @@ RSpec.describe AppSignUpService, type: :service do
describe '#call' do
it 'returns nil when registrations are closed' do
- Setting.open_registrations = false
+ tmp = Setting.registrations_mode
+ Setting.registrations_mode = 'none'
expect(subject.call(app, good_params)).to be_nil
+ Setting.registrations_mode = tmp
end
it 'raises an error when params are missing' do
diff --git a/spec/services/import_service_spec.rb b/spec/services/import_service_spec.rb
new file mode 100644
index 000000000..5cf2dadf0
--- /dev/null
+++ b/spec/services/import_service_spec.rb
@@ -0,0 +1,169 @@
+require 'rails_helper'
+
+RSpec.describe ImportService, type: :service do
+ let!(:account) { Fabricate(:account, locked: false) }
+ let!(:bob) { Fabricate(:account, username: 'bob', locked: false) }
+ let!(:eve) { Fabricate(:account, username: 'eve', domain: 'example.com', locked: false) }
+
+ context 'import old-style list of muted users' do
+ subject { ImportService.new }
+
+ let(:csv) { attachment_fixture('mute-imports.txt') }
+
+ describe 'when no accounts are muted' do
+ let(:import) { Import.create(account: account, type: 'muting', data: csv) }
+ it 'mutes the listed accounts, including notifications' do
+ subject.call(import)
+ expect(account.muting.count).to eq 2
+ expect(Mute.find_by(account: account, target_account: bob).hide_notifications).to be true
+ end
+ end
+
+ describe 'when some accounts are muted and overwrite is not set' do
+ let(:import) { Import.create(account: account, type: 'muting', data: csv) }
+
+ it 'mutes the listed accounts, including notifications' do
+ account.mute!(bob, notifications: false)
+ subject.call(import)
+ expect(account.muting.count).to eq 2
+ expect(Mute.find_by(account: account, target_account: bob).hide_notifications).to be true
+ end
+ end
+
+ describe 'when some accounts are muted and overwrite is set' do
+ let(:import) { Import.create(account: account, type: 'muting', data: csv, overwrite: true) }
+
+ it 'mutes the listed accounts, including notifications' do
+ account.mute!(bob, notifications: false)
+ subject.call(import)
+ expect(account.muting.count).to eq 2
+ expect(Mute.find_by(account: account, target_account: bob).hide_notifications).to be true
+ end
+ end
+ end
+
+ context 'import new-style list of muted users' do
+ subject { ImportService.new }
+
+ let(:csv) { attachment_fixture('new-mute-imports.txt') }
+
+ describe 'when no accounts are muted' do
+ let(:import) { Import.create(account: account, type: 'muting', data: csv) }
+ it 'mutes the listed accounts, respecting notifications' do
+ subject.call(import)
+ expect(account.muting.count).to eq 2
+ expect(Mute.find_by(account: account, target_account: bob).hide_notifications).to be true
+ expect(Mute.find_by(account: account, target_account: eve).hide_notifications).to be false
+ end
+ end
+
+ describe 'when some accounts are muted and overwrite is not set' do
+ let(:import) { Import.create(account: account, type: 'muting', data: csv) }
+
+ it 'mutes the listed accounts, respecting notifications' do
+ account.mute!(bob, notifications: true)
+ subject.call(import)
+ expect(account.muting.count).to eq 2
+ expect(Mute.find_by(account: account, target_account: bob).hide_notifications).to be true
+ expect(Mute.find_by(account: account, target_account: eve).hide_notifications).to be false
+ end
+ end
+
+ describe 'when some accounts are muted and overwrite is set' do
+ let(:import) { Import.create(account: account, type: 'muting', data: csv, overwrite: true) }
+
+ it 'mutes the listed accounts, respecting notifications' do
+ account.mute!(bob, notifications: true)
+ subject.call(import)
+ expect(account.muting.count).to eq 2
+ expect(Mute.find_by(account: account, target_account: bob).hide_notifications).to be true
+ expect(Mute.find_by(account: account, target_account: eve).hide_notifications).to be false
+ end
+ end
+ end
+
+ context 'import old-style list of followed users' do
+ subject { ImportService.new }
+
+ let(:csv) { attachment_fixture('mute-imports.txt') }
+
+ before do
+ allow(NotificationWorker).to receive(:perform_async)
+ end
+
+ describe 'when no accounts are followed' do
+ let(:import) { Import.create(account: account, type: 'following', data: csv) }
+ it 'follows the listed accounts, including boosts' do
+ subject.call(import)
+ expect(account.following.count).to eq 2
+ expect(Follow.find_by(account: account, target_account: bob).show_reblogs).to be true
+ end
+ end
+
+ describe 'when some accounts are already followed and overwrite is not set' do
+ let(:import) { Import.create(account: account, type: 'following', data: csv) }
+
+ it 'follows the listed accounts, including notifications' do
+ account.follow!(bob, reblogs: false)
+ subject.call(import)
+ expect(account.following.count).to eq 2
+ expect(Follow.find_by(account: account, target_account: bob).show_reblogs).to be true
+ end
+ end
+
+ describe 'when some accounts are already followed and overwrite is set' do
+ let(:import) { Import.create(account: account, type: 'following', data: csv, overwrite: true) }
+
+ it 'mutes the listed accounts, including notifications' do
+ account.follow!(bob, reblogs: false)
+ subject.call(import)
+ expect(account.following.count).to eq 2
+ expect(Follow.find_by(account: account, target_account: bob).show_reblogs).to be true
+ end
+ end
+ end
+
+ context 'import new-style list of followed users' do
+ subject { ImportService.new }
+
+ let(:csv) { attachment_fixture('new-following-imports.txt') }
+
+ before do
+ allow(NotificationWorker).to receive(:perform_async)
+ end
+
+ describe 'when no accounts are followed' do
+ let(:import) { Import.create(account: account, type: 'following', data: csv) }
+ it 'follows the listed accounts, respecting boosts' do
+ subject.call(import)
+ expect(account.following.count).to eq 2
+ expect(Follow.find_by(account: account, target_account: bob).show_reblogs).to be true
+ expect(Follow.find_by(account: account, target_account: eve).show_reblogs).to be false
+ end
+ end
+
+ describe 'when some accounts are already followed and overwrite is not set' do
+ let(:import) { Import.create(account: account, type: 'following', data: csv) }
+
+ it 'mutes the listed accounts, respecting notifications' do
+ account.follow!(bob, reblogs: true)
+ subject.call(import)
+ expect(account.following.count).to eq 2
+ expect(Follow.find_by(account: account, target_account: bob).show_reblogs).to be true
+ expect(Follow.find_by(account: account, target_account: eve).show_reblogs).to be false
+ end
+ end
+
+ describe 'when some accounts are already followed and overwrite is set' do
+ let(:import) { Import.create(account: account, type: 'following', data: csv, overwrite: true) }
+
+ it 'mutes the listed accounts, respecting notifications' do
+ account.follow!(bob, reblogs: true)
+ subject.call(import)
+ expect(account.following.count).to eq 2
+ expect(Follow.find_by(account: account, target_account: bob).show_reblogs).to be true
+ expect(Follow.find_by(account: account, target_account: eve).show_reblogs).to be false
+ end
+ end
+ end
+end
diff --git a/spec/services/reblog_service_spec.rb b/spec/services/reblog_service_spec.rb
index 2755da772..9e66c6643 100644
--- a/spec/services/reblog_service_spec.rb
+++ b/spec/services/reblog_service_spec.rb
@@ -3,6 +3,27 @@ require 'rails_helper'
RSpec.describe ReblogService, type: :service do
let(:alice) { Fabricate(:account, username: 'alice') }
+ context 'creates a reblog with appropriate visibility' do
+ let(:bob) { Fabricate(:account, username: 'bob') }
+ let(:visibility) { :public }
+ let(:reblog_visibility) { :public }
+ let(:status) { Fabricate(:status, account: bob, visibility: visibility) }
+
+ subject { ReblogService.new }
+
+ before do
+ subject.call(alice, status, visibility: reblog_visibility)
+ end
+
+ describe 'boosting privately' do
+ let(:reblog_visibility) { :private }
+
+ it 'reblogs privately' do
+ expect(status.reblogs.first.visibility).to eq 'private'
+ end
+ end
+ end
+
context 'OStatus' do
let(:bob) { Fabricate(:account, username: 'bob', domain: 'example.com', salmon_url: 'http://salmon.example.com') }
let(:status) { Fabricate(:status, account: bob, uri: 'tag:example.com;something:something') }
diff --git a/spec/services/report_service_spec.rb b/spec/services/report_service_spec.rb
index e8b094c89..454e4d896 100644
--- a/spec/services/report_service_spec.rb
+++ b/spec/services/report_service_spec.rb
@@ -21,6 +21,11 @@ RSpec.describe ReportService, type: :service do
subject.call(source_account, remote_account, forward: false)
expect(a_request(:post, 'http://example.com/inbox')).to_not have_been_made
end
+
+ it 'has an uri' do
+ report = subject.call(source_account, remote_account, forward: true)
+ expect(report.uri).to_not be_nil
+ end
end
context 'when other reports already exist for the same target' 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/suspend_account_service_spec.rb b/spec/services/suspend_account_service_spec.rb
index 8a5bd3301..6f45762aa 100644
--- a/spec/services/suspend_account_service_spec.rb
+++ b/spec/services/suspend_account_service_spec.rb
@@ -1,7 +1,7 @@
require 'rails_helper'
RSpec.describe SuspendAccountService, type: :service do
- describe '#call' do
+ describe '#call on local account' do
before do
stub_request(:post, "https://alice.com/inbox").to_return(status: 201)
stub_request(:post, "https://bob.com/inbox").to_return(status: 201)
@@ -43,4 +43,46 @@ RSpec.describe SuspendAccountService, type: :service do
expect(a_request(:post, "https://bob.com/inbox")).to have_been_made.once
end
end
+
+ describe '#call on remote account' do
+ before do
+ stub_request(:post, "https://alice.com/inbox").to_return(status: 201)
+ stub_request(:post, "https://bob.com/inbox").to_return(status: 201)
+ end
+
+ subject do
+ -> { described_class.new.call(remote_bob) }
+ end
+
+ let!(:account) { Fabricate(:account) }
+ let!(:remote_alice) { Fabricate(:account, inbox_url: 'https://alice.com/inbox', protocol: :activitypub) }
+ let!(:remote_bob) { Fabricate(:account, inbox_url: 'https://bob.com/inbox', protocol: :activitypub) }
+ let!(:status) { Fabricate(:status, account: remote_bob) }
+ let!(:media_attachment) { Fabricate(:media_attachment, account: remote_bob) }
+ let!(:notification) { Fabricate(:notification, account: remote_bob) }
+ let!(:favourite) { Fabricate(:favourite, account: remote_bob) }
+ let!(:active_relationship) { Fabricate(:follow, account: remote_bob, target_account: account) }
+ let!(:passive_relationship) { Fabricate(:follow, target_account: remote_bob) }
+ let!(:subscription) { Fabricate(:subscription, account: remote_bob) }
+
+ it 'deletes associated records' do
+ is_expected.to change {
+ [
+ remote_bob.statuses,
+ remote_bob.media_attachments,
+ remote_bob.stream_entries,
+ remote_bob.notifications,
+ remote_bob.favourites,
+ remote_bob.active_relationships,
+ remote_bob.passive_relationships,
+ remote_bob.subscriptions
+ ].map(&:count)
+ }.from([1, 1, 1, 1, 1, 1, 1, 1]).to([0, 0, 0, 0, 0, 0, 0, 0])
+ end
+
+ it 'sends a reject follow to follwer inboxes' do
+ subject.call
+ expect(a_request(:post, remote_bob.inbox_url)).to have_been_made.once
+ end
+ end
end
diff --git a/spec/validators/poll_validator_spec.rb b/spec/validators/poll_validator_spec.rb
new file mode 100644
index 000000000..941b83401
--- /dev/null
+++ b/spec/validators/poll_validator_spec.rb
@@ -0,0 +1,28 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe PollValidator, type: :validator do
+ describe '#validate' do
+ before do
+ validator.validate(poll)
+ end
+
+ let(:validator) { described_class.new }
+ let(:poll) { double(options: options, expires_at: expires_at, errors: errors) }
+ let(:errors) { double(add: nil) }
+ let(:options) { %w(foo bar) }
+ let(:expires_at) { 1.day.from_now }
+
+ it 'have no errors' do
+ expect(errors).not_to have_received(:add)
+ end
+
+ context 'expires just 5 min ago' do
+ let(:expires_at) { 5.minutes.from_now }
+ it 'not calls errors add' do
+ expect(errors).not_to have_received(:add)
+ end
+ end
+ end
+end
diff --git a/spec/views/about/show.html.haml_spec.rb b/spec/views/about/show.html.haml_spec.rb
index eb81090b5..c75c28759 100644
--- a/spec/views/about/show.html.haml_spec.rb
+++ b/spec/views/about/show.html.haml_spec.rb
@@ -6,23 +6,29 @@ describe 'about/show.html.haml', without_verify_partial_doubles: true do
before do
allow(view).to receive(:site_hostname).and_return('example.com')
allow(view).to receive(:site_title).and_return('example site')
+ allow(view).to receive(:new_user).and_return(User.new)
+ allow(view).to receive(:use_seamless_external_login?).and_return(false)
end
it 'has valid open graph tags' do
- instance_presenter = double(:instance_presenter,
- site_title: 'something',
- site_short_description: 'something',
- site_description: 'something',
- version_number: '1.0',
- source_url: 'https://github.com/tootsuite/mastodon',
- open_registrations: false,
- thumbnail: nil,
- hero: nil,
- mascot: nil,
- user_count: 0,
- status_count: 0,
- contact_account: nil,
- closed_registrations_message: 'yes')
+ instance_presenter = double(
+ :instance_presenter,
+ site_title: 'something',
+ site_short_description: 'something',
+ site_description: 'something',
+ version_number: '1.0',
+ source_url: 'https://github.com/tootsuite/mastodon',
+ open_registrations: false,
+ thumbnail: nil,
+ hero: nil,
+ mascot: nil,
+ user_count: 420,
+ status_count: 69,
+ active_user_count: 420,
+ contact_account: nil,
+ sample_accounts: []
+ )
+
assign(:instance_presenter, instance_presenter)
render
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/streaming/index.js b/streaming/index.js
index 406ee09e1..d4fb8cad3 100644
--- a/streaming/index.js
+++ b/streaming/index.js
@@ -24,7 +24,7 @@ const dbUrlToConfig = (dbUrl) => {
return {};
}
- const params = url.parse(dbUrl);
+ const params = url.parse(dbUrl, true);
const config = {};
if (params.auth) {
@@ -45,8 +45,8 @@ const dbUrlToConfig = (dbUrl) => {
const ssl = params.query && params.query.ssl;
- if (ssl) {
- config.ssl = ssl === 'true' || ssl === '1';
+ if (ssl && ssl === 'true' || ssl === '1') {
+ config.ssl = true;
}
return config;
@@ -101,7 +101,12 @@ const startWorker = (workerId) => {
},
};
- const app = express();
+ if (!!process.env.DB_SSLMODE && process.env.DB_SSLMODE !== 'disable') {
+ pgConfigs.development.ssl = true;
+ pgConfigs.production.ssl = true;
+ }
+
+ const app = express();
app.set('trusted proxy', process.env.TRUSTED_PROXY_IP || 'loopback,uniquelocal');
const pgPool = new pg.Pool(Object.assign(pgConfigs[env], dbUrlToConfig(process.env.DATABASE_URL)));
diff --git a/yarn.lock b/yarn.lock
index 9ff12a712..9d7f0eccb 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2,33 +2,44 @@
# yarn lockfile v1
-"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.0.0-beta.35":
+"@babel/code-frame@^7.0.0":
version "7.0.0"
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8"
integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==
dependencies:
"@babel/highlight" "^7.0.0"
-"@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==
+"@babel/core@^7.1.0", "@babel/core@^7.3.4":
+ version "7.3.4"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.3.4.tgz#921a5a13746c21e32445bf0798680e9d11a6530b"
+ integrity sha512-jRsuseXBo9pN197KnDwhhaaBzyZr2oIcLHHTt2oDdQrej5Qp57dCCJafWx5ivU8/alEYDpssYqv1MUqcxwQlrA==
dependencies:
"@babel/code-frame" "^7.0.0"
- "@babel/generator" "^7.2.2"
+ "@babel/generator" "^7.3.4"
"@babel/helpers" "^7.2.0"
- "@babel/parser" "^7.2.2"
+ "@babel/parser" "^7.3.4"
"@babel/template" "^7.2.2"
- "@babel/traverse" "^7.2.2"
- "@babel/types" "^7.2.2"
+ "@babel/traverse" "^7.3.4"
+ "@babel/types" "^7.3.4"
convert-source-map "^1.1.0"
debug "^4.1.0"
json5 "^2.1.0"
- lodash "^4.17.10"
+ lodash "^4.17.11"
resolve "^1.3.2"
semver "^5.4.1"
source-map "^0.5.0"
+"@babel/generator@^7.0.0", "@babel/generator@^7.3.4":
+ version "7.3.4"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.3.4.tgz#9aa48c1989257877a9d971296e5b73bfe72e446e"
+ integrity sha512-8EXhHRFqlVVWXPezBW5keTiQi/rJMQTg/Y9uVCEZ0CAF3PKtCCaVRnp64Ii1ujhkoDhhF1fVsImoN4yJ2uz4Wg==
+ dependencies:
+ "@babel/types" "^7.3.4"
+ jsesc "^2.5.1"
+ lodash "^4.17.11"
+ source-map "^0.5.0"
+ trim-right "^1.0.1"
+
"@babel/generator@^7.2.2":
version "7.2.2"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.2.2.tgz#18c816c70962640eab42fe8cae5f3947a5c65ccc"
@@ -72,16 +83,17 @@
"@babel/traverse" "^7.1.0"
"@babel/types" "^7.0.0"
-"@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==
+"@babel/helper-create-class-features-plugin@^7.3.0", "@babel/helper-create-class-features-plugin@^7.3.4":
+ version "7.3.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.3.4.tgz#092711a7a3ad8ea34de3e541644c2ce6af1f6f0c"
+ integrity sha512-uFpzw6L2omjibjxa8VGZsJUPL5wJH0zzGKpoz0ccBkzIa6C8kWNUbiBmQ0rgOKWlHJ6qzmfa6lTiGchiV8SC+g==
dependencies:
"@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-replace-supers" "^7.3.4"
+ "@babel/helper-split-export-declaration" "^7.0.0"
"@babel/helper-define-map@^7.1.0":
version "7.1.0"
@@ -179,7 +191,7 @@
"@babel/traverse" "^7.1.0"
"@babel/types" "^7.0.0"
-"@babel/helper-replace-supers@^7.1.0", "@babel/helper-replace-supers@^7.2.3":
+"@babel/helper-replace-supers@^7.1.0":
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==
@@ -189,6 +201,16 @@
"@babel/traverse" "^7.2.3"
"@babel/types" "^7.0.0"
+"@babel/helper-replace-supers@^7.3.4":
+ version "7.3.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.3.4.tgz#a795208e9b911a6eeb08e5891faacf06e7013e13"
+ integrity sha512-pvObL9WVf2ADs+ePg0jrqlhHoxRXlOa+SHRHzAXIz2xkYuOHfGl+fKxPMaS4Fq+uje8JQPobnertBBvyrWnQ1A==
+ dependencies:
+ "@babel/helper-member-expression-to-functions" "^7.0.0"
+ "@babel/helper-optimise-call-expression" "^7.0.0"
+ "@babel/traverse" "^7.3.4"
+ "@babel/types" "^7.3.4"
+
"@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"
@@ -237,6 +259,11 @@
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.2.3.tgz#32f5df65744b70888d17872ec106b02434ba1489"
integrity sha512-0LyEcVlfCoFmci8mXx8A5oIkpkOgyo8dRHtxBnK9RRBwxO2+JZPNsqtVEZQ7mJFPxnXF9lfmU24mHOPI0qnlkA==
+"@babel/parser@^7.1.0", "@babel/parser@^7.3.4":
+ version "7.3.4"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.3.4.tgz#a43357e4bbf4b92a437fb9e465c192848287f27c"
+ integrity sha512-tXZCqWtlOOP4wgCp6RjRvLmfuhnqTLy9VHwRochJBCP2nDm27JnnuFEnXFASVyQNHk36jD1tAammsCEEqgscIQ==
+
"@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"
@@ -246,20 +273,20 @@
"@babel/helper-remap-async-to-generator" "^7.1.0"
"@babel/plugin-syntax-async-generators" "^7.2.0"
-"@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==
+"@babel/plugin-proposal-class-properties@^7.3.4":
+ version "7.3.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.3.4.tgz#410f5173b3dc45939f9ab30ca26684d72901405e"
+ integrity sha512-lUf8D3HLs4yYlAo8zjuneLvfxN7qfKv1Yzbj5vjqaqMJxgJA3Ipwp4VUJ+OrOdz53Wbww6ahwB8UhB2HQyLotA==
dependencies:
- "@babel/helper-create-class-features-plugin" "^7.2.3"
+ "@babel/helper-create-class-features-plugin" "^7.3.4"
"@babel/helper-plugin-utils" "^7.0.0"
-"@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==
+"@babel/plugin-proposal-decorators@^7.3.0":
+ version "7.3.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.3.0.tgz#637ba075fa780b1f75d08186e8fb4357d03a72a7"
+ integrity sha512-3W/oCUmsO43FmZIqermmq6TKaRSYhmh/vybPfVFwQWdSb8xwki38uAIvknCRzuyHRuYfCYmJzL9or1v0AffPjg==
dependencies:
- "@babel/helper-create-class-features-plugin" "^7.2.3"
+ "@babel/helper-create-class-features-plugin" "^7.3.0"
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-syntax-decorators" "^7.2.0"
@@ -271,10 +298,10 @@
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-syntax-json-strings" "^7.2.0"
-"@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==
+"@babel/plugin-proposal-object-rest-spread@^7.3.4":
+ version "7.3.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.3.4.tgz#47f73cf7f2a721aad5c0261205405c642e424654"
+ integrity sha512-j7VQmbbkA+qrzNqbKHrBsW3ddFnOeva6wzSe/zB7T+xaxGc+RCpwo44wCmRixAIGRoIpmVgvzFzNJqQcO3/9RA==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-syntax-object-rest-spread" "^7.2.0"
@@ -331,7 +358,7 @@
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-syntax-object-rest-spread@^7.2.0":
+"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@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==
@@ -352,10 +379,10 @@
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@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==
+"@babel/plugin-transform-async-to-generator@^7.3.4":
+ version "7.3.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.3.4.tgz#4e45408d3c3da231c0e7b823f407a53a7eb3048c"
+ integrity sha512-Y7nCzv2fw/jEZ9f678MuKdMo99MFDJMT/PvD9LisrR5JDFcJH6vYeH6RnjVt3p5tceyGRvTtEN0VOlU+rgHZjA==
dependencies:
"@babel/helper-module-imports" "^7.0.0"
"@babel/helper-plugin-utils" "^7.0.0"
@@ -368,25 +395,25 @@
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@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==
+"@babel/plugin-transform-block-scoping@^7.3.4":
+ version "7.3.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.3.4.tgz#5c22c339de234076eee96c8783b2fed61202c5c4"
+ integrity sha512-blRr2O8IOZLAOJklXLV4WhcEzpYafYQKSGT3+R26lWG41u/FODJuBggehtOwilVAcFu393v3OFj+HmaE6tVjhA==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
- lodash "^4.17.10"
+ lodash "^4.17.11"
-"@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==
+"@babel/plugin-transform-classes@^7.3.4":
+ version "7.3.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.3.4.tgz#dc173cb999c6c5297e0b5f2277fdaaec3739d0cc"
+ integrity sha512-J9fAvCFBkXEvBimgYxCjvaVDzL6thk0j0dBvCeZmIUDBwyt+nv6HfbImsSrWsYXfDNDivyANgJlFXDUWRTZBuA==
dependencies:
"@babel/helper-annotate-as-pure" "^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.1.0"
+ "@babel/helper-replace-supers" "^7.3.4"
"@babel/helper-split-export-declaration" "^7.0.0"
globals "^11.1.0"
@@ -467,10 +494,10 @@
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/helper-simple-access" "^7.1.0"
-"@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==
+"@babel/plugin-transform-modules-systemjs@^7.3.4":
+ version "7.3.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.3.4.tgz#813b34cd9acb6ba70a84939f3680be0eb2e58861"
+ integrity sha512-VZ4+jlGOF36S7TjKs8g4ojp4MEI+ebCQZdswWb/T9I4X84j8OtFAyjXjt/M16iIm5RIZn0UMQgg/VgIwo/87vw==
dependencies:
"@babel/helper-hoist-variables" "^7.0.0"
"@babel/helper-plugin-utils" "^7.0.0"
@@ -483,6 +510,13 @@
"@babel/helper-module-transforms" "^7.1.0"
"@babel/helper-plugin-utils" "^7.0.0"
+"@babel/plugin-transform-named-capturing-groups-regex@^7.3.0":
+ version "7.3.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.3.0.tgz#140b52985b2d6ef0cb092ef3b29502b990f9cd50"
+ integrity sha512-NxIoNVhk9ZxS+9lSoAQ/LM0V2UEvARLttEHUrRDGKFaAxOYQcrkN/nLRE+BbbicCAvZPl7wMP0X60HsHE5DtQw==
+ dependencies:
+ regexp-tree "^0.1.0"
+
"@babel/plugin-transform-new-target@^7.0.0":
version "7.0.0"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0.tgz#ae8fbd89517fa7892d20e6564e641e8770c3aa4a"
@@ -547,17 +581,17 @@
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-syntax-jsx" "^7.2.0"
-"@babel/plugin-transform-regenerator@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0.tgz#5b41686b4ed40bef874d7ed6a84bdd849c13e0c1"
- integrity sha512-sj2qzsEx8KDVv1QuJc/dEfilkg3RRPvPYx/VnKLtItVQRWt1Wqf5eVCOLZm29CiGFfYYsA3VPjfizTCV0S0Dlw==
+"@babel/plugin-transform-regenerator@^7.3.4":
+ version "7.3.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.3.4.tgz#1601655c362f5b38eead6a52631f5106b29fa46a"
+ integrity sha512-hvJg8EReQvXT6G9H2MvNPXkv9zK36Vxa1+csAVTpE1J3j0zlHplw76uudEbJxgvqZzAq9Yh45FLD4pk5mKRFQA==
dependencies:
- regenerator-transform "^0.13.3"
+ regenerator-transform "^0.13.4"
-"@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==
+"@babel/plugin-transform-runtime@^7.3.4":
+ version "7.3.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.3.4.tgz#57805ac8c1798d102ecd75c03b024a5b3ea9b431"
+ integrity sha512-PaoARuztAdd5MgeVjAxnIDAIUet5KpogqaefQvPOmPYCxYoaPhautxDh3aO8a4xHsKgT/b9gSxR0BKK1MIewPA==
dependencies:
"@babel/helper-module-imports" "^7.0.0"
"@babel/helper-plugin-utils" "^7.0.0"
@@ -610,26 +644,27 @@
"@babel/helper-regex" "^7.0.0"
regexpu-core "^4.1.3"
-"@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==
+"@babel/preset-env@^7.3.4":
+ version "7.3.4"
+ resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.3.4.tgz#887cf38b6d23c82f19b5135298bdb160062e33e1"
+ integrity sha512-2mwqfYMK8weA0g0uBKOt4FE3iEodiHy9/CW0b+nWXcbL+pGzLx8ESYc+j9IIxr6LTDHWKgPm71i9smo02bw+gA==
dependencies:
"@babel/helper-module-imports" "^7.0.0"
"@babel/helper-plugin-utils" "^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-object-rest-spread" "^7.3.4"
"@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-json-strings" "^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-async-to-generator" "^7.3.4"
"@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-block-scoping" "^7.3.4"
+ "@babel/plugin-transform-classes" "^7.3.4"
"@babel/plugin-transform-computed-properties" "^7.2.0"
"@babel/plugin-transform-destructuring" "^7.2.0"
"@babel/plugin-transform-dotall-regex" "^7.2.0"
@@ -640,12 +675,13 @@
"@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-systemjs" "^7.3.4"
"@babel/plugin-transform-modules-umd" "^7.2.0"
+ "@babel/plugin-transform-named-capturing-groups-regex" "^7.3.0"
"@babel/plugin-transform-new-target" "^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-regenerator" "^7.3.4"
"@babel/plugin-transform-shorthand-properties" "^7.2.0"
"@babel/plugin-transform-spread" "^7.2.0"
"@babel/plugin-transform-sticky-regex" "^7.2.0"
@@ -682,7 +718,14 @@
dependencies:
regenerator-runtime "^0.12.0"
-"@babel/template@^7.1.0", "@babel/template@^7.1.2", "@babel/template@^7.2.2":
+"@babel/runtime@^7.3.4":
+ version "7.3.4"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.3.4.tgz#73d12ba819e365fcf7fd152aed56d6df97d21c83"
+ integrity sha512-IvfvnMdSaLBateu0jfsYIpZTxAc2cKEXEMiezGGN75QcBcecDUKd3PgLAncT0oOgxKy8dd8hrJKj9MfzgfZd6g==
+ dependencies:
+ regenerator-runtime "^0.12.0"
+
+"@babel/template@^7.0.0", "@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==
@@ -691,7 +734,7 @@
"@babel/parser" "^7.2.2"
"@babel/types" "^7.2.2"
-"@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":
+"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.1.5", "@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==
@@ -706,6 +749,21 @@
globals "^11.1.0"
lodash "^4.17.10"
+"@babel/traverse@^7.3.4":
+ version "7.3.4"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.3.4.tgz#1330aab72234f8dea091b08c4f8b9d05c7119e06"
+ integrity sha512-TvTHKp6471OYEcE/91uWmhR6PrrYywQntCHSaZ8CM8Vmp+pjAusal4nGB2WCCQd0rvI7nOMKn9GnbcvTUz3/ZQ==
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ "@babel/generator" "^7.3.4"
+ "@babel/helper-function-name" "^7.1.0"
+ "@babel/helper-split-export-declaration" "^7.0.0"
+ "@babel/parser" "^7.3.4"
+ "@babel/types" "^7.3.4"
+ debug "^4.1.0"
+ globals "^11.1.0"
+ lodash "^4.17.11"
+
"@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"
@@ -715,6 +773,23 @@
lodash "^4.17.10"
to-fast-properties "^2.0.0"
+"@babel/types@^7.3.0", "@babel/types@^7.3.4":
+ version "7.3.4"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.3.4.tgz#bf482eaeaffb367a28abbf9357a94963235d90ed"
+ integrity sha512-WEkp8MsLftM7O/ty580wAmZzN1nDmCACc5+jFzUt+GUFNNIi3LdRlueYz0YIlmJhlZx1QYDMZL5vdWCL0fNjFQ==
+ dependencies:
+ esutils "^2.0.2"
+ lodash "^4.17.11"
+ to-fast-properties "^2.0.0"
+
+"@cnakazawa/watch@^1.0.3":
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.3.tgz#099139eaec7ebf07a27c1786a3ff64f39464d2ef"
+ integrity sha512-r5160ogAvGyHsal38Kux7YYtodEKOj89RGb28ht1jh3SJb08VwRwAKKJL0bGb04Zd/3r9FL3BFIc3bBidYffCA==
+ dependencies:
+ exec-sh "^0.3.2"
+ minimist "^1.2.0"
+
"@emotion/cache@10.0.0":
version "10.0.0"
resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-10.0.0.tgz#e22eadcb770de4131ec707c84207e9e1ce210413"
@@ -771,12 +846,180 @@
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==
+"@jest/console@^24.3.0":
+ version "24.3.0"
+ resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.3.0.tgz#7bd920d250988ba0bf1352c4493a48e1cb97671e"
+ integrity sha512-NaCty/OOei6rSDcbPdMiCbYCI0KGFGPgGO6B09lwWt5QTxnkuhKYET9El5u5z1GAcSxkQmSMtM63e24YabCWqA==
dependencies:
- base64-js "^1.3.0"
+ "@jest/source-map" "^24.3.0"
+ "@types/node" "*"
+ chalk "^2.0.1"
+ slash "^2.0.0"
+
+"@jest/core@^24.5.0":
+ version "24.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/core/-/core-24.5.0.tgz#2cefc6a69e9ebcae1da8f7c75f8a257152ba1ec0"
+ integrity sha512-RDZArRzAs51YS7dXG1pbXbWGxK53rvUu8mCDYsgqqqQ6uSOaTjcVyBl2Jce0exT2rSLk38ca7az7t2f3b0/oYQ==
+ dependencies:
+ "@jest/console" "^24.3.0"
+ "@jest/reporters" "^24.5.0"
+ "@jest/test-result" "^24.5.0"
+ "@jest/transform" "^24.5.0"
+ "@jest/types" "^24.5.0"
+ ansi-escapes "^3.0.0"
+ chalk "^2.0.1"
+ exit "^0.1.2"
+ graceful-fs "^4.1.15"
+ jest-changed-files "^24.5.0"
+ jest-config "^24.5.0"
+ jest-haste-map "^24.5.0"
+ jest-message-util "^24.5.0"
+ jest-regex-util "^24.3.0"
+ jest-resolve-dependencies "^24.5.0"
+ jest-runner "^24.5.0"
+ jest-runtime "^24.5.0"
+ jest-snapshot "^24.5.0"
+ jest-util "^24.5.0"
+ jest-validate "^24.5.0"
+ jest-watcher "^24.5.0"
+ micromatch "^3.1.10"
+ p-each-series "^1.0.0"
+ pirates "^4.0.1"
+ realpath-native "^1.1.0"
+ rimraf "^2.5.4"
+ strip-ansi "^5.0.0"
+
+"@jest/environment@^24.5.0":
+ version "24.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-24.5.0.tgz#a2557f7808767abea3f9e4cc43a172122a63aca8"
+ integrity sha512-tzUHR9SHjMXwM8QmfHb/EJNbF0fjbH4ieefJBvtwO8YErLTrecc1ROj0uo2VnIT6SlpEGZnvdCK6VgKYBo8LsA==
+ dependencies:
+ "@jest/fake-timers" "^24.5.0"
+ "@jest/transform" "^24.5.0"
+ "@jest/types" "^24.5.0"
+ "@types/node" "*"
+ jest-mock "^24.5.0"
+
+"@jest/fake-timers@^24.5.0":
+ version "24.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.5.0.tgz#4a29678b91fd0876144a58f8d46e6c62de0266f0"
+ integrity sha512-i59KVt3QBz9d+4Qr4QxsKgsIg+NjfuCjSOWj3RQhjF5JNy+eVJDhANQ4WzulzNCHd72srMAykwtRn5NYDGVraw==
+ dependencies:
+ "@jest/types" "^24.5.0"
+ "@types/node" "*"
+ jest-message-util "^24.5.0"
+ jest-mock "^24.5.0"
+
+"@jest/reporters@^24.5.0":
+ version "24.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.5.0.tgz#9363a210d0daa74696886d9cb294eb8b3ad9b4d9"
+ integrity sha512-vfpceiaKtGgnuC3ss5czWOihKOUSyjJA4M4udm6nH8xgqsuQYcyDCi4nMMcBKsHXWgz9/V5G7iisnZGfOh1w6Q==
+ dependencies:
+ "@jest/environment" "^24.5.0"
+ "@jest/test-result" "^24.5.0"
+ "@jest/transform" "^24.5.0"
+ "@jest/types" "^24.5.0"
+ chalk "^2.0.1"
+ exit "^0.1.2"
+ glob "^7.1.2"
+ istanbul-api "^2.1.1"
+ istanbul-lib-coverage "^2.0.2"
+ istanbul-lib-instrument "^3.0.1"
+ istanbul-lib-source-maps "^3.0.1"
+ jest-haste-map "^24.5.0"
+ jest-resolve "^24.5.0"
+ jest-runtime "^24.5.0"
+ jest-util "^24.5.0"
+ jest-worker "^24.4.0"
+ node-notifier "^5.2.1"
+ slash "^2.0.0"
+ source-map "^0.6.0"
+ string-length "^2.0.0"
+
+"@jest/source-map@^24.3.0":
+ version "24.3.0"
+ resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-24.3.0.tgz#563be3aa4d224caf65ff77edc95cd1ca4da67f28"
+ integrity sha512-zALZt1t2ou8le/crCeeiRYzvdnTzaIlpOWaet45lNSqNJUnXbppUUFR4ZUAlzgDmKee4Q5P/tKXypI1RiHwgag==
+ dependencies:
+ callsites "^3.0.0"
+ graceful-fs "^4.1.15"
+ source-map "^0.6.0"
+
+"@jest/test-result@^24.5.0":
+ version "24.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.5.0.tgz#ab66fb7741a04af3363443084e72ea84861a53f2"
+ integrity sha512-u66j2vBfa8Bli1+o3rCaVnVYa9O8CAFZeqiqLVhnarXtreSXG33YQ6vNYBogT7+nYiFNOohTU21BKiHlgmxD5A==
+ dependencies:
+ "@jest/console" "^24.3.0"
+ "@jest/types" "^24.5.0"
+ "@types/istanbul-lib-coverage" "^1.1.0"
+
+"@jest/transform@^24.5.0":
+ version "24.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-24.5.0.tgz#6709fc26db918e6af63a985f2cc3c464b4cf99d9"
+ integrity sha512-XSsDz1gdR/QMmB8UCKlweAReQsZrD/DK7FuDlNo/pE8EcKMrfi2kqLRk8h8Gy/PDzgqJj64jNEzOce9pR8oj1w==
+ dependencies:
+ "@babel/core" "^7.1.0"
+ "@jest/types" "^24.5.0"
+ babel-plugin-istanbul "^5.1.0"
+ chalk "^2.0.1"
+ convert-source-map "^1.4.0"
+ fast-json-stable-stringify "^2.0.0"
+ graceful-fs "^4.1.15"
+ jest-haste-map "^24.5.0"
+ jest-regex-util "^24.3.0"
+ jest-util "^24.5.0"
+ micromatch "^3.1.10"
+ realpath-native "^1.1.0"
+ slash "^2.0.0"
+ source-map "^0.6.1"
+ write-file-atomic "2.4.1"
+
+"@jest/types@^24.5.0":
+ version "24.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.5.0.tgz#feee214a4d0167b0ca447284e95a57aa10b3ee95"
+ integrity sha512-kN7RFzNMf2R8UDadPOl6ReyI+MT8xfqRuAnuVL+i4gwjv/zubdDK+EDeLHYwq1j0CSSR2W/MmgaRlMZJzXdmVA==
+ dependencies:
+ "@types/istanbul-lib-coverage" "^1.1.0"
+ "@types/yargs" "^12.0.9"
+
+"@types/babel__core@^7.1.0":
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.0.tgz#710f2487dda4dcfd010ca6abb2b4dc7394365c51"
+ integrity sha512-wJTeJRt7BToFx3USrCDs2BhEi4ijBInTQjOIukj6a/5tEkwpFMVZ+1ppgmE+Q/FQyc5P/VWUbx7I9NELrKruHA==
+ dependencies:
+ "@babel/parser" "^7.1.0"
+ "@babel/types" "^7.0.0"
+ "@types/babel__generator" "*"
+ "@types/babel__template" "*"
+ "@types/babel__traverse" "*"
+
+"@types/babel__generator@*":
+ version "7.0.2"
+ resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.0.2.tgz#d2112a6b21fad600d7674274293c85dce0cb47fc"
+ integrity sha512-NHcOfab3Zw4q5sEE2COkpfXjoE7o+PmqD9DQW4koUT3roNxwziUdXGnRndMat/LJNUtePwn1TlP4do3uoe3KZQ==
+ dependencies:
+ "@babel/types" "^7.0.0"
+
+"@types/babel__template@*":
+ version "7.0.2"
+ resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.0.2.tgz#4ff63d6b52eddac1de7b975a5223ed32ecea9307"
+ integrity sha512-/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg==
+ dependencies:
+ "@babel/parser" "^7.1.0"
+ "@babel/types" "^7.0.0"
+
+"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6":
+ version "7.0.6"
+ resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.6.tgz#328dd1a8fc4cfe3c8458be9477b219ea158fd7b2"
+ integrity sha512-XYVgHF2sQ0YblLRMLNPB3CkFMewzFmlDsH/TneZFHUXDlABQgh88uOxuez7ZcXxayLFrqLwtDH1t+FmlFwNZxw==
+ dependencies:
+ "@babel/types" "^7.3.0"
+
+"@types/istanbul-lib-coverage@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.0.tgz#2cc2ca41051498382b43157c8227fea60363f94a"
+ integrity sha512-ohkhb9LehJy+PA40rDtGAji61NCgdtKLAlFoYp4cnuuQEswwdK3vz9SOIkkyc3wrk8dzjphQApNs56yyXLStaQ==
"@types/node@*":
version "10.12.18"
@@ -795,158 +1038,171 @@
dependencies:
csstype "^2.2.0"
-"@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==
+"@types/stack-utils@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e"
+ integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==
+
+"@types/yargs@^12.0.2", "@types/yargs@^12.0.9":
+ version "12.0.9"
+ resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-12.0.9.tgz#693e76a52f61a2f1e7fb48c0eef167b95ea4ffd0"
+ integrity sha512-sCZy4SxP9rN2w30Hlmg5dtdRwgYQfYRiLo9usw8X9cxlf+H4FqM1xX7+sNH7NNKVdbXMJWqva7iyy+fxh/V7fA==
+
+"@webassemblyjs/ast@1.8.5":
+ version "1.8.5"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz#51b1c5fe6576a34953bf4b253df9f0d490d9e359"
+ integrity sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==
dependencies:
- "@webassemblyjs/helper-module-context" "1.7.11"
- "@webassemblyjs/helper-wasm-bytecode" "1.7.11"
- "@webassemblyjs/wast-parser" "1.7.11"
+ "@webassemblyjs/helper-module-context" "1.8.5"
+ "@webassemblyjs/helper-wasm-bytecode" "1.8.5"
+ "@webassemblyjs/wast-parser" "1.8.5"
-"@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/floating-point-hex-parser@1.8.5":
+ version "1.8.5"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz#1ba926a2923613edce496fd5b02e8ce8a5f49721"
+ integrity sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ==
-"@webassemblyjs/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-api-error@1.8.5":
+ version "1.8.5"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz#c49dad22f645227c5edb610bdb9697f1aab721f7"
+ integrity sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA==
-"@webassemblyjs/helper-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-buffer@1.8.5":
+ version "1.8.5"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz#fea93e429863dd5e4338555f42292385a653f204"
+ integrity sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q==
-"@webassemblyjs/helper-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==
+"@webassemblyjs/helper-code-frame@1.8.5":
+ version "1.8.5"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz#9a740ff48e3faa3022b1dff54423df9aa293c25e"
+ integrity sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ==
dependencies:
- "@webassemblyjs/wast-printer" "1.7.11"
+ "@webassemblyjs/wast-printer" "1.8.5"
-"@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-fsm@1.8.5":
+ version "1.8.5"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz#ba0b7d3b3f7e4733da6059c9332275d860702452"
+ integrity sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow==
-"@webassemblyjs/helper-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==
+"@webassemblyjs/helper-module-context@1.8.5":
+ version "1.8.5"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz#def4b9927b0101dc8cbbd8d1edb5b7b9c82eb245"
+ integrity sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==
dependencies:
- "@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/ast" "1.8.5"
+ mamacro "^0.0.3"
-"@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==
+"@webassemblyjs/helper-wasm-bytecode@1.8.5":
+ version "1.8.5"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz#537a750eddf5c1e932f3744206551c91c1b93e61"
+ integrity sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ==
+
+"@webassemblyjs/helper-wasm-section@1.8.5":
+ version "1.8.5"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz#74ca6a6bcbe19e50a3b6b462847e69503e6bfcbf"
+ integrity sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==
+ dependencies:
+ "@webassemblyjs/ast" "1.8.5"
+ "@webassemblyjs/helper-buffer" "1.8.5"
+ "@webassemblyjs/helper-wasm-bytecode" "1.8.5"
+ "@webassemblyjs/wasm-gen" "1.8.5"
+
+"@webassemblyjs/ieee754@1.8.5":
+ version "1.8.5"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz#712329dbef240f36bf57bd2f7b8fb9bf4154421e"
+ integrity sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==
dependencies:
"@xtuc/ieee754" "^1.2.0"
-"@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==
+"@webassemblyjs/leb128@1.8.5":
+ version "1.8.5"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.8.5.tgz#044edeb34ea679f3e04cd4fd9824d5e35767ae10"
+ integrity sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==
dependencies:
- "@xtuc/long" "4.2.1"
+ "@xtuc/long" "4.2.2"
-"@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/utf8@1.8.5":
+ version "1.8.5"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.8.5.tgz#a8bf3b5d8ffe986c7c1e373ccbdc2a0915f0cedc"
+ integrity sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw==
-"@webassemblyjs/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==
+"@webassemblyjs/wasm-edit@1.8.5":
+ version "1.8.5"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz#962da12aa5acc1c131c81c4232991c82ce56e01a"
+ integrity sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==
dependencies:
- "@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/ast" "1.8.5"
+ "@webassemblyjs/helper-buffer" "1.8.5"
+ "@webassemblyjs/helper-wasm-bytecode" "1.8.5"
+ "@webassemblyjs/helper-wasm-section" "1.8.5"
+ "@webassemblyjs/wasm-gen" "1.8.5"
+ "@webassemblyjs/wasm-opt" "1.8.5"
+ "@webassemblyjs/wasm-parser" "1.8.5"
+ "@webassemblyjs/wast-printer" "1.8.5"
-"@webassemblyjs/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==
+"@webassemblyjs/wasm-gen@1.8.5":
+ version "1.8.5"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz#54840766c2c1002eb64ed1abe720aded714f98bc"
+ integrity sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==
dependencies:
- "@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/ast" "1.8.5"
+ "@webassemblyjs/helper-wasm-bytecode" "1.8.5"
+ "@webassemblyjs/ieee754" "1.8.5"
+ "@webassemblyjs/leb128" "1.8.5"
+ "@webassemblyjs/utf8" "1.8.5"
-"@webassemblyjs/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==
+"@webassemblyjs/wasm-opt@1.8.5":
+ version "1.8.5"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz#b24d9f6ba50394af1349f510afa8ffcb8a63d264"
+ integrity sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==
dependencies:
- "@webassemblyjs/ast" "1.7.11"
- "@webassemblyjs/helper-buffer" "1.7.11"
- "@webassemblyjs/wasm-gen" "1.7.11"
- "@webassemblyjs/wasm-parser" "1.7.11"
+ "@webassemblyjs/ast" "1.8.5"
+ "@webassemblyjs/helper-buffer" "1.8.5"
+ "@webassemblyjs/wasm-gen" "1.8.5"
+ "@webassemblyjs/wasm-parser" "1.8.5"
-"@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==
+"@webassemblyjs/wasm-parser@1.8.5":
+ version "1.8.5"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz#21576f0ec88b91427357b8536383668ef7c66b8d"
+ integrity sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==
dependencies:
- "@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/ast" "1.8.5"
+ "@webassemblyjs/helper-api-error" "1.8.5"
+ "@webassemblyjs/helper-wasm-bytecode" "1.8.5"
+ "@webassemblyjs/ieee754" "1.8.5"
+ "@webassemblyjs/leb128" "1.8.5"
+ "@webassemblyjs/utf8" "1.8.5"
-"@webassemblyjs/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==
+"@webassemblyjs/wast-parser@1.8.5":
+ version "1.8.5"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz#e10eecd542d0e7bd394f6827c49f3df6d4eefb8c"
+ integrity sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==
dependencies:
- "@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"
+ "@webassemblyjs/ast" "1.8.5"
+ "@webassemblyjs/floating-point-hex-parser" "1.8.5"
+ "@webassemblyjs/helper-api-error" "1.8.5"
+ "@webassemblyjs/helper-code-frame" "1.8.5"
+ "@webassemblyjs/helper-fsm" "1.8.5"
+ "@xtuc/long" "4.2.2"
-"@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==
+"@webassemblyjs/wast-printer@1.8.5":
+ version "1.8.5"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz#114bbc481fd10ca0e23b3560fa812748b0bae5bc"
+ integrity sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==
dependencies:
- "@webassemblyjs/ast" "1.7.11"
- "@webassemblyjs/wast-parser" "1.7.11"
- "@xtuc/long" "4.2.1"
+ "@webassemblyjs/ast" "1.8.5"
+ "@webassemblyjs/wast-parser" "1.8.5"
+ "@xtuc/long" "4.2.2"
"@xtuc/ieee754@^1.2.0":
version "1.2.0"
resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790"
integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==
-"@xtuc/long@4.2.1":
- version "4.2.1"
- resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.1.tgz#5c85d662f76fa1d34575766c5dcd6615abcd30d8"
- integrity sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g==
+"@xtuc/long@4.2.2":
+ version "4.2.2"
+ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d"
+ integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==
abab@^2.0.0:
version "2.0.0"
@@ -966,12 +1222,10 @@ accepts@~1.3.4, accepts@~1.3.5:
mime-types "~2.1.18"
negotiator "0.6.1"
-acorn-dynamic-import@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz#901ceee4c7faaef7e07ad2a47e890675da50a278"
- integrity sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==
- dependencies:
- acorn "^5.0.0"
+acorn-dynamic-import@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz#482210140582a36b83c3e342e1cfebcaa9240948"
+ integrity sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==
acorn-globals@^4.1.0:
version "4.3.0"
@@ -986,12 +1240,12 @@ acorn-jsx@^5.0.0:
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.1.tgz#32a064fd925429216a09b141102bfdd185fae40e"
integrity sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==
-acorn-walk@^6.0.1:
+acorn-walk@^6.0.1, acorn-walk@^6.1.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.5.3, acorn@^5.6.2, acorn@^5.7.3:
+acorn@^5.5.3:
version "5.7.3"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279"
integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==
@@ -1001,6 +1255,11 @@ acorn@^6.0.1, acorn@^6.0.2:
resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.0.4.tgz#77377e7353b72ec5104550aa2d2097a2fd40b754"
integrity sha512-VY4i5EKSKkofY2I+6QLTbTTN/UvEQPCo6eiwzzSaSWfpaDhOmStMCMod6wmuPciNq+XS0faCglFu2lHZpdHUtg==
+acorn@^6.0.5, acorn@^6.0.7:
+ version "6.1.1"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.1.1.tgz#7d25ae05bb8ad1f9b699108e1094ecd7884adc1f"
+ integrity sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA==
+
ajv-errors@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d"
@@ -1076,12 +1335,12 @@ anymatch@^2.0.0:
micromatch "^3.1.4"
normalize-path "^2.1.1"
-append-transform@^0.4.0:
- version "0.4.0"
- resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991"
- integrity sha1-126/jKlNJ24keja61EpLdKthGZE=
+append-transform@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-1.0.0.tgz#046a52ae582a228bd72f58acfbe2967c678759ab"
+ integrity sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==
dependencies:
- default-require-extensions "^1.0.0"
+ default-require-extensions "^2.0.0"
aproba@^1.0.3, aproba@^1.1.1:
version "1.2.0"
@@ -1111,19 +1370,12 @@ aria-query@^3.0.0:
ast-types-flow "0.0.7"
commander "^2.11.0"
-arr-diff@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf"
- integrity sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=
- dependencies:
- arr-flatten "^1.0.1"
-
arr-diff@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520"
integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=
-arr-flatten@^1.0.1, arr-flatten@^1.1.0:
+arr-flatten@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==
@@ -1168,11 +1420,6 @@ array-uniq@^1.0.1:
resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=
-array-unique@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53"
- integrity sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=
-
array-unique@^0.3.2:
version "0.3.2"
resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
@@ -1255,13 +1502,20 @@ async@^1.5.2:
resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=
-async@^2.1.4, async@^2.5.0:
+async@^2.5.0:
version "2.6.1"
resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610"
integrity sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==
dependencies:
lodash "^4.17.10"
+async@^2.6.1:
+ version "2.6.2"
+ resolved "https://registry.yarnpkg.com/async/-/async-2.6.2.tgz#18330ea7e6e313887f5d2f2a904bac6fe4dd5381"
+ integrity sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==
+ dependencies:
+ lodash "^4.17.11"
+
asynckit@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
@@ -1272,16 +1526,16 @@ 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@^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==
+autoprefixer@^9.4.10:
+ version "9.4.10"
+ resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.4.10.tgz#e1be61fc728bacac8f4252ed242711ec0dcc6a7b"
+ integrity sha512-XR8XZ09tUrrSzgSlys4+hy5r2/z4Jp7Ag3pHm31U4g/CTccYPOVe19AkaJ4ey/vRd1sfj+5TtuD6I0PXtutjvQ==
dependencies:
- browserslist "^4.3.6"
- caniuse-lite "^1.0.30000921"
+ browserslist "^4.4.2"
+ caniuse-lite "^1.0.30000940"
normalize-range "^0.1.2"
num2fraction "^1.2.2"
- postcss "^7.0.6"
+ postcss "^7.0.14"
postcss-value-parser "^3.3.1"
aws-sign2@~0.7.0:
@@ -1309,45 +1563,6 @@ axobject-query@^2.0.1:
dependencies:
ast-types-flow "0.0.7"
-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=
- dependencies:
- chalk "^1.1.3"
- esutils "^2.0.2"
- js-tokens "^3.0.2"
-
-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==
- dependencies:
- babel-code-frame "^6.26.0"
- babel-generator "^6.26.0"
- babel-helpers "^6.24.1"
- babel-messages "^6.23.0"
- babel-register "^6.26.0"
- babel-runtime "^6.26.0"
- babel-template "^6.26.0"
- babel-traverse "^6.26.0"
- babel-types "^6.26.0"
- babylon "^6.18.0"
- convert-source-map "^1.5.1"
- debug "^2.6.9"
- json5 "^0.5.1"
- lodash "^4.17.4"
- minimatch "^3.0.4"
- path-is-absolute "^1.0.1"
- private "^0.1.8"
- slash "^1.0.0"
- source-map "^0.5.7"
-
-babel-core@^7.0.0-bridge.0:
- version "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@^10.0.1:
version "10.0.1"
resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.0.1.tgz#919681dc099614cd7d31d45c8908695092a1faed"
@@ -1360,67 +1575,44 @@ babel-eslint@^10.0.1:
eslint-scope "3.7.1"
eslint-visitor-keys "^1.0.0"
-babel-generator@^6.18.0, babel-generator@^6.26.0:
- version "6.26.1"
- resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90"
- integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==
+babel-jest@^24.5.0:
+ version "24.5.0"
+ resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.5.0.tgz#0ea042789810c2bec9065f7c8ab4dc18e1d28559"
+ integrity sha512-0fKCXyRwxFTJL0UXDJiT2xYxO9Lu2vBd9n+cC+eDjESzcVG3s2DRGAxbzJX21fceB1WYoBjAh8pQ83dKcl003g==
dependencies:
- babel-messages "^6.23.0"
- babel-runtime "^6.26.0"
- babel-types "^6.26.0"
- detect-indent "^4.0.0"
- jsesc "^1.3.0"
- lodash "^4.17.4"
- source-map "^0.5.7"
- trim-right "^1.0.1"
+ "@jest/transform" "^24.5.0"
+ "@jest/types" "^24.5.0"
+ "@types/babel__core" "^7.1.0"
+ babel-plugin-istanbul "^5.1.0"
+ babel-preset-jest "^24.3.0"
+ chalk "^2.4.2"
+ slash "^2.0.0"
-babel-helpers@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2"
- integrity sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=
+babel-loader@^8.0.5:
+ version "8.0.5"
+ resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.5.tgz#225322d7509c2157655840bba52e46b6c2f2fe33"
+ integrity sha512-NTnHnVRd2JnRqPC0vW+iOQWU5pchDbYXsG2E6DMXEpMfUcQKclF9gmf3G3ZMhzG7IG9ji4coL0cm+FxeWxDpnw==
dependencies:
- babel-runtime "^6.22.0"
- babel-template "^6.24.1"
-
-babel-jest@^23.6.0:
- version "23.6.0"
- resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-23.6.0.tgz#a644232366557a2240a0c083da6b25786185a2f1"
- integrity sha512-lqKGG6LYXYu+DQh/slrQ8nxXQkEkhugdXsU6St7GmhVS7Ilc/22ArwqXNJrf0QaOBjZB0360qZMwXqDYQHXaew==
- dependencies:
- babel-plugin-istanbul "^4.1.6"
- babel-preset-jest "^23.2.0"
-
-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"
+ find-cache-dir "^2.0.0"
loader-utils "^1.0.2"
mkdirp "^0.5.1"
util.promisify "^1.0.0"
-babel-messages@^6.23.0:
- version "6.23.0"
- resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e"
- integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=
+babel-plugin-istanbul@^5.1.0:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-5.1.1.tgz#7981590f1956d75d67630ba46f0c22493588c893"
+ integrity sha512-RNNVv2lsHAXJQsEJ5jonQwrJVWK8AcZpG1oxhnjCUaAjL7xahYLANhPUZbzEQHjKy1NMYUwn+0NPKQc8iSY4xQ==
dependencies:
- babel-runtime "^6.22.0"
+ find-up "^3.0.0"
+ istanbul-lib-instrument "^3.0.0"
+ test-exclude "^5.0.0"
-babel-plugin-istanbul@^4.1.6:
- version "4.1.6"
- 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==
+babel-plugin-jest-hoist@^24.3.0:
+ version "24.3.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.3.0.tgz#f2e82952946f6e40bb0a75d266a3790d854c8b5b"
+ integrity sha512-nWh4N1mVH55Tzhx2isvUN5ebM5CDUvIpXPZYMRazQughie/EqGnbR+czzoQlhUmJG9pPJmYDRhvocotb2THl1w==
dependencies:
- babel-plugin-syntax-object-rest-spread "^6.13.0"
- find-up "^2.1.0"
- istanbul-lib-instrument "^1.10.1"
- test-exclude "^4.2.1"
-
-babel-plugin-jest-hoist@^23.2.0:
- version "23.2.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-23.2.0.tgz#e61fae05a1ca8801aadee57a6d66b8cefaf44167"
- integrity sha1-5h+uBaHKiAGq3uV6bWa4zvr0QWc=
+ "@types/babel__traverse" "^7.0.6"
babel-plugin-lodash@^3.3.4:
version "3.3.4"
@@ -1458,38 +1650,20 @@ babel-plugin-react-intl@^3.0.1:
intl-messageformat-parser "^1.2.0"
mkdirp "^0.5.1"
-babel-plugin-syntax-object-rest-spread@^6.13.0:
- version "6.13.0"
- 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.24:
+ version "0.4.24"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz#f2edaf9b4c6a5fbe5c1d678bfb531078c1555f3a"
+ integrity sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==
-babel-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"
- resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-23.2.0.tgz#8ec7a03a138f001a1a8fb1e8113652bf1a55da46"
- integrity sha1-jsegOhOPABoaj7HoETZSvxpV2kY=
+babel-preset-jest@^24.3.0:
+ version "24.3.0"
+ resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.3.0.tgz#db88497e18869f15b24d9c0e547d8e0ab950796d"
+ integrity sha512-VGTV2QYBa/Kn3WCOKdfS31j9qomaXSgJqi65B6o05/1GsJyj9LVhSljM9ro4S+IBGj/ENhNBuH9bpqzztKAQSw==
dependencies:
- babel-plugin-jest-hoist "^23.2.0"
- babel-plugin-syntax-object-rest-spread "^6.13.0"
+ "@babel/plugin-syntax-object-rest-spread" "^7.0.0"
+ babel-plugin-jest-hoist "^24.3.0"
-babel-register@^6.26.0:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071"
- integrity sha1-btAhFz4vy0htestFxgCahW9kcHE=
- dependencies:
- babel-core "^6.26.0"
- babel-runtime "^6.26.0"
- core-js "^2.5.0"
- home-or-tmp "^2.0.0"
- lodash "^4.17.4"
- mkdirp "^0.5.1"
- source-map-support "^0.4.15"
-
-babel-runtime@^6.22.0, babel-runtime@^6.26.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=
@@ -1497,47 +1671,6 @@ babel-runtime@^6.22.0, babel-runtime@^6.26.0:
core-js "^2.4.0"
regenerator-runtime "^0.11.0"
-babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.26.0:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02"
- integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=
- dependencies:
- babel-runtime "^6.26.0"
- babel-traverse "^6.26.0"
- babel-types "^6.26.0"
- babylon "^6.18.0"
- lodash "^4.17.4"
-
-babel-traverse@^6.0.0, babel-traverse@^6.18.0, babel-traverse@^6.26.0:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee"
- integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=
- dependencies:
- babel-code-frame "^6.26.0"
- babel-messages "^6.23.0"
- babel-runtime "^6.26.0"
- babel-types "^6.26.0"
- babylon "^6.18.0"
- debug "^2.6.8"
- globals "^9.18.0"
- invariant "^2.2.2"
- lodash "^4.17.4"
-
-babel-types@^6.0.0, babel-types@^6.18.0, babel-types@^6.26.0:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497"
- integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=
- dependencies:
- babel-runtime "^6.26.0"
- esutils "^2.0.2"
- lodash "^4.17.4"
- to-fast-properties "^1.0.3"
-
-babylon@^6.18.0:
- version "6.18.0"
- resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
- integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==
-
backoff@^2.4.1:
version "2.5.0"
resolved "https://registry.yarnpkg.com/backoff/-/backoff-2.5.0.tgz#f616eda9d3e4b66b8ca7fca79f695722c5f8e26f"
@@ -1550,7 +1683,7 @@ balanced-match@^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.3.0:
+base64-js@^1.0.2:
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==
@@ -1656,15 +1789,6 @@ brace-expansion@^1.1.7:
balanced-match "^1.0.0"
concat-map "0.0.1"
-braces@^1.8.2:
- version "1.8.5"
- resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7"
- integrity sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=
- dependencies:
- expand-range "^1.8.1"
- preserve "^0.2.0"
- repeat-element "^1.1.2"
-
braces@^2.3.0, braces@^2.3.1:
version "2.3.2"
resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729"
@@ -1764,7 +1888,7 @@ browserify-zlib@^0.2.0:
dependencies:
pako "~1.0.5"
-browserslist@^4.0.0, browserslist@^4.3.4, browserslist@^4.3.6:
+browserslist@^4.0.0, browserslist@^4.3.4:
version "4.3.7"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.3.7.tgz#f1de479a6466ea47a0a26dcc725e7504817e624a"
integrity sha512-pWQv51Ynb0MNk9JGMCZ8VkM785/4MQNXiFYtPqI7EEP0TJO+/d/NqRVn1uiAN0DNbnlUSpL2sh16Kspasv3pUQ==
@@ -1773,6 +1897,15 @@ browserslist@^4.0.0, browserslist@^4.3.4, browserslist@^4.3.6:
electron-to-chromium "^1.3.96"
node-releases "^1.1.3"
+browserslist@^4.4.2:
+ version "4.4.2"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.4.2.tgz#6ea8a74d6464bb0bd549105f659b41197d8f0ba2"
+ integrity sha512-ISS/AIAiHERJ3d45Fz0AVYKkgcy+F/eJHzKEvv1j0wwKGKD9T3BrwKr/5g45L+Y4XIK5PlTqefHciRFcfE1Jxg==
+ dependencies:
+ caniuse-lite "^1.0.30000939"
+ electron-to-chromium "^1.3.113"
+ node-releases "^1.1.8"
+
bser@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/bser/-/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719"
@@ -1890,6 +2023,11 @@ callsites@^2.0.0:
resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50"
integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=
+callsites@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.0.0.tgz#fb7eb569b72ad7a45812f93fd9430a3e410b3dd3"
+ integrity sha512-tWnkwu9YEq2uzlBDI4RcLn8jrFvF9AOi8PxDNU3hZZjJcjkcRAq3vCI+vZcg1SuxISDYe86k9VZFwAxDiJGoAw==
+
camelcase@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
@@ -1900,6 +2038,11 @@ camelcase@^5.0.0:
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.0.0.tgz#03295527d58bd3cd4aa75363f35b2e8d97be2f42"
integrity sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==
+camelcase@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.2.0.tgz#e7522abda5ed94cc0489e1b8466610e88404cf45"
+ integrity sha512-IXFsBS2pC+X0j0N/GE7Dm7j3bsEBp+oTpb7F50dwEVX7rf3IgwO9XatnegTsDtniKCUtEJH4fSU6Asw7uoVLfQ==
+
caniuse-api@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0"
@@ -1910,11 +2053,16 @@ caniuse-api@^3.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:
+caniuse-lite@^1.0.0, 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==
+caniuse-lite@^1.0.30000939, caniuse-lite@^1.0.30000940:
+ version "1.0.30000947"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000947.tgz#c30305e9701449c22e97f4e9837cea3d76aa3273"
+ integrity sha512-ubgBUfufe5Oi3W1+EHyh2C3lfBIEcZ6bTuvl5wNOpIuRB978GF/Z+pQ7pGGUpeYRB0P+8C7i/3lt6xkeu2hwnA==
+
capture-exit@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-1.2.0.tgz#1c5fcc489fd0ab00d4f1ac7ae1072e3173fbab6f"
@@ -1947,6 +2095,15 @@ chalk@^2.0, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.2, chalk@^2.4.1
escape-string-regexp "^1.0.5"
supports-color "^5.3.0"
+chalk@^2.4.2:
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
+ integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
+ dependencies:
+ ansi-styles "^3.2.1"
+ escape-string-regexp "^1.0.5"
+ supports-color "^5.3.0"
+
chardet@^0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
@@ -2001,10 +2158,10 @@ chrome-trace-event@^1.0.0:
dependencies:
tslib "^1.9.0"
-ci-info@^1.5.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497"
- integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==
+ci-info@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46"
+ integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==
cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
version "1.0.4"
@@ -2046,15 +2203,6 @@ cli-width@^2.0.0:
resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=
-cliui@^3.2.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d"
- integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=
- dependencies:
- string-width "^1.0.1"
- strip-ansi "^3.0.1"
- wrap-ansi "^2.0.0"
-
cliui@^4.0.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49"
@@ -2161,6 +2309,11 @@ commondir@^1.0.1:
resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=
+compare-versions@^3.2.1:
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.4.0.tgz#e0747df5c9cb7f054d6d3dc3e1dbc444f9e92b26"
+ integrity sha512-tK69D7oNXXqUW3ZNo/z7NXTEz22TCF0pTE+YF9cxvaAM9XnkLo1fV621xCLrRR6aevJlKxExkss0vWqUCUpqdg==
+
component-emitter@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6"
@@ -2250,7 +2403,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.1:
+convert-source-map@^1.1.0, convert-source-map@^1.4.0:
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==
@@ -2289,7 +2442,7 @@ core-js@^1.0.0:
resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636"
integrity sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=
-core-js@^2.4.0, core-js@^2.5.0:
+core-js@^2.4.0:
version "2.6.1"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.1.tgz#87416ae817de957a3f249b3b5ca475d4aaed6042"
integrity sha512-L72mmmEayPJBejKIWe2pYtGis5r0tQ5NaJekdhyXgeMQTpJoBsH0NL4ElY2LfSoV15xeQWKQ+XTTOZdyero5Xg==
@@ -2368,15 +2521,6 @@ cross-env@^5.1.4:
cross-spawn "^6.0.5"
is-windows "^1.0.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=
- dependencies:
- lru-cache "^4.0.1"
- shebang-command "^1.2.0"
- which "^1.2.9"
-
cross-spawn@^6.0.0, cross-spawn@^6.0.5:
version "6.0.5"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
@@ -2450,18 +2594,19 @@ css-list-helpers@^1.0.1:
dependencies:
tcomb "^2.5.0"
-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==
+css-loader@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-2.1.1.tgz#d8254f72e412bb2238bb44dd674ffbef497333ea"
+ integrity sha512-OcKJU/lt232vl1P9EEDamhoO9iKY3tIjY5GU+XDLblAykTdgs6Ux9P1hTHve8nFKy5KPpOXOsVI/hIwi3841+w==
dependencies:
- icss-utils "^4.0.0"
- loader-utils "^1.2.1"
- lodash "^4.17.11"
- postcss "^7.0.6"
+ camelcase "^5.2.0"
+ icss-utils "^4.1.0"
+ loader-utils "^1.2.3"
+ normalize-path "^3.0.0"
+ postcss "^7.0.14"
postcss-modules-extract-imports "^2.0.0"
- postcss-modules-local-by-default "^2.0.3"
- postcss-modules-scope "^2.0.0"
+ postcss-modules-local-by-default "^2.0.6"
+ postcss-modules-scope "^2.1.0"
postcss-modules-values "^2.0.0"
postcss-value-parser "^3.3.0"
schema-utils "^1.0.0"
@@ -2491,15 +2636,6 @@ css-select@~1.2.0:
domutils "1.5.1"
nth-check "~1.0.1"
-css-selector-tokenizer@^0.7.0:
- 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"
- regexpu-core "^1.0.0"
-
css-system-font-keywords@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/css-system-font-keywords/-/css-system-font-keywords-1.0.0.tgz#85c6f086aba4eb32c571a3086affc434b84823ed"
@@ -2536,50 +2672,50 @@ css-what@2.1, css-what@^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==
+cssesc@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
+ integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
+
+cssnano-preset-default@^4.0.7:
+ version "4.0.7"
+ resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76"
+ integrity sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==
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-calc "^7.0.1"
+ postcss-colormin "^4.0.3"
postcss-convert-values "^4.0.1"
- postcss-discard-comments "^4.0.1"
+ postcss-discard-comments "^4.0.2"
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-merge-longhand "^4.0.11"
+ postcss-merge-rules "^4.0.3"
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-minify-gradients "^4.0.2"
+ postcss-minify-params "^4.0.2"
+ postcss-minify-selectors "^4.0.2"
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-display-values "^4.0.2"
+ postcss-normalize-positions "^4.0.2"
+ postcss-normalize-repeat-style "^4.0.2"
+ postcss-normalize-string "^4.0.2"
+ postcss-normalize-timing-functions "^4.0.2"
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-normalize-whitespace "^4.0.2"
+ postcss-ordered-values "^4.1.2"
+ postcss-reduce-initial "^4.0.3"
+ postcss-reduce-transforms "^4.0.2"
+ postcss-svgo "^4.0.2"
postcss-unique-selectors "^4.0.1"
cssnano-util-get-arguments@^4.0.0:
@@ -2604,13 +2740,13 @@ cssnano-util-same-parent@^4.0.0:
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==
+cssnano@^4.1.10:
+ version "4.1.10"
+ resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2"
+ integrity sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==
dependencies:
cosmiconfig "^5.0.0"
- cssnano-preset-default "^4.0.6"
+ cssnano-preset-default "^4.0.7"
is-resolvable "^1.0.0"
postcss "^7.0.0"
@@ -2690,21 +2826,21 @@ debug@=3.1.0:
dependencies:
ms "2.0.0"
-debug@^3.1.0, debug@^3.2.5:
+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"
-debug@^4.0.1, debug@^4.1.0:
+debug@^4.0.1, debug@^4.1.0, debug@^4.1.1:
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:
+decamelize@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
@@ -2741,20 +2877,20 @@ deep-is@~0.1.3:
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
-default-gateway@^2.6.0:
- version "2.7.2"
- resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-2.7.2.tgz#b7ef339e5e024b045467af403d50348db4642d0f"
- integrity sha512-lAc4i9QJR0YHSDFdzeBQKfZ1SRDG3hsJNEkrpcZa8QhBfidLAilT60BDEIVUUGqosFp425KOgB3uYqcnQrWafQ==
+default-gateway@^4.0.1:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b"
+ integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==
dependencies:
- execa "^0.10.0"
+ execa "^1.0.0"
ip-regex "^2.1.0"
-default-require-extensions@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8"
- integrity sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=
+default-require-extensions@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-2.0.0.tgz#f5f8fbb18a7d6d50b21f641f649ebb522cfe24f7"
+ integrity sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc=
dependencies:
- strip-bom "^2.0.0"
+ strip-bom "^3.0.0"
define-properties@^1.1.1, define-properties@^1.1.2, define-properties@^1.1.3:
version "1.1.3"
@@ -2825,12 +2961,10 @@ destroy@~1.0.4:
resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
-detect-indent@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208"
- integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg=
- dependencies:
- repeating "^2.0.0"
+detect-file@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7"
+ integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=
detect-libc@^1.0.2, detect-libc@^1.0.3:
version "1.0.3"
@@ -2852,10 +2986,10 @@ detect-passive-events@^1.0.2:
resolved "https://registry.yarnpkg.com/detect-passive-events/-/detect-passive-events-1.0.4.tgz#6ed477e6e5bceb79079735dcd357789d37f9a91a"
integrity sha1-btR35uW863kHlzXc01d4nTf5qRo=
-diff@^3.2.0:
- version "3.5.0"
- resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12"
- integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==
+diff-sequences@^24.3.0:
+ version "24.3.0"
+ resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.3.0.tgz#0f20e8a1df1abddaf4d9c226680952e64118b975"
+ integrity sha512-xLqpez+Zj9GKSnPWS0WZw1igGocZ+uua8+y+5dDNTT934N3QuY1sp2LkHzwiaYQGz60hMq0pjAshdeXm5VUOEw==
diffie-hellman@^5.0.0:
version "5.0.3"
@@ -3016,6 +3150,11 @@ ejs@^2.3.4, ejs@^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.113:
+ version "1.3.116"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.116.tgz#1dbfee6a592a0c14ade77dbdfe54fef86387d702"
+ integrity sha512-NKwKAXzur5vFCZYBHpdWjTMO8QptNLNP80nItkSIgUOapPAo9Uia+RvkCaZJtO7fhQaVElSvBPWEc2ku6cKsPA==
+
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"
@@ -3417,38 +3556,10 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
md5.js "^1.3.4"
safe-buffer "^5.1.1"
-exec-sh@^0.2.0:
- version "0.2.2"
- resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.2.tgz#2a5e7ffcbd7d0ba2755bdecb16e5a427dfbdec36"
- integrity sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw==
- dependencies:
- merge "^1.2.0"
-
-execa@^0.10.0:
- version "0.10.0"
- resolved "https://registry.yarnpkg.com/execa/-/execa-0.10.0.tgz#ff456a8f53f90f8eccc71a96d11bdfc7f082cb50"
- integrity sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==
- dependencies:
- cross-spawn "^6.0.0"
- get-stream "^3.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"
-
-execa@^0.7.0:
- version "0.7.0"
- resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777"
- integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=
- dependencies:
- cross-spawn "^5.0.1"
- get-stream "^3.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"
+exec-sh@^0.3.2:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.2.tgz#6738de2eb7c8e671d0366aea0b0db8c6f7d7391b"
+ integrity sha512-9sLAvzhI5nc8TpuQUh4ahMdCrWT00wPWz7j47/emR5+2qEfoZP5zzUXvx+vdx+H6ohhnsYC31iX04QLYJK8zTg==
execa@^1.0.0:
version "1.0.0"
@@ -3473,13 +3584,6 @@ exit@^0.1.2:
resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=
-expand-brackets@^0.1.4:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b"
- integrity sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=
- dependencies:
- is-posix-bracket "^0.1.0"
-
expand-brackets@^2.1.4:
version "2.1.4"
resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622"
@@ -3493,24 +3597,24 @@ expand-brackets@^2.1.4:
snapdragon "^0.8.1"
to-regex "^3.0.1"
-expand-range@^1.8.1:
- version "1.8.2"
- resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337"
- integrity sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=
+expand-tilde@^2.0.0, expand-tilde@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502"
+ integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=
dependencies:
- fill-range "^2.1.0"
+ homedir-polyfill "^1.0.1"
-expect@^23.6.0:
- version "23.6.0"
- resolved "https://registry.yarnpkg.com/expect/-/expect-23.6.0.tgz#1e0c8d3ba9a581c87bd71fb9bc8862d443425f98"
- integrity sha512-dgSoOHgmtn/aDGRVFWclQyPDKl2CQRq0hmIEoUAuQs/2rn2NcvCWcSCovm6BLeuB/7EZuLGu2QfnR+qRt5OM4w==
+expect@^24.5.0:
+ version "24.5.0"
+ resolved "https://registry.yarnpkg.com/expect/-/expect-24.5.0.tgz#492fb0df8378d8474cc84b827776b069f46294ed"
+ integrity sha512-p2Gmc0CLxOgkyA93ySWmHFYHUPFIHG6XZ06l7WArWAsrqYVaVEkOU5NtT5i68KUyGKbkQgDCkiT65bWmdoL6Bw==
dependencies:
+ "@jest/types" "^24.5.0"
ansi-styles "^3.2.0"
- jest-diff "^23.6.0"
- jest-get-type "^22.1.0"
- jest-matcher-utils "^23.6.0"
- jest-message-util "^23.4.0"
- jest-regex-util "^23.3.0"
+ jest-get-type "^24.3.0"
+ jest-matcher-utils "^24.5.0"
+ jest-message-util "^24.5.0"
+ jest-regex-util "^24.3.0"
express@^4.16.2, express@^4.16.3, express@^4.16.4:
version "4.16.4"
@@ -3577,13 +3681,6 @@ external-editor@^3.0.0:
iconv-lite "^0.4.24"
tmp "^0.0.33"
-extglob@^0.3.1:
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1"
- integrity sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=
- dependencies:
- is-extglob "^1.0.0"
-
extglob@^2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543"
@@ -3623,11 +3720,6 @@ fast-levenshtein@~2.0.4:
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
-fastparse@^1.1.1:
- 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"
resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4"
@@ -3697,12 +3789,7 @@ file-loader@^3.0.1:
loader-utils "^1.0.2"
schema-utils "^1.0.0"
-filename-regex@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"
- integrity sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=
-
-fileset@^2.0.2:
+fileset@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/fileset/-/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0"
integrity sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=
@@ -3715,17 +3802,6 @@ filesize@^3.6.1:
resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317"
integrity sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==
-fill-range@^2.1.0:
- version "2.2.4"
- resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565"
- integrity sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==
- dependencies:
- is-number "^2.1.0"
- isobject "^2.0.0"
- randomatic "^3.0.0"
- repeat-element "^1.1.2"
- repeat-string "^1.5.2"
-
fill-range@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7"
@@ -3749,15 +3825,6 @@ finalhandler@1.1.1:
statuses "~1.4.0"
unpipe "~1.0.0"
-find-cache-dir@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f"
- integrity sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=
- dependencies:
- commondir "^1.0.1"
- make-dir "^1.0.0"
- pkg-dir "^2.0.0"
-
find-cache-dir@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.0.0.tgz#4c1faed59f45184530fb9d7fa123a4d04a98472d"
@@ -3775,7 +3842,7 @@ find-up@^1.0.0:
path-exists "^2.0.0"
pinkie-promise "^2.0.0"
-find-up@^2.0.0, find-up@^2.1.0:
+find-up@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c=
@@ -3789,6 +3856,16 @@ find-up@^3.0.0:
dependencies:
locate-path "^3.0.0"
+findup-sync@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-2.0.0.tgz#9326b1488c22d1a6088650a86901b2d9a90a2cbc"
+ integrity sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=
+ dependencies:
+ detect-file "^1.0.0"
+ is-glob "^3.1.0"
+ micromatch "^3.0.4"
+ resolve-dir "^1.0.1"
+
flat-cache@^1.2.1:
version "1.3.4"
resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.4.tgz#2c2ef77525cc2929007dfffa1dd314aa9c9dee6f"
@@ -3829,13 +3906,6 @@ for-in@^1.0.1, for-in@^1.0.2:
resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=
-for-own@^0.1.4:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce"
- integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=
- dependencies:
- for-in "^1.0.1"
-
for-own@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b"
@@ -3904,7 +3974,7 @@ fs.realpath@^1.0.0:
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
-fsevents@*, fsevents@^1.2.2, fsevents@^1.2.3:
+fsevents@^1.2.2:
version "1.2.4"
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426"
integrity sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==
@@ -3955,11 +4025,6 @@ 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-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"
@@ -3979,21 +4044,6 @@ getpass@^0.1.1:
dependencies:
assert-plus "^1.0.0"
-glob-base@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4"
- integrity sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=
- dependencies:
- glob-parent "^2.0.0"
- is-glob "^2.0.0"
-
-glob-parent@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28"
- integrity sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=
- dependencies:
- is-glob "^2.0.0"
-
glob-parent@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae"
@@ -4014,21 +4064,31 @@ glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3:
once "^1.3.0"
path-is-absolute "^1.0.0"
-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==
+global-modules@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea"
+ integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==
+ dependencies:
+ global-prefix "^1.0.1"
+ is-windows "^1.0.1"
+ resolve-dir "^1.0.0"
+
+global-prefix@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe"
+ integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=
+ dependencies:
+ expand-tilde "^2.0.2"
+ homedir-polyfill "^1.0.1"
+ ini "^1.3.4"
+ is-windows "^1.0.1"
+ which "^1.2.14"
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@^6.1.0:
version "6.1.0"
resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c"
@@ -4063,10 +4123,10 @@ handle-thing@^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"
- resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.12.tgz#2c15c8a96d46da5e266700518ba8cb8d919d5bc5"
- integrity sha512-RhmTekP+FZL+XNhwS1Wf+bTTZpdLougwt5pcgA1tuz6Jcx0fpH/7z0qd71RKnZHBCxIRBHfBOnio4gViPemNzA==
+handlebars@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.1.0.tgz#0d6a6f34ff1f63cecec8423aa4169827bf787c3a"
+ integrity sha512-l2jRuU1NAWK6AW5qqcTATWQJvNPEwkM7NEKSiv/gqOsoSQbVoWyqVEY5GS+XPQ88zLNmqASRpzfdm8d79hJS+w==
dependencies:
async "^2.5.0"
optimist "^0.6.1"
@@ -4205,13 +4265,12 @@ hoist-non-react-statics@^3.2.1:
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"
- integrity sha1-42w/LSyufXRqhX440Y1fMqeILbg=
+homedir-polyfill@^1.0.1:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8"
+ integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==
dependencies:
- os-homedir "^1.0.0"
- os-tmpdir "^1.0.1"
+ parse-passwd "^1.0.0"
hoopy@^0.1.2:
version "0.1.4"
@@ -4297,17 +4356,17 @@ http-parser-js@>=0.4.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 "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz#0987e6bb5a5606e5a69168d8f967a87f15dd8aab"
- integrity sha512-Fs25KVMPAIIcgjMZkVHJoKg9VcXcC1C8yb9JUgeDvVXY0S/zgVIhMb+qVswDIgtJe2DfckMSY2d6TuTEutlk6Q==
+http-proxy-middleware@^0.19.1:
+ version "0.19.1"
+ resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a"
+ integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==
dependencies:
- http-proxy "^1.16.2"
+ http-proxy "^1.17.0"
is-glob "^4.0.0"
- lodash "^4.17.5"
- micromatch "^3.1.9"
+ lodash "^4.17.11"
+ micromatch "^3.1.10"
-http-proxy@^1.16.2:
+http-proxy@^1.17.0:
version "1.17.0"
resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.17.0.tgz#7ad38494658f84605e2f6db4436df410f4e5be9a"
integrity sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==
@@ -4349,12 +4408,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@^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==
+icss-utils@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.0.tgz#339dbbffb9f8729a243b701e1c29d4cc58c52f0e"
+ integrity sha512-3DEun4VOeMvSczifM3F2cKQrDQ5Pj6WKhkOq6HD4QTnDUAq8MQRxy5TX6Sy1iY6WPBe4gQ3p5vTECjbIkglkkQ==
dependencies:
- postcss "^7.0.5"
+ postcss "^7.0.14"
ieee754@^1.1.4:
version "1.1.12"
@@ -4405,14 +4464,6 @@ import-from@^2.1.0:
dependencies:
resolve-from "^3.0.0"
-import-local@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/import-local/-/import-local-1.0.0.tgz#5e4ffdc03f4fe6c009c6729beb29631c2f8227bc"
- integrity sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ==
- dependencies:
- pkg-dir "^2.0.0"
- resolve-cwd "^2.0.0"
-
import-local@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d"
@@ -4462,7 +4513,7 @@ inherits@2.0.1:
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1"
integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=
-ini@~1.3.0:
+ini@^1.3.4, ini@~1.3.0:
version "1.3.5"
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==
@@ -4486,13 +4537,13 @@ inquirer@^6.1.0:
strip-ansi "^5.0.0"
through "^2.3.6"
-internal-ip@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-3.0.1.tgz#df5c99876e1d2eb2ea2d74f520e3f669a00ece27"
- integrity sha512-NXXgESC2nNVtU+pqmC9e6R8B1GpKxzsAQhffvh5AL79qKnodd+L7tnEQmTiUAVngqLalPbSqRA7XGIEL5nCd0Q==
+internal-ip@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.2.0.tgz#46e81b638d84c338e5c67e42b1a17db67d0814fa"
+ integrity sha512-ZY8Rk+hlvFeuMmG5uH1MXhhdeMntmIaxaInvAmzMq/SHV8rv4Kh+6GiQNNDQd0wZFrcO+FiTBo8lui/osKOyJw==
dependencies:
- default-gateway "^2.6.0"
- ipaddr.js "^1.5.2"
+ default-gateway "^4.0.1"
+ ipaddr.js "^1.9.0"
interpret@^1.1.0:
version "1.2.0"
@@ -4540,11 +4591,6 @@ invariant@^2.1.1, invariant@^2.2.1, invariant@^2.2.2, invariant@^2.2.4:
dependencies:
loose-envify "^1.0.0"
-invert-kv@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
- integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY=
-
invert-kv@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02"
@@ -4565,10 +4611,10 @@ ipaddr.js@1.8.0:
resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.0.tgz#eaa33d6ddd7ace8f7f6fe0c9ca0440e706738b1e"
integrity sha1-6qM9bd16zo9/b+DJygRA5wZzix4=
-ipaddr.js@^1.5.2:
- version "1.8.1"
- resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.1.tgz#fa4b79fa47fd3def5e3b159825161c0a519c9427"
- integrity sha1-+kt5+kf9Pe9eOxWYJRYcClGclCc=
+ipaddr.js@^1.9.0:
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65"
+ integrity sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==
is-absolute-url@^2.0.0:
version "2.1.0"
@@ -4628,12 +4674,12 @@ is-callable@^1.1.3, is-callable@^1.1.4:
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75"
integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==
-is-ci@^1.0.10:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c"
- integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==
+is-ci@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c"
+ integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==
dependencies:
- ci-info "^1.5.0"
+ ci-info "^2.0.0"
is-color-stop@^1.0.0:
version "1.1.0"
@@ -4689,18 +4735,6 @@ is-directory@^0.3.1:
resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1"
integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=
-is-dotfile@^1.0.0:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1"
- integrity sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=
-
-is-equal-shallow@^0.1.3:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534"
- integrity sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=
- dependencies:
- is-primitive "^2.0.0"
-
is-extendable@^0.1.0, is-extendable@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
@@ -4713,23 +4747,11 @@ is-extendable@^1.0.1:
dependencies:
is-plain-object "^2.0.4"
-is-extglob@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0"
- integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=
-
is-extglob@^2.1.0, is-extglob@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
-is-finite@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa"
- integrity sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=
- dependencies:
- number-is-nan "^1.0.0"
-
is-fullwidth-code-point@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
@@ -4742,17 +4764,10 @@ is-fullwidth-code-point@^2.0.0:
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
-is-generator-fn@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-1.0.0.tgz#969d49e1bb3329f6bb7f09089be26578b2ddd46a"
- integrity sha1-lp1J4bszKfa7fwkIm+JleLLd1Go=
-
-is-glob@^2.0.0, is-glob@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863"
- integrity sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=
- dependencies:
- is-extglob "^1.0.0"
+is-generator-fn@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.0.0.tgz#038c31b774709641bda678b1f06a4e3227c10b3e"
+ integrity sha512-elzyIdM7iKoFHzcrndIqjYomImhxrFRnGP3galODoII4TB9gI7mZ+FnlLQmmjf27SxHS2gKEeyhX5/+YRS6H9g==
is-glob@^3.1.0:
version "3.1.0"
@@ -4780,13 +4795,6 @@ is-number-object@^1.0.3:
resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.3.tgz#f265ab89a9f445034ef6aff15a8f00b00f551799"
integrity sha1-8mWrian0RQNO9q/xWo8AsA9VF5k=
-is-number@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
- integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=
- dependencies:
- kind-of "^3.0.2"
-
is-number@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
@@ -4794,11 +4802,6 @@ is-number@^3.0.0:
dependencies:
kind-of "^3.0.2"
-is-number@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff"
- integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==
-
is-obj@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
@@ -4830,16 +4833,6 @@ is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4:
dependencies:
isobject "^3.0.1"
-is-posix-bracket@^0.1.0:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4"
- integrity sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=
-
-is-primitive@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575"
- integrity sha1-IHurkWOEmcB7Kt8kCkGochADRXU=
-
is-promise@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
@@ -4891,12 +4884,7 @@ is-typedarray@~1.0.0:
resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
-is-utf8@^0.2.0:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
- integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=
-
-is-windows@^1.0.0, is-windows@^1.0.2:
+is-windows@^1.0.0, is-windows@^1.0.1, is-windows@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==
@@ -4946,392 +4934,426 @@ isstream@~0.1.2:
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=
-istanbul-api@^1.3.1:
- version "1.3.7"
- resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.3.7.tgz#a86c770d2b03e11e3f778cd7aedd82d2722092aa"
- integrity sha512-4/ApBnMVeEPG3EkSzcw25wDe4N66wxwn+KKn6b47vyek8Xb3NBAcg4xfuQbS7BqcZuTX4wxfD5lVagdggR3gyA==
+istanbul-api@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-2.1.1.tgz#194b773f6d9cbc99a9258446848b0f988951c4d0"
+ integrity sha512-kVmYrehiwyeBAk/wE71tW6emzLiHGjYIiDrc8sfyty4F8M02/lrgXSm+R1kXysmF20zArvmZXjlE/mg24TVPJw==
dependencies:
- async "^2.1.4"
- fileset "^2.0.2"
- istanbul-lib-coverage "^1.2.1"
- istanbul-lib-hook "^1.2.2"
- istanbul-lib-instrument "^1.10.2"
- istanbul-lib-report "^1.1.5"
- istanbul-lib-source-maps "^1.2.6"
- istanbul-reports "^1.5.1"
- js-yaml "^3.7.0"
- mkdirp "^0.5.1"
+ async "^2.6.1"
+ compare-versions "^3.2.1"
+ fileset "^2.0.3"
+ istanbul-lib-coverage "^2.0.3"
+ istanbul-lib-hook "^2.0.3"
+ istanbul-lib-instrument "^3.1.0"
+ istanbul-lib-report "^2.0.4"
+ istanbul-lib-source-maps "^3.0.2"
+ istanbul-reports "^2.1.1"
+ js-yaml "^3.12.0"
+ make-dir "^1.3.0"
+ minimatch "^3.0.4"
once "^1.4.0"
-istanbul-lib-coverage@^1.2.0, istanbul-lib-coverage@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz#ccf7edcd0a0bb9b8f729feeb0930470f9af664f0"
- integrity sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ==
+istanbul-lib-coverage@^2.0.2, istanbul-lib-coverage@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#0b891e5ad42312c2b9488554f603795f9a2211ba"
+ integrity sha512-dKWuzRGCs4G+67VfW9pBFFz2Jpi4vSp/k7zBcJ888ofV5Mi1g5CUML5GvMvV6u9Cjybftu+E8Cgp+k0dI1E5lw==
-istanbul-lib-hook@^1.2.2:
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.2.2.tgz#bc6bf07f12a641fbf1c85391d0daa8f0aea6bf86"
- integrity sha512-/Jmq7Y1VeHnZEQ3TL10VHyb564mn6VrQXHchON9Jf/AEcmQ3ZIiyD1BVzNOKTZf/G3gE+kiGK6SmpF9y3qGPLw==
+istanbul-lib-hook@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-2.0.3.tgz#e0e581e461c611be5d0e5ef31c5f0109759916fb"
+ integrity sha512-CLmEqwEhuCYtGcpNVJjLV1DQyVnIqavMLFHV/DP+np/g3qvdxu3gsPqYoJMXm15sN84xOlckFB3VNvRbf5yEgA==
dependencies:
- append-transform "^0.4.0"
+ append-transform "^1.0.0"
-istanbul-lib-instrument@^1.10.1, istanbul-lib-instrument@^1.10.2:
- version "1.10.2"
- resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz#1f55ed10ac3c47f2bdddd5307935126754d0a9ca"
- integrity sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A==
+istanbul-lib-instrument@^3.0.0, istanbul-lib-instrument@^3.0.1, istanbul-lib-instrument@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.1.0.tgz#a2b5484a7d445f1f311e93190813fa56dfb62971"
+ integrity sha512-ooVllVGT38HIk8MxDj/OIHXSYvH+1tq/Vb38s8ixt9GoJadXska4WkGY+0wkmtYCZNYtaARniH/DixUGGLZ0uA==
dependencies:
- babel-generator "^6.18.0"
- babel-template "^6.16.0"
- babel-traverse "^6.18.0"
- babel-types "^6.18.0"
- babylon "^6.18.0"
- istanbul-lib-coverage "^1.2.1"
- semver "^5.3.0"
+ "@babel/generator" "^7.0.0"
+ "@babel/parser" "^7.0.0"
+ "@babel/template" "^7.0.0"
+ "@babel/traverse" "^7.0.0"
+ "@babel/types" "^7.0.0"
+ istanbul-lib-coverage "^2.0.3"
+ semver "^5.5.0"
-istanbul-lib-report@^1.1.5:
- version "1.1.5"
- resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.5.tgz#f2a657fc6282f96170aaf281eb30a458f7f4170c"
- integrity sha512-UsYfRMoi6QO/doUshYNqcKJqVmFe9w51GZz8BS3WB0lYxAllQYklka2wP9+dGZeHYaWIdcXUx8JGdbqaoXRXzw==
+istanbul-lib-report@^2.0.4:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.4.tgz#bfd324ee0c04f59119cb4f07dab157d09f24d7e4"
+ integrity sha512-sOiLZLAWpA0+3b5w5/dq0cjm2rrNdAfHWaGhmn7XEFW6X++IV9Ohn+pnELAl9K3rfpaeBfbmH9JU5sejacdLeA==
dependencies:
- istanbul-lib-coverage "^1.2.1"
- mkdirp "^0.5.1"
- path-parse "^1.0.5"
- supports-color "^3.1.2"
+ istanbul-lib-coverage "^2.0.3"
+ make-dir "^1.3.0"
+ supports-color "^6.0.0"
-istanbul-lib-source-maps@^1.2.4, istanbul-lib-source-maps@^1.2.6:
- version "1.2.6"
- resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.6.tgz#37b9ff661580f8fca11232752ee42e08c6675d8f"
- integrity sha512-TtbsY5GIHgbMsMiRw35YBHGpZ1DVFEO19vxxeiDMYaeOFOCzfnYVxvl6pOUIZR4dtPhAGpSMup8OyF8ubsaqEg==
+istanbul-lib-source-maps@^3.0.1, istanbul-lib-source-maps@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.2.tgz#f1e817229a9146e8424a28e5d69ba220fda34156"
+ integrity sha512-JX4v0CiKTGp9fZPmoxpu9YEkPbEqCqBbO3403VabKjH+NRXo72HafD5UgnjTEqHL2SAjaZK1XDuDOkn6I5QVfQ==
dependencies:
- debug "^3.1.0"
- istanbul-lib-coverage "^1.2.1"
- mkdirp "^0.5.1"
- rimraf "^2.6.1"
- source-map "^0.5.3"
+ debug "^4.1.1"
+ istanbul-lib-coverage "^2.0.3"
+ make-dir "^1.3.0"
+ rimraf "^2.6.2"
+ source-map "^0.6.1"
-istanbul-reports@^1.5.1:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.5.1.tgz#97e4dbf3b515e8c484caea15d6524eebd3ff4e1a"
- integrity sha512-+cfoZ0UXzWjhAdzosCPP3AN8vvef8XDkWtTfgaN+7L3YTpNYITnCaEkceo5SEYy644VkHka/P1FvkWvrG/rrJw==
+istanbul-reports@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.1.1.tgz#72ef16b4ecb9a4a7bd0e2001e00f95d1eec8afa9"
+ integrity sha512-FzNahnidyEPBCI0HcufJoSEoKykesRlFcSzQqjH9x0+LC8tnnE/p/90PBLu8iZTxr8yYZNyTtiAujUqyN+CIxw==
dependencies:
- handlebars "^4.0.3"
+ handlebars "^4.1.0"
-jest-changed-files@^23.4.2:
- version "23.4.2"
- resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-23.4.2.tgz#1eed688370cd5eebafe4ae93d34bb3b64968fe83"
- integrity sha512-EyNhTAUWEfwnK0Is/09LxoqNDOn7mU7S3EHskG52djOFS/z+IT0jT3h3Ql61+dklcG7bJJitIWEMB4Sp1piHmA==
+jest-changed-files@^24.5.0:
+ version "24.5.0"
+ resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.5.0.tgz#4075269ee115d87194fd5822e642af22133cf705"
+ integrity sha512-Ikl29dosYnTsH9pYa1Tv9POkILBhN/TLZ37xbzgNsZ1D2+2n+8oEZS2yP1BrHn/T4Rs4Ggwwbp/x8CKOS5YJOg==
dependencies:
+ "@jest/types" "^24.5.0"
+ execa "^1.0.0"
throat "^4.0.0"
-jest-cli@^23.6.0:
- version "23.6.0"
- resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-23.6.0.tgz#61ab917744338f443ef2baa282ddffdd658a5da4"
- integrity sha512-hgeD1zRUp1E1zsiyOXjEn4LzRLWdJBV//ukAHGlx6s5mfCNJTbhbHjgxnDUXA8fsKWN/HqFFF6X5XcCwC/IvYQ==
+jest-cli@^24.5.0:
+ version "24.5.0"
+ resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.5.0.tgz#598139d3446d1942fb7dc93944b9ba766d756d4b"
+ integrity sha512-P+Jp0SLO4KWN0cGlNtC7JV0dW1eSFR7eRpoOucP2UM0sqlzp/bVHeo71Omonvigrj9AvCKy7NtQANtqJ7FXz8g==
dependencies:
- ansi-escapes "^3.0.0"
+ "@jest/core" "^24.5.0"
+ "@jest/test-result" "^24.5.0"
+ "@jest/types" "^24.5.0"
chalk "^2.0.1"
exit "^0.1.2"
- glob "^7.1.2"
- graceful-fs "^4.1.11"
- import-local "^1.0.0"
- is-ci "^1.0.10"
- istanbul-api "^1.3.1"
- istanbul-lib-coverage "^1.2.0"
- istanbul-lib-instrument "^1.10.1"
- istanbul-lib-source-maps "^1.2.4"
- jest-changed-files "^23.4.2"
- jest-config "^23.6.0"
- jest-environment-jsdom "^23.4.0"
- jest-get-type "^22.1.0"
- jest-haste-map "^23.6.0"
- jest-message-util "^23.4.0"
- jest-regex-util "^23.3.0"
- jest-resolve-dependencies "^23.6.0"
- jest-runner "^23.6.0"
- jest-runtime "^23.6.0"
- jest-snapshot "^23.6.0"
- jest-util "^23.4.0"
- jest-validate "^23.6.0"
- jest-watcher "^23.4.0"
- jest-worker "^23.2.0"
- micromatch "^2.3.11"
- node-notifier "^5.2.1"
- prompts "^0.1.9"
- realpath-native "^1.0.0"
- rimraf "^2.5.4"
- slash "^1.0.0"
- string-length "^2.0.0"
- strip-ansi "^4.0.0"
- which "^1.2.12"
- yargs "^11.0.0"
+ import-local "^2.0.0"
+ is-ci "^2.0.0"
+ jest-config "^24.5.0"
+ jest-util "^24.5.0"
+ jest-validate "^24.5.0"
+ prompts "^2.0.1"
+ realpath-native "^1.1.0"
+ yargs "^12.0.2"
-jest-config@^23.6.0:
- version "23.6.0"
- resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-23.6.0.tgz#f82546a90ade2d8c7026fbf6ac5207fc22f8eb1d"
- integrity sha512-i8V7z9BeDXab1+VNo78WM0AtWpBRXJLnkT+lyT+Slx/cbP5sZJ0+NDuLcmBE5hXAoK0aUp7vI+MOxR+R4d8SRQ==
+jest-config@^24.5.0:
+ version "24.5.0"
+ resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.5.0.tgz#404d1bc6bb81aed6bd1890d07e2dca9fbba2e121"
+ integrity sha512-t2UTh0Z2uZhGBNVseF8wA2DS2SuBiLOL6qpLq18+OZGfFUxTM7BzUVKyHFN/vuN+s/aslY1COW95j1Rw81huOQ==
dependencies:
- babel-core "^6.0.0"
- babel-jest "^23.6.0"
+ "@babel/core" "^7.1.0"
+ "@jest/types" "^24.5.0"
+ babel-jest "^24.5.0"
chalk "^2.0.1"
glob "^7.1.1"
- jest-environment-jsdom "^23.4.0"
- jest-environment-node "^23.4.0"
- jest-get-type "^22.1.0"
- jest-jasmine2 "^23.6.0"
- jest-regex-util "^23.3.0"
- jest-resolve "^23.6.0"
- jest-util "^23.4.0"
- jest-validate "^23.6.0"
- micromatch "^2.3.11"
- pretty-format "^23.6.0"
+ jest-environment-jsdom "^24.5.0"
+ jest-environment-node "^24.5.0"
+ jest-get-type "^24.3.0"
+ jest-jasmine2 "^24.5.0"
+ jest-regex-util "^24.3.0"
+ jest-resolve "^24.5.0"
+ jest-util "^24.5.0"
+ jest-validate "^24.5.0"
+ micromatch "^3.1.10"
+ pretty-format "^24.5.0"
+ realpath-native "^1.1.0"
-jest-diff@^23.6.0:
- version "23.6.0"
- resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-23.6.0.tgz#1500f3f16e850bb3d71233408089be099f610c7d"
- integrity sha512-Gz9l5Ov+X3aL5L37IT+8hoCUsof1CVYBb2QEkOupK64XyRR3h+uRpYIm97K7sY8diFxowR8pIGEdyfMKTixo3g==
+jest-diff@^24.5.0:
+ version "24.5.0"
+ resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.5.0.tgz#a2d8627964bb06a91893c0fbcb28ab228c257652"
+ integrity sha512-mCILZd9r7zqL9Uh6yNoXjwGQx0/J43OD2vvWVKwOEOLZliQOsojXwqboubAQ+Tszrb6DHGmNU7m4whGeB9YOqw==
dependencies:
chalk "^2.0.1"
- diff "^3.2.0"
- jest-get-type "^22.1.0"
- pretty-format "^23.6.0"
+ diff-sequences "^24.3.0"
+ jest-get-type "^24.3.0"
+ pretty-format "^24.5.0"
-jest-docblock@^23.2.0:
- version "23.2.0"
- resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-23.2.0.tgz#f085e1f18548d99fdd69b20207e6fd55d91383a7"
- integrity sha1-8IXh8YVI2Z/dabICB+b9VdkTg6c=
+jest-docblock@^24.3.0:
+ version "24.3.0"
+ resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-24.3.0.tgz#b9c32dac70f72e4464520d2ba4aec02ab14db5dd"
+ integrity sha512-nlANmF9Yq1dufhFlKG9rasfQlrY7wINJbo3q01tu56Jv5eBU5jirylhF2O5ZBnLxzOVBGRDz/9NAwNyBtG4Nyg==
dependencies:
detect-newline "^2.1.0"
-jest-each@^23.6.0:
- version "23.6.0"
- resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-23.6.0.tgz#ba0c3a82a8054387016139c733a05242d3d71575"
- integrity sha512-x7V6M/WGJo6/kLoissORuvLIeAoyo2YqLOoCDkohgJ4XOXSqOtyvr8FbInlAWS77ojBsZrafbozWoKVRdtxFCg==
+jest-each@^24.5.0:
+ version "24.5.0"
+ resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.5.0.tgz#da14d017a1b7d0f01fb458d338314cafe7f72318"
+ integrity sha512-6gy3Kh37PwIT5sNvNY2VchtIFOOBh8UCYnBlxXMb5sr5wpJUDPTUATX2Axq1Vfk+HWTMpsYPeVYp4TXx5uqUBw==
dependencies:
+ "@jest/types" "^24.5.0"
chalk "^2.0.1"
- pretty-format "^23.6.0"
+ jest-get-type "^24.3.0"
+ jest-util "^24.5.0"
+ pretty-format "^24.5.0"
-jest-environment-jsdom@^23.4.0:
- version "23.4.0"
- resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-23.4.0.tgz#056a7952b3fea513ac62a140a2c368c79d9e6023"
- integrity sha1-BWp5UrP+pROsYqFAosNox52eYCM=
+jest-environment-jsdom@^24.5.0:
+ version "24.5.0"
+ resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.5.0.tgz#1c3143063e1374100f8c2723a8b6aad23b6db7eb"
+ integrity sha512-62Ih5HbdAWcsqBx2ktUnor/mABBo1U111AvZWcLKeWN/n/gc5ZvDBKe4Og44fQdHKiXClrNGC6G0mBo6wrPeGQ==
dependencies:
- jest-mock "^23.2.0"
- jest-util "^23.4.0"
+ "@jest/environment" "^24.5.0"
+ "@jest/fake-timers" "^24.5.0"
+ "@jest/types" "^24.5.0"
+ jest-mock "^24.5.0"
+ jest-util "^24.5.0"
jsdom "^11.5.1"
-jest-environment-node@^23.4.0:
- version "23.4.0"
- resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-23.4.0.tgz#57e80ed0841dea303167cce8cd79521debafde10"
- integrity sha1-V+gO0IQd6jAxZ8zozXlSHeuv3hA=
+jest-environment-node@^24.5.0:
+ version "24.5.0"
+ resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.5.0.tgz#763eebdf529f75b60aa600c6cf8cb09873caa6ab"
+ integrity sha512-du6FuyWr/GbKLsmAbzNF9mpr2Iu2zWSaq/BNHzX+vgOcts9f2ayXBweS7RAhr+6bLp6qRpMB6utAMF5Ygktxnw==
dependencies:
- jest-mock "^23.2.0"
- jest-util "^23.4.0"
+ "@jest/environment" "^24.5.0"
+ "@jest/fake-timers" "^24.5.0"
+ "@jest/types" "^24.5.0"
+ jest-mock "^24.5.0"
+ jest-util "^24.5.0"
-jest-get-type@^22.1.0:
- version "22.4.3"
- resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.4.3.tgz#e3a8504d8479342dd4420236b322869f18900ce4"
- integrity sha512-/jsz0Y+V29w1chdXVygEKSz2nBoHoYqNShPe+QgxSNjAuP1i8+k4LbQNrfoliKej0P45sivkSCh7yiD6ubHS3w==
+jest-get-type@^24.3.0:
+ version "24.3.0"
+ resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.3.0.tgz#582cfd1a4f91b5cdad1d43d2932f816d543c65da"
+ integrity sha512-HYF6pry72YUlVcvUx3sEpMRwXEWGEPlJ0bSPVnB3b3n++j4phUEoSPcS6GC0pPJ9rpyPSe4cb5muFo6D39cXow==
-jest-haste-map@^23.6.0:
- version "23.6.0"
- resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-23.6.0.tgz#2e3eb997814ca696d62afdb3f2529f5bbc935e16"
- integrity sha512-uyNhMyl6dr6HaXGHp8VF7cK6KpC6G9z9LiMNsst+rJIZ8l7wY0tk8qwjPmEghczojZ2/ZhtEdIabZ0OQRJSGGg==
+jest-haste-map@^24.5.0:
+ version "24.5.0"
+ resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.5.0.tgz#3f17d0c548b99c0c96ed2893f9c0ccecb2eb9066"
+ integrity sha512-mb4Yrcjw9vBgSvobDwH8QUovxApdimGcOkp+V1ucGGw4Uvr3VzZQBJhNm1UY3dXYm4XXyTW2G7IBEZ9pM2ggRQ==
dependencies:
+ "@jest/types" "^24.5.0"
fb-watchman "^2.0.0"
- graceful-fs "^4.1.11"
+ graceful-fs "^4.1.15"
invariant "^2.2.4"
- jest-docblock "^23.2.0"
- jest-serializer "^23.0.1"
- jest-worker "^23.2.0"
- micromatch "^2.3.11"
- sane "^2.0.0"
+ jest-serializer "^24.4.0"
+ jest-util "^24.5.0"
+ jest-worker "^24.4.0"
+ micromatch "^3.1.10"
+ sane "^4.0.3"
-jest-jasmine2@^23.6.0:
- version "23.6.0"
- resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-23.6.0.tgz#840e937f848a6c8638df24360ab869cc718592e0"
- integrity sha512-pe2Ytgs1nyCs8IvsEJRiRTPC0eVYd8L/dXJGU08GFuBwZ4sYH/lmFDdOL3ZmvJR8QKqV9MFuwlsAi/EWkFUbsQ==
+jest-jasmine2@^24.5.0:
+ version "24.5.0"
+ resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.5.0.tgz#e6af4d7f73dc527d007cca5a5b177c0bcc29d111"
+ integrity sha512-sfVrxVcx1rNUbBeyIyhkqZ4q+seNKyAG6iM0S2TYBdQsXjoFDdqWFfsUxb6uXSsbimbXX/NMkJIwUZ1uT9+/Aw==
dependencies:
- babel-traverse "^6.0.0"
+ "@babel/traverse" "^7.1.0"
+ "@jest/environment" "^24.5.0"
+ "@jest/test-result" "^24.5.0"
+ "@jest/types" "^24.5.0"
chalk "^2.0.1"
co "^4.6.0"
- expect "^23.6.0"
- is-generator-fn "^1.0.0"
- jest-diff "^23.6.0"
- jest-each "^23.6.0"
- jest-matcher-utils "^23.6.0"
- jest-message-util "^23.4.0"
- jest-snapshot "^23.6.0"
- jest-util "^23.4.0"
- pretty-format "^23.6.0"
+ expect "^24.5.0"
+ is-generator-fn "^2.0.0"
+ jest-each "^24.5.0"
+ jest-matcher-utils "^24.5.0"
+ jest-message-util "^24.5.0"
+ jest-runtime "^24.5.0"
+ jest-snapshot "^24.5.0"
+ jest-util "^24.5.0"
+ pretty-format "^24.5.0"
+ throat "^4.0.0"
-jest-leak-detector@^23.6.0:
- version "23.6.0"
- resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-23.6.0.tgz#e4230fd42cf381a1a1971237ad56897de7e171de"
- integrity sha512-f/8zA04rsl1Nzj10HIyEsXvYlMpMPcy0QkQilVZDFOaPbv2ur71X5u2+C4ZQJGyV/xvVXtCCZ3wQ99IgQxftCg==
+jest-leak-detector@^24.5.0:
+ version "24.5.0"
+ resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.5.0.tgz#21ae2b3b0da252c1171cd494f75696d65fb6fa89"
+ integrity sha512-LZKBjGovFRx3cRBkqmIg+BZnxbrLqhQl09IziMk3oeh1OV81Hg30RUIx885mq8qBv1PA0comB9bjKcuyNO1bCQ==
dependencies:
- pretty-format "^23.6.0"
+ pretty-format "^24.5.0"
-jest-matcher-utils@^23.6.0:
- version "23.6.0"
- resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-23.6.0.tgz#726bcea0c5294261a7417afb6da3186b4b8cac80"
- integrity sha512-rosyCHQfBcol4NsckTn01cdelzWLU9Cq7aaigDf8VwwpIRvWE/9zLgX2bON+FkEW69/0UuYslUe22SOdEf2nog==
+jest-matcher-utils@^24.5.0:
+ version "24.5.0"
+ resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.5.0.tgz#5995549dcf09fa94406e89526e877b094dad8770"
+ integrity sha512-QM1nmLROjLj8GMGzg5VBra3I9hLpjMPtF1YqzQS3rvWn2ltGZLrGAO1KQ9zUCVi5aCvrkbS5Ndm2evIP9yZg1Q==
dependencies:
chalk "^2.0.1"
- jest-get-type "^22.1.0"
- pretty-format "^23.6.0"
+ jest-diff "^24.5.0"
+ jest-get-type "^24.3.0"
+ pretty-format "^24.5.0"
-jest-message-util@^23.4.0:
- version "23.4.0"
- resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-23.4.0.tgz#17610c50942349508d01a3d1e0bda2c079086a9f"
- integrity sha1-F2EMUJQjSVCNAaPR4L2iwHkIap8=
+jest-message-util@^24.5.0:
+ version "24.5.0"
+ resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.5.0.tgz#181420a65a7ef2e8b5c2f8e14882c453c6d41d07"
+ integrity sha512-6ZYgdOojowCGiV0D8WdgctZEAe+EcFU+KrVds+0ZjvpZurUW2/oKJGltJ6FWY2joZwYXN5VL36GPV6pNVRqRnQ==
dependencies:
- "@babel/code-frame" "^7.0.0-beta.35"
+ "@babel/code-frame" "^7.0.0"
+ "@jest/test-result" "^24.5.0"
+ "@jest/types" "^24.5.0"
+ "@types/stack-utils" "^1.0.1"
chalk "^2.0.1"
- micromatch "^2.3.11"
- slash "^1.0.0"
+ micromatch "^3.1.10"
+ slash "^2.0.0"
stack-utils "^1.0.1"
-jest-mock@^23.2.0:
- version "23.2.0"
- resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-23.2.0.tgz#ad1c60f29e8719d47c26e1138098b6d18b261134"
- integrity sha1-rRxg8p6HGdR8JuETgJi20YsmETQ=
-
-jest-regex-util@^23.3.0:
- version "23.3.0"
- resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-23.3.0.tgz#5f86729547c2785c4002ceaa8f849fe8ca471bc5"
- integrity sha1-X4ZylUfCeFxAAs6qj4Sf6MpHG8U=
-
-jest-resolve-dependencies@^23.6.0:
- version "23.6.0"
- resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-23.6.0.tgz#b4526af24c8540d9a3fab102c15081cf509b723d"
- integrity sha512-EkQWkFWjGKwRtRyIwRwI6rtPAEyPWlUC2MpzHissYnzJeHcyCn1Hc8j7Nn1xUVrS5C6W5+ZL37XTem4D4pLZdA==
+jest-mock@^24.5.0:
+ version "24.5.0"
+ resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.5.0.tgz#976912c99a93f2a1c67497a9414aa4d9da4c7b76"
+ integrity sha512-ZnAtkWrKf48eERgAOiUxVoFavVBziO2pAi2MfZ1+bGXVkDfxWLxU0//oJBkgwbsv6OAmuLBz4XFFqvCFMqnGUw==
dependencies:
- jest-regex-util "^23.3.0"
- jest-snapshot "^23.6.0"
+ "@jest/types" "^24.5.0"
-jest-resolve@^23.6.0:
- version "23.6.0"
- resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-23.6.0.tgz#cf1d1a24ce7ee7b23d661c33ba2150f3aebfa0ae"
- integrity sha512-XyoRxNtO7YGpQDmtQCmZjum1MljDqUCob7XlZ6jy9gsMugHdN2hY4+Acz9Qvjz2mSsOnPSH7skBmDYCHXVZqkA==
+jest-pnp-resolver@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz#ecdae604c077a7fbc70defb6d517c3c1c898923a"
+ integrity sha512-pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ==
+
+jest-regex-util@^24.3.0:
+ version "24.3.0"
+ resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.3.0.tgz#d5a65f60be1ae3e310d5214a0307581995227b36"
+ integrity sha512-tXQR1NEOyGlfylyEjg1ImtScwMq8Oh3iJbGTjN7p0J23EuVX1MA8rwU69K4sLbCmwzgCUbVkm0FkSF9TdzOhtg==
+
+jest-resolve-dependencies@^24.5.0:
+ version "24.5.0"
+ resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.5.0.tgz#1a0dae9cdd41349ca4a84148b3e78da2ba33fd4b"
+ integrity sha512-dRVM1D+gWrFfrq2vlL5P9P/i8kB4BOYqYf3S7xczZ+A6PC3SgXYSErX/ScW/469pWMboM1uAhgLF+39nXlirCQ==
dependencies:
+ "@jest/types" "^24.5.0"
+ jest-regex-util "^24.3.0"
+ jest-snapshot "^24.5.0"
+
+jest-resolve@^24.5.0:
+ version "24.5.0"
+ resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.5.0.tgz#8c16ba08f60a1616c3b1cd7afb24574f50a24d04"
+ integrity sha512-ZIfGqLX1Rg8xJpQqNjdoO8MuxHV1q/i2OO1hLXjgCWFWs5bsedS8UrOdgjUqqNae6DXA+pCyRmdcB7lQEEbXew==
+ dependencies:
+ "@jest/types" "^24.5.0"
browser-resolve "^1.11.3"
chalk "^2.0.1"
- realpath-native "^1.0.0"
+ jest-pnp-resolver "^1.2.1"
+ realpath-native "^1.1.0"
-jest-runner@^23.6.0:
- version "23.6.0"
- resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-23.6.0.tgz#3894bd219ffc3f3cb94dc48a4170a2e6f23a5a38"
- integrity sha512-kw0+uj710dzSJKU6ygri851CObtCD9cN8aNkg8jWJf4ewFyEa6kwmiH/r/M1Ec5IL/6VFa0wnAk6w+gzUtjJzA==
+jest-runner@^24.5.0:
+ version "24.5.0"
+ resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.5.0.tgz#9be26ece4fd4ab3dfb528b887523144b7c5ffca8"
+ integrity sha512-oqsiS9TkIZV5dVkD+GmbNfWBRPIvxqmlTQ+AQUJUQ07n+4xTSDc40r+aKBynHw9/tLzafC00DIbJjB2cOZdvMA==
dependencies:
+ "@jest/console" "^24.3.0"
+ "@jest/environment" "^24.5.0"
+ "@jest/test-result" "^24.5.0"
+ "@jest/types" "^24.5.0"
+ chalk "^2.4.2"
exit "^0.1.2"
- graceful-fs "^4.1.11"
- jest-config "^23.6.0"
- jest-docblock "^23.2.0"
- jest-haste-map "^23.6.0"
- jest-jasmine2 "^23.6.0"
- jest-leak-detector "^23.6.0"
- jest-message-util "^23.4.0"
- jest-runtime "^23.6.0"
- jest-util "^23.4.0"
- jest-worker "^23.2.0"
+ graceful-fs "^4.1.15"
+ jest-config "^24.5.0"
+ jest-docblock "^24.3.0"
+ jest-haste-map "^24.5.0"
+ jest-jasmine2 "^24.5.0"
+ jest-leak-detector "^24.5.0"
+ jest-message-util "^24.5.0"
+ jest-resolve "^24.5.0"
+ jest-runtime "^24.5.0"
+ jest-util "^24.5.0"
+ jest-worker "^24.4.0"
source-map-support "^0.5.6"
throat "^4.0.0"
-jest-runtime@^23.6.0:
- version "23.6.0"
- resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-23.6.0.tgz#059e58c8ab445917cd0e0d84ac2ba68de8f23082"
- integrity sha512-ycnLTNPT2Gv+TRhnAYAQ0B3SryEXhhRj1kA6hBPSeZaNQkJ7GbZsxOLUkwg6YmvWGdX3BB3PYKFLDQCAE1zNOw==
+jest-runtime@^24.5.0:
+ version "24.5.0"
+ resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.5.0.tgz#3a76e0bfef4db3896d5116e9e518be47ba771aa2"
+ integrity sha512-GTFHzfLdwpaeoDPilNpBrorlPoNZuZrwKKzKJs09vWwHo+9TOsIIuszK8cWOuKC7ss07aN1922Ge8fsGdsqCuw==
dependencies:
- babel-core "^6.0.0"
- babel-plugin-istanbul "^4.1.6"
+ "@jest/console" "^24.3.0"
+ "@jest/environment" "^24.5.0"
+ "@jest/source-map" "^24.3.0"
+ "@jest/transform" "^24.5.0"
+ "@jest/types" "^24.5.0"
+ "@types/yargs" "^12.0.2"
chalk "^2.0.1"
- convert-source-map "^1.4.0"
exit "^0.1.2"
- fast-json-stable-stringify "^2.0.0"
- graceful-fs "^4.1.11"
- jest-config "^23.6.0"
- jest-haste-map "^23.6.0"
- jest-message-util "^23.4.0"
- jest-regex-util "^23.3.0"
- jest-resolve "^23.6.0"
- jest-snapshot "^23.6.0"
- jest-util "^23.4.0"
- jest-validate "^23.6.0"
- micromatch "^2.3.11"
- realpath-native "^1.0.0"
- slash "^1.0.0"
- strip-bom "3.0.0"
- write-file-atomic "^2.1.0"
- yargs "^11.0.0"
+ glob "^7.1.3"
+ graceful-fs "^4.1.15"
+ jest-config "^24.5.0"
+ jest-haste-map "^24.5.0"
+ jest-message-util "^24.5.0"
+ jest-mock "^24.5.0"
+ jest-regex-util "^24.3.0"
+ jest-resolve "^24.5.0"
+ jest-snapshot "^24.5.0"
+ jest-util "^24.5.0"
+ jest-validate "^24.5.0"
+ realpath-native "^1.1.0"
+ slash "^2.0.0"
+ strip-bom "^3.0.0"
+ yargs "^12.0.2"
-jest-serializer@^23.0.1:
- version "23.0.1"
- resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-23.0.1.tgz#a3776aeb311e90fe83fab9e533e85102bd164165"
- integrity sha1-o3dq6zEekP6D+rnlM+hRAr0WQWU=
+jest-serializer@^24.4.0:
+ version "24.4.0"
+ resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.4.0.tgz#f70c5918c8ea9235ccb1276d232e459080588db3"
+ integrity sha512-k//0DtglVstc1fv+GY/VHDIjrtNjdYvYjMlbLUed4kxrE92sIUewOi5Hj3vrpB8CXfkJntRPDRjCrCvUhBdL8Q==
-jest-snapshot@^23.6.0:
- version "23.6.0"
- resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-23.6.0.tgz#f9c2625d1b18acda01ec2d2b826c0ce58a5aa17a"
- integrity sha512-tM7/Bprftun6Cvj2Awh/ikS7zV3pVwjRYU2qNYS51VZHgaAMBs5l4o/69AiDHhQrj5+LA2Lq4VIvK7zYk/bswg==
+jest-snapshot@^24.5.0:
+ version "24.5.0"
+ resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.5.0.tgz#e5d224468a759fd19e36f01217aac912f500f779"
+ integrity sha512-eBEeJb5ROk0NcpodmSKnCVgMOo+Qsu5z9EDl3tGffwPzK1yV37mjGWF2YeIz1NkntgTzP+fUL4s09a0+0dpVWA==
dependencies:
- babel-types "^6.0.0"
+ "@babel/types" "^7.0.0"
+ "@jest/types" "^24.5.0"
chalk "^2.0.1"
- jest-diff "^23.6.0"
- jest-matcher-utils "^23.6.0"
- jest-message-util "^23.4.0"
- jest-resolve "^23.6.0"
+ expect "^24.5.0"
+ jest-diff "^24.5.0"
+ jest-matcher-utils "^24.5.0"
+ jest-message-util "^24.5.0"
+ jest-resolve "^24.5.0"
mkdirp "^0.5.1"
natural-compare "^1.4.0"
- pretty-format "^23.6.0"
+ pretty-format "^24.5.0"
semver "^5.5.0"
-jest-util@^23.4.0:
- version "23.4.0"
- resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-23.4.0.tgz#4d063cb927baf0a23831ff61bec2cbbf49793561"
- integrity sha1-TQY8uSe68KI4Mf9hvsLLv0l5NWE=
+jest-util@^24.5.0:
+ version "24.5.0"
+ resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.5.0.tgz#9d9cb06d9dcccc8e7cc76df91b1635025d7baa84"
+ integrity sha512-Xy8JsD0jvBz85K7VsTIQDuY44s+hYJyppAhcsHsOsGisVtdhar6fajf2UOf2mEVEgh15ZSdA0zkCuheN8cbr1Q==
dependencies:
- callsites "^2.0.0"
+ "@jest/console" "^24.3.0"
+ "@jest/fake-timers" "^24.5.0"
+ "@jest/source-map" "^24.3.0"
+ "@jest/test-result" "^24.5.0"
+ "@jest/types" "^24.5.0"
+ "@types/node" "*"
+ callsites "^3.0.0"
chalk "^2.0.1"
- graceful-fs "^4.1.11"
- is-ci "^1.0.10"
- jest-message-util "^23.4.0"
+ graceful-fs "^4.1.15"
+ is-ci "^2.0.0"
mkdirp "^0.5.1"
- slash "^1.0.0"
+ slash "^2.0.0"
source-map "^0.6.0"
-jest-validate@^23.6.0:
- version "23.6.0"
- resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-23.6.0.tgz#36761f99d1ed33fcd425b4e4c5595d62b6597474"
- integrity sha512-OFKapYxe72yz7agrDAWi8v2WL8GIfVqcbKRCLbRG9PAxtzF9b1SEDdTpytNDN12z2fJynoBwpMpvj2R39plI2A==
+jest-validate@^24.5.0:
+ version "24.5.0"
+ resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.5.0.tgz#62fd93d81214c070bb2d7a55f329a79d8057c7de"
+ integrity sha512-gg0dYszxjgK2o11unSIJhkOFZqNRQbWOAB2/LOUdsd2LfD9oXiMeuee8XsT0iRy5EvSccBgB4h/9HRbIo3MHgQ==
dependencies:
+ "@jest/types" "^24.5.0"
+ camelcase "^5.0.0"
chalk "^2.0.1"
- jest-get-type "^22.1.0"
+ jest-get-type "^24.3.0"
leven "^2.1.0"
- pretty-format "^23.6.0"
+ pretty-format "^24.5.0"
-jest-watcher@^23.4.0:
- version "23.4.0"
- resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-23.4.0.tgz#d2e28ce74f8dad6c6afc922b92cabef6ed05c91c"
- integrity sha1-0uKM50+NrWxq/JIrksq+9u0FyRw=
+jest-watcher@^24.5.0:
+ version "24.5.0"
+ resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.5.0.tgz#da7bd9cb5967e274889b42078c8f501ae1c47761"
+ integrity sha512-/hCpgR6bg0nKvD3nv4KasdTxuhwfViVMHUATJlnGCD0r1QrmIssimPbmc5KfAQblAVxkD8xrzuij9vfPUk1/rA==
dependencies:
+ "@jest/test-result" "^24.5.0"
+ "@jest/types" "^24.5.0"
+ "@types/node" "*"
+ "@types/yargs" "^12.0.9"
ansi-escapes "^3.0.0"
chalk "^2.0.1"
+ jest-util "^24.5.0"
string-length "^2.0.0"
-jest-worker@^23.2.0:
- version "23.2.0"
- resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-23.2.0.tgz#faf706a8da36fae60eb26957257fa7b5d8ea02b9"
- integrity sha1-+vcGqNo2+uYOsmlXJX+ntdjqArk=
+jest-worker@^24.4.0:
+ version "24.4.0"
+ resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.4.0.tgz#fbc452b0120bb5c2a70cdc88fa132b48eeb11dd0"
+ integrity sha512-BH9X/klG9vxwoO99ZBUbZFfV8qO0XNZ5SIiCyYK2zOuJBl6YJVAeNIQjcoOVNu4HGEHeYEKsUWws8kSlSbZ9YQ==
dependencies:
+ "@types/node" "*"
merge-stream "^1.0.1"
+ supports-color "^6.1.0"
-jest@^23.6.0:
- version "23.6.0"
- resolved "https://registry.yarnpkg.com/jest/-/jest-23.6.0.tgz#ad5835e923ebf6e19e7a1d7529a432edfee7813d"
- integrity sha512-lWzcd+HSiqeuxyhG+EnZds6iO3Y3ZEnMrfZq/OTGvF/C+Z4fPMCdhWTGSAiO2Oym9rbEXfwddHhh6jqrTF3+Lw==
+jest@^24.5.0:
+ version "24.5.0"
+ resolved "https://registry.yarnpkg.com/jest/-/jest-24.5.0.tgz#38f11ae2c2baa2f86c2bc4d8a91d2b51612cd19a"
+ integrity sha512-lxL+Fq5/RH7inxxmfS2aZLCf8MsS+YCUBfeiNO6BWz/MmjhDGaIEA/2bzEf9q4Q0X+mtFHiinHFvQ0u+RvW/qQ==
dependencies:
- import-local "^1.0.0"
- jest-cli "^23.6.0"
+ import-local "^2.0.0"
+ jest-cli "^24.5.0"
js-base64@^2.1.9:
version "2.5.0"
@@ -5353,12 +5375,7 @@ js-string-escape@1.0.1:
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
-js-tokens@^3.0.2:
- version "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.12.0, js-yaml@^3.7.0, js-yaml@^3.9.0:
+js-yaml@^3.11.0, js-yaml@^3.12.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==
@@ -5403,11 +5420,6 @@ jsdom@^11.5.1:
ws "^5.2.0"
xml-name-validator "^3.0.0"
-jsesc@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b"
- integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s=
-
jsesc@^2.5.1:
version "2.5.2"
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
@@ -5455,7 +5467,7 @@ json3@^3.3.2:
resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1"
integrity sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=
-json5@^0.5.0, json5@^0.5.1:
+json5@^0.5.0:
version "0.5.1"
resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=
@@ -5530,23 +5542,16 @@ kind-of@^6.0.0, kind-of@^6.0.2:
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051"
integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==
-kleur@^2.0.1:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/kleur/-/kleur-2.0.2.tgz#b704f4944d95e255d038f0cb05fb8a602c55a300"
- integrity sha512-77XF9iTllATmG9lSlIv0qdQ2BQ/h9t0bJllHlbvsQ0zUWfU7Yi0S8L5JXzPZgkefIiajLmBJJ4BsMJmqcf7oxQ==
+kleur@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.2.tgz#83c7ec858a41098b613d5998a7b653962b504f68"
+ integrity sha512-3h7B2WRT5LNXOtQiAaWonilegHcPSf9nLVXlSTci8lu1dZUuui61+EsPEZqSVxY7rXYmB2DVKMQILxaO5WL61Q==
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"
- integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=
- dependencies:
- invert-kv "^1.0.0"
-
lcid@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf"
@@ -5572,17 +5577,6 @@ levn@^0.3.0, levn@~0.3.0:
prelude-ls "~1.1.2"
type-check "~0.3.2"
-load-json-file@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0"
- integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=
- dependencies:
- graceful-fs "^4.1.2"
- parse-json "^2.2.0"
- pify "^2.0.0"
- pinkie-promise "^2.0.0"
- strip-bom "^2.0.0"
-
load-json-file@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8"
@@ -5593,6 +5587,16 @@ load-json-file@^2.0.0:
pify "^2.0.0"
strip-bom "^3.0.0"
+load-json-file@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b"
+ integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs=
+ dependencies:
+ graceful-fs "^4.1.2"
+ parse-json "^4.0.0"
+ pify "^3.0.0"
+ strip-bom "^3.0.0"
+
loader-runner@^2.3.0:
version "2.3.1"
resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.1.tgz#026f12fe7c3115992896ac02ba022ba92971b979"
@@ -5608,7 +5612,7 @@ 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, loader-utils@^1.2.1:
+loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3:
version "1.2.3"
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7"
integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==
@@ -5715,14 +5719,6 @@ loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3
dependencies:
js-tokens "^3.0.0 || ^4.0.0"
-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"
@@ -5730,7 +5726,7 @@ lru-cache@^5.1.1:
dependencies:
yallist "^3.0.2"
-make-dir@^1.0.0:
+make-dir@^1.0.0, make-dir@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c"
integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==
@@ -5744,6 +5740,11 @@ makeerror@1.0.x:
dependencies:
tmpl "1.0.x"
+mamacro@^0.0.3:
+ version "0.0.3"
+ resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4"
+ integrity sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==
+
map-age-cleaner@^0.1.1:
version "0.1.3"
resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a"
@@ -5773,11 +5774,6 @@ marky@^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"
- resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.1.tgz#8b3aac588b8a66e4975e3cdea67f7bb329601fac"
- integrity sha1-izqsWIuKZuSXXjzepn97sylgH6w=
-
md5.js@^1.3.4:
version "1.3.5"
resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f"
@@ -5797,13 +5793,6 @@ media-typer@0.3.0:
resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=
-mem@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76"
- integrity sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=
- dependencies:
- mimic-fn "^1.0.0"
-
mem@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/mem/-/mem-4.0.0.tgz#6437690d9471678f6cc83659c00cbafcd6b0cdaf"
@@ -5818,7 +5807,7 @@ memoize-one@^4.0.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:
+memory-fs@^0.4.0, memory-fs@^0.4.1, memory-fs@~0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552"
integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=
@@ -5838,36 +5827,12 @@ merge-stream@^1.0.1:
dependencies:
readable-stream "^2.0.1"
-merge@^1.2.0:
- 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"
resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
-micromatch@^2.3.11:
- version "2.3.11"
- resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565"
- integrity sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=
- dependencies:
- arr-diff "^2.0.0"
- array-unique "^0.2.1"
- braces "^1.8.2"
- expand-brackets "^0.1.4"
- extglob "^0.3.1"
- filename-regex "^2.0.0"
- is-extglob "^1.0.0"
- is-glob "^2.0.1"
- kind-of "^3.0.2"
- normalize-path "^2.0.1"
- object.omit "^2.0.0"
- parse-glob "^3.0.4"
- regex-cache "^0.4.2"
-
-micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8, micromatch@^3.1.9:
+micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8:
version "3.1.10"
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==
@@ -6180,6 +6145,11 @@ node-libs-browser@^2.0.0:
util "^0.10.3"
vm-browserify "0.0.4"
+node-modules-regexp@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40"
+ integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=
+
node-notifier@^5.2.1:
version "5.3.0"
resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.3.0.tgz#c77a4a7b84038733d5fb351aafd8a268bfe19a01"
@@ -6213,6 +6183,13 @@ node-releases@^1.1.3:
dependencies:
semver "^5.3.0"
+node-releases@^1.1.8:
+ version "1.1.10"
+ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.10.tgz#5dbeb6bc7f4e9c85b899e2e7adcc0635c9b2adf7"
+ integrity sha512-KbUPCpfoBvb3oBkej9+nrU0/7xPlVhmhhUJ1PZqwIP5/1dJkRWKWD3OONjo6M2J7tSCBtDCumLwwqeI+DWWaLQ==
+ dependencies:
+ semver "^5.3.0"
+
nopt@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d"
@@ -6231,13 +6208,18 @@ normalize-package-data@^2.3.2:
semver "2 || 3 || 4 || 5"
validate-npm-package-license "^3.0.1"
-normalize-path@^2.0.1, normalize-path@^2.1.1:
+normalize-path@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=
dependencies:
remove-trailing-separator "^1.0.1"
+normalize-path@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
+ integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
+
normalize-range@^0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
@@ -6389,14 +6371,6 @@ object.getownpropertydescriptors@^2.0.3:
define-properties "^1.1.2"
es-abstract "^1.5.1"
-object.omit@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa"
- integrity sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=
- dependencies:
- for-own "^0.1.4"
- is-extendable "^0.1.1"
-
object.pick@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
@@ -6505,15 +6479,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@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2"
- integrity sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==
- dependencies:
- execa "^0.7.0"
- lcid "^1.0.0"
- mem "^1.1.0"
-
os-locale@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a"
@@ -6523,7 +6488,7 @@ os-locale@^3.0.0:
lcid "^2.0.0"
mem "^4.0.0"
-os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2:
+os-tmpdir@^1.0.0, os-tmpdir@~1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
@@ -6541,6 +6506,13 @@ p-defer@^1.0.0:
resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c"
integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=
+p-each-series@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-1.0.0.tgz#930f3d12dd1f50e7434457a22cd6f04ac6ad7f71"
+ integrity sha1-kw89Et0fUOdDRFeiLNbwSsatf3E=
+ dependencies:
+ p-reduce "^1.0.0"
+
p-finally@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
@@ -6584,6 +6556,11 @@ p-map@^1.1.1:
resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b"
integrity sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==
+p-reduce@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa"
+ integrity sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=
+
p-try@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
@@ -6639,16 +6616,6 @@ parse-css-font@^2.0.2:
tcomb "^2.5.0"
unquote "^1.1.0"
-parse-glob@^3.0.4:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c"
- integrity sha1-ssN2z7EfNVE7rdFz7wu246OIORw=
- dependencies:
- glob-base "^0.3.0"
- is-dotfile "^1.0.0"
- is-extglob "^1.0.0"
- is-glob "^2.0.0"
-
parse-json@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
@@ -6664,6 +6631,11 @@ parse-json@^4.0.0:
error-ex "^1.3.1"
json-parse-better-errors "^1.0.1"
+parse-passwd@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6"
+ integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=
+
parse5@4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608"
@@ -6713,7 +6685,7 @@ path-exists@^3.0.0:
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=
-path-is-absolute@^1.0.0, path-is-absolute@^1.0.1:
+path-is-absolute@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
@@ -6728,7 +6700,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.6:
+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==
@@ -6745,15 +6717,6 @@ path-to-regexp@^1.7.0:
dependencies:
isarray "0.0.1"
-path-type@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441"
- integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=
- dependencies:
- graceful-fs "^4.1.2"
- pify "^2.0.0"
- pinkie-promise "^2.0.0"
-
path-type@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73"
@@ -6761,6 +6724,13 @@ path-type@^2.0.0:
dependencies:
pify "^2.0.0"
+path-type@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f"
+ integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==
+ dependencies:
+ pify "^3.0.0"
+
pbkdf2@^3.0.3:
version "3.0.17"
resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6"
@@ -6854,6 +6824,13 @@ pinkie@^2.0.0:
resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA=
+pirates@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87"
+ integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==
+ dependencies:
+ node-modules-regexp "^1.0.0"
+
pkg-dir@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4"
@@ -6861,13 +6838,6 @@ pkg-dir@^1.0.0:
dependencies:
find-up "^1.0.0"
-pkg-dir@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b"
- integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=
- dependencies:
- find-up "^2.1.0"
-
pkg-dir@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3"
@@ -6899,7 +6869,7 @@ 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-calc@^7.0.0:
+postcss-calc@^7.0.1:
version "7.0.1"
resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.1.tgz#36d77bab023b0ecbb9789d84dcb23c4941145436"
integrity sha512-oXqx0m6tb4N3JGdmeMSc/i91KppbYsFZKdH0xMOqK8V1rJlzrKlTdokz8ozUXLVejydRN6u2IddxpcijRj2FqQ==
@@ -6909,10 +6879,10 @@ postcss-calc@^7.0.0:
postcss-selector-parser "^5.0.0-rc.4"
postcss-value-parser "^3.3.1"
-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==
+postcss-colormin@^4.0.3:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381"
+ integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==
dependencies:
browserslist "^4.0.0"
color "^3.0.0"
@@ -6928,10 +6898,10 @@ postcss-convert-values@^4.0.1:
postcss "^7.0.0"
postcss-value-parser "^3.0.0"
-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==
+postcss-discard-comments@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033"
+ integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==
dependencies:
postcss "^7.0.0"
@@ -6974,20 +6944,20 @@ postcss-loader@^3.0.0:
postcss-load-config "^2.0.0"
schema-utils "^1.0.0"
-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==
+postcss-merge-longhand@^4.0.11:
+ version "4.0.11"
+ resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24"
+ integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==
dependencies:
css-color-names "0.0.4"
postcss "^7.0.0"
postcss-value-parser "^3.0.0"
stylehacks "^4.0.0"
-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==
+postcss-merge-rules@^4.0.3:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650"
+ integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==
dependencies:
browserslist "^4.0.0"
caniuse-api "^3.0.0"
@@ -7004,20 +6974,20 @@ postcss-minify-font-values@^4.0.2:
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==
+postcss-minify-gradients@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471"
+ integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==
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==
+postcss-minify-params@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874"
+ integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==
dependencies:
alphanum-sort "^1.0.0"
browserslist "^4.0.0"
@@ -7026,10 +6996,10 @@ postcss-minify-params@^4.0.1:
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==
+postcss-minify-selectors@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8"
+ integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==
dependencies:
alphanum-sort "^1.0.0"
has "^1.0.0"
@@ -7043,22 +7013,22 @@ postcss-modules-extract-imports@^2.0.0:
dependencies:
postcss "^7.0.5"
-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==
+postcss-modules-local-by-default@^2.0.6:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-2.0.6.tgz#dd9953f6dd476b5fd1ef2d8830c8929760b56e63"
+ integrity sha512-oLUV5YNkeIBa0yQl7EYnxMgy4N6noxmiwZStaEJUSe2xPMcdNc8WmBQuQCx18H5psYbVxz8zoHk0RAAYZXP9gA==
dependencies:
- css-selector-tokenizer "^0.7.0"
postcss "^7.0.6"
+ postcss-selector-parser "^6.0.0"
postcss-value-parser "^3.3.1"
-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==
+postcss-modules-scope@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.1.0.tgz#ad3f5bf7856114f6fcab901b0502e2a2bc39d4eb"
+ integrity sha512-91Rjps0JnmtUB0cujlc8KIKCsJXWjzuxGeT/+Q2i2HXKZ7nBUeF9YQTZZTNvHVoNYj1AthsjnGLtqDUE0Op79A==
dependencies:
- css-selector-tokenizer "^0.7.0"
postcss "^7.0.6"
+ postcss-selector-parser "^6.0.0"
postcss-modules-values@^2.0.0:
version "2.0.0"
@@ -7075,48 +7045,48 @@ postcss-normalize-charset@^4.0.1:
dependencies:
postcss "^7.0.0"
-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==
+postcss-normalize-display-values@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a"
+ integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==
dependencies:
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==
+postcss-normalize-positions@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f"
+ integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==
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==
+postcss-normalize-repeat-style@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c"
+ integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==
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==
+postcss-normalize-string@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c"
+ integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==
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==
+postcss-normalize-timing-functions@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9"
+ integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==
dependencies:
cssnano-util-get-match "^4.0.0"
postcss "^7.0.0"
@@ -7141,10 +7111,10 @@ postcss-normalize-url@^4.0.1:
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==
+postcss-normalize-whitespace@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82"
+ integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==
dependencies:
postcss "^7.0.0"
postcss-value-parser "^3.0.0"
@@ -7158,29 +7128,29 @@ postcss-object-fit-images@^1.1.2:
postcss "^5.0.16"
quote "^0.4.0"
-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==
+postcss-ordered-values@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee"
+ integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==
dependencies:
cssnano-util-get-arguments "^4.0.0"
postcss "^7.0.0"
postcss-value-parser "^3.0.0"
-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==
+postcss-reduce-initial@^4.0.3:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df"
+ integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==
dependencies:
browserslist "^4.0.0"
caniuse-api "^3.0.0"
has "^1.0.0"
postcss "^7.0.0"
-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==
+postcss-reduce-transforms@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29"
+ integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==
dependencies:
cssnano-util-get-match "^4.0.0"
has "^1.0.0"
@@ -7205,10 +7175,19 @@ postcss-selector-parser@^5.0.0-rc.4:
indexes-of "^1.0.1"
uniq "^1.0.1"
-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==
+postcss-selector-parser@^6.0.0:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c"
+ integrity sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==
+ dependencies:
+ cssesc "^3.0.0"
+ indexes-of "^1.0.1"
+ uniq "^1.0.1"
+
+postcss-svgo@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.2.tgz#17b997bc711b333bab143aaed3b8d3d6e3d38258"
+ integrity sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==
dependencies:
is-svg "^3.0.0"
postcss "^7.0.0"
@@ -7248,6 +7227,15 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.5, postcss@^7.0.6:
source-map "^0.6.1"
supports-color "^5.5.0"
+postcss@^7.0.14:
+ version "7.0.14"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.14.tgz#4527ed6b1ca0d82c53ce5ec1a2041c2346bbd6e5"
+ integrity sha512-NsbD6XUUMZvBxtQAJuWDJeeC4QFsmWsfozWxCJPWf3M55K9iu2iMDaKqyoOdTJ1R4usBXuxlVFAIo8rZPQD4Bg==
+ dependencies:
+ chalk "^2.4.2"
+ source-map "^0.6.1"
+ supports-color "^6.1.0"
+
postgres-array@~1.0.0:
version "1.0.3"
resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-1.0.3.tgz#c561fc3b266b21451fc6555384f4986d78ec80f5"
@@ -7280,20 +7268,17 @@ prelude-ls@~1.1.2:
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=
-preserve@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
- integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=
-
-pretty-format@^23.6.0:
- version "23.6.0"
- resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-23.6.0.tgz#5eaac8eeb6b33b987b7fe6097ea6a8a146ab5760"
- integrity sha512-zf9NV1NSlDLDjycnwm6hpFATCGl/K1lt0R/GdkAK2O5LN/rwJoB+Mh93gGJjut4YbmecbfgLWVGSTCr0Ewvvbw==
+pretty-format@^24.5.0:
+ version "24.5.0"
+ resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.5.0.tgz#cc69a0281a62cd7242633fc135d6930cd889822d"
+ integrity sha512-/3RuSghukCf8Riu5Ncve0iI+BzVkbRU5EeUoArKARZobREycuH5O4waxvaNIloEXdb0qwgmEAed5vTpX1HNROQ==
dependencies:
- ansi-regex "^3.0.0"
+ "@jest/types" "^24.5.0"
+ ansi-regex "^4.0.0"
ansi-styles "^3.2.0"
+ react-is "^16.8.4"
-private@^0.1.6, private@^0.1.8:
+private@^0.1.6:
version "0.1.8"
resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff"
integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==
@@ -7325,13 +7310,13 @@ promise@^7.1.1:
dependencies:
asap "~2.0.3"
-prompts@^0.1.9:
- version "0.1.14"
- resolved "https://registry.yarnpkg.com/prompts/-/prompts-0.1.14.tgz#a8e15c612c5c9ec8f8111847df3337c9cbd443b2"
- integrity sha512-rxkyiE9YH6zAz/rZpywySLKkpaj0NMVyNw1qhsubdbjjSgcayjTShDreZGlFMcGSu5sab3bAKPfFk78PB90+8w==
+prompts@^2.0.1:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.0.3.tgz#c5ccb324010b2e8f74752aadceeb57134c1d2522"
+ integrity sha512-H8oWEoRZpybm6NV4to9/1limhttEo13xK62pNvn2JzY0MA03p7s0OjtmhXyon3uJmxiJJVSuUwEJFFssI3eBiQ==
dependencies:
- kleur "^2.0.1"
- sisteransi "^0.1.1"
+ kleur "^3.0.2"
+ sisteransi "^1.0.0"
prop-types-extra@^1.0.1:
version "1.1.0"
@@ -7362,11 +7347,6 @@ prr@~1.0.1:
resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"
integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY=
-pseudomap@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
- integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM=
-
psl@^1.1.24, psl@^1.1.28:
version "1.1.31"
resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.31.tgz#e9aa86d0101b5b105cbe93ac6b784cd547276184"
@@ -7479,15 +7459,6 @@ randexp@0.4.6:
discontinuous-range "1.0.0"
ret "~0.1.10"
-randomatic@^3.0.0:
- 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"
- math-random "^1.0.1"
-
randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5:
version "2.0.6"
resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz#d302c522948588848a8d300c932b44c24231da80"
@@ -7610,6 +7581,11 @@ react-is@^16.3.2, react-is@^16.6.1, react-is@^16.6.3, react-is@^16.7.0:
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.7.0.tgz#c1bd21c64f1f1364c6f70695ec02d69392f41bfa"
integrity sha512-Z0VRQdF4NPDoI0tsXVMLkJLiwEBa+RP66g0xDHxgxysxSoCUccSten4RTF/UFvZF1dZvZ9Zu1sx+MDXwcOR34g==
+react-is@^16.8.4:
+ version "16.8.4"
+ resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.4.tgz#90f336a68c3a29a096a3d648ab80e87ec61482a2"
+ integrity sha512-PVadd+WaUDOAciICm/J1waJaSvgq+4rHE/K70j0PFqKhkTBsPv/82UGQJNXAngz1fOQLLxI6z1sEDmJDQhCTAA==
+
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"
@@ -7802,14 +7778,6 @@ react@^16.7.0:
prop-types "^15.6.2"
scheduler "^0.12.0"
-read-pkg-up@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02"
- integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=
- dependencies:
- find-up "^1.0.0"
- read-pkg "^1.0.0"
-
read-pkg-up@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be"
@@ -7818,14 +7786,13 @@ read-pkg-up@^2.0.0:
find-up "^2.0.0"
read-pkg "^2.0.0"
-read-pkg@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28"
- integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=
+read-pkg-up@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-4.0.0.tgz#1b221c6088ba7799601c808f91161c66e58f8978"
+ integrity sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==
dependencies:
- load-json-file "^1.0.0"
- normalize-package-data "^2.3.2"
- path-type "^1.0.0"
+ find-up "^3.0.0"
+ read-pkg "^3.0.0"
read-pkg@^2.0.0:
version "2.0.0"
@@ -7836,6 +7803,15 @@ read-pkg@^2.0.0:
normalize-package-data "^2.3.2"
path-type "^2.0.0"
+read-pkg@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389"
+ integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=
+ dependencies:
+ load-json-file "^4.0.0"
+ normalize-package-data "^2.3.2"
+ path-type "^3.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.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6:
version "2.3.6"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
@@ -7867,10 +7843,10 @@ readdirp@^2.0.0:
micromatch "^3.1.10"
readable-stream "^2.0.2"
-realpath-native@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.0.2.tgz#cd51ce089b513b45cf9b1516c82989b51ccc6560"
- integrity sha512-+S3zTvVt9yTntFrBpm7TQmQ3tzpCrnA1a/y+3cUHAc9ZR6aIjG0WNLR+Rj79QpJktY+VeW/TQtFlQ1bzsehI8g==
+realpath-native@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.1.0.tgz#2003294fea23fb0672f2476ebe22fcf498a2d65c"
+ integrity sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA==
dependencies:
util.promisify "^1.0.0"
@@ -7918,7 +7894,7 @@ regenerate-unicode-properties@^7.0.0:
dependencies:
regenerate "^1.4.0"
-regenerate@^1.2.1, regenerate@^1.4.0:
+regenerate@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11"
integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==
@@ -7933,20 +7909,13 @@ regenerator-runtime@^0.12.0:
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz#fa1a71544764c036f8c49b13a08b2594c9f8a0de"
integrity sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==
-regenerator-transform@^0.13.3:
- version "0.13.3"
- resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.13.3.tgz#264bd9ff38a8ce24b06e0636496b2c856b57bcbb"
- integrity sha512-5ipTrZFSq5vU2YoGoww4uaRVAK4wyYC4TSICibbfEPOruUu8FFP7ErV0BjmbIOEpn3O/k9na9UEdYR/3m7N6uA==
+regenerator-transform@^0.13.4:
+ version "0.13.4"
+ resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.13.4.tgz#18f6763cf1382c69c36df76c6ce122cc694284fb"
+ integrity sha512-T0QMBjK3J0MtxjPmdIMXm72Wvj2Abb0Bd4HADdfijwMdoIsyQZ6fWC7kDFhk2YinBBEMZDL7Y7wh0J1sGx3S4A==
dependencies:
private "^0.1.6"
-regex-cache@^0.4.2:
- version "0.4.4"
- resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd"
- integrity sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==
- dependencies:
- is-equal-shallow "^0.1.3"
-
regex-not@^1.0.0, regex-not@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c"
@@ -7955,20 +7924,16 @@ regex-not@^1.0.0, regex-not@^1.0.2:
extend-shallow "^3.0.2"
safe-regex "^1.1.0"
+regexp-tree@^0.1.0:
+ version "0.1.5"
+ resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.5.tgz#7cd71fca17198d04b4176efd79713f2998009397"
+ integrity sha512-nUmxvfJyAODw+0B13hj8CFVAxhe7fDEAgJgaotBu3nnR+IgGgZq59YedJP5VYTlkEfqjuK6TuRpnymKdatLZfQ==
+
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"
- resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b"
- integrity sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=
- dependencies:
- regenerate "^1.2.1"
- regjsgen "^0.2.0"
- regjsparser "^0.1.4"
-
regexpu-core@^4.1.3, regexpu-core@^4.2.0:
version "4.4.0"
resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.4.0.tgz#8d43e0d1266883969720345e70c275ee0aec0d32"
@@ -7981,23 +7946,11 @@ regexpu-core@^4.1.3, regexpu-core@^4.2.0:
unicode-match-property-ecmascript "^1.0.4"
unicode-match-property-value-ecmascript "^1.0.2"
-regjsgen@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7"
- integrity sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=
-
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"
- resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c"
- integrity sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=
- dependencies:
- jsesc "~0.5.0"
-
regjsparser@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c"
@@ -8020,18 +7973,11 @@ repeat-element@^1.1.2:
resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce"
integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==
-repeat-string@^1.5.2, repeat-string@^1.6.1:
+repeat-string@^1.6.1:
version "1.6.1"
resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc=
-repeating@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda"
- integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=
- dependencies:
- is-finite "^1.0.0"
-
request-promise-core@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.1.tgz#3eee00b2c5aa83239cfb04c5700da36f81cd08b6"
@@ -8124,6 +8070,14 @@ resolve-cwd@^2.0.0:
dependencies:
resolve-from "^3.0.0"
+resolve-dir@^1.0.0, resolve-dir@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43"
+ integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=
+ dependencies:
+ expand-tilde "^2.0.0"
+ global-modules "^1.0.0"
+
resolve-from@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226"
@@ -8245,21 +8199,20 @@ safe-regex@^1.1.0:
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
-sane@^2.0.0:
- version "2.5.2"
- resolved "https://registry.yarnpkg.com/sane/-/sane-2.5.2.tgz#b4dc1861c21b427e929507a3e751e2a2cb8ab3fa"
- integrity sha1-tNwYYcIbQn6SlQej51HiosuKs/o=
+sane@^4.0.3:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/sane/-/sane-4.0.3.tgz#e878c3f19e25cc57fbb734602f48f8a97818b181"
+ integrity sha512-hSLkC+cPHiBQs7LSyXkotC3UUtyn8C4FMn50TNaacRyvBlI+3ebcxMpqckmTdtXVtel87YS7GXN3UIOj7NiGVQ==
dependencies:
+ "@cnakazawa/watch" "^1.0.3"
anymatch "^2.0.0"
capture-exit "^1.2.0"
- exec-sh "^0.2.0"
+ exec-sh "^0.3.2"
+ execa "^1.0.0"
fb-watchman "^2.0.0"
micromatch "^3.1.4"
minimist "^1.1.1"
walker "~1.0.5"
- watch "~0.18.0"
- optionalDependencies:
- fsevents "^1.2.3"
sass-loader@^7.0.3:
version "7.1.0"
@@ -8273,10 +8226,10 @@ sass-loader@^7.0.3:
pify "^3.0.0"
semver "^5.5.0"
-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==
+sass@^1.17.2:
+ version "1.17.2"
+ resolved "https://registry.yarnpkg.com/sass/-/sass-1.17.2.tgz#b5a28f2f13c6a219f28084c03623bb2c8d176323"
+ integrity sha512-TBNcwSIEXpXAIaFxQnWbHzhciwPKpHRprQ+1ww+g9eHCiY3PINJs6vQTu+LcBt1vIhrtQGRFIoxJO39TfLrptA==
dependencies:
chokidar "^2.0.0"
@@ -8293,14 +8246,6 @@ scheduler@^0.12.0:
loose-envify "^1.1.0"
object-assign "^4.1.1"
-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==
- dependencies:
- ajv "^6.1.0"
- ajv-keywords "^3.1.0"
-
schema-utils@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770"
@@ -8468,16 +8413,21 @@ simple-swizzle@^0.2.2:
dependencies:
is-arrayish "^0.3.1"
-sisteransi@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-0.1.1.tgz#5431447d5f7d1675aac667ccd0b865a4994cb3ce"
- integrity sha512-PmGOd02bM9YO5ifxpw36nrNMBTptEtfRl4qUYl9SndkolplkrZZOW7PGHjrZL53QvMVj9nQ+TKqUnRsw4tJa4g==
+sisteransi@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.0.tgz#77d9622ff909080f1c19e5f4a1df0c1b0a27b88c"
+ integrity sha512-N+z4pHB4AmUv0SjveWRd6q1Nj5w62m5jodv+GD8lvmbY/83T/rpbJGZOnK5T149OldDj4Db07BSv9xY4K6NTPQ==
slash@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=
+slash@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44"
+ integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==
+
slice-ansi@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.0.0.tgz#5373bdb8559b45676e8541c66916cdd6251612e7"
@@ -8553,13 +8503,6 @@ source-map-resolve@^0.5.0:
source-map-url "^0.4.0"
urix "^0.1.0"
-source-map-support@^0.4.15:
- version "0.4.18"
- resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f"
- integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==
- dependencies:
- source-map "^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"
@@ -8573,7 +8516,7 @@ 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.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7:
+source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6:
version "0.5.7"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
@@ -8814,18 +8757,11 @@ strip-ansi@^5.0.0:
dependencies:
ansi-regex "^4.0.0"
-strip-bom@3.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"
integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=
-strip-bom@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e"
- integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=
- dependencies:
- is-utf8 "^0.2.0"
-
strip-eof@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
@@ -8836,14 +8772,6 @@ strip-json-comments@^2.0.1, strip-json-comments@~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.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 "^1.0.0"
-
stylehacks@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.1.tgz#3186595d047ab0df813d213e51c8b94e0b9010f2"
@@ -8863,20 +8791,27 @@ supports-color@^2.0.0:
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=
-supports-color@^3.1.2, supports-color@^3.2.3:
+supports-color@^3.2.3:
version "3.2.3"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6"
integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=
dependencies:
has-flag "^1.0.0"
-supports-color@^5.1.0, supports-color@^5.3.0, supports-color@^5.5.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"
+supports-color@^6.0.0, supports-color@^6.1.0:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3"
+ integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==
+ dependencies:
+ has-flag "^3.0.0"
+
svgo@^1.0.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.1.1.tgz#12384b03335bcecd85cfa5f4e3375fed671cb985"
@@ -8963,15 +8898,14 @@ terser@^3.8.1:
source-map "~0.6.1"
source-map-support "~0.5.6"
-test-exclude@^4.2.1:
- version "4.2.3"
- resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.2.3.tgz#a9a5e64474e4398339245a0a769ad7c2f4a97c20"
- integrity sha512-SYbXgY64PT+4GAL2ocI3HwPa4Q4TBKm0cwAVeKOt/Aoc0gSpNRjJX8w0pA1LMKZ3LBmd8pYBqApFNQLII9kavA==
+test-exclude@^5.0.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.1.0.tgz#6ba6b25179d2d38724824661323b73e03c0c1de1"
+ integrity sha512-gwf0S2fFsANC55fSeSqpb8BYk6w3FDvwZxfNjeF6FRgvFa43r+7wRiA/Q0IxoRU37wB/LE8IQ4221BsNucTaCA==
dependencies:
arrify "^1.0.1"
- micromatch "^2.3.11"
- object-assign "^4.1.0"
- read-pkg-up "^1.0.1"
+ minimatch "^3.0.4"
+ read-pkg-up "^4.0.0"
require-main-filename "^1.0.1"
text-table@^0.2.0:
@@ -9043,11 +8977,6 @@ to-arraybuffer@^1.0.0:
resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"
integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=
-to-fast-properties@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47"
- integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=
-
to-fast-properties@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
@@ -9166,10 +9095,10 @@ uglify-js@^3.0.0, uglify-js@^3.1.4:
commander "~2.17.1"
source-map "~0.6.1"
-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==
+uglifyjs-webpack-plugin@^2.1.2:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-2.1.2.tgz#70e5c38fb2d35ee887949c2a0adb2656c23296d5"
+ integrity sha512-G1fJx2uOAAfvdZ77SVCzmFo6mv8uKaHoZBL9Qq/ciC8r6p0ANOL1uY85fIUiyWXKw5RzAaJYZfNSL58Or2hQ0A==
dependencies:
cacache "^11.2.0"
find-cache-dir "^2.0.0"
@@ -9412,14 +9341,6 @@ warning@^4.0.1:
dependencies:
loose-envify "^1.0.0"
-watch@~0.18.0:
- version "0.18.0"
- resolved "https://registry.yarnpkg.com/watch/-/watch-0.18.0.tgz#28095476c6df7c90c963138990c0a5423eb4b986"
- integrity sha1-KAlUdsbffJDJYxOJkMClQj60uYY=
- dependencies:
- exec-sh "^0.2.0"
- minimist "^1.2.0"
-
watchpack@^1.5.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00"
@@ -9454,12 +9375,13 @@ webpack-assets-manifest@^3.1.1:
tapable "^1.0.0"
webpack-sources "^1.0.0"
-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==
+webpack-bundle-analyzer@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.1.0.tgz#2f19cbb87bb6d4f3cb4e59cb67c837bd9436e89d"
+ integrity sha512-nyDyWEs7C6DZlgvu1pR1zzJfIWSiGPbtaByZr8q+Fd2xp70FuM/8ngCJzj3Er1TYRLSFmp1F1OInbEm4DZH8NA==
dependencies:
- acorn "^5.7.3"
+ acorn "^6.0.7"
+ acorn-walk "^6.1.1"
bfj "^6.1.1"
chalk "^2.4.1"
commander "^2.18.0"
@@ -9472,49 +9394,50 @@ webpack-bundle-analyzer@^3.0.3:
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==
+webpack-cli@^3.2.3:
+ version "3.2.3"
+ resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.2.3.tgz#13653549adfd8ccd920ad7be1ef868bacc22e346"
+ integrity sha512-Ik3SjV6uJtWIAN5jp5ZuBMWEAaP5E4V78XJ2nI+paFPh8v4HPSwo/myN0r29Xc/6ZKnd2IdrAlpSgNOu2CDQ6Q==
dependencies:
chalk "^2.4.1"
cross-spawn "^6.0.5"
enhanced-resolve "^4.1.0"
- global-modules-path "^2.3.0"
+ findup-sync "^2.0.0"
+ global-modules "^1.0.0"
import-local "^2.0.0"
interpret "^1.1.0"
loader-utils "^1.1.0"
supports-color "^5.5.0"
v8-compile-cache "^2.0.2"
- yargs "^12.0.2"
+ yargs "^12.0.4"
-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==
+webpack-dev-middleware@^3.5.1:
+ version "3.6.1"
+ resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.6.1.tgz#91f2531218a633a99189f7de36045a331a4b9cd4"
+ integrity sha512-XQmemun8QJexMEvNFbD2BIg4eSKrmSIMrTfnl2nql2Sc6OGAYFyb8rwuYrCjl/IiEYYuyTEiimMscu7EXji/Dw==
dependencies:
- memory-fs "~0.4.1"
+ memory-fs "^0.4.1"
mime "^2.3.1"
range-parser "^1.0.3"
webpack-log "^2.0.0"
-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==
+webpack-dev-server@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.2.1.tgz#1b45ce3ecfc55b6ebe5e36dab2777c02bc508c4e"
+ integrity sha512-sjuE4mnmx6JOh9kvSbPYw3u/6uxCLHNWfhWaIPwcXWsvWOPN+nc5baq4i9jui3oOBRXGonK9+OI0jVkaz6/rCw==
dependencies:
ansi-html "0.0.7"
bonjour "^3.5.0"
chokidar "^2.0.0"
compression "^1.5.2"
connect-history-api-fallback "^1.3.0"
- debug "^3.1.0"
+ debug "^4.1.1"
del "^3.0.0"
express "^4.16.2"
html-entities "^1.2.0"
- http-proxy-middleware "~0.18.0"
+ http-proxy-middleware "^0.19.1"
import-local "^2.0.0"
- internal-ip "^3.0.1"
+ internal-ip "^4.2.0"
ip "^1.1.5"
killable "^1.0.0"
loglevel "^1.4.1"
@@ -9528,9 +9451,9 @@ webpack-dev-server@^3.1.14:
sockjs-client "1.3.0"
spdy "^4.0.0"
strip-ansi "^3.0.0"
- supports-color "^5.1.0"
+ supports-color "^6.1.0"
url "^0.11.0"
- webpack-dev-middleware "3.4.0"
+ webpack-dev-middleware "^3.5.1"
webpack-log "^2.0.0"
yargs "12.0.2"
@@ -9542,10 +9465,10 @@ webpack-log@^2.0.0:
ansi-colors "^3.0.0"
uuid "^3.3.2"
-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==
+webpack-merge@^4.2.1:
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.1.tgz#5e923cf802ea2ace4fd5af1d3247368a633489b4"
+ integrity sha512-4p8WQyS98bUJcCvFMbdGZyZmsKuWjWVnVHnAS3FFg0HDaRVrPbkivx2RYCre8UiemD67RsiFFLfn4JhLAin8Vw==
dependencies:
lodash "^4.17.5"
@@ -9557,17 +9480,17 @@ webpack-sources@^1.0.0, webpack-sources@^1.0.1, webpack-sources@^1.1.0, webpack-
source-list-map "^2.0.0"
source-map "~0.6.1"
-webpack@^4.28.3:
- version "4.28.3"
- resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.28.3.tgz#8acef6e77fad8a01bfd0c2b25aa3636d46511874"
- integrity sha512-vLZN9k5I7Nr/XB1IDG9GbZB4yQd1sPuvufMFgJkx0b31fi2LD97KQIjwjxE7xytdruAYfu5S0FLBLjdxmwGJCg==
+webpack@^4.29.6:
+ version "4.29.6"
+ resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.29.6.tgz#66bf0ec8beee4d469f8b598d3988ff9d8d90e955"
+ integrity sha512-MwBwpiE1BQpMDkbnUUaW6K8RFZjljJHArC6tWQJoFm0oQtfoSebtg4Y7/QHnJ/SddtjYLHaKGX64CFjG5rehJw==
dependencies:
- "@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"
+ "@webassemblyjs/ast" "1.8.5"
+ "@webassemblyjs/helper-module-context" "1.8.5"
+ "@webassemblyjs/wasm-edit" "1.8.5"
+ "@webassemblyjs/wasm-parser" "1.8.5"
+ acorn "^6.0.5"
+ acorn-dynamic-import "^4.0.0"
ajv "^6.1.0"
ajv-keywords "^3.1.0"
chrome-trace-event "^1.0.0"
@@ -9581,7 +9504,7 @@ webpack@^4.28.3:
mkdirp "~0.5.0"
neo-async "^2.5.0"
node-libs-browser "^2.0.0"
- schema-utils "^0.4.4"
+ schema-utils "^1.0.0"
tapable "^1.1.0"
terser-webpack-plugin "^1.1.0"
watchpack "^1.5.0"
@@ -9647,7 +9570,7 @@ which-module@^2.0.0:
resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=
-which@^1.2.12, which@^1.2.9, which@^1.3.0:
+which@^1.2.14, 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==
@@ -9691,10 +9614,10 @@ wrappy@1:
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
-write-file-atomic@^2.1.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab"
- integrity sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==
+write-file-atomic@2.4.1:
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.1.tgz#d0b05463c188ae804396fd5ab2a370062af87529"
+ integrity sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg==
dependencies:
graceful-fs "^4.1.11"
imurmurhash "^0.1.4"
@@ -9736,21 +9659,11 @@ xtend@^4.0.0, xtend@~4.0.1:
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68=
-y18n@^3.2.1:
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41"
- integrity sha1-bRX7qITAhnnA136I53WegR4H+kE=
-
"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b"
integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==
-yallist@^2.1.2:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
- integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
-
yallist@^3.0.0, yallist@^3.0.2:
version "3.0.3"
resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9"
@@ -9771,20 +9684,6 @@ yargs-parser@^11.1.1:
camelcase "^5.0.0"
decamelize "^1.2.0"
-yargs-parser@^7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9"
- integrity sha1-jQrELxbqVd69MyyvTEA4s+P139k=
- dependencies:
- camelcase "^4.1.0"
-
-yargs-parser@^9.0.2:
- version "9.0.2"
- resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077"
- integrity sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=
- dependencies:
- camelcase "^4.1.0"
-
yargs@12.0.2:
version "12.0.2"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.2.tgz#fe58234369392af33ecbef53819171eff0f5aadc"
@@ -9803,25 +9702,7 @@ yargs@12.0.2:
y18n "^3.2.1 || ^4.0.0"
yargs-parser "^10.1.0"
-yargs@^11.0.0:
- version "11.1.0"
- 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"
- decamelize "^1.1.1"
- find-up "^2.1.0"
- get-caller-file "^1.0.1"
- os-locale "^2.0.0"
- require-directory "^2.1.1"
- require-main-filename "^1.0.1"
- set-blocking "^2.0.0"
- string-width "^2.0.0"
- which-module "^2.0.0"
- y18n "^3.2.1"
- yargs-parser "^9.0.2"
-
-yargs@^12.0.2:
+yargs@^12.0.2, yargs@^12.0.4, yargs@^12.0.5:
version "12.0.5"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13"
integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==
@@ -9838,22 +9719,3 @@ yargs@^12.0.2:
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"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360"
- integrity sha1-YpmpBVsc78lp/355wdkY3Osiw2A=
- dependencies:
- camelcase "^4.1.0"
- cliui "^3.2.0"
- decamelize "^1.1.1"
- get-caller-file "^1.0.1"
- os-locale "^2.0.0"
- read-pkg-up "^2.0.0"
- require-directory "^2.1.1"
- require-main-filename "^1.0.1"
- set-blocking "^2.0.0"
- string-width "^2.0.0"
- which-module "^2.0.0"
- y18n "^3.2.1"
- yargs-parser "^7.0.0"