Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add Arabic locales #1180

Merged
merged 1 commit into from
Jul 26, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading