Skip to content

Commit

Permalink
feat: add Arabic locales
Browse files Browse the repository at this point in the history
  • Loading branch information
maherelgamil committed Jul 19, 2024
1 parent 1bc89c2 commit 40d179e
Show file tree
Hide file tree
Showing 3 changed files with 218 additions and 0 deletions.
153 changes: 153 additions & 0 deletions locale/ar/client.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
{
"action.cancel": "إلغاء",
"action.change": "تغيير",
"action.close": "إغلاق",
"action.confirm": "تأكيد",
"action.delete": "حذف",
"action.edit": "تحرير",
"action.markallasread": "تحديد الكل كمقروء",
"action.ok": "موافق",
"action.respond": "رد",
"action.save": "حفظ",
"action.signin": "تسجيل الدخول",
"action.submit": "إرسال",
"enum.poststatus.completed": "مكتمل",
"enum.poststatus.declined": "مرفوض",
"enum.poststatus.deleted": "محذوف",
"enum.poststatus.duplicate": "مكرر",
"enum.poststatus.open": "مفتوح",
"enum.poststatus.planned": "مخطط له",
"enum.poststatus.started": "بدأ",
"error.expired.text": "الرابط الذي نقرت عليه قد انتهت صلاحيته.",
"error.expired.title": "منتهي الصلاحية",
"error.forbidden.text": "أنت غير مخول لعرض هذه الصفحة.",
"error.forbidden.title": "ممنوع",
"error.internalerror.text": "حدث خطأ ونحن نعمل على إصلاح المشكلة! سنكون في الخدمة قريباً.",
"error.internalerror.title": "عفواً! هذا غير متوقع...",
"error.pagenotfound.text": "الرابط الذي نقرت عليه قد يكون مكسورًا أو قد تكون الصفحة قد تمت إزالتها.",
"error.pagenotfound.title": "الصفحة غير موجودة",
"error.unauthorized.text": "أنت غير مخول لعرض هذه الصفحة.",
"error.unauthorized.title": "غير مخول",
"home.form.defaultinvitation": "أدخل اقتراحك هنا...",
"home.form.defaultwelcomemessage": "نود أن نسمع ما تفكر به.\n\nماذا يمكننا أن نفعل بشكل أفضل؟ هذا هو المكان المناسب للتصويت والمناقشة ومشاركة الأفكار.",
"home.lonely.suggestion": "يوصى بإنشاء <0>على الأقل 3</0> اقتراحات هنا قبل مشاركة هذا الموقع. المحتوى الأولي مهم لبدء جذب جمهورك.",
"home.lonely.text": "لم يتم إنشاء أي منشورات حتى الآن.",
"home.postfilter.label.view": "عرض",
"home.postfilter.option.mostdiscussed": "الأكثر مناقشة",
"home.postfilter.option.mostwanted": "الأكثر رغبة",
"home.postfilter.option.myvotes": "تصويتي",
"home.postfilter.option.recent": "حديث",
"home.postfilter.option.trending": "الشائع",
"home.postinput.description.placeholder": "وصف اقتراحك (اختياري)",
"home.postscontainer.label.noresults": "لم تتطابق أي نتائج مع بحثك، جرب شيئًا مختلفًا.",
"home.postscontainer.label.viewmore": "عرض المزيد من المنشورات",
"home.postscontainer.query.placeholder": "بحث",
"home.similar.subtitle": "فكر في التصويت على المنشورات الموجودة بدلاً من ذلك.",
"home.similar.title": "منشورات مشابهة",
"home.tagsfilter.label.with": "مع",
"home.tagsfilter.selected.none": "أي وسم",
"label.actions": "إجراءات",
"label.avatar": "الصورة الرمزية",
"label.custom": "مخصص",
"label.description": "وصف",
"label.discussion": "نقاش",
"label.email": "البريد الإلكتروني",
"label.gravatar": "Gravatar",
"label.letter": "حرف",
"label.moderation": "إشراف",
"label.name": "الاسم",
"label.none": "لا شيء",
"label.notifications": "إشعارات",
"label.or": "أو",
"label.subscribe": "اشتراك",
"label.tags": "وسوم",
"label.unread": "غير مقروء",
"label.unsubscribe": "إلغاء الاشتراك",
"label.voters": "المصوتون",
"legal.agreement": "لقد قرأت وأوافق على <0/> و <1/>.",
"legal.notice": "بتسجيل الدخول، أنت توافق على <0/> و <1/>.",
"legal.privacypolicy": "سياسة الخصوصية",
"legal.termsofservice": "شروط الخدمة",
"menu.administration": "إدارة",
"menu.mysettings": "إعداداتي",
"menu.signout": "تسجيل الخروج",
"menu.sitesettings": "إعدادات الموقع",
"modal.changeemail.header": "تأكيد بريدك الإلكتروني الجديد",
"modal.changeemail.text": "لقد أرسلنا للتو رابط تأكيد إلى <0>{0}</0>. <1/> انقر على الرابط لتحديث بريدك الإلكتروني.",
"modal.completeprofile.header": "إكمال ملفك الشخصي",
"modal.completeprofile.name.placeholder": "الاسم",
"modal.completeprofile.text": "لأن هذه هي المرة الأولى التي تسجل فيها الدخول، يرجى إدخال اسمك.",
"modal.deleteaccount.header": "حذف الحساب",
"modal.deleteaccount.text": "<0>عند اختيارك حذف حسابك، سنمحو جميع معلوماتك الشخصية إلى الأبد. سيبقى المحتوى الذي قمت بنشره، ولكنه سيصبح مجهولًا.</0><1>هذه العملية لا رجعة فيها. <2>هل أنت متأكد؟</2></1>",
"modal.deletecomment.header": "حذف التعليق",
"modal.deletecomment.text": "هذه العملية لا رجعة فيها. <0>هل أنت متأكد؟</0>",
"modal.showvotes.message.zeromatches": "لم يتم العثور على مستخدمين مطابقين لـ <0>{0}</0>.",
"modal.showvotes.query.placeholder": "ابحث عن المستخدمين بالاسم...",
"modal.signin.header": "تسجيل الدخول للمشاركة والتصويت",
"mynotifications.label.readrecently": "مقروء في آخر 30 يومًا.",
"mynotifications.message.nounread": "لا توجد إشعارات غير مقروءة.",
"mynotifications.page.subtitle": "ابقَ على اطلاع بما يحدث",
"mynotifications.page.title": "الإشعارات",
"mysettings.apikey.documentation": "لتعلم كيفية استخدام API، اقرأ <0>التوثيق الرسمي</0>.",
"mysettings.apikey.generate": "إعادة توليد مفتاح API",
"mysettings.apikey.newkey": "مفتاح API الجديد هو: <0>{0}</0>",
"mysettings.apikey.newkeynotice": "احفظه بأمان على خوادمك ولا تخزنه أبدًا في جانب العميل لتطبيقك.",
"mysettings.apikey.notice": "يتم عرض مفتاح API فقط عند توليده. إذا فقدت مفتاحك أو تعرض للاختراق، قم بتوليد مفتاح جديد ودون ملاحظة ذلك.",
"mysettings.apikey.title": "مفتاح API",
"mysettings.dangerzone.delete": "حذف حسابي",
"mysettings.dangerzone.notice": "هذه العملية لا رجعة فيها. يرجى التأكد.",
"mysettings.dangerzone.text": "عند اختيارك حذف حسابك، سنمحو جميع معلوماتك الشخصية إلى الأبد. سيبقى المحتوى الذي قمت بنشره، ولكنه سيصبح مجهولًا.",
"mysettings.dangerzone.title": "حذف الحساب",
"mysettings.message.avatar.custom": "نقبل صور JPG، GIF و PNG، أقل من 100KB وبنسبة عرض إلى ارتفاع 1:1 بأبعاد لا تقل عن 50x50 بكسل.",
"mysettings.message.avatar.gravatar": "سيتم استخدام <0>Gravatar</0> بناءً على بريدك الإلكتروني. إذا لم يكن لديك Gravatar، سيتم إنشاء صورة رمزية من حرف أولي بناءً على الأحرف الأولى من اسمك.",
"mysettings.message.avatar.letter": "سيتم إنشاء صورة رمزية من حرف أولي بناءً على الأحرف الأولى من اسمك.",
"mysettings.message.noemail": "حسابك لا يحتوي على بريد إلكتروني.",
"mysettings.message.privateemail": "بريدك الإلكتروني خاص ولن يتم عرضه علنًا أبدًا.",
"mysettings.notification.channelemail": "البريد الإلكتروني",
"mysettings.notification.channelweb": "الويب",
"mysettings.notification.event.discussion": "نقاش",
"mysettings.notification.event.discussion.staff": "التعليقات على جميع المنشورات إلا إذا تم إلغاء الاشتراك بشكل فردي",
"mysettings.notification.event.discussion.visitors": "التعليقات على المنشورات التي قمت بالاشتراك فيها",
"mysettings.notification.event.newpost": "منشور جديد",
"mysettings.notification.event.newpost.staff": "المنشورات الجديدة على هذا الموقع",
"mysettings.notification.event.newpost.visitors": "المنشورات الجديدة على هذا الموقع",
"mysettings.notification.event.statuschanged": "تغيير الحالة",
"mysettings.notification.event.statuschanged.staff": "تغيير الحالة على جميع المنشورات إلا إذا تم إلغاء الاشتراك بشكل فردي",
"mysettings.notification.event.statuschanged.visitors": "تغيير الحالة على المنشورات التي قمت بالاشتراك فيها",
"mysettings.notification.message.emailonly": "ستتلقى إشعارات <0>البريد الإلكتروني</0> حول {about}.",
"mysettings.notification.message.none": "لن تتلقى <0>أي</0> إشعار حول هذا الحدث.",
"mysettings.notification.message.webandemail": "ستتلقى إشعارات <0>الويب</0> و<1>البريد الإلكتروني</1> حول {about}.",
"mysettings.notification.message.webonly": "ستتلقى إشعارات <0>الويب</0> حول {about}.",
"mysettings.notification.title": "استخدم اللوحة التالية لاختيار الأحداث التي ترغب في تلقي إشعارات عنها",
"mysettings.page.subtitle": "إدارة إعدادات ملفك الشخصي",
"mysettings.page.title": "الإعدادات",
"page.backhome": "أعدني إلى <0>{0}</0> الصفحة الرئيسية.",
"page.notinvited.text": "لم نتمكن من العثور على حساب لبريدك الإلكتروني.",
"page.notinvited.title": "غير مدعو",
"page.pendingactivation.text": "لقد أرسلنا لك بريدًا إلكترونيًا يحتوي على رابط لتفعيل حسابك.",
"page.pendingactivation.text2": "يرجى التحقق من بريدك الوارد لتفعيله.",
"page.pendingactivation.title": "حسابك في انتظار التفعيل",
"showpost.commentinput.placeholder": "اترك تعليقاً",
"showpost.discussionpanel.emptymessage": "لم يقم أحد بالتعليق بعد.",
"showpost.label.author": "نشر بواسطة <0/> · <1/>",
"showpost.message.nodescription": "لم يتم توفير وصف.",
"showpost.moderationpanel.text.help": "هذه العملية <0>لا يمكن</0> التراجع عنها.",
"showpost.moderationpanel.text.placeholder": "لماذا تحذف هذا المنشور؟ (اختياري)",
"showpost.notificationspanel.message.subscribed": "أنت تتلقى إشعارات حول النشاط على هذا المنشور.",
"showpost.notificationspanel.message.unsubscribed": "لن تتلقى أي إشعار حول هذا المنشور.",
"showpost.postsearch.numofvotes": "{0} صوت",
"showpost.postsearch.query.placeholder": "ابحث عن المنشور الأصلي...",
"showpost.responseform.message.mergedvotes": "ستدمج الأصوات من هذا المنشور في المنشور الأصلي.",
"showpost.responseform.text.placeholder": "ما الذي يحدث مع هذا المنشور؟ دع مستخدميك يعرفون ما هي خططك...",
"showpost.votespanel.more": "+{extraVotesCount} أكثر",
"showpost.votespanel.seedetails": "شاهد التفاصيل",
"signin.message.email": "أدخل عنوان بريدك الإلكتروني لتسجيل الدخول",
"signin.message.emaildisabled": "تم تعطيل المصادقة عبر البريد الإلكتروني من قبل المسؤول. إذا كان لديك حساب مسؤول وتحتاج إلى تجاوز هذا التقييد، يرجى <0>النقر هنا</0>.",
"signin.message.emailsent": "لقد أرسلنا للتو رابط تأكيد إلى <0>{email}</0>. انقر على الرابط وستسجل الدخول.",
"signin.message.locked.text": "لتفعيل هذا الموقع، قم بتسجيل الدخول بحساب مسؤول وقم بتحديث الإعدادات المطلوبة.",
"signin.message.locked.title": "<0>{0}</0> مغلق حاليًا.",
"signin.message.onlyadmins": "حاليًا مسموح فقط بتسجيل الدخول إلى حساب مسؤول",
"signin.message.private.text": "إذا كان لديك حساب أو دعوة، يمكنك استخدام الخيارات التالية لتسجيل الدخول.",
"signin.message.private.title": "<0>{0}</0> مساحة خاصة، يجب عليك تسجيل الدخول للمشاركة والتصويت.",
"{count, plural, one {# وسم} other {# وسوم}}": "{count, plural, one {# وسم} other {# وسوم}}"
}
62 changes: 62 additions & 0 deletions locale/ar/server.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
{
"property.avatarType": "نوع الصورة الرمزية",
"property.name": "الاسم",
"property.image": "صورة",
"property.customdomain": "نطاق مخصص",
"property.key": "المفتاح",
"property.email": "البريد الإلكتروني",
"property.title": "العنوان",
"property.comment": "تعليق",
"property.status": "الحالة",
"validation.required": "{name} مطلوب.",
"validation.invalid": "{name} غير صالح.",
"validation.invalidvalue": "{name} يحتوي على قيمة غير صالحة '{value}'.",
"validation.maxstringlen": "{name} يجب أن يحتوي على أقل من {len} حرفًا.",
"validation.custom.maxattachments": "يُسمح بحد أقصى {number} من المرفقات لكل منشور.",
"validation.custom.differentemail": "اختر بريدًا إلكترونيًا مختلفًا.",
"validation.custom.emailtaken": "هذا البريد الإلكتروني مستخدم بالفعل من قبل شخص آخر.",
"validation.custom.descriptivetitle": "يجب أن يكون العنوان أكثر وصفًا.",
"validation.custom.duplicatetitle": "تم نشر هذا من قبل.",
"validation.custom.selfduplicate": "لا يمكن أن يكون مكررًا لنفسه.",
"validation.custom.originalpostnotfound": "لم يتم العثور على المنشور الأصلي.",
"validation.custom.cannotdeleteduplicatepost": "لا يمكن حذف هذا المنشور لأنه مرجع لمنشور مكرر.",
"validation.custom.unknownsettings": "إعدادات غير معروفة باسم '{name}'",
"validation.custom.invalidemail": "'{email}' ليس عنوان بريد إلكتروني صالح.",
"validation.custom.invalidurl": "'{url}' ليس عنوان URL صالح.",
"validation.custom.invalidcustomdomain": "'{domain}' ليس نطاق مخصص صالح.",
"validation.custom.customdomaintaken": "هذا النطاق المخصص مستخدم بالفعل من قبل شخص آخر.",
"validation.custom.unsupportedfileformat": "صيغة هذا الملف غير مدعومة.",
"validation.custom.minimagedimensions": "يجب أن تكون الصورة بأبعاد لا تقل عن {width}x{height} بكسل.",
"validation.custom.imagesquareratio": "يجب أن تكون نسبة عرض الصورة إلى ارتفاعها 1:1.",
"validation.custom.maximagesize": "يجب أن يكون حجم الصورة أقل من {kilobytes} كيلو بايت.",
"enum.poststatus.open": "مفتوح",
"enum.poststatus.started": "بدأ",
"enum.poststatus.completed": "مكتمل",
"enum.poststatus.declined": "مرفوض",
"enum.poststatus.planned": "مخطط له",
"enum.poststatus.duplicate": "مكرر",
"enum.poststatus.deleted": "محذوف",
"email.change_emailaddress.subject": "تأكيد بريدك الإلكتروني الجديد",
"email.change_emailaddress.request": "لقد طلبت تغيير بريدك الإلكتروني من {oldEmail} إلى {newEmail}.",
"email.subscription.view": "عرضه في متصفحك",
"email.subscription.change": "تغيير تفضيلات الإشعارات الخاصة بك",
"email.subscription.unsubscribe": "إلغاء الاشتراك منه",
"email.greetings": "مرحباً!",
"email.greetings_name": "مرحباً، {name}!",
"email.operation_confirmation": "انقر على الرابط أدناه لتأكيد هذه العملية.",
"email.footer.noreply": "تم إرسال هذا البريد الإلكتروني من عنوان إشعار فقط لا يقبل الرسائل الواردة. يرجى عدم الرد على هذه الرسالة.",
"email.change_status.duplicate": "<strong>{title} ({postLink})</strong> تم إغلاقه باعتباره <strong>مكرر</strong> لـ {duplicate}.",
"email.change_status.others": "تم تغيير حالة <strong>{title} ({postLink})</strong> إلى <strong>{status}</strong>.",
"email.delete_post.text": "<strong>{title}</strong> تم <strong>حذفه</strong>.",
"email.new_comment.text": "<strong>{userName}</strong> ترك تعليقًا على <strong>{title} ({postLink})</strong>.",
"email.new_post.text": "<strong>{userName}</strong> أنشأ منشورًا جديدًا <strong>{title} ({postLink})</strong>.",
"email.signin_email.subject": "تسجيل الدخول إلى {siteName}",
"email.signin_email.text": "طلبت منا إرسال رابط تسجيل الدخول لك وها هو.",
"email.signin_email.confirmation": "انقر على الرابط أدناه لتسجيل الدخول إلى <strong>{siteName}</strong>.",
"email.signup_email.subject": "موقع Fider الجديد الخاص بك",
"email.signup_email.text": "أنت على بعد خطوة واحدة من تفعيل موقع Fider الخاص بك.",
"email.signup_email.confirmation": "من خلال الرابط أدناه يمكنك التحقق من عنوان بريدك الإلكتروني وإكمال عملية التفعيل.",
"email.footer.subscription_notice": "أنت تتلقى هذا البريد الإلكتروني لأنك مشترك في هذا المنشور. يمكنك {view}، {unsubscribe} أو {change}.",
"email.footer.subscription_notice2": "أنت تتلقى هذا البريد الإلكتروني لأنك مشترك في هذا المنشور. يمكنك {change}.",
"email.footer.subscription_notice3": "أنت تتلقى هذا البريد الإلكتروني لأنك مشترك في هذا المنشور. يمكنك {view} أو {change}."
}
3 changes: 3 additions & 0 deletions locale/locales.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,9 @@ const locales: { [key: string]: Locale } = {
el: {
text: "Greek",
},
ar: {
text: "Arabic",
},
}

export default locales

0 comments on commit 40d179e

Please sign in to comment.