feat(i18n): add arabic translations (#490)

Co-authored-by: userquin <userquin@gmail.com>
This commit is contained in:
JP 2022-12-26 17:12:04 +02:00 committed by GitHub
parent 61df1e2da6
commit 53109e7f23
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 332 additions and 0 deletions

View file

@ -59,11 +59,13 @@ const activate = () => {
v-model="query"
h-full
pl-10
rtl-pr-10
rounded-full
w-full
bg-transparent
outline="focus:none"
pr-4
rtl-pl-4
:placeholder="t('nav_side.search', ['Elk'])"
pb="1px"
placeholder-text-secondary

View file

@ -1,6 +1,8 @@
import { pwaInfo } from 'virtual:pwa-info'
import type { Link } from '@unhead/schema'
import type { Directions } from 'vue-i18n-routing'
import { APP_NAME, STORAGE_KEY_LANG } from '~/constants'
import type { LocaleObject } from '#i18n'
export function setupPageHeader() {
const isDev = process.dev
@ -30,9 +32,15 @@ export function setupPageHeader() {
}
}
const localeMap = (i18n.locales.value as LocaleObject[]).reduce((acc, l) => {
acc[l.code!] = l.dir ?? 'ltr'
return acc
}, {} as Record<string, Directions>)
useHeadFixed({
htmlAttrs: {
lang: () => i18n.locale.value,
dir: () => localeMap[i18n.locale.value] ?? 'ltr',
},
titleTemplate: title => `${title ? `${title} | ` : ''}${APP_NAME}${isDev ? ' (dev)' : isPreview ? ' (preview)' : ''}`,
link,

View file

@ -2,41 +2,55 @@ import type { NuxtI18nOptions } from '@nuxtjs/i18n'
import type { DateTimeFormats } from '@intlify/core-base'
import type { LocaleObject } from '#i18n'
// @ts-expect-error dir is there, ts complaining
const locales: LocaleObject[] = [
{
code: 'en-US',
file: 'en-US.json',
name: 'English',
dir: 'ltr',
},
{
code: 'de-DE',
file: 'de-DE.json',
name: 'Deutsch',
dir: 'ltr',
},
{
code: 'zh-CN',
file: 'zh-CN.json',
name: '简体中文',
dir: 'ltr',
},
{
code: 'ja-JP',
file: 'ja-JP.json',
name: '日本語',
dir: 'ltr',
},
{
code: 'es-ES',
file: 'es-ES.json',
name: 'Español',
dir: 'ltr',
},
{
code: 'fr-FR',
file: 'fr-FR.json',
name: 'Français',
dir: 'ltr',
},
{
code: 'cs-CZ',
file: 'cs-CZ.json',
name: 'Česky',
dir: 'ltr',
},
{
code: 'ar',
file: 'ar-EG.json',
name: 'العربية',
dir: 'rtl',
},
].sort((a, b) => a.code.localeCompare(b.code))

308
locales/ar-EG.json Normal file
View file

@ -0,0 +1,308 @@
{
"account": {
"avatar_description": "صورة حساب {0}",
"blocked_by": "تم حظرك من قبل هذا المستخدم",
"blocked_domains": "النطاقات المحظورة",
"blocked_users": "المستخدمين المحظورين",
"blocking": "محظور",
"bot": "حساب آلي",
"favourites": "المفضلة",
"follow": "إتبع",
"follow_back": "إعادة متابعة",
"follow_requested": "طلبت المتابعة",
"followers": "متابِعون",
"followers_count": "{0} متابِعون|{0} متابِع|{0} متابِعون",
"following": "مُتابَع",
"following_count": "{0} مُتابَع",
"follows_you": "يتابعك",
"go_to_profile": "اعرض الصفحة التعريفية",
"joined": "انضم",
"moved_title": "أشار إلى أن حسابهم الجديد أصبح على",
"muted_users": "المستخدمين المكتومين",
"muting": "قُمتَ(ي) بكتم",
"mutuals": "المتبادلين",
"pinned": "المثبتة",
"posts": "المنشورات",
"posts_count": "{0} منشورات|{0} منشور|{0} منشورات",
"profile_description": "{0} رأسية حساب",
"profile_unavailable": "حساب غير متوفر",
"unblock": "إلغاء حظر",
"unfollow": "إلغاء متابعة",
"unmute": "إلغاء كتم"
},
"action": {
"bookmark": "إضافة إلى المرجعية",
"bookmarked": "مضاف إلى المرجعية",
"boost": "إعادة نشر",
"boosted": "أعيد نشرها",
"close": "أغلق",
"compose": "منشور جديد",
"enter_app": "أدخل التطبيق",
"favourite": "إضافة إلى المفضلين",
"favourited": "مضاف إلى المفضلين",
"more": "المزيد",
"next": "التالي",
"prev": "السابق",
"publish": "!نشر",
"reply": "رد",
"save_changes": "حفظ التغييرات",
"sign_in": "تسجيل الدخول",
"switch_account": "تغيير الحساب",
"vote": "قم بالتصويت"
},
"app_desc_short": "موقع الكتروني ماستدون رشيق",
"app_logo": "Elk شعار",
"app_name": "Elk",
"command": {
"activate": "تفعيل",
"complete": "أكمل",
"compose_desc": "اكتب منشور جديد",
"lang": "اللغات",
"n-people-in-the-past-n-days": "{0} أشخاص في الأيام ال {1} الماضية",
"select_lang": "اختار اللغة",
"sign_in_desc": "إضافة حساب قائم",
"switch_account": "التبديل إلى {0}",
"switch_account_desc": "قم بالتبديل إلى حساب آخر",
"toggle_dark_mode": "تبديل المظهر الداكن",
"toggle_zen_mode": "تبديل وضع الهدوء"
},
"common": {
"end_of_list": "نهاية القائمة",
"error": "حدث خطأ",
"kiloSuffix": "ألف",
"megaSuffix": "مليون",
"not_found": "404 غير معثور عليه",
"offline_desc": "يبدو أنك غير متصل بالإنترنت. يرجى التحقق من اتصالك."
},
"conversation": {
"with": "مع"
},
"error": {
"account_not_found": "حساب {0} غير موجود",
"explore-list-empty": "لا توجد مشاركات شائعة الآن. تحقق مرة أخرى لاحقًا!",
"sign_in_error": "لا يمكن الاتصال بالموقع",
"status_not_found": "لا يمكن إيجاد المنشور"
},
"feature_flag": {
"avatar_on_avatar": "الصورة الرمزية على الصورة الرمزية",
"github_cards": "GitHub بطاقات",
"user_switcher_sidebar": "الشريط الجانبي لمبدل المستخدم",
"virtual_scroll": "التمرير الافتراضي"
},
"help": {
"desc_highlight": "توقع بعض الأخطاء والميزات المفقودة هنا وهناك.",
"desc_para1": "نشكرك على اهتمامك بتجربة Elk ، عميل ماستدون العام!",
"desc_para2": "نحن نعمل بجد على التطوير وتحسينه بمرور الوقت. وسندعوك قريبًا للانضمام إلى القوة بمجرد أن نجعلها مفتوحة المصدر قريبًا!",
"desc_para3": "قبل ذلك ، للمساعدة في تعزيز التنمية ، يمكنك رعاية أعضاء فريقنا من خلال الروابط أدناه.",
"title": "Elk في عرض مسبق"
},
"menu": {
"block_account": "حظر {0}",
"block_domain": "حظر المجال {0}",
"copy_link_to_post": "انسخ الرابط إلى هذا المنشور",
"delete": "حذف",
"delete_and_redraft": "حذف وإعادة صياغة",
"direct_message_account": "إرسال رسالة مباشرة إلى {0}",
"edit": "تعديل",
"mention_account": "أذكر {0}",
"mute_account": "كتم {0}",
"open_in_original_site": "فتح في الموقع الأصلي",
"pin_on_profile": "تثبيت على حسابك الشخصي",
"show_untranslated": "عرض بدون ترجمة",
"toggle_theme": {
"dark": "تبديل المظهر الداكن",
"light": "تبديل المظهر الفاتح"
},
"translate_post": "ترجم المنشور",
"unblock_account": "رفع الحظر عن {0}",
"unblock_domain": "رفع الحظر عن النطاق {0}",
"unmute_account": "إلغاء كتم الحساب {0}",
"unpin_on_profile": "إلغاء التثبيت من الملف الشخصي"
},
"nav_footer": {
"built_at": "Built {0}",
"select_feature_flags": "تبديل علامات الميزات",
"select_language": "اختار اللغة",
"show_intro": "عرض المقدمة",
"toggle_theme": "تبديل المظهر",
"zen_mode": "الوضع الهادئ"
},
"nav_side": {
"bookmarks": "الفواصل المرجعية",
"conversations": "المحادثات",
"explore": "استكشف",
"favourites": "المفضلة",
"federated": "الفديرالية",
"home": "الخيط الزمني الرئيسي",
"local": "المحلي",
"notifications": "الإشعارات",
"profile": "الصفحة التعريفية",
"search": "البحث"
},
"nav_user": {
"sign_in_desc": "قم بتسجيل الدخول لمتابعة الملفات الشخصية والمشاركة والرد على المنشورات أو التفاعل من حسابك على خادم مختلف"
},
"notification": {
"favourited_post": "أُعجِب بمنشورك",
"followed_you": "بدأ في متابعتك",
"followed_you_count": "تبعك {followers} أشخاص|تبعك {followers} شخص| تبعك {followers} أشخاص",
"missing_type": "MISSING notification.type:",
"reblogged_post": "اعاد نشر منشورك",
"request_to_follow": "طلب(ت) متابعتك",
"settings": {
"alerts": {
"favourite": "المفضلة",
"follow": "متابعين جدد",
"mention": "المنشورات التي تذكرني",
"poll": "استطلاعات الرأي",
"reblog": "إعادة نشر منشورك",
"title": "ما هي الإشعارات التي تريد تلقيها؟"
},
"close_btn": "أغلق إعدادات الإشعارات",
"policy": {
"all": "من اي شخص",
"followed": "من الناس الذين أتابعهم",
"follower": "من الناس الذين يتبعونني",
"none": "من لا أحد",
"title": "من الذي يمكنني تلقي إشعارات منه؟"
},
"save_settings": "حفظ التغييرات الإعدادات",
"show_btn": "إظهار إعدادات الإشعارات",
"title": "إعدادات الإشعارات",
"undo_settings": "تراجع عن تغييرات الإعدادات",
"unsubscribe": "تعطيل الإشعارات",
"unsubscribed_with_warning": "مكّن الإشعارات لتلقي الإشعارات من هذا الحساب بالنقر فوق الزر \"@:notification.settings.warning.enable_desktop{'\"'}",
"unsupported": "متصفحك لا يدعم الإشعارات",
"warning": {
"enable_close": "أغلق",
"enable_description": "لتلقي إشعارات عندما لا يكون Elk مفتوحًا ، قم بتمكين إشعارات النظام. يمكنك التحكم بدقة في أنواع التفاعلات التي تنشئ إشعارات النظام عبر الزر \"Show Settings\" أعلاه بمجرد تمكينه.",
"enable_description_short": "لتغيير إعدادات إشعارات النظام عندما لا يكون Elk مفتوحًا ، يجب أولاً تمكين إشعارات النظام.",
"enable_desktop": "تفعيل إشعارات النظام",
"enable_title": "لا تفوت أي شيء"
}
},
"update_status": "قام(ت) بتحديث حالته(ا)"
},
"placeholder": {
"content_warning": "اكتب تحذيرك هنا",
"default_1": "ماذا يدور في ذهنك؟",
"reply_to_account": "الرد على {0}",
"replying": "الرد",
"the_thread": "المحادثة"
},
"pwa": {
"dismiss": "تجاهل",
"message": "@:pwa.title{','} اضغط على @:pwa.reload الزر للتحديث",
"reload": "تحديث",
"title": "يتوفر تحديث Elk الجديد"
},
"search": {
"search_desc": "ابحث عن الأشخاص والهاشتاج"
},
"state": {
"edited": "(معدل)",
"editing": "تعديل",
"loading": "جاري التحميل ...",
"uploading": "جاري التحميل ..."
},
"status": {
"edited": "عدل {0}",
"filter_hidden_phrase": "تمت تصفيتها بواسطة",
"filter_removed_phrase": "تمت إزالته بواسطة عامل التصفية",
"filter_show_anyway": "عرض على أي حال",
"img_alt": {
"desc": "وصف",
"dismiss": "تجاهل"
},
"poll": {
"count": "{n} أصوات|{n} صوت|{n} أصوات",
"ends": "ينتهي في {0}",
"finished": "انتهى في {0}"
},
"reblogged": "{0} اعاد نشر",
"someone": "شخص ما",
"spoiler_show_less": "عرض أقل",
"spoiler_show_more": "عرض المزيد",
"thread": "المحادثة",
"try_original_site": "جرب الموقع الأصلي"
},
"status_history": {
"created": "تم إنشاؤه في {0}",
"edited": "تم تعديله في {0}"
},
"tab": {
"accounts": "الحسابات",
"for_you": "مصممة لك",
"hashtags": "هاشتاغ",
"media": "الصور/الفيديو",
"news": "الأخبار",
"notifications_all": "كل شىء",
"notifications_mention": "موجهة إلي",
"posts": "المنشورات",
"posts_with_replies": "المنشورات والردود"
},
"time_ago_options": {
"day_future": "في 0 يوم|غداً|في {n} يوم",
"day_past": "قبل {n} يوم|البارحة| قبل 0 يوم",
"hour_future": "في 0 ساعة|في 1 ساعة|في {n} ساعة",
"hour_past": "قبل 0 ساعة|قبل ساعة واحدة|{n} من الساعات الماضية",
"just_now": "الآن",
"minute_future": "في 0 دقيقة|في دقيقة واحدة|في {n} دقيقة",
"minute_past": "قبل 0 دقيقة|قبل دقيقة واحدة|قبل {n} دقيقة",
"month_future": "في 0 شهر|الشهر القادم|في {n} شهر",
"month_past": "قبل 0 شهر|الشهر الماضي|منذ {n} شهر",
"second_future": "الآن|في ثانية|في {n} ثواني",
"second_past": "للتو|منذ ثانية|منذ {n} ثانية",
"short_day_future": "في {n} ي",
"short_day_past": "{n}ي",
"short_hour_future": "في {n} س",
"short_hour_past": "{n}س",
"short_minute_future": "في {n} دق",
"short_minute_past": "{n}دق",
"short_month_future": "في {n} ش",
"short_month_past": "{n}ش",
"short_second_future": "في {n} ",
"short_second_past": "{n}",
"short_week_future": "في {n} اسبوع",
"short_week_past": "{n}اسبوع",
"short_year_future": "في {n} سنة",
"short_year_past": "{n}سنة",
"week_future": "في 0 أسبوع | الأسبوع القادم | في {n} أسبوع",
"week_past": "قبل 0 أسبوع | الأسبوع الماضي | {n} أسبوع مضى",
"year_future": "في 0 سنة|العام القادم|في {n} سنة",
"year_past": "منذ 0 سنة|العام الماضي|منذ {n} سنة"
},
"timeline": {
"show_new_items": "إظهار {n} عناصر جديدة|إظهار {n} عنصر جديد|إظهار {n} عناصر جديدة"
},
"title": {
"federated_timeline": "الجدول الزمني الموحد",
"local_timeline": "الجدول الزمني المحلي"
},
"tooltip": {
"add_content_warning": "إضافة تحذير المحتوى",
"add_media": "أضف صورًا أو مقطع فيديو أو ملفًا صوتيًا",
"change_content_visibility": "تغيير خصوصية المحتوى",
"explore_links_intro": "يتم التحدث عن هذه القصص الإخبارية من قبل الأشخاص الموجودين على هذه الشبكة وغيرها من الشبكات اللامركزية في الوقت الحالي",
"explore_posts_intro": "تكتسب هذه المنشورات من هذه الشبكة وغيرها من الشبكات اللامركزية زخمًا على هذه الشبكة في الوقت الحالي",
"explore_tags_intro": "تكتسب هذه الهاشتاغ زخمًا بين الأشخاص على هذه الشبكة وغيرها من الشبكات اللامركزية في الوقت الحالي",
"toggle_code_block": "تبديل كتلة التعليمات البرمجية"
},
"user": {
"add_existing": "إضافة حساب قائم",
"server_address_label": "عنوان خادم ماستودون",
"sign_out_account": "تسجيل الخروج من {0}",
"tip_no_account": "إذا ليس لديك حساب ماستودون ، {0}",
"tip_register_account": "اختر خادم ماستودون الخاص بك وقم بتسجيل حساب"
},
"visibility": {
"direct": "رسالة مباشرة",
"direct_desc": "مرئي للمستخدمين المذكورين فقط",
"private": "المتابعون فقط",
"private_desc": "مرئي للمتابعين فقط",
"public": "عام",
"public_desc": "مرئي للجميع",
"unlisted": "غير مدرج",
"unlisted_desc": "مرئي للجميع ، ولكن تم إلغاء الاشتراك في ميزات الاكتشاف"
}
}