diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/components/emoji_reactions/emoji_reactions.js | 26 | ||||
| -rw-r--r-- | src/components/emoji_reactions/emoji_reactions.vue | 127 | ||||
| -rw-r--r-- | src/components/notification/notification.vue | 3 | ||||
| -rw-r--r-- | src/i18n/ar.json | 325 | ||||
| -rw-r--r-- | src/i18n/en.json | 3 | ||||
| -rw-r--r-- | src/i18n/eo.json | 94 | ||||
| -rw-r--r-- | src/i18n/ko.json | 64 |
7 files changed, 576 insertions, 66 deletions
diff --git a/src/components/emoji_reactions/emoji_reactions.js b/src/components/emoji_reactions/emoji_reactions.js index bb11b840..b4936424 100644 --- a/src/components/emoji_reactions/emoji_reactions.js +++ b/src/components/emoji_reactions/emoji_reactions.js @@ -1,5 +1,17 @@ import UserAvatar from '../user_avatar/user_avatar.vue' import UserListPopover from '../user_list_popover/user_list_popover.vue' +import { library } from '@fortawesome/fontawesome-svg-core' +import { + faPlus, + faMinus, + faCheck +} from '@fortawesome/free-solid-svg-icons' + +library.add( + faPlus, + faMinus, + faCheck +) const EMOJI_REACTION_COUNT_CUTOFF = 12 @@ -33,6 +45,9 @@ const EmojiReactions = { }, loggedIn () { return !!this.$store.state.users.currentUser + }, + remoteInteractionLink () { + return this.$store.getters.remoteInteractionLink({ statusId: this.status.id }) } }, methods: { @@ -62,6 +77,17 @@ const EmojiReactions = { } else { this.reactWith(emoji) } + }, + counterTriggerAttrs (reaction) { + return { + class: [ + 'btn', + 'button-default', + 'emoji-reaction-count-button', + { '-picked-reaction': this.reactedWith(reaction.name) } + ], + 'aria-label': this.$tc('status.reaction_count_label', reaction.count, { num: reaction.count }) + } } } } diff --git a/src/components/emoji_reactions/emoji_reactions.vue b/src/components/emoji_reactions/emoji_reactions.vue index eb46018e..92fc58ca 100644 --- a/src/components/emoji_reactions/emoji_reactions.vue +++ b/src/components/emoji_reactions/emoji_reactions.vue @@ -1,15 +1,19 @@ <template> <div class="EmojiReactions"> - <UserListPopover + <span v-for="(reaction) in emojiReactions" :key="reaction.url || reaction.name" - :users="accountsForEmoji[reaction.name]" + class="emoji-reaction-container btn-group" > - <button + <component + :is="loggedIn ? 'button' : 'a'" + v-bind="!loggedIn ? { href: remoteInteractionLink } : {}" + role="button" class="emoji-reaction btn button-default" - :class="{ '-picked-reaction': reactedWith(reaction.name), 'not-clickable': !loggedIn }" + :class="{ '-picked-reaction': reactedWith(reaction.name) }" + :title="reaction.url ? reaction.name : undefined" + :aria-pressed="reactedWith(reaction.name)" @click="emojiOnClick(reaction.name, $event)" - @mouseenter="fetchEmojiReactionsByIfMissing()" > <span class="reaction-emoji" @@ -17,7 +21,6 @@ <img v-if="reaction.url" :src="reaction.url" - :title="reaction.name" class="reaction-emoji-content" width="1em" > @@ -26,9 +29,36 @@ class="reaction-emoji reaction-emoji-content" >{{ reaction.name }}</span> </span> - <span>{{ reaction.count }}</span> - </button> - </UserListPopover> + <FALayers> + <FAIcon + v-if="reactedWith(reaction.name)" + class="active-marker" + transform="shrink-6 up-9" + icon="check" + /> + <FAIcon + v-if="!reactedWith(reaction.name)" + class="focus-marker" + transform="shrink-6 up-9" + icon="plus" + /> + <FAIcon + v-else + class="focus-marker" + transform="shrink-6 up-9" + icon="minus" + /> + </FALayers> + </component> + <UserListPopover + :users="accountsForEmoji[reaction.name]" + class="emoji-reaction-popover" + :trigger-attrs="counterTriggerAttrs(reaction)" + @show="fetchEmojiReactionsByIfMissing()" + > + <span class="emoji-reaction-counts">{{ reaction.count }}</span> + </UserListPopover> + </span> <a v-if="tooManyReactions" class="emoji-reaction-expand faint" @@ -43,6 +73,7 @@ <script src="./emoji_reactions.js"></script> <style lang="scss"> @import "../../variables"; +@import "../../mixins"; .EmojiReactions { display: flex; @@ -51,14 +82,44 @@ --emoji-size: calc(1.25em * var(--emojiReactionsScale, 1)); - .emoji-reaction { - padding: 0 0.5em; - margin-right: 0.5em; + .emoji-reaction-container { + display: flex; + align-items: stretch; margin-top: 0.5em; + margin-right: 0.5em; + + .emoji-reaction-popover { + padding: 0; + + .emoji-reaction-count-button { + background-color: var(--btn); + height: 100%; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + box-sizing: border-box; + min-width: 2em; + display: inline-flex; + justify-content: center; + align-items: center; + color: $fallback--text; + color: var(--btnText, $fallback--text); + + &.-picked-reaction { + border: 1px solid var(--accent, $fallback--link); + margin-right: -1px; + } + } + } + } + + .emoji-reaction { + padding-left: 0.5em; display: flex; align-items: center; justify-content: center; box-sizing: border-box; + border-top-right-radius: 0; + border-bottom-right-radius: 0; .reaction-emoji { width: var(--emoji-size); @@ -85,19 +146,45 @@ outline: none; } - &.not-clickable { - cursor: default; - - &:hover { - box-shadow: $fallback--buttonShadow; - box-shadow: var(--buttonShadow); - } + .svg-inline--fa { + color: $fallback--text; + color: var(--btnText, $fallback--text); } &.-picked-reaction { border: 1px solid var(--accent, $fallback--link); margin-left: -1px; // offset the border, can't use inset shadows either - margin-right: calc(0.5em - 1px); + margin-right: -1px; + + .svg-inline--fa { + color: $fallback--link; + color: var(--accent, $fallback--link); + } + } + + @include unfocused-style { + .focus-marker { + visibility: hidden; + } + + .active-marker { + visibility: visible; + } + } + + @include focused-style { + .svg-inline--fa { + color: $fallback--link; + color: var(--accent, $fallback--link); + } + + .focus-marker { + visibility: visible; + } + + .active-marker { + visibility: hidden; + } } } diff --git a/src/components/notification/notification.vue b/src/components/notification/notification.vue index 4d801c5e..5a32fc70 100644 --- a/src/components/notification/notification.vue +++ b/src/components/notification/notification.vue @@ -125,7 +125,8 @@ v-if="notification.emoji_url" class="emoji-reaction-emoji emoji-reaction-emoji-image" :src="notification.emoji_url" - :name="notification.emoji" + :alt="notification.emoji" + :title="notification.emoji" > <span v-else diff --git a/src/i18n/ar.json b/src/i18n/ar.json index cd9a410a..7915e779 100644 --- a/src/i18n/ar.json +++ b/src/i18n/ar.json @@ -9,7 +9,8 @@ "scope_options": "", "text_limit": "الحد الأقصى للنص", "title": "الميّزات", - "who_to_follow": "للمتابعة" + "who_to_follow": "للمتابعة", + "upload_limit": "حد الرفع" }, "finder": { "error_fetching_user": "خطأ أثناء جلب صفحة المستخدم", @@ -17,7 +18,35 @@ }, "general": { "apply": "تطبيق", - "submit": "إرسال" + "submit": "إرسال", + "error_retry": "حاول مجددًا", + "retry": "حاول مجدداً", + "optional": "اختياري", + "show_more": "اعرض المزيد", + "show_less": "اعرض أقل", + "cancel": "ألغ", + "disable": "عطّل", + "enable": "فعّل", + "confirm": "تأكيد", + "close": "أغلق", + "role": { + "admin": "مدير", + "moderator": "مشرف" + }, + "generic_error_message": "حدث خطأ: {0}", + "never_show_again": "لا تظهره مجددًا", + "yes": "نعم", + "no": "لا", + "unpin": "ألغ تثبيت العنصر", + "undo": "تراجع", + "more": "المزيد", + "loading": "يحمل…", + "generic_error": "حدث خطأ", + "scope_in_timeline": { + "private": "المتابِعون فقط" + }, + "scroll_to_top": "مرر لأعلى", + "pin": "ثبت العنصر" }, "login": { "login": "تسجيل الدخول", @@ -25,7 +54,19 @@ "password": "الكلمة السرية", "placeholder": "مثال lain", "register": "انشاء حساب", - "username": "إسم المستخدم" + "username": "إسم المستخدم", + "logout_confirm_title": "تأكيد الخروج", + "logout_confirm": "أتريد الخروج؟", + "logout_confirm_accept_button": "خروج", + "logout_confirm_cancel_button": "لا تخرج", + "hint": "لِج للانضمام للمناقشة", + "authentication_code": "رمز الاستيثاق", + "enter_recovery_code": "أدخل رمز التأكيد", + "enter_two_factor_code": "أدخل رمز الاستيثاق بعاملين", + "recovery_code": "رمز الاستعادة", + "heading": { + "totp": "الاستيثاق بعاملين" + } }, "nav": { "chat": "الدردشة المحلية", @@ -33,23 +74,48 @@ "mentions": "الإشارات", "public_tl": "الخيط الزمني العام", "timeline": "الخيط الزمني", - "twkn": "كافة الشبكة المعروفة" + "twkn": "كافة الشبكة المعروفة", + "search_close": "أغلق شربط البحث", + "back": "للخلف", + "administration": "الإدارة", + "preferences": "التفضيلات", + "chats": "المحادثات", + "lists": "القوائم", + "edit_nav_mobile": "خصص شريط التنقل", + "edit_pinned": "حرر العناصر المثبتة", + "mobile_notifications_close": "أغلق الاشعارات", + "announcements": "إعلانات", + "home_timeline": "الخط الزمني الرئيس", + "search": "بحث", + "who_to_follow": "للمتابعة", + "dms": "رسالة شخصية", + "edit_finish": "تم التحرير", + "timelines": "الخيوط الزمنية", + "mobile_notifications": "افتح الإشعارات (تتواجد اشعارات غير مقروءة)" }, "notifications": { "broken_favorite": "منشور مجهول، جارٍ البحث عنه…", "favorited_you": "أعجِب بمنشورك", "followed_you": "يُتابعك", "load_older": "تحميل الإشعارات الأقدم", - "notifications": "الإخطارات", + "notifications": "الاشعارات", "read": "مقروء!", - "repeated_you": "شارَك منشورك" + "repeated_you": "شارَك منشورك", + "error": "خطأ أثناء جلب الاشعارات: {0}", + "follow_request": "يريد متابعتك", + "poll_ended": "انتهى الاستطلاع", + "no_more_notifications": "لا مزيد من الإشعارات", + "reacted_with": "تفاعل بـ{0}", + "submitted_report": "أرسل بلاغًا" }, "post_status": { "account_not_locked_warning": "", "account_not_locked_warning_link": "مقفل", "attachments_sensitive": "اعتبر المرفقات كلها كمحتوى حساس", "content_type": { - "text/plain": "نص صافٍ" + "text/plain": "نص صِرف", + "text/html": "HTML", + "text/markdown": "ماركداون" }, "content_warning": "الموضوع (اختياري)", "default": "وصلت للتوّ إلى لوس أنجلس.", @@ -60,15 +126,47 @@ "private": "", "public": "علني - يُنشر على الخيوط الزمنية العمومية", "unlisted": "غير مُدرَج - لا يُنشَر على الخيوط الزمنية العمومية" - } + }, + "media_description": "وصف الوسائط", + "direct_warning_to_all": "سيكون عذا المنشور مرئيًا لكل المستخدمين المذكورين.", + "post": "انشر", + "preview": "معاينة", + "preview_empty": "فارغ", + "scope_notice": { + "public": "سيكون هذا المنشور مرئيًا للجميع", + "private": "سيكون هذا المنشور مرئيا لمتابِعيك فقط" + }, + "direct_warning_to_first_only": "سيكون عذا المنشور مرئيًا للمستخدمين المذكورين في أول الرسالة.", + "edit_unsupported_warning": "بليروما لا يدعم تعديل الذكر والاستطلاع.", + "empty_status_error": "يتعذر نشر منشور فارغ دون ملفات" }, "registration": { "bio": "السيرة الذاتية", "email": "عنوان البريد الإلكتروني", - "fullname": "الإسم المعروض", + "fullname": "الاسم العلني", "password_confirm": "تأكيد الكلمة السرية", "registration": "التسجيل", - "token": "رمز الدعوة" + "token": "رمز الدعوة", + "bio_optional": "سيرة (اختيارية)", + "email_optional": "بيرد إلكتروني (اختياري)", + "username_placeholder": "مثل lain", + "reason": "سبب التسجيل", + "register": "سجل", + "validations": { + "username_required": "لايمكن تركه فارغًا", + "email_required": "لايمكن تركه فارغًا", + "password_required": "لايمكن تركه فارغًا", + "password_confirmation_required": "لايمكن تركه فارغًا", + "fullname_required": "لايمكن تركه فارغًا", + "password_confirmation_match": "يلزم أن يطابق كلمة السر", + "birthday_required": "لايمكن تركه فارغًا", + "birthday_min_age": "يلزم أن يكون في {date} أو قبله" + }, + "fullname_placeholder": "مثل Lain Iwakura", + "reason_placeholder": "قبول التسجيل في هذا المثيل يستلزم موافقة المدير\nلهذا يجب عليك إعلامه بسبب التسجيل.", + "birthday_optional": "تاريخ الميلاد (اختياري):", + "email_language": "بأي لغة تريد استلام رسائل البريد الإلكتروني؟", + "birthday": "تاريخ الميلاد:" }, "settings": { "attachmentRadius": "المُرفَقات", @@ -83,9 +181,9 @@ "cGreen": "أخضر (إعادة النشر)", "cOrange": "برتقالي (مفضلة)", "cRed": "أحمر (إلغاء)", - "change_password": "تغيير كلمة السر", - "change_password_error": "وقع هناك خلل أثناء تعديل كلمتك السرية.", - "changed_password": "تم تغيير كلمة المرور بنجاح!", + "change_password": "غيّر كلمة السر", + "change_password_error": "حدث خلل أثناء تعديل كلمتك السرية.", + "changed_password": "نجح تغيير كلمة السر!", "collapse_subject": "", "confirm_new_password": "تأكيد كلمة السر الجديدة", "current_avatar": "صورتك الرمزية الحالية", @@ -94,11 +192,11 @@ "data_import_export_tab": "تصدير واستيراد البيانات", "default_vis": "أسلوب العرض الافتراضي", "delete_account": "حذف الحساب", - "delete_account_description": "حذف حسابك و كافة منشوراتك نهائيًا.", - "delete_account_error": "", + "delete_account_description": "حذف حسابك و كافة بياناتك نهائيًا.", + "delete_account_error": "حدثة مشكلة اثناء حذف حسابك، إذا استمرت تواصل مع مدير المثيل.", "delete_account_instructions": "يُرجى إدخال كلمتك السرية أدناه لتأكيد عملية حذف الحساب.", "export_theme": "حفظ النموذج", - "filtering": "التصفية", + "filtering": "الترشيح", "filtering_explanation": "سيتم إخفاء كافة المنشورات التي تحتوي على هذه الكلمات، كلمة واحدة في كل سطر", "follow_export": "تصدير الاشتراكات", "follow_export_button": "تصدير الاشتراكات كملف csv", @@ -108,10 +206,10 @@ "follows_imported": "", "foreground": "الأمامية", "general": "الإعدادات العامة", - "hide_attachments_in_convo": "إخفاء المرفقات على المحادثات", - "hide_attachments_in_tl": "إخفاء المرفقات على الخيط الزمني", - "hide_post_stats": "", - "hide_user_stats": "", + "hide_attachments_in_convo": "اخف المرفقات من المحادثات", + "hide_attachments_in_tl": "اخف المرفقات من الخيط الزمني", + "hide_post_stats": "اخف احصائيات المنشور (مثل عدد التفضيلات)", + "hide_user_stats": "اخف احصائيات المستخدم (مثل عدد المتابِعين)", "import_followers_from_a_csv_file": "", "import_theme": "تحميل نموذج", "inputRadius": "", @@ -166,7 +264,92 @@ "values": { "false": "لا", "true": "نعم" - } + }, + "emoji_reactions_scale": "معامل تحجيم التفاعلات", + "app_name": "اسم تطبيق", + "security": "الأمن", + "enter_current_password_to_confirm": "أدخل كلمة السر الحالية لتيقن من هويتك", + "mfa": { + "title": "الاستيثاق بعاملين", + "generate_new_recovery_codes": "ولّد رموز استعادة جديدة", + "warning_of_generate_new_codes": "عند توليد رموز استعادة جديدة ستزال القديمة.", + "recovery_codes": "رموز الاستعادة.", + "recovery_codes_warning": "خزن هذه الرموز في مكان آمن. إذا فقدت هذه الرموز وتعذر عليك الوصول إلى تطبيق الاستيثاق بعاملين، لن تتمكن من الوصول لحسابك.", + "authentication_methods": "طرق الاستيثاق", + "scan": { + "title": "مسح", + "desc": "امسح رمز الاستجابة السريعة QR من تطبيق الاستيثاق أو أدخل المفتاح:", + "secret_code": "مفتاح" + }, + "verify": { + "desc": "لتفعيل الاستيثاق بعاملين أدخل الرمز من تطبيق الاستيثاق:" + } + }, + "block_import": "استيراد المحجوبين", + "import_mutes_from_a_csv_file": "استورد قائمة المكتومين من ملف csv", + "account_backup": "نسخ احتياطي للحساب", + "download_backup": "نزّل", + "account_backup_table_head": "نسخ احتياطي", + "backup_not_ready": "هذا النسخ الاحتياطي ليس جاهزًا.", + "backup_failed": "فشل النسخ الاحتياطي.", + "remove_backup": "أزل", + "list_backups_error": "خطأ أثناء حلب قائمة النُسخ الاحتياطية: {error}", + "added_backup": "أُضيفت نسخة احتياطية جديدة.", + "blocks_tab": "المحجوبون", + "confirm_dialogs_block": "حجب مستخدم", + "confirm_dialogs_mute": "كتم مستخدم", + "confirm_dialogs_delete": "حذف حالة", + "confirm_dialogs_logout": "خروج", + "confirm_dialogs_approve_follow": "قبول متابِع", + "confirm_dialogs_deny_follow": "رفض متابِع", + "list_aliases_error": "خطأ أثناء جلب الكنيات: {error}", + "hide_list_aliases_error_action": "أغلق", + "remove_alias": "أزل هذه الكنية", + "add_alias_error": "حدث خطأ أثناء إضافة الكنية: {error}", + "confirm_dialogs": "أطلب تأكيدًا عند", + "confirm_dialogs_repeat": "مشاركة حالة", + "mutes_and_blocks": "المكتومون والمحجوبون", + "move_account_target": "الحساب المستهدف (مثل {example})", + "wordfilter": "ترشيح الكلمات", + "always_show_post_button": "أظهر الزر العائم لإنشاء منشور جديد دائمًا", + "hide_wallpaper": "اخف خلفية المثيل", + "save": "احفظ التعديلات", + "lists_navigation": "أظهر القوائم في شريط التنقل", + "mute_export_button": "صدّر قائمة المكتومين إلى ملف csv", + "blocks_imported": "اُستورد المحجوبون! معالجة القائمة ستستغرق وقتًا.", + "mute_export": "تصدير المكتومين", + "mute_import": "استيراد المكتومين", + "mute_import_error": "خطأ أثناء استيراد المكتومين", + "change_email_error": "حدثت خلل أثناء تغيير بريدك الإلكتروني.", + "change_email": "غيّر البريد الإلكتروني", + "changed_email": "نجح تغيير البريد الإلكتروني!", + "account_alias_table_head": "الكنية", + "account_alias": "كنيات الحساب", + "move_account": "أنقل الحساب", + "moved_account": "نُقل الحساب.", + "hide_media_previews": "اخف معاينات الوسائط", + "hide_muted_posts": "اخف منشورات المستخدمين المكتومين", + "confirm_dialogs_unfollow": "الغاء متابعة مستخدم", + "confirm_dialogs_remove_follower": "إزالة متابع", + "new_alias_target": "أضف كنية جديدة (مثل {example})", + "added_alias": "أُضيفت الكنية.", + "move_account_error": "خطأ أثناء نقل الحساب: {error}", + "emoji_reactions_on_timeline": "أظهر التفاعلات في الخط الزمني", + "mutes_imported": "اُستورد المكتومون! معالجة القئمة ستستغرق وقتًا.", + "remove_language": "أزل", + "primary_language": "اللغة الرئيسية:", + "expert_mode": "أظهر الإعدادات المتقدمة", + "block_import_error": "خطأ أثناء استيراد قائمة المحجوبين", + "add_backup": "أنشئ نسخة احتياطية جديدة", + "add_backup_error": "خطأ أثناء إضافة نسخ احتياطي جديد: {error}", + "move_account_notes": "إذا أردت نقل حسابك عليك إضافة كنية تشير إلى هنا في الحساب المستهدف.", + "avatar_size_instruction": "أدنى حجم مستحسن للصورة الرمزية هو 150x150 بيكسل.", + "word_filter_and_more": "مرشح الكلمات والمزيد...", + "hide_all_muted_posts": "اخف المنشورات المكتومة", + "max_thumbnails": "أقصى عدد للصور المصغرة لكل منشور (فارغ = غير محدود)", + "block_export_button": "صدّر قائمة المحجوبين إلى ملف csv", + "block_export": "تصدير المحجوبين", + "use_one_click_nsfw": "افتح المرفقات ذات المحتوى الحساس NSFW بنقرة واحدة" }, "timeline": { "collapse": "", @@ -211,11 +394,109 @@ "keyword_policies": "سياسة الكلمات الدلالية" }, "simple": { - "simple_policies": "سياسات الخادم" + "simple_policies": "سياسات الخادم", + "instance": "مثيل", + "reason": "السبب", + "accept": "قبول", + "reject": "رفض" }, "federation": "الاتحاد", "mrf_policies": "تفعيل سياسات إعادة كتابة المنشور", "mrf_policies_desc": "خاصية إعادة كتابة المناشير تقوم بتعديل تفاعل الاتحاد مع هذا الخادم. السياسات التالية مفعّلة:" } + }, + "announcements": { + "page_header": "إعلانات", + "title": "إعلان", + "mark_as_read_action": "علّمه كمقروء", + "post_form_header": "انشر إعلانًا", + "post_placeholder": "اكتب محتوى الاعلان هنا...", + "post_action": "انشر", + "post_error": "خطأ: {error}", + "close_error": "أغلاق", + "delete_action": "احذف", + "start_time_prompt": "وقت البدأ: ", + "end_time_prompt": "وقت النهاية: ", + "all_day_prompt": "هذا حدث يوم كامل", + "start_time_display": "يبدأ في {time}", + "end_time_display": "ينتهي في {time}", + "edit_action": "حرر", + "submit_edit_action": "أرسل", + "cancel_edit_action": "ألغِ", + "inactive_message": "هذا الاعلان غير نشط", + "published_time_display": "نُشر في {time}" + }, + "polls": { + "votes": "أصوات", + "vote": "صوّت", + "type": "نوع الاستطلاع", + "single_choice": "خيار واحد", + "multiple_choices": "متعدد الخيارات", + "expiry": "عمر الاستطلاع", + "expires_in": "ينتهي الاستطلاع في {0}", + "expired": "انتهى الاستطلاع منذ {0}", + "add_poll": "أضف استطلاعًا", + "add_option": "أضف خيارًا", + "option": "خيار" + }, + "emoji": { + "stickers": "ملصقات", + "emoji": "إيموجي", + "search_emoji": "ابحث عن إيموجي", + "unicode_groups": { + "animals-and-nature": "حيوانات وطبيعة", + "food-and-drink": "أطعمة ومشروبات", + "symbols": "رموز", + "activities": "نشاطات", + "flags": "أعلام" + }, + "add_emoji": "أدخل إيموجي", + "custom": "إيموجي مخصص" + }, + "interactions": { + "emoji_reactions": "تفاعلات بالإيموجي", + "reports": "البلاغات", + "follows": "المتابعات الجديدة" + }, + "report": { + "state_closed": "مغلق", + "state_resolved": "عولج", + "reported_statuses": "الحالة المبلغة عنها:", + "state_open": "مفتوح", + "notes": "ملاحظة:", + "state": "الحالة:", + "reporter": "المبلِّغ:", + "reported_user": "المُبلغ عنه:" + }, + "selectable_list": { + "select_all": "اختر الكل" + }, + "image_cropper": { + "save": "احفظ", + "cancel": "ألغ" + }, + "importer": { + "submit": "أرسل", + "success": "نجح الاستيراد.", + "error": "حدث خطأ أثناء الاستيراد." + }, + "domain_mute_card": { + "mute": "اكتم", + "mute_progress": "يكتم…", + "unmute": "ارفع الكتم", + "unmute_progress": "يرفع الكتم…" + }, + "exporter": { + "export": "صدر", + "processing": "يُعالج. سيُطلب منك تنزيل الملف قريباً" + }, + "media_modal": { + "previous": "السابق", + "next": "التالي", + "hide": "أغلق عارض الوسائط" + }, + "remote_user_resolver": { + "searching_for": "يبحث عن", + "error": "لم يُعثر عليه." } } diff --git a/src/i18n/en.json b/src/i18n/en.json index b051f088..01309d0e 100644 --- a/src/i18n/en.json +++ b/src/i18n/en.json @@ -933,7 +933,8 @@ "show_all_conversation_with_icon": "{icon} {text}", "show_all_conversation": "Show full conversation ({numStatus} other status) | Show full conversation ({numStatus} other statuses)", "show_only_conversation_under_this": "Only show replies to this status", - "status_history": "Status history" + "status_history": "Status history", + "reaction_count_label": "{num} person reacted | {num} people reacted" }, "user_card": { "approve": "Approve", diff --git a/src/i18n/eo.json b/src/i18n/eo.json index e013edee..249a0aab 100644 --- a/src/i18n/eo.json +++ b/src/i18n/eo.json @@ -55,8 +55,8 @@ "undo": "Malfari", "yes": "Jes", "no": "Ne", - "unpin": "Malfiksi eron", - "pin": "Fiksi eron", + "unpin": "Malfiksi", + "pin": "Fiksi", "scroll_to_top": "Rulumi supren" }, "image_cropper": { @@ -81,7 +81,11 @@ "recovery_code": "Rehava kodo", "enter_two_factor_code": "Enigu kodon de duobla aŭtentikigo", "enter_recovery_code": "Enigu rehavan kodon", - "authentication_code": "Aŭtentikiga kodo" + "authentication_code": "Aŭtentikiga kodo", + "logout_confirm_title": "Konfirmo de adiaŭo", + "logout_confirm": "Ĉu vi certe volas adiaŭi?", + "logout_confirm_accept_button": "Adiaŭi", + "logout_confirm_cancel_button": "Ne adiaŭi" }, "media_modal": { "previous": "Antaŭa", @@ -90,7 +94,7 @@ "hide": "Fermi vidilon de vidaŭdaĵoj" }, "nav": { - "about": "Pri", + "about": "Prio", "back": "Reen", "chat": "Loka babilejo", "friend_requests": "Petoj pri abono", @@ -115,7 +119,9 @@ "edit_finish": "Fini redakton", "mobile_notifications": "Malfermi sciigojn (estas nelegitaj)", "mobile_notifications_close": "Fermi sciigojn", - "announcements": "Anoncoj" + "announcements": "Anoncoj", + "search_close": "Fermi serĉujon", + "mobile_sidebar": "(Mal)ŝalti flankan breton por telefonoj" }, "notifications": { "broken_favorite": "Nekonata afiŝo, serĉante ĝin…", @@ -169,7 +175,9 @@ "post": "Afiŝo", "edit_remote_warning": "Aliaj foraj nodoj eble ne subtenas redaktadon, kaj ne povos ricevi pli novan version de via afiŝo.", "edit_unsupported_warning": "Pleroma ne subtenas redaktadon de mencioj aŭ enketoj.", - "edit_status": "Redakti afiŝon" + "edit_status": "Redakti afiŝon", + "content_type_selection": "Formo de afiŝo", + "scope_notice_dismiss": "Fermi ĉi tiun avizon" }, "registration": { "bio": "Priskribo", @@ -189,14 +197,18 @@ "email_required": "ne povas resti malplena", "password_required": "ne povas resti malplena", "password_confirmation_required": "ne povas resti malplena", - "password_confirmation_match": "samu la pasvorton" + "password_confirmation_match": "samu la pasvorton", + "birthday_min_age": "ne povas esti post {date}", + "birthday_required": "ne povas resti malplena" }, "reason_placeholder": "Ĉi-node oni aprobas registriĝojn permane.\nSciigu la administrantojn kial vi volas registriĝi.", "reason": "Kialo registriĝi", "register": "Registriĝi", "bio_optional": "Prio (malnepra)", "email_optional": "Retpoŝtadreso (malnepra)", - "email_language": "En kiu lingvo vi volus ricevi retleterojn de la servilo?" + "email_language": "En kiu lingvo vi volus ricevi retleterojn de la servilo?", + "birthday": "Naskiĝtago:", + "birthday_optional": "Naskiĝtago (malnepra):" }, "settings": { "app_name": "Nomo de aplikaĵo", @@ -666,7 +678,28 @@ "user_popover_avatar_overlay": "Aperigi ŝprucaĵon pri uzanto sur profilbildo", "show_yous": "Montri la markon «(Vi)»", "user_popover_avatar_action_zoom": "Zomi la profilbildon", - "third_column_mode": "Kun sufiĉo da spaco, montri trian kolumnon kun" + "third_column_mode": "Kun sufiĉo da spaco, montri trian kolumnon kun", + "birthday": { + "show_birthday": "Montri mian naskiĝtagon", + "label": "Naskiĝtago" + }, + "confirm_dialogs_delete": "forigo de afiŝo", + "backup_running": "Ĉi tiu savkopiado progresas, traktis {number} datumon. | Ĉi tiu savkopiado progresas, traktis {number} datumojn.", + "backup_failed": "Ĉi tiu savkopiado malsukcesis.", + "autocomplete_select_first": "Memage elekti unuan kandidaton kiam rezultoj de memaga konjektado disponeblas", + "confirm_dialogs_logout": "adiaŭo", + "user_popover_avatar_action": "Post klako sur profilbildon en ŝprucaĵo", + "remove_language": "Forigi", + "primary_language": "Ĉefa lingvo:", + "confirm_dialogs": "Peti konfirmon je", + "confirm_dialogs_repeat": "ripeto de afiŝo", + "confirm_dialogs_unfollow": "malabono de uzanto", + "confirm_dialogs_block": "blokado de uzanto", + "confirm_dialogs_mute": "silentigo de uzanto", + "confirm_dialogs_approve_follow": "aprobo de abonanto", + "confirm_dialogs_deny_follow": "malaprobo de abonanto", + "confirm_dialogs_remove_follower": "forigo de abonanto", + "tree_fade_ancestors": "Montri responditojn de la nuna afiŝo per teksto malvigla" }, "timeline": { "collapse": "Maletendi", @@ -753,7 +786,33 @@ "note_blank": "(Neniu)", "edit_note_apply": "Apliki", "edit_note_cancel": "Nuligi", - "edit_note": "Redakti noton" + "edit_note": "Redakti noton", + "block_confirm": "Ĉu vi certe volas bloki uzanton {user}?", + "block_confirm_accept_button": "Bloki", + "remove_follower_confirm": "Ĉu vi certe volas forigi uzanton {user} de viaj abonantoj?", + "approve_confirm_accept_button": "Aprobi", + "approve_confirm_cancel_button": "Ne aprobi", + "approve_confirm": "Ĉu vi certe volas aprobi abonan peton de {user}?", + "block_confirm_title": "Konfirmo de blokado", + "approve_confirm_title": "Konfirmo de aprobo", + "block_confirm_cancel_button": "Ne bloki", + "deny_confirm_accept_button": "Malaprobi", + "deny_confirm_cancel_button": "Ne malaprobi", + "mute_confirm_title": "Silentigi konfirmon", + "deny_confirm_title": "Konfirmo de malaprobo", + "mute_confirm": "Ĉu vi certe volas silentigi uzanton {user}?", + "mute_confirm_accept_button": "Silentigi", + "mute_confirm_cancel_button": "Ne silentigi", + "mute_duration_prompt": "Silentigi ĉi tiun uzanton por (0 signifas senliman silentigon):", + "remove_follower_confirm_accept_button": "Forigi", + "remove_follower_confirm_title": "Konfirmo de forigo de abonanto", + "birthday": "Naskita je {birthday}", + "deny_confirm": "Ĉu vi certe volas malaprobi abonan peton de {user}?", + "unfollow_confirm_cancel_button": "Ne malaboni", + "unfollow_confirm_title": "Konfirmo de malabono", + "unfollow_confirm": "Ĉu vi certe volas malaboni uzanton {user}?", + "unfollow_confirm_accept_button": "Malaboni", + "remove_follower_confirm_cancel_button": "Ne forigi" }, "user_profile": { "timeline_title": "Historio de uzanto", @@ -775,7 +834,8 @@ "accept_follow_request": "Akcepti abonpeton", "add_reaction": "Aldoni reagon", "toggle_expand": "Etendi aŭ maletendi sciigon por montri plenan afiŝon", - "toggle_mute": "Etendi aŭ maletendi afiŝon por montri silentigitan enhavon" + "toggle_mute": "Etendi aŭ maletendi afiŝon por montri silentigitan enhavon", + "autocomplete_available": "{number} rezulto disponeblas. Uzu la sagajn klavojn supren kaj suben por foliumi ilin. | {number} rezulto disponeblas. Uzu la sagajn klavojn supren kaj suben por foliumi ilin." }, "upload": { "error": { @@ -951,7 +1011,14 @@ "show_all_conversation_with_icon": "{icon} {text}", "show_only_conversation_under_this": "Montri nur respondojn al ĉi tiu afiŝo", "status_history": "Historio de afiŝo", - "open_gallery": "Malfermi galerion" + "open_gallery": "Malfermi galerion", + "delete_confirm_title": "Konfirmo de forigo", + "delete_confirm_accept_button": "Forigi", + "repeat_confirm": "Ĉu vi certe volas ripeti ĉi tiun afiŝon?", + "repeat_confirm_title": "Konfirmo de ripeto", + "repeat_confirm_accept_button": "Ripeti", + "repeat_confirm_cancel_button": "Ne ripeti", + "delete_confirm_cancel_button": "Ne forigi" }, "time": { "years_short": "{0}j", @@ -1119,6 +1186,7 @@ "edit_action": "Redakti", "submit_edit_action": "Afiŝi", "cancel_edit_action": "Nuligi", - "inactive_message": "Ĉi tiu anonco estas neaktiva" + "inactive_message": "Ĉi tiu anonco estas neaktiva", + "post_form_header": "Afiŝi anoncon" } } diff --git a/src/i18n/ko.json b/src/i18n/ko.json index 657bb079..1e7e58c3 100644 --- a/src/i18n/ko.json +++ b/src/i18n/ko.json @@ -75,7 +75,11 @@ "enter_two_factor_code": "2단계인증 코드를 입력하십시오", "enter_recovery_code": "복구 코드를 입력하십시오", "authentication_code": "인증 코드", - "hint": "로그인해서 대화에 참여" + "hint": "로그인해서 대화에 참여", + "logout_confirm_title": "로그아웃 확인", + "logout_confirm": "정말 로그아웃 하시겠습니까?", + "logout_confirm_accept_button": "로그아웃", + "logout_confirm_cancel_button": "로그아웃 안 함" }, "nav": { "about": "인스턴스 소개", @@ -104,7 +108,8 @@ "edit_finish": "편집 종료", "mobile_notifications_close": "알림 닫기", "mobile_sidebar": "모바일 사이드바 토글", - "announcements": "공지사항" + "announcements": "공지사항", + "search_close": "검색 바 닫기" }, "notifications": { "broken_favorite": "알 수 없는 게시물입니다, 검색합니다…", @@ -158,7 +163,9 @@ "edit_status": "수정", "edit_remote_warning": "수정 기능이 없는 다른 인스턴스에서는 수정한 사항이 반영되지 않을 수 있습니다.", "post": "게시", - "direct_warning_to_first_only": "맨 앞에 멘션한 사용자들에게만 보여집니다." + "direct_warning_to_first_only": "맨 앞에 멘션한 사용자들에게만 보여집니다.", + "content_type_selection": "게시물 형태", + "scope_notice_dismiss": "알림 닫기" }, "registration": { "bio": "소개", @@ -175,7 +182,9 @@ "email_required": "공백으로 둘 수 없습니다", "password_required": "공백으로 둘 수 없습니다", "password_confirmation_required": "공백으로 둘 수 없습니다", - "password_confirmation_match": "패스워드와 일치해야 합니다" + "password_confirmation_match": "패스워드와 일치해야 합니다", + "birthday_required": "공백으로 둘 수 없습니다", + "birthday_min_age": "{date} 또는 그 이전 출생만 가능합니다" }, "fullname_placeholder": "예: 김례인", "username_placeholder": "예: lain", @@ -185,7 +194,9 @@ "reason": "가입하려는 이유", "reason_placeholder": "이 인스턴스는 수동으로 가입을 승인하고 있습니다.\n왜 가입하고 싶은지 관리자에게 알려주세요.", "register": "가입", - "email_language": "무슨 언어로 이메일을 받길 원하시나요?" + "email_language": "무슨 언어로 이메일을 받길 원하시나요?", + "birthday": "생일:", + "birthday_optional": "생일 (선택):" }, "settings": { "attachmentRadius": "첨부물", @@ -383,7 +394,8 @@ "highlight": "강조 요소", "pressed": "눌렸을 때", "toggled": "토글됨", - "tabs": "탭" + "tabs": "탭", + "underlay": "밑배경" }, "radii": { "_tab_label": "둥글기" @@ -652,7 +664,29 @@ "post_status_content_type": "게시물 내용 형식", "list_aliases_error": "별칭을 가져오는 중 에러 발생: {error}", "add_alias_error": "별칭을 추가하는 중 에러 발생: {error}", - "mention_link_show_avatar_quick": "멘션 옆에 유저 프로필 사진을 보임" + "mention_link_show_avatar_quick": "멘션 옆에 유저 프로필 사진을 보임", + "backup_running": "백업 중입니다, {number}개 처리 완료. | 백업 중입니다, {number}개 처리 완료.", + "confirm_dialogs": "하기 전에 다시 물어보기", + "autocomplete_select_first": "자동완성이 가능하면 자동으로 첫 번째 후보를 선택", + "backup_failed": "백업에 실패했습니다.", + "emoji_reactions_scale": "리액션 크기", + "birthday": { + "label": "생일", + "show_birthday": "내 생일 보여주기" + }, + "add_language": "보조 언어 추가", + "confirm_dialogs_repeat": "리핏", + "confirm_dialogs_unfollow": "언팔로우", + "confirm_dialogs_block": "차단", + "confirm_dialogs_mute": "뮤트", + "confirm_dialogs_delete": "게시물 삭제", + "confirm_dialogs_approve_follow": "팔로워 승인", + "confirm_dialogs_deny_follow": "팔로워 거절", + "confirm_dialogs_remove_follower": "팔로워 제거", + "remove_language": "삭제", + "primary_language": "주 언어:", + "fallback_language": "보조 언어 {index}:", + "confirm_dialogs_logout": "로그아웃" }, "timeline": { "collapse": "접기", @@ -735,7 +769,12 @@ "striped": "줄무늬 배경", "solid": "단색 배경", "side": "옆트임" - } + }, + "approve_confirm_title": "승인 확인", + "approve_confirm_accept_button": "승인", + "approve_confirm_cancel_button": "승인 안 함", + "approve_confirm": "{user}의 팔로우 요청을 승인할까요?", + "block_confirm_title": "차단 확인" }, "user_profile": { "timeline_title": "사용자 타임라인", @@ -1069,7 +1108,14 @@ "ancestor_follow_with_icon": "{icon} {text}", "show_all_conversation_with_icon": "{icon} {text}", "ancestor_follow": "이 게시물 아래 {numReplies}개 답글 더 보기 | 이 게시물 아래 {numReplies}개 답글 더 보기", - "show_only_conversation_under_this": "이 게시물의 답글만 보기" + "show_only_conversation_under_this": "이 게시물의 답글만 보기", + "repeat_confirm": "리핏할까요?", + "repeat_confirm_title": "리핏 확인", + "repeat_confirm_accept_button": "리핏", + "repeat_confirm_cancel_button": "리핏 안 함", + "delete_confirm_title": "삭제 확인", + "delete_confirm_accept_button": "삭제", + "delete_confirm_cancel_button": "냅두기" }, "errors": { "storage_unavailable": "Pleroma가 브라우저 저장소에 접근할 수 없습니다. 로그인이 풀리거나 로컬 설정이 초기화 되는 등 예상치 못한 문제를 겪을 수 있습니다. 쿠키를 활성화 해보세요." |
