compiler icon indicating copy to clipboard operation
compiler copied to clipboard

العربية أولا وآخرا

Open MuhammadSawalhy opened this issue 3 years ago • 17 comments

أرجو أن نعجل كل شيء تقريبا باللغة العربية، كل شيء نقدر عليه ونذلل لذلك الصعاب ونخوضها، حتى لو لم تكن الأدوات الأخرى متاحة مثل طرفية تدعم اللغة العربية بشكل جيد، أو محرر للغة العربية.

  1. استخدام الأرقام العربية، أعلم أم البعض يطلقون عليها الأرقام الهندية، لكن لنأخذ الأمر بدراسة أكثر وفحص للواقع، سنجد أن هذه الأرقم التي يسميها البعض الأرقام الهندية هي المستخدمة في المصحف الشريف. أرى أن يتم إتاحة استخدام كلا الرقمين، 234 و٢٣٤ وبالتالي نحل الإشكالية.

    رسالة الخطأ عند محاولة استخدام الأرقام العربية:

     الملف		: /home/ms/myp/alif/examples/helloworld/helloworld.alif
     السطر		: 8
     الخطأ		: بناء الجملة غير مفهوم : ' ٢٣٤ ' 
    
  2. تعريب الحروف الخاصة في النصوص مثل حرف "سطر جديد" \n، فنجعله مثلا ، وهكذا البقية...

  3. ألفت النظر إلى أنني استعملت اتجاه الشرطة المائلة مختلف عن في الإنجليزية وهو ما يسمى بتأثير المرآة، فقد استخدمت وليس . قِس على ذلك العمليات الرياضية: 2 / 4 بالإنجليزية من اليسار لليمين هي نفسها ٢ \ ٤ بالعربية من اليمين لليسار.

  4. إنشاء ملف ثنائي آخر وليكن اسمه ألف والذي يمكن استخدامه داخل الطرفية "العربية" من الطرفيات الموجودة حاليا أو التي سيتم إنشاؤها إن شاء الله.

    مثال على ذلك:

    > ألف --دخل .\الكود.ألف --خرج ملف_ثنائي
    

تعديل

  1. استخدام اسم نطاق عربي مثل قلب.موقع، واسماء.شبكة. جرب كتابتهم في صندوق الرابط والبحث في المتصفح. يمكن وجود أكثر من رابط يعيدوا التوجيه للرابط الأصلي، يعني أن نوفر اسم النطاق العربي إن أمكن بالإضافة للإنجليزي.

  2. نضيف ال ansi colors للقائمة

    #ألف
    
    دالة رئيسية 
        نص كود_اللون = "100"
        نص نص_ليلون = "نص بلون خاص"
        اطبع("\u001b[38;5;" + كود_اللون + "m" + نص_ليلون + "\u001b[0m\n")
    نهاية دالة 
    
  3. لما لا يُتاح استخدام الامتداد .ألف؟ الآن .alif فقط هي المقبولة، وأرى أن التقييد بالامتدادات يمكن التخلي عنه، لأن المهم هو المحتوى، وإن كان بالملف مخالفة لقواعد اللغة ستتوقف الترجمة وتطبع رسالة الخطأ

    كما أن كود ألف يبدأ ب #ألف والتي يمكن أن تُجعل غير إلزامية، أي أن الكود يمكن أن يحتويها أو لا

MuhammadSawalhy avatar Jun 16 '21 20:06 MuhammadSawalhy

١ : الليكسر الخاص بألف يقوم بتحويل الأرقام "الهندية" إلى العربية، وبالثالي يمكن ستعمال كلا الأرقام عدد ج = 55 + ٤٣ * 44 + ٨٩٧

hassandraga avatar Jun 16 '21 20:06 hassandraga

٢ : نعم ممكن، فكرة جيدة

hassandraga avatar Jun 16 '21 20:06 hassandraga

٣ : الخلط بينهما سيجعل الأمر صعبا علينا، أقترح حاليا الإكتفاء بإتجاه واحد مثلا 2 / 4 هي نفسها ٢ / ٤

hassandraga avatar Jun 16 '21 20:06 hassandraga

٤ : نعم ممكن، يكفي فقط إضافتها إلى السطر رقم ٨٥٦٨ https://github.com/alifcommunity/compiler/blob/261194d65d6ea33818e8384d0afe8013e7c23f1a/src/alif.cpp#L8568

hassandraga avatar Jun 16 '21 20:06 hassandraga

هذا هو الشكل عندي، لأني لاحظت اختلاف تصيير النصوص من جهاز لآخر ومن برنامج لآخر.

image

MuhammadSawalhy avatar Jun 17 '21 05:06 MuhammadSawalhy

image

ممكن أن نؤجل تدعيم تأثير المرآة، مع العلم أن بعض الحروف تصّير تلقائا وفقا لاتجاه اللغة مثل الحرف >، أنا لم استعمل سواه في كل الأمثلة التالية، لم استعمل <:

> ألف
عدد أكبر > عدد أقل
bigger number > smaller number

نفس النص دون أي تغيير لكن من اليسار لليمين

> ألف
عدد أكبر > عدد أقل
bigger number > smaller number

MuhammadSawalhy avatar Jun 17 '21 05:06 MuhammadSawalhy

image

MuhammadSawalhy avatar Jun 17 '21 05:06 MuhammadSawalhy

٣ : الخلط بينهما سيجعل الأمر صعبا علينا، أقترح حاليا الإكتفاء بإتجاه واحد مثلا 2 / 4 هي نفسها ٢ / ٤

أظن أننا بحاجة لشكل واحد لعملية القسمة، لأن العمليات الحسابية ستكون من اليمين لليسار ولكن شكل الأرقام هو ما سيختلف، دائما نحسبها من اليمين لليسار:

image

MuhammadSawalhy avatar Jun 17 '21 11:06 MuhammadSawalhy

يرجى التغيير والاختبار: https://github.com/alifcommunity/compiler/blob/7c58b149a2225138de5adbc34977f81733159a94/src/alif.cpp#L1395 https://github.com/alifcommunity/compiler/blob/7c58b149a2225138de5adbc34977f81733159a94/src/alif.cpp#L1431 https://github.com/alifcommunity/compiler/blob/7c58b149a2225138de5adbc34977f81733159a94/src/alif.cpp#L1471 ...

hassandraga avatar Jun 17 '21 15:06 hassandraga

image

ينتج هذا

 الملف		: /home/ms/myp/alif/examples/helloworld/helloworld.alif
 السطر		: 6

 الخطأ		: بناء الجملة غير مفهوم : ' \ ' %    

التعديلات

diff --git a/src/alif.cpp b/src/alif.cpp
index fde409f..2516778 100644
--- a/src/alif.cpp
+++ b/src/alif.cpp
@@ -1392,7 +1392,7 @@
 				(TOKEN_LAST == "+") ||
 				(TOKEN_LAST == "-") ||
 				(TOKEN_LAST == "*") ||
-				(TOKEN_LAST == "/") ||
+				(TOKEN_LAST == "\\") || // mirror effect for rtl scripts
 				(TOKEN_LAST == "("))
 				return false;
 
@@ -1428,7 +1428,7 @@
 			if ((TOKEN_LAST != "+") &&
 				(TOKEN_LAST != "-") &&
 				(TOKEN_LAST != "*") &&
-				(TOKEN_LAST != "/") &&
+				(TOKEN_LAST != "\\") && // mirro effect for rtl script
 				(TOKEN_LAST != "=") &&
 				(TOKEN_LAST != "("))
 				return false;
@@ -1468,7 +1468,7 @@
 		if ((TOKEN_LAST != "+") &&
 			(TOKEN_LAST != "-") &&
 			(TOKEN_LAST != "*") &&
-			(TOKEN_LAST != "/") &&
+			(TOKEN_LAST != "\\") && // mirro effect for rtl scripts
 			(TOKEN_LAST != "=") &&
 			(TOKEN_LAST != "،") &&
 			(TOKEN_LAST != ",") &&
@@ -8647,4 +8647,4 @@
 		boost::nowide::cout << "File " << argv[1] << " has " << total_lines << " lines" << std::endl;
 		return 0;
 	}
-	*/
\ No newline at end of file
+	*/

MuhammadSawalhy avatar Jun 17 '21 17:06 MuhammadSawalhy

أنت بحاجة إلى البحث عن "/" واستبدالها ، هناك حاجة لاستبدال المزيد أيضًا.

hassandraga avatar Jun 21 '21 14:06 hassandraga

أفضل الرجوع لهدا المشكل عند الإنتهاء من تطوير بيئة ألف الجديدة

لنبقي هدا المشكل مفتوحا شكرا على التبليغ

hassandraga avatar Jun 21 '21 22:06 hassandraga

إضافة:

  1. استخدام اسم نطاق عربي مثل قلب.موقع، واسماء.شبكة. جرب كتابتهم في صندوق الرابط والبحث في المتصفح. يمكن وجود أكثر من رابط يعيدوا التوجيه للرابط الأصلي، يعني أن نوفر اسم النطاق العربي إن أمكن بالإضافة للإنجليزي.

MuhammadSawalhy avatar Jun 22 '21 14:06 MuhammadSawalhy

  1. نضيف ال ansi colors للقائمة
#ألف

دالة رئيسية 
    نص كود_اللون = "100"
    نص نص_ليلون = "نص بلون خاص"
    اطبع("\u001b[38;5;" + كود_اللون + "m" + نص_ليلون + "\u001b[0m\n")
نهاية دالة 

MuhammadSawalhy avatar Jun 23 '21 21:06 MuhammadSawalhy

جميل، علينا إجاد طريقة عمل نفس الشيئ في ويندوز

hassandraga avatar Jun 29 '21 22:06 hassandraga

لما لا يُتاح استخدام الامتداد .ألف؟ الآن .alif فقط هي المقبولة، وأرى أن التقييد بالامتدادات يمكن التخلي عنه، لأن المهم هو المحتوى، وإن كان بالملف مخالفة لقواعد اللغة ستتوقف الترجمة وتطبع رسالة الخطأ

كما أن كود ألف يبدأ ب #ألف والتي يمكن أن تُجعل غير إلزامية، أي أن الكود يمكن أن يحتويها أو لا

MuhammadSawalhy avatar Jul 21 '21 05:07 MuhammadSawalhy

ونفس المشكلة حصلت عند استخدام امتداد للملف التنفيذي. أظن أن هذه القيود يمكن إلغاؤها

image

MuhammadSawalhy avatar Jul 21 '21 11:07 MuhammadSawalhy