From ce0d3f7616ab437d750c09d7cce5836eccc97b79 Mon Sep 17 00:00:00 2001 From: mustakshif Date: Tue, 24 Dec 2024 22:43:37 +0800 Subject: [PATCH] chore: complete language configs and fix Arabic translations --- app/appearance/langs/ar_SA.json | 126 ++++++++++++++++---------------- kernel/bazaar/package.go | 15 ++++ 2 files changed, 78 insertions(+), 63 deletions(-) diff --git a/app/appearance/langs/ar_SA.json b/app/appearance/langs/ar_SA.json index a3c07d53db3..7241af98e9b 100644 --- a/app/appearance/langs/ar_SA.json +++ b/app/appearance/langs/ar_SA.json @@ -1,7 +1,7 @@ { "second": "ثانية", - "syncInterval": "فاصل المزامنة", - "syncIntervalTip": "مزامنة البيانات تلقائيًا بعد توقفها عن التغيير", + "syncInterval": "الفاصل الزمني للمزامنة", + "syncIntervalTip": "مزامنة البيانات تلقائياً بعد أن توقف عن التغيير", "removeAV": "إزالة من قاعدة البيانات", "empty": "فارغ", "newRowInRelation": "‫إنشاء مدخل جديد في ${x} ${y}‬", @@ -34,7 +34,7 @@ "publishServiceNotStarted": "خدمة النشر لم تبدأ", "publishServiceTip": "عند التمكين، سيتم بَدْء خدمة النشر. هذه الخدمة تنشر محتوى مساحة العمل الحالية في وضع القراءة فقط على الشبكة المحلية.", "publishServicePort": "منفذ الخدمة", - "publishServicePortTip": "‫تمكين خدمة النشر باستخدام رَقْم المنفذ المحدد. إذا تم تعيينها إلى 0، سيتم استخدام منفذ عشوائي.‬", + "publishServicePortTip": "‫تمكين خدمة النشر باستخدام رَقْم المنفذ المحدد. إذا تم تعيينها إلى ‪0‬، سيتم استخدام منفذ عشوائي.‬", "publishServiceAddresses": "عناوين الوصول إلى الخدمة", "publishServiceAddressesTip": "عناوين الشبكة المحتملة للوصول إلى خدمة النشر.", "publishServiceAuth": "‫مصادقة Basic للخدمة‬", @@ -61,19 +61,19 @@ "autoLaunchMode1": "التشغيل التلقائي بعد الإقلاع", "autoLaunchMode2": "التشغيل التلقائي وتقليل الواجهة الرئيسية بعد الإقلاع", "editorMarkdownInlineStrikethrough": "‫صياغة الشطب بخط داخل السطر في Markdown‬", - "editorMarkdownInlineStrikethroughTip": "‫بعد التمكين, سيتم دعم إدخال ~~foo~~ لإضافة شطب بخط داخل السطر‬", + "editorMarkdownInlineStrikethroughTip": "‫بعد التمكين, سيتم دعم إدخال ‪~~foo~~‬ لإضافة شطب بخط داخل السطر‬", "editorMarkdownInlineSup": "‫صياغة النص المرتفع دخل السطر في Markdown‬", - "editorMarkdownInlineSupTip": "‫بعد التمكين، سيتم دعم إدخال ^foo^ لإضافة نص مرتفع داخل السطر‬", + "editorMarkdownInlineSupTip": "‫بعد التمكين، سيتم دعم إدخال ‪^foo^‬ لإضافة نص مرتفع داخل السطر‬", "editorMarkdownInlineSub": "‫صياغة النص المنخفض دخل السطر في Markdown‬", - "editorMarkdownInlineSubTip": "‫بعد التمكين، سيتم دعم إدخال ~foo~ لإضافة نص منخفض داخل السطر‬", + "editorMarkdownInlineSubTip": "‫بعد التمكين، سيتم دعم إدخال ‪~foo~‬ لإضافة نص منخفض داخل السطر‬", "editorMarkdownInlineTag": "‫صياغة العلامة دخل السطر في Markdown‬", - "editorMarkdownInlineTagTip": "‫بعد التمكين، سيتم دعم إدخال #foo# لإضافة علامة داخل السطر‬", + "editorMarkdownInlineTagTip": "‫بعد التمكين، سيتم دعم إدخال ‪#foo#‬ لإضافة علامة داخل السطر‬", "editorMarkdownInlineMath": "‫صياغة الصيغة دخل السطر في Markdown‬", - "editorMarkdownInlineMathTip": "‫بعد التمكين، سيتم دعم إدخال $foo$ لإضافة صيغة داخل السطر‬", + "editorMarkdownInlineMathTip": "‫بعد التمكين، سيتم دعم إدخال ‪$foo$‬ لإضافة صيغة داخل السطر‬", "editorMarkdownInlineAsterisk": "‫صياغة علامة النجمة داخل السطر في Markdown‬", - "editorMarkdownInlineAsteriskTip": "‫بعد التمكين، سيتم دعم إدخال *foo* لإضافة خط مائل و **foo** لإضافة خط عريض‬", + "editorMarkdownInlineAsteriskTip": "‫بعد التمكين، سيتم دعم إدخال ‪*foo*‬ لإضافة خط مائل و ‪**foo**‬ لإضافة خط عريض‬", "editorMarkdownInlineUnderscore": "‫صياغة الشرطة السفلية دخل السطر في Markdown‬", - "editorMarkdownInlineUnderscoreTip": "‫بعد التمكين، سيتم دعم إدخال _foo_ لإضافة خط مائل و __foo__ لإضافة خط عريض‬", + "editorMarkdownInlineUnderscoreTip": "‫بعد التمكين، سيتم دعم إدخال ‪_foo_‬ لإضافة خط مائل و ‪__foo__‬ لإضافة خط عريض‬", "currentNotebook": "دفتر الملاحظات الحالي", "containerBlockTip1": "تمكين كتل الحاويات سيؤدي إلى تكرار نتائج البحث", "copyAsPNG": "‫نسخ كـ PNG‬", @@ -176,7 +176,7 @@ "freezeCol": "تجميد الحقل", "unfreezeCol": "إلغاء تجميد الحقل", "snippetsTip": "تم تحديث الشفرات، هل تريد حفظها؟", - "addBelowAbove": "‫نقر للإضافة أدناه
⌥نقر للإضافة أعلاه‬", + "addBelowAbove": "‫نقر للإضافة أدناه
‫⌥نقر للإضافة أعلاه‬", "imported": "اكتمل الاستيراد", "mirrorTip": "مرآة قاعدة بيانات، حيث جميع تحديثات البيانات سيتم مزامنتها مع جميع المرايا الأخرى", "includeTime": "إدراج الوقت", @@ -234,7 +234,7 @@ "numberFormatFranc": "فرنك", "email": "بريد إلكتروني", "phone": "رقم هاتف", - "inboxTip": "‫افتح دليل المستخدم للبحث عن علبة الوارد (inbox) لعرض التعليمات‬", + "inboxTip": "‫افتح دليل المستخدم للبحث عن ‪علبة الوارد (inbox)‬ لعرض التعليمات‬", "builtIn": "السمات المُدمجة", "endDate": "تاريخ الانتهاء", "needLogin": "تحتاج هذه الوظيفة إلى تسجيل الدخول لاستخدامها", @@ -342,12 +342,12 @@ "attrAliasTip": "تعيين أسماء مستعارة لهذه الكتلة، يمكن لكتلة تعيين أسماء مستعارة متعددة مفصولة بفواصل", "attrMemoTip": "تعيين مذكرة لهذه الكتلة، ويتم دعم النص العادي فقط", "switchDirect": "تغيير اتجاه المقارنة", - "onlySearchForDoc": "‫[[ البحث عن المستندات فقط‬", + "onlySearchForDoc": "‫‪[[‬ للبحث عن المستندات فقط‬", "onlySearchForDocTip": "بعد التمكين، ]] للبحث عن مراجع الكتلة فقط في أسماء المستندات", "ocrResult": "‫نص نتيجة OCR‬", "reOCR": "‫إعادة OCR‬", "continueReview1": "متابعة المراجعة", - "continueReview2": "‫لا تزال هناك ${count} بطاقة/بطاقات للمراجعة، هل تريد المتابعة؟‬", + "continueReview2": "‫لا تزال هناك ‪${count}‬ بطاقة/بطاقات للمراجعة، هل تريد المتابعة؟‬", "whatsNewInSiYuan": "‫ما هو الجديد في SiYuan‬", "returnDesktop": "اضغط مرة أخرى للعودة إلى سطح المكتب. استخدم [الخروج من التطبيق] في الشريط الجانبي الأيمن للخروج من التطبيق", "enterNew": "اضغط مفتاح الإدخال للإنشاء", @@ -373,7 +373,7 @@ "flashcardHeading": "صنع بطاقة بكتلة العنوان", "flashcardHeadingTip": "بعد التمكين، يتم التعرف على كتلة العنوان كسؤال، ويتم التعرف على الكتل أدناه كإجابات", "flashcardDeck": "شدّة", - "flashcardDeckTip": "‫بعد التمكين، يتم دعم تصنيف شدة البطاقة. وهذا خيار من خيارات التوافق التاريخية، ولا يوصى بتمكينه ما لم يكن ذلك ضرورياً، ومن المستحسن إستخدام إنشاء بطاقة بسرعة‬", + "flashcardDeckTip": "‫بعد التمكين، يتم دعم تصنيف شدة البطاقة. وهذا خيار من خيارات التوافق التاريخية، ولا يوصى بتمكينه ما لم يكن ذلك ضرورياً، ومن المستحسن إستخدام ‪إنشاء بطاقة بسرعة‬‬", "flashcardFSRSParamRequestRetention": "FSRS Request Retention", "flashcardFSRSParamRequestRetentionTip": "يمثل احتمال الاستدعاء الذي تريد استهدافه. لاحظ أن هناك مقايضة بين زيادة الاحتفاظ وعدد مرات التكرار الأعلى. من المستحسن أن تحدد هذه القيمة في مكان ما بين 0.8 و 0.9", "flashcardFSRSParamMaximumInterval": "FSRS Maximum Interval", @@ -385,18 +385,18 @@ "apiTimeout": "المهلة الزمنية", "apiTimeoutTip": "المهلة الزمنية لتقديم طلب، الوحدة: ثانية", "apiProxy": "وكيل الشبكة", - "apiProxyTip": "‫وكيل الشبكة الذي يبدأ الطلب، مثل socks://user:pass@127.0.0.1:1080‬", + "apiProxyTip": "‫وكيل الشبكة الذي يبدأ الطلب، مثل ‪socks://user:pass@127.0.0.1:1080‬‬", "apiModel": "الطراز", - "apiModelTip": "‫تم تمرير معلمة model عند طلب API للتحكم في نمط النص الذي تم إنشاؤه (يجب ملء معرف الانتشار عند استخدام خدمة Azure OpenAI)‬", + "apiModelTip": "‫تم تمرير معلمة ‪model‬ عند طلب API للتحكم في نمط النص الذي تم إنشاؤه (يجب ملء معرف الانتشار عند استخدام خدمة Azure OpenAI)‬", "apiMaxTokens": "الحد الأقصى لعدد الرموز", - "apiMaxTokensTip": "‫تم تمرير معلمة max_tokens عند طلب API للتحكم في طول النص الذي تم إنشاؤه‬", + "apiMaxTokensTip": "‫تم تمرير معلمة ‪max_tokens‬ عند طلب API للتحكم في طول النص الذي تم إنشاؤه‬", "apiTemperature": "الحرارة", - "apiTemperatureTip": "‫تم تمرير temperature عند طلب API للتحكم في عشوائية النص الذي تم إنشاؤه‬", + "apiTemperatureTip": "‫تم تمرير ‪temperature‬ عند طلب API للتحكم في عشوائية النص الذي تم إنشاؤه‬", "apiMaxContexts": "العدد الأقصى للسياقات", "apiMaxContextsTip": "‫الحد الأقصى لعدد السياقات التي تم تمريرها عند طلب API‬", "apiBaseURL": "‫عنوان API الأساسي‬", - "apiBaseURLTip": "‫العنوان الأساسي للطلب، مثل https://api.openai.com/v1‬", - "apiUserAgentTip": "‫وكيل المستخدم الذي بدأ الطلب، أي رأس HTTP User-Agent‬", + "apiBaseURLTip": "‫العنوان الأساسي للطلب، مثل ‪https://api.openai.com/v1‬‬", + "apiUserAgentTip": "‫وكيل المستخدم الذي بدأ الطلب، أي رأس HTTP ‪User-Agent‬‬", "apiVersion": "‫إصدار API‬", "apiVersionTip": "‫مطلوب فقط عند استخدام خدمة Azure OpenAI‬", "apiProvider": "‫موفر API‬", @@ -475,7 +475,7 @@ "syncOfficialProviderIntro": "‫المحدد حاليا هو خدمة تخزين السحابة التي توفرها رسميا SiYuan، والتي تدعم فقط المستخدمين المشتركين المدفوعة‬", "syncThirdPartyProviderS3Intro": "‫المحدد حاليا هو خدمة تخزين سحابية تابعة لطرف ثالث متوافقة مع بروتوكول Amazon S3 (على سبيل المثال Qiniu، Aliyun OSS، Cloudflare R2)‬", "syncThirdPartyProviderWebDAVIntro": "‫المحدد حاليا هو خدمة تخزين سحابية لطرف ثالث مع بروتوكول WebDAV. بسبب ضعف أداء هذا البروتوكول وعدم كفاية استقراره، يوصى باختيار خدمة S3 أولا‬", - "syncThirdPartyProviderTip": "‫قبل استخدام هذه الميزة، يرجى إيلاء الاهتمام للقيود التقنية ولبنود الفوترة في خدمة التخزين السحابي للطرف الثالث:
إخلاء المسؤولية: للحصول على التفاصيل، يرجى الرجوع إلى الشروط ذات الصلة في ترخيص المصدر المفتوح AGPLv3 المستخدم من قبل SiYuan‬", + "syncThirdPartyProviderTip": "‫قبل استخدام هذه الميزة، يرجى الانتباه إلى القيود التقنية وبنود الفوترة لخدمة التخزين السحابي من الطرف الثالث:
إخلاء المسؤولية: للمزيد من التفاصيل، يرجى الرجوع إلى الشروط ذات الصلة في ترخيص المصدر المفتوح AGPLv3 المستخدم في SiYuan‬", "syncProvider": "موفر خدمات التخزين السحابي", "syncProviderTip": "إذا تم اختياره، سيتم استخدام خدمة التخزين السحابية لهذا الموفر لتحقيق مزامنة السحابة ووظائف النسخ الاحتياطي", "confirmReset": "هل أنت متأكد من أنك تريد إعادة تعيين كافة اختصارات لوحة المفاتيح إلى الإعدادات الافتراضية؟", @@ -486,13 +486,13 @@ "dynamicLoadBlocks": "عدد الكتل المحملة ديناميكيا", "dynamicLoadBlocksTip": "تحتوي هذه القيمة على عدد الكتل الفرعية. إذا كان هناك العديد من كتل الكود، أو كتل الصيغة أو كتل الرسم البياني التي تحتاج إلى تقديمها، يوصى بعدم تعيين قيمة كبيرة جداً", "backlinkExpand": "عدد الروابط المرجعية الموسَّعة افتراضياً", - "backlinkExpandTip": "‫عدم توسيع إذا تم إعداده كـ0‬", + "backlinkExpandTip": "‫عدم توسيع إذا تم إعداده كـ‪0‬‬", "backmentionExpand": "عدد الإشارات المرجعية الموسَّعة افتراضياً", - "backmentionExpandTip": "‫إذا تم إعداده كـ0، فلن يتم توسيعه، وإذا تم إعداده كـ-1، سيتم إغلاق اللوحة‬", + "backmentionExpandTip": "‫إذا تم إعداده كـ‪0‬، فلن يتم توسيعه، وإذا تم إعداده كـ‪-1‬، سيتم إغلاق اللوحة‬", "googleAnalytics": "Google Analytics", "googleAnalyticsTip": "‫بعد التمكين، سوف يستخدم Google Analytics لحساب حالة فتح التطبيق ولن يجمع بيانات المستخدمين وعملياتهم‬", "floatWindowMode": "طريقة تشغيل النافذة العائمة", - "floatWindowModeTip": "اختيار كيفية تشغيل النافذة العائمة عندما ينتقل الماوس فوق أيقونة الكتلة، أيقونة شريط التنقل، إلخ.", + "floatWindowModeTip": "اختيار كيفية تشغيل النافذة العائمة عندما ينتقل الماوس فوق أيقونة الكتلة، أيقونة شريط التنقل، إلخ", "floatWindowMode0": "تحويم", "floatWindowMode1": "‫اضغط مع الاستمرار على ${hotkey} + تحويم‬", "floatWindowMode2": "عدم تشغيل", @@ -515,7 +515,7 @@ "filterKeywordEnter": "‫تصفية الكلمات المفتاحية Enter‬", "defBlock": "كتلة التعريف", "defBlockChildren": "كتلة التعريف وأطفالها", - "filter": "فرز", + "filter": "تصفية", "headings1": "كتلة العنوان وما تحتها", "tWithSubtitle": "التحويل مع العناوين الفرعية", "clear": "مسح", @@ -533,16 +533,16 @@ "historyOutline": "‫الخطوط العريضة (outline)‬", "htmlBlockError": "تنفيذ البرنامج النصي التالي سوف يؤثر على عرض الواجهة، وقد توقف البرنامج النصي عن العمل", "fileHistory": "تاريخ الملف", - "htmlBlockTip": "‫يتم تكوين كتل HTML متعددة. لمنع فقدان البيانات، الرجاء استخدام علامة <div> لإغلاق وإزالة الخطوط الفارغة‬", + "htmlBlockTip": "‫يتم تكوين كتل HTML متعددة. لمنع فقدان البيانات، الرجاء استخدام علامة ‪<div>‬ لإغلاق وإزالة الخطوط الفارغة‬", "katexMacros": "‫تعريف ماكرو KaTeX‬", - "katexMacrosTip": "‫الرجاء استخدام تنسيق كائن JSON ({}لإختلاف تعاريف ماكرو، على سبيل المثال { \"\\\\foo\": \"{x^2}\" }‬", + "katexMacrosTip": "\u202Bالرجاء استخدام تنسيق كائن JSON ({}) لإختلاف تعاريف ماكرو، على سبيل المثال \u202A{ \"\\\\foo\": \"{x^2}\" }\u202C\u202C", "systemLogTip": "يتم حفظ سجلات تشغيل البرنامج في سجل النظام. من خلال تصدير سجل النظام وإرساله إلى المطورين، يمكن أن تساعد المطورين بشكل أفضل على تشخيص مشاكل البرنامج", "systemLog": "سجل النظام", "syncConfGuide1": "تهيئة مفتاح المزامنة", - "syncConfGuide2": "‫يتم استخدام هذا المفتاح لتشفير مزامنة البيانات من النهاية إلى النهاية
يتم إنشاء المفتاح استناداً إلى كلمة المرور التي أدخلتها، يرجى تذكرها‬", + "syncConfGuide2": "‫يتم استخدام هذا المفتاح لتشفير مزامنة البيانات من النهاية إلى النهاية‬
‫يتم إنشاء المفتاح استناداً إلى كلمة المرور التي أدخلتها، يرجى تذكرها‬", "syncConfGuide3": "‫يتم استخدام دليل المزامنة السحابية لتخزين البيانات المشفرة المقابلة لمساحة العمل الحالية. الاسم الافتراضي هو main. إذا كان لديك مساحة عمل واحدة فقط للمزامنة، استخدم main مباشرة‬", "syncConfGuide4": "مزامنة الآن؟", - "syncConfGuide5": "‫إذا كانت كمية البيانات كبيرة، ستكون المزامنة الأولى بطيئة، يرجى الانتظار بصبر
لا تقم بتبديل التطبيقات وحافظ على سطوع الشاشة أثناء مزامنة iOS/iPad‬", + "syncConfGuide5": "‫إذا كانت كمية البيانات كبيرة، ستكون المزامنة الأولى بطيئة، يرجى الانتظار بصبر‬
‫لا تقم بتبديل التطبيقات وحافظ على سطوع الشاشة أثناء مزامنة iOS/iPad‬", "copyPlainText": "نسخ النص العادي", "findInDoc": "‫تمت مطابقة ${y} كتلة/كتل من ${x} مستند/مستندات‬", "matchDoc": "‫تمت مطابقة ${x} مستند/مستندات‬", @@ -598,8 +598,8 @@ "sortByDownloadsAsc": "تصاعدياً بمرات التنزيل", "activationCode": "رمز التفعيل", "activationCodePlaceholder": "الرجاء إدخال رمز تفعيل الاشتراك هنا", - "exportDataTip": "‫رزم وتصدير جميع الملفات في مجلد Workspace/data/ كأرشيف zip‬", - "importDataTip": "‫استيراد أرشيف zip المصدر، والكتابة فوق مجلد Workspace/data/ حسب المسار‬", + "exportDataTip": "‫رزم وتصدير جميع الملفات في مجلد ‪Workspace/data/‬ كأرشيف zip‬", + "importDataTip": "‫استيراد أرشيف zip المصدر، والكتابة فوق مجلد ‪Workspace/data/‬ حسب المسار‬", "includeChildDoc": "إدراج مستندات الطفل", "text": "نص", "lastUsed": "المظهر المستخدم مؤخراً", @@ -840,7 +840,7 @@ "keymapTip": "بعد تعديل بعض مفاتيح الاختصار، تحتاج إلى النقر على زر التحديث لتصبح نافذة المفعول", "keymapTip2": "استخدام مفاتيح الاختصار الافتراضية", "searchLimit": "عدد نتائج البحث المعروضة", - "searchLimit1": "‫إذا كانت كمية البيانات كبيرة، لا تقم بتكوين القيمة كبيرة جداً، فالافتراضي هو 64‬", + "searchLimit1": "‫إذا كانت كمية البيانات كبيرة، لا تقم بتكوين القيمة كبيرة جداً، فالافتراضي هو ‪64‬‬", "searchLimit2": "‫هذا العنصر من التكوين يؤثر على جميع الوظائف المتصلة بالبحث، مثل البحث عن مراجع الكتلة، وسجل الملفات، وكتلة تضمين الاستعلام، ولوحة علامة التبويب، ووظيفة القالب QueryBlock/querySpans‬", "searchCaseSensitive": "حسّاس لحالة الأحرف", "searchCaseSensitive1": "بعد التمكين، ستكون جميع الوظائف المتصلة بالبحث حساسة لحالة الأحرف", @@ -848,9 +848,9 @@ "customSort": "تخصيص الفرز", "collapse": "طي", "blockEmbed": "كتل التضمين", - "rowTip": "‫نقر فتح القائمة
سحب فرز
⇧نقر تحديث السمة‬", - "gutterTip": "‫نقر/⌘/ فتح القائمة
⌘نقر/⌥→ تركيز
⌥نقر/⌘↑ طي/توسيع
⇧نقرة/⌥⌘A تحديث السمة
سحب نقل الموضع
⌃سحب تكرار
⌥سحب إنشاء مرجع الكتلة
⇧سحب إنشاء كتلة تضمين‬", - "gutterTip2": "‫نقر فتح القائمة
⇧نقرة تحديث السمة‬", + "rowTip": "‫نقر فتح القائمة
‫سحب فرز
‫⇧نقر تحديث السمة‬", + "gutterTip": "‫نقر/⌘/ فتح القائمة
‫⌘نقر/⌥→ تركيز
‫⌥نقر/⌘↑ طي/توسيع
‫⇧نقرة/⌥⌘A تحديث السمة
‫سحب نقل الموضع
‫⌃سحب تكرار
‫⌥سحب إنشاء مرجع الكتلة
‫⇧سحب إنشاء كتلة تضمين‬", + "gutterTip2": "‫نقر فتح القائمة
‫⇧نقرة تحديث السمة‬", "linkDistance": "مسافة الرابط", "collideStrength": "قوة التنافر", "collideRadius": "نصف قطر التنافر", @@ -873,7 +873,7 @@ "moveToRightBottom": "الانتقال إلى الأسفل الأيمن", "moveToBottomLeft": "الانتقال إلى أسفل اليسار", "moveToBottomRight": "الانتقال إلى أسفل اليمين", - "accountDisplayTitle": "عرض أيقونة العنوان", + "accountDisplayTitle": "عرض أيقونة اللقب", "accountDisplayVIP": "‫عرض أيقونة VIP‬", "rollbackConfirm": "‫لا يمكن التراجع عن عملية الاسترجاع، يرجى التعامل بحذر. هل أنت متأكد من أنك تريد استرجاع ${name} إلى ${time}؟‬", "pdfTip": "‫تصدير PDF لا يدعم السمة الداكنة‬", @@ -939,10 +939,10 @@ "kernelFault1": "‫يجب أن تكون بياناتك آمنة، يرجى التحقق مما إذا كان اتصال الشبكة وعملية النواة طبيعيين، ثم إعادة تشغيل SiYuan‬", "kernelFault2": "‫إذا استمرت المشكلة، يرجى البحث عن المساعدة أو الإبلاغ عن الأخطاء هنا‬", "fontSize": "حجم الخط", - "fontSizeTip": "‫حجم الخط الافتراضي هو 16، يؤثر هذا الإعداد على المحرر وصادرات حجم خط PDF/HTML‬", + "fontSizeTip": "‫حجم الخط الافتراضي هو ‪16‬، يؤثر هذا الإعداد على المحرر وصادرات حجم خط PDF/HTML‬", "fontSizeScrollZoom": "ضبط حجم الخط بسرعة", - "fontSizeScrollZoomTip": "‫بعد التمكين، اضغط مع الاستمرار على Ctrl لضبط حجم الخط بسرعة من خلال عجلة الماوس أو إيماءة التكبير/التصغير في لوحة التتبع‬", - "font1": "‫هذا الإعداد يؤثر فقط على عرض عائلة الخط في المحرر، اختر الافتراضي لاستخدام عائلة الخط المحددة في السمة‬", + "fontSizeScrollZoomTip": "‫بعد التمكين، اضغط مع الاستمرار على ‪Ctrl‬ لضبط حجم الخط بسرعة من خلال عجلة الماوس أو إيماءة التكبير/التصغير في لوحة التتبع‬", + "font1": "‫هذا الإعداد يؤثر فقط على عرض عائلة الخط في المحرر، اختر ‪الافتراضي‬ لاستخدام عائلة الخط المحددة في السمة‬", "newNameFile": "اسم المستند الفرعي الجديد هو", "newNameSettingFile": "اسم المستند الجديد هو", "newContentFile": "محتوى المستند الجديد هو", @@ -1044,44 +1044,44 @@ "md7": "عرض علامة الزاوية الخاصة بصورة الشبكة", "md8": "بعد التمكين، إذا كانت الصورة ملف ويب (ملف أصول غير محلي)، فستعرض علامة زاوية", "md9": "قائمة إدراج الكلمات المفتاحية المرجعية الافتراضية", - "md12": "ما إذا كان سيتم عرض الإشارة المرجعية، المعرف، الاسم المستعار، المذكرة وعدد المراجع", + "md12": "عرض الإشارة المرجعية، المعرف، الاسم المستعار، المذكرة وعدد المراجع", "md16": "بعد التمكين، إذا كانت هناك هذه المعلومات، سيتم عرضها على الجانب الأيمن العلوي من الكتلة", "md27": "رقم السطر لكتلة الكود", "md28": "بعد التمكين، ستعرض كتلة الكود رقم السطر (يرجى ملاحظة أن التمكين قد يقلل من أداء المحرر)", - "md29": "‫عدد مسافات لمفتاج Tab‬", + "md29": "‫عدد مسافات لمفتاح Tab‬", "md30": "‫استبدال بمسافات فقط عند الضغط على Tab، لن يتم استبدال علامات التبويب (Tab) في الحافظة بمسافات‬", "md31": "التفاف السطر في كتلة الكود", "md32": "بعد التمكين، سيتم التفاف المحتوى تلقائياً في كتل الكود", "md33": "المرجع الافتراضي", "md34": "بعد التمكين، سيحدد تلقائيا العلاقة المرجعية المحتملة وفقا للمعرف، الاسم المستعار ونص مرساة لمراجع الكتلة الموجودة", "md35": "قائمة استبعاد الكلمات المفتاحية المرجعية الافتراضية", - "md36": "‫استخدم الفاصلة في وضع اللغة الإنجليزية , للفصل، ويمكن إدراج الفاصلة نفسها باستخدام \\\\,‬", + "md36": "‫استخدم الفاصلة في وضع اللغة الإنجليزية ‪,‬ للفصل، ويمكن إدراج الفاصلة نفسها باستخدام ‪\\,‬‬", "md37": "الحد الأقصى لطول نص المرساة الديناميكي لمرجع الكتلة", - "md38": "‫الحد الأقصى لطول نص المرساة الذي يتم تقديمه تلقائياً عند عدم تخصيص نص مرساة مرجع الكتلة، والافتراضي هو 96 حرفاً‬", + "md38": "‫الحد الأقصى لطول نص المرساة الذي يتم تقديمه تلقائياً عند عدم تخصيص نص مرساة مرجع الكتلة، والافتراضي هو ‪96‬ حرفاً‬", "md39": "‫عنوان خدمة PlantUML‬", - "md40": "‫اتركه فارغاً لاستعادة الافتراضي https://www.plantuml.com/plantuml/svg/~1‬", - "md41": "‫الدعم باستخدام / لإغلاق التعبيرات النمطية، على سبيل المثال، foo,/[0-9]+ يعني استبعاد foo والأرقام‬", + "md40": "‫اتركه فارغاً لاستعادة الافتراضي ‪https://www.plantuml.com/plantuml/svg/~1‬‬", + "md41": "‫الدعم باستخدام ‪/‬ لإغلاق التعبيرات النمطية، على سبيل المثال، ‪foo,/[0-9]+/‬ يعني استبعاد foo والأرقام‬", "fileTree2": "ستختار شجرة المستندات تلقائياً المستند الحالي عندما يتم تبديل علامة تبويب المحرر", "fileTree3": "لا يتطلب تأكيد عند حذف المستندات", "fileTree4": "في حالة عدم التمكين، سوف يظهر مربع التأكيد في كل مرة تقوم فيها بحذف مستند", "fileTree5": "موقع حفظ المستند الجديد المنشَأ من المرجع", - "fileTree6": "‫عند استخدام ((، مسار حفظ المستند الجديد (على سبيل المثال، /folder1/{{now | date \"20060102150405\"}}/))‬", + "fileTree6": "‫عند استخدام ‪((‬، مسار حفظ المستند الجديد (على سبيل المثال، ‪/folder1/{{now | date \"20060102150405\"}}/‬)‬", "fileTree7": "فتح في علامة التبويب الحالية", "fileTree8": "سيتم استبدال علامة التبويب المستند المفتوحة حديثا علامة التبويب غير المعدلة", "fileTree9": "إغلاق جميع علامات التبويب عند بدء التشغيل", "fileTree10": "بعد التمكين، سيتم إغلاق علامات التبويب المفتوحة غير المثبتة تلقائياً كل مرة تبدأ فيها الواجهة", "fileTree11": "ملاحظة يومية جديدة", "fileTree12": "موقع حفظ المستند الجديد", - "fileTree13": "‫عند استخدام Ctrl+N، مسار حفظ المستند الجديد (على سبيل المثال، /folder1/{{now | date \"20060102150405\"}}، سيستخدم المسار النسبي للمستند الحالي إذا لم يبدأ مع /)‬", - "fileTree14": "‫حفظ المسار (تُدعم متغيرات قالب تاريخ، مثل /Daily Notes/{{now | date \"2006/01\"}}/{{now | date \"2006-01-02\"}})‬", - "fileTree15": "‫مسار القالب (على سبيل المثال، dailynote.md، يجب وضع الملف تحت workspace/data/templates/)‬", + "fileTree13": "‫عند استخدام ‪Ctrl+N‬، مسار حفظ المستند الجديد (على سبيل المثال، ‪/folder1/{{now | date \"20060102150405\"}}‬، سيستخدم المسار النسبي للمستند الحالي إذا لم يبدأ مع ‪/‬)‬", + "fileTree14": "‫حفظ المسار (تُدعم متغيرات قالب تاريخ، مثل ‪/Daily Notes/{{now | date \"2006/01\"}}/{{now | date \"2006-01-02\"}}‬)‬", + "fileTree15": "‫مسار القالب (على سبيل المثال، ‪dailynote.md‬، يجب وضع الملف تحت workspace/data/templates/)‬", "fileTree16": "الحد الأقصى لعدد العناصر المعروضة", "fileTree17": "إذا كان هناك الكثير من المستندات الفرعية/العلامات، يمكن استخدام هذا القيد لتحسين الأداء", "fileTree18": "السماح بإنشاء وثائق فرعية أعمق من 7 مستويات", "fileTree19": "ولبعض نظم التشغيل قيود تقنية قد تحول دون النسخ اليدوي لبيانات مساحة العمل بعد وضع مستندات فرعية تزيد عن 7 مستويات", "fileTree20": "حفظ بسطر واحد", "fileTree21": "‫بعد التمكين، سيتم استخدام تنسيق JSON ذي السطر الواحد عند حفظ مستندات .sy وقاعدة بيانات .json، مما يقلل حجم الملف بحوالي 30٪ وتحسين كفاءة القراءة والكتابة بنسبة 50٪‬", - "export10": "‫على سبيل المثال <span style=\"color: #fff;background-color: black;padding: 4px;border-radius: 5px;float:right;\">SiYuan</span>، إذا كان فارغاً، سيتم استخدام العلامة المائية من النص المخصص أو مسار ملف العلامة المائية.‬", + "export10": "‫على سبيل المثال ‪<span style=\"color: #fff;background-color: black;padding: 4px;border-radius: 5px;float:right;\">SiYuan</span>‬، إذا كان فارغاً، سيتم استخدام العلامة المائية من النص المخصص أو مسار ملف العلامة المائية.‬", "export11": "طريقة معالجة محتوى المراجع عند التصدير", "export12": "طريقة معالجة محتوى كتلة التضمين عند التصدير", "export13": "رمز تغليف نص المرساة", @@ -1093,14 +1093,14 @@ "export19": "‫المسار إلى ملفات Pandoc القابلة للتنفيذ‬", "export20": "‫تصدير ملفات Word .docx يتطلب تحويل التنسيق باستخدام Pandoc‬", "export21": "‫قالب تذييل PDF المصدّر‬", - "export22": "‫%page هو رقم الصفحة الحالي، %pages هو رقم الصفحة الإجمالي، ويدعم وظائف قالب Sprig‬", + "export22": "‫‪%page‬ هو رقم الصفحة الحالي، ‪%pages‬ هو رقم الصفحة الإجمالي، ويدعم وظائف قالب Sprig‬", "export23": "‫تصدير Markdown مع YAML front-matter‬", "export24": "‫بعد التمكين، سيتم إضافة بعض معلومات البيانات الوصفية العامة في بداية ملف Markdown المصدّر‬", "export25": "‫مسار قالب Word .docx المصدّر‬", "export26": "‫المسار المطلق للقالب المستخدم عند تصدير ملفات Word .docx، أي قيمة Pandoc --reference-doc‬", "export27": "‫العلامة المائية لملف PDF المصدّر‬", "export28": "نص العلامة المائية المخصصة أو مسار ملف العلامة المائية", - "export29": "موقع العلامة المائية، حجمها وأسلوبها، إلخ.", + "export29": "موقع العلامة المائية، حجمها وأسلوبها، إلخ", "export30": "صورة العلامة المائية للملف المصدّر", "theme11": "استخدام السمة في الوضع الفاتح", "theme12": "استخدام السمة في الوضع الداكن", @@ -1138,7 +1138,7 @@ "splitMoveB": "تقسيم و نقل للأسفل", "debug": "أدوات المطورين", "fileTree": "شجرة المستندات", - "graphView": "عرض الرسم البياني", + "graphView": "الرسم البياني", "sponsor": "التبرع للمطورين", "relativeRelation": "مرتبط", "parentRelation": "الأصل - الطفل", @@ -1173,7 +1173,7 @@ "about": "حول", "about1": "‫حقوق الطبع والنشر (c) 2020 الحاضر • Yunnan Liandi Technology Co., Ltd. • سياسة الخصوصيةاتفاقية المستخدم‬", "about2": "الاستخدام على المتصفح", - "about3": "‫يرجى استخدام متصفح Chrome والبقاء على نفس الشبكة مع الكمبيوتر، المنفذ ${port} (بالإضافة إلى المنفذ العشوائي، سيقوم مساحة العمل الأولى التي تم تشغيلها تلقائيًا بالاستماع إلى 6806 كمنفذ ثابت، بحيث يكون من السهل على امتدادات المتصفح أو البرامج الخارجية الأخرى استدعاء واجهة النواة)، العناوين التي يمكن الاتصال بها هي كما يلي: ‬", + "about3": "‫يرجى استخدام متصفح Chrome والبقاء على نفس الشبكة مع الكمبيوتر، المنفذ هو ‪${port}‬ (بالإضافة إلى المنفذ العشوائي، سيقوم مساحة العمل الأولى التي تم تشغيلها تلقائيًا بالاستماع إلى ‪6806‬ كمنفذ ثابت، بحيث يكون من السهل على امتدادات المتصفح أو البرامج الخارجية الأخرى استدعاء واجهة النواة)، والعناوين التي يمكن الاتصال بها هي كما يلي: ‬", "about4": "فتح المتصفح", "about5": "رمز الإذن بالوصول", "about6": "بعد التكوين, سيتم استخدامه ككلمة مرور مصادقة الوصول, اتركه فارغًا لإغلاق المصادقة", @@ -1182,9 +1182,9 @@ "about11": "خادم الشبكة", "about12": "بعد التمكين، سيتم السماح للأجهزة الأخرى في نفس الشبكة المحلية بالوصول. سيتم إغلاق التطبيق تلقائياً بعد التعديل، يرجى إعادة التشغيل يدوياً", "about13": "‫رمز API‬", - "about14": "‫يجب مصادقة الرمز المميز عند استدعاء واجهة برمجة التطبيقات (API)
رأس طلب HTTP Authorization: token ${token}‬", - "about17": "‫عند الضبط على اتصال مباشر لن يتم تفعيل الوكيل‬", - "about18": "‫عند استخدام عنوان غير محلي (127.0.0.1/[::1])، يرجى تعيين رمز الإذن بالوصول أولاً‬", + "about14": "\u202B مصادفة الرمز المميز عند استدعاء واجهة برمجة التطبيقات (API)\u202C
\u202Bرأس طلب HTTP هو \u202AAuthorization: token ${token}\u202C\u202C", + "about17": "‫عند الضبط على ‪اتصال مباشر‬ لن يتم تفعيل الوكيل‬", + "about18": "‫عند استخدام عنوان غير محلي (‪127.0.0.1‬/‪[::1]‬)، يرجى تعيين رمز الإذن بالوصول أولاً‬", "checkUpdate": "تحقق من التحديثات", "currentVer": "النسخة الحالية", "downloadLatestVer": "‫ تنزيل أحدث إصدار‬", @@ -1211,7 +1211,7 @@ "downloadTip": "المتصفح لا يدعم وظيفة التنزيل", "edit-mode": "تبديل الوضع", "emoji": "الرموز التعبيرية", - "export": "التصدير", + "export": "تصدير", "fileTypeError": "نوع الملف خطأ", "fullscreen": "ملء الشاشة", "generate": "جاري التوليد", @@ -1453,8 +1453,8 @@ "124": "الرجاء تمكين المزامنة السحابية في [الإعدادات - تمكين المزامنة السحابية]", "125": "‫فشل المزامنة التلقائية مرات كثيرة جداً، الرجاء محاولة تشغيل المزامنة يدوياً، إذا كانت المشكلة لا تزال موجودة، يرجى الإبلاغ عنها عبر GitHub Issues‬", "126": "لا يمكن أن تكون الإشارة المرجعية فارغة", - "127": "تبقى [%d] يومًا حتى انتهاء الاشتراك، وبعد ذلك سيتم حذف بيانات التخزين السحابي الرسمية بالكامل. لتجديد الاشتراك، قم بزيارة هنا", - "128": "انتهت صلاحية الاشتراك، سيتم حذف بيانات التخزين السحابي الرسمية بالكامل (بيانات S3/WebDAV السحابية غير متأثرة)، بعد يومين من انتهاء الاشتراك لن يظهر هذا التذكير مرة أخرى. لتجديد الاشتراك، قم بزيارة هنا", + "127": "‫هناك [%d] أيام متبقية حتى انتهاء الاشتراك، وبعد ذلك سيتم حذف بيانات التخزين السحابي الرسمية بالكامل. للتجديد، يرجى زيارة هنا‬", + "128": "‫انتهت صلاحية الاشتراك، وسيتم حذف بيانات التخزين السحابي الرسمية بالكامل (بيانات التخزين السحابية S3/WebDAV غير متأثرة)، وبعد يومين من انتهاء صلاحية الاشتراك، لن يظهر هذا التذكير. للتجديد، يرجى زيارة هنا‬", "129": "البيانات السحابية تالفة، يرجى إعادة تعيين مستودع البيانات المحلية ومزامنة السحابة لحل المشكلة", "130": "بدأ تثبيت الإصدار الجديد. نظرًا لأن نظام التشغيل سيقوم بإجراء مسح أمني، قد يستغرق بعض الوقت للبدء. الرجاء الانتظار...", "131": "هذه العملية غير مدعومة، يرجى الذهاب إلى وحدة إدارة موفر التخزين السحابي للعمل", @@ -1476,7 +1476,7 @@ "147": "‫تم إنشاء لقطة جديدة للبيانات، يستغرق %.2f ثانية/ثوانٍ‬", "148": "‫تم تحقق من لقطة البيانات ولم يعثر على أي تغييرات، يستغرق %.2f ثانية/ثوانٍ‬", "149": "‫تم مزامنة لقطة البيانات، تستغرق %.2f ثانية/ثوانٍ‬", - "150": "‫تم رفع/تنزيل الملفات %d/%d
 تم تحميل/تحميل أجزاء %d/%d
 تم إرسالها / تلقي البايت %s/%s‬", + "150": "‫تم رفع/تنزيل الملفات %d/%d‬
‫ تم تحميل/تحميل أجزاء %d/%d‬
‫ تم إرسالها / تلقي البايت %s/%s‬", "151": "‫لا تشمل الرموز مثل \\ / : * ? " ' < > |‬", "152": "‫عدد الملفات المرفوعة %d عدد الأجزاء المرفوعة %d حجم البيانات المرسلة %s‬", "153": "‫عدد الملفات المنزّلة %d عدد الأجزاء المحملة %d حجم البيانات المستلمة %s‬", @@ -1579,4 +1579,4 @@ "250": "تم تحديد معدل الطلب بواسطة التخزين السحابي. الرجاء التحقق من الإعدادات وأذونات التخزين السحابية", "251": "‫مجموع الأصول غير المستخدمة [%d]، [%d] فقط منها مدرج هنا‬" } -} +} \ No newline at end of file diff --git a/kernel/bazaar/package.go b/kernel/bazaar/package.go index 722ec020bd2..c3b0737992d 100644 --- a/kernel/bazaar/package.go +++ b/kernel/bazaar/package.go @@ -42,6 +42,7 @@ import ( type DisplayName struct { Default string `json:"default"` + ArSA string `json:"ar_SA"` DeDE string `json:"de_DE"` EnUS string `json:"en_US"` EsES string `json:"es_ES"` @@ -57,6 +58,7 @@ type DisplayName struct { type Description struct { Default string `json:"default"` + ArSA string `json:"ar_SA"` DeDE string `json:"de_DE"` EnUS string `json:"en_US"` EsES string `json:"es_ES"` @@ -72,6 +74,7 @@ type Description struct { type Readme struct { Default string `json:"default"` + ArSA string `json:"ar_SA"` DeDE string `json:"de_DE"` EnUS string `json:"en_US"` EsES string `json:"es_ES"` @@ -166,6 +169,10 @@ func getPreferredReadme(readme *Readme) string { ret := readme.Default switch util.Lang { + case "ar_SA": + if "" != readme.ArSA { + ret = readme.ArSA + } case "de_DE": if "" != readme.DeDE { ret = readme.DeDE @@ -228,6 +235,10 @@ func GetPreferredName(pkg *Package) string { ret := pkg.DisplayName.Default switch util.Lang { + case "ar_SA": + if "" != pkg.DisplayName.ArSA { + ret = pkg.DisplayName.ArSA + } case "de_DE": if "" != pkg.DisplayName.DeDE { ret = pkg.DisplayName.DeDE @@ -290,6 +301,10 @@ func getPreferredDesc(desc *Description) string { ret := desc.Default switch util.Lang { + case "ar_SA": + if "" != desc.ArSA { + ret = desc.ArSA + } case "de_DE": if "" != desc.DeDE { ret = desc.DeDE