السلام عليكم
بعد انقطاع عن المنتدى بسبب بعض المشاغل أعود إليكم من جديد ومعي هدية متواضعة للأعضاء الكرام
بعد محاولة الأخ "لا أعلم" الأخيرة لإصلاح النص العربي في يونيتي ومناقشة الأفكار مع الأعضاء الأعزاء وفقني الله لعمل السكربت الكامل الذي يقوم بإصلاح النص العربي في مكونات GUIText الخاصة بمحرك Unity
السكربت بسيط وفكرته تقوم على عكس النص المدخل من قبل المستخدم وتقسيمه إلى كلمات منفصلة حسب مجموعة من الرموز الفاصلة يمكن تعديلها من قبل المستخدم.
الخصائص المدعومة حاليا:
- تعديل اتجاه النص بحيث يصبح مكتوبا من اليمين لليسار
- وصل الحروف المنقطعة حسب موا قعها في الجملة مع المحافظة على همزات الوصل والقطع والمد على الألف
- المحافظة على علامات الترقيم الأساسية الموجودة في مجموعة الرموز الفاصلة (يمكن إضافة رموز فاصلة أخرى)
- المحافظة على الكلمات المكتوبة بالإنجليزية في داخل النص العربي، شرط عدم تتابع أكثر من كلمة إنجليزية
مثلا : النص التالي يمكن عرضه بشكل صحيح
اضغط Space لإعادة المحاولة
بينما النص التالي لا يمكن عرضه بشكل صحيح
اضغط the Shift key للمحاولة من جديد
الخصائص غير المدعومة (قد تتم إضافتها لاحقا)
- النص الإنجليزي العربي المختلط والذي يحتوي كلمات انجليزية متتابعة
- الكلمات المشكلة
- الكلمات الممدودة مثل (حــــاول مـــــرة أخـــــرى)
الكود موجود في الأسفل (للأسف لم أضف تعليقات للشرح
)
ملاحظة 1: الكود مكتوب بلغة C# لكن يمكنك استخدامه حتى لو كنت تعمل على Javascript أو Boo. كل ما عليك هو إضافة الملف المرفق لمشروعك وإضافته لأي عنصر GUIText تريد أن تظهره باللغة العربية
ملاحظة 2: السطر Globals.ReportWarning() هو أمر خاص بالمحرك الذي أعمل عليه لذا يجب عمل comment له حتى لا يعطيك رسالة خطأ
أتمنى سماع نتائج تجاربكم وأي مشاكل تحدث معكم ليتم إصلاحها. وأنا جاهز إن شاء الله لأي أسئلة أو شرح حول الكود
تحديث. الملف المرفق به مشاكل تتعلق بالـ encoding بسبب التحويل من cs إلى txt ويمكن تحميل ملف cs الأصلي من هنا (انقر باليمين واختر Save As لأن النسخ واللصق قد يعمل مشاكل)
http://mail.alquds.edu/~f3576/ArabicText.cs
بعد انقطاع عن المنتدى بسبب بعض المشاغل أعود إليكم من جديد ومعي هدية متواضعة للأعضاء الكرام
بعد محاولة الأخ "لا أعلم" الأخيرة لإصلاح النص العربي في يونيتي ومناقشة الأفكار مع الأعضاء الأعزاء وفقني الله لعمل السكربت الكامل الذي يقوم بإصلاح النص العربي في مكونات GUIText الخاصة بمحرك Unity
السكربت بسيط وفكرته تقوم على عكس النص المدخل من قبل المستخدم وتقسيمه إلى كلمات منفصلة حسب مجموعة من الرموز الفاصلة يمكن تعديلها من قبل المستخدم.
الخصائص المدعومة حاليا:
- تعديل اتجاه النص بحيث يصبح مكتوبا من اليمين لليسار
- وصل الحروف المنقطعة حسب موا قعها في الجملة مع المحافظة على همزات الوصل والقطع والمد على الألف
- المحافظة على علامات الترقيم الأساسية الموجودة في مجموعة الرموز الفاصلة (يمكن إضافة رموز فاصلة أخرى)
- المحافظة على الكلمات المكتوبة بالإنجليزية في داخل النص العربي، شرط عدم تتابع أكثر من كلمة إنجليزية
مثلا : النص التالي يمكن عرضه بشكل صحيح
اضغط Space لإعادة المحاولة
بينما النص التالي لا يمكن عرضه بشكل صحيح
اضغط the Shift key للمحاولة من جديد
الخصائص غير المدعومة (قد تتم إضافتها لاحقا)
- النص الإنجليزي العربي المختلط والذي يحتوي كلمات انجليزية متتابعة
- الكلمات المشكلة
- الكلمات الممدودة مثل (حــــاول مـــــرة أخـــــرى)
الكود موجود في الأسفل (للأسف لم أضف تعليقات للشرح

ملاحظة 1: الكود مكتوب بلغة C# لكن يمكنك استخدامه حتى لو كنت تعمل على Javascript أو Boo. كل ما عليك هو إضافة الملف المرفق لمشروعك وإضافته لأي عنصر GUIText تريد أن تظهره باللغة العربية
ملاحظة 2: السطر Globals.ReportWarning() هو أمر خاص بالمحرك الذي أعمل عليه لذا يجب عمل comment له حتى لا يعطيك رسالة خطأ
أتمنى سماع نتائج تجاربكم وأي مشاكل تحدث معكم ليتم إصلاحها. وأنا جاهز إن شاء الله لأي أسئلة أو شرح حول الكود
تحديث. الملف المرفق به مشاكل تتعلق بالـ encoding بسبب التحويل من cs إلى txt ويمكن تحميل ملف cs الأصلي من هنا (انقر باليمين واختر Save As لأن النسخ واللصق قد يعمل مشاكل)
http://mail.alquds.edu/~f3576/ArabicText.cs
تعليق