الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

نكتب بالعربية في البرامج التي لا تدعم العربية

بدأه موليان في 16 أغسطس 2011 · 5 رد · 10,078 مشاهدة · في المقالات العلمية و التقنية
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

( في هذا الموضوع سنرى كيف يتم تحويل النص العربي الى نص مقبول لدى بعض برامج التي لا تدعم اللغة العربية)

هناك برامج لا تدعم اللغة العربية (واللغات التي تكتب من اليمين الى اليسار) مثل Photoshop , VideoStudio (غير نسخة Middle East طبعا) أو ProShow.

لو اردت ان تكتب كلمة او كلمتان بالعربية في Photoshop فهو من الامور "اليسيرة", تكتب في برنامج Paint مثلا و ثم تستخدم الملف في Photoshop. لكن ان زادت الكلمات فالامر سيكون مزعج، متعب و ربما مستحيل.

وهذا حدث لي في هذه الايام, كان علينا استخدام برنامج ProShow.

فلهذا البرنامج مشكلتان،

  • لا يسمح بالكتابة من اليمين الى اليسار
  • ولا يدعم كثير من حروف Unicode

بحثت لأرى هل من حل لهذه المشكلة ام لا, فوجدت بعض برامج و (هذا) البرنامج كان الافضل من بينهم، الافضل في واجهة المستخدم والبساطة. حل المشكلة!

جزاك الله خيرا يا موليان وداعا....

لحظة! البرنامج يستخدم بعض حروف Unicode للتشفير, التي لا يدعمها برنامج ProShow

دعوني اقول في البداية اني لست Professional Designer، أنا فقط مبرمج يرى بعينه ويأخذ نتيجة اما صحيحة أو لا ( ارتحت الأن (-; )

حسنا، سنحتاج ببرنامج محول لتحويل وتشفير الكلمات العربية و ايضا نوع خط خاص لهذا التشفير والذي يدعم حروف العربية.

أولاً لنرى كيف يعمل البرنامج المحول:

1- عندما نكتب بالحروف العربية (أو اي حرف الذي لا يُدعم) في المحول فهو يأخذ الحرف و يعيد حرف اخر الذي هو مقبول عند البرنامج الاخر.

مثلا عندما نكتب ك يحوله مع حرف معين اخر مثل Â.

نحتاج حرف خاص مثلا من الحروف اللاتينية لكل حرف من الحروف العربية.

2- في اللغة العربية ليس هناك شكل واحد لنفس الحرف و يفرق شكله عند تغيير مكانه في الكلمة ( ليس كل الحروف)

انظروا:

post-247423-026927300 1313462620_thumb.p

و على المحول ان يعرف اين يستخدم اي شكل من الحرف.

انا استخدمت هذه الحروف للتشفير:

private char[,] alphabetCharacters =
{ // isolated:0 beginning:1 middle:2 end:3
    	{'A','A','@','@'}, //آ
    	{'B','B','C','C'}, //ا
    	{'D','E','E','D'}, //ب
    	{'F','G','G','F'}, //پ
    	{'H','I','I','H'}, //ت
    	{'J','K','K','J'}, //ث
    	{'L','M','M','N'}, //ج
    	{'O','P','P','Q'}, //چ
    	{'R','S','S','T'}, //ح
    	{'U','V','V','W'}, //خ
    	{'X','X','X','X'}, //د
    	{'Y','Y','Y','Y'}, //ذ
    	{'Z','Z','Z','Z'}, //ر
    	{'a','a','a','a'}, //ز
    	{'b','b','b','b'}, //ژ
    	{'c','d','d','c'}, //س
    	{'e','f','f','e'}, //ش
    	{'g','h','h','g'}, //ص
    	{'i','j','j','i'}, //ض
    	{'k','k','k','k'}, //ط
    	{'l','l','l','l'}, //ظ
    	{'m','n','o','p'}, //ع
    	{'q','r','s','t'}, //غ
    	{'u','v','v','u'}, //ف
    	{'w','x','x','w'}, //ق
    	{'y','z','z','y'}, //ک
    	{'§','z','z','§'}, //ك
    	{'±','¶','¶','±'}, //گ
    	{'«','»','»','«'}, //ل
    	{'¼','½','½','¼'}, //م
    	{'¾','Œ','Œ','¾'}, //ن
    	{'œ','œ','œ','œ'}, //و
    	{'ƒ','"','#','&'}, //ه
    	{'\'','\'','*','*'}, //ة
    	{'®','-','-','<'}, //ی
    	{'©','-','-','>'}, //ي
    	{'[','[','[','['}, //ء
    	{']',']','^','^'}, //أ
    	{'`','`','¤','¤'}, //إ
    	{'¥','¥','¥','¥'}, //ؤ
    	{'~','¢','¢','£'}, //ئ
};

ولذا البرنامج لن يدعم الحروف الانجليزية و بعض حروف اخر.

هناك حروف كثيرة في Unicode غير هذه الحروف و يمكننا استخدامهم لكن المشكلة ان هذه البرامج مثل برنامج ProShow لا يدعم هذه الحروف ايضا.

3- وايضا مشكلة Right to Left and Left to Right,

كلمة "كتاب" في برنامج ProShow ستظهر هكذا: ب ا ت ک . لحل هذه المشكلة في المحول نستبدل مكان الحروف.

الامر سهل بهض الشيء, يعني لو كان الحروف في مصفوفة, في C#:

Array.Reverse(characters);

لکن الخطوط ستكون من الاسفل الى الاعلى.

حول المحول كلمة "كتاب" بـ "DCIz" فماذا الان؟

علينا ان نستخدم خط خاص الذي يعرف تشفيرنا. لو استخدمنا خط Arial فهو يكتب كلمة كتاب بهذا الشكل: DCIz و هذا ليس ما نريد.

كيفية انشاء نوع الخط الخاص لتشفيرنا:

ان كان لديك حس تصميمي فلتصنع خط خاص بيدك, لكن يمكنك ايضا تبادل مكان الحروف في خط اخر مع برنامج لهذا الغرض.

يعني عندما قررنا نستخدم الحرف ب حسب مكانه (فصل\اول\وسط\آخر) هذه الحروف (D/E/E/D ) فنستبدله كذلك في نوع الخط ايضا.

post-247423-066538200 1313462773_thumb.p

ونتيجة عملنا:

post-247423-051906500 1313462827_thumb.p

post-247423-086789900 1313462857_thumb.p

إقرأ اكثر:

Arabic alphabet

أبجدية عربية

Perso-Arabic alphabet

Unicode

وبرنامج لإنشاء و تعديل الخط:

FontCreator

---------------------------------------------------------------------------------

وهذا برنامج بسيط للتحويل كتبته بسرعة و بدون توثيق (يعني dirty code ببساطة D: ). سأكتب الاكواد والخوارزميات قادما مع التوثيق (مع انه يمكن استخراج اكواد هذا البرنامج ايضا )

وايضا قمت بتغيير خط Arial ليعمل مع هذا البرنامج, والبرنامج فقط يعمل مع هذا الخط الجديد:

برنامج Converter:

Converter.zip

خط خاص للبرنامج :

mouliyan.zip

كم الامر كان سهل!

مع هذا اخذ مني 3 ايام :-)

السلام عليكم

المرفقات
ArabicLetters.pngmouliyanFont.pngconvert.pngresult.png
10

..:: رَبِّ زِدْني عِلْمًا ::..

#2

مقال مفيد ، ومكتوب بأسلوب جميل ، هناك برامج قديمة في السابق كنا نستخدمها ، وكانت تطلب إضافة بعض الخطوط الخاصة ، و الأمر مختلف مع البرامج الأخرى ، وعرفت الآن لماذا ؟ مشكلة أسكي و يونيكود ...

1

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#3

وشكرا جزيلا لتصحيح الاخطاء :-)

..:: رَبِّ زِدْني عِلْمًا ::..

#4

السلام عليكم ورحمة الله وبركاته.

فعلا مقال مكتوب بأسلوب جميل و واضح , جزاك الله خير .

1

((إِنَّ اللَّهَ وَمَلائِكَتَهُ يُصَلُّونَ عَلَى النَّبِيِّ يَا أَيُّهَا الَّذِينَ آمَنُوا صَلُّوا عَلَيْهِ وَسَلِّمُوا تَسْلِيمًا))

#5

جميل جدا ً

سلمت يمناك اخي موليان ^_^

1

M.B.O

Mohamed Bin Othman

إبن المكلا

يابني البشر ماذا فعلتم بالبشر !!

إسـألـنـي

#6
Hello,

Sorry that I'm writing in English. I don't speak Arabic. I'm the creator of LeoMoon Persian TTT and wanted to tell you about my newest program called LeoMoon ParsiNegar.

This new program has lots of new features.

- System-wide Standard Persian keyboard (you can use Windows Arabic keyboard)

- Advanced Unicode editor

- Support for Harekats

- With 2 conversion algorithms

- Ability to export text to vector formats

With this program, you should be able to write anywhere.

For more info please go to:

http://parsinegar.com

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…