لغة #C والكتابة باليمين إلى اليسار « مغامرات برمجية

لغة #C والكتابة باليمين إلى اليسار

نّشر في: 2011/05/31
تعليقات: 6 تعليق

لا ليس الموضوع ما قد يتوقعه البعض. لن أتكلم هنا عن كيفية تطوير واجهات المستخدم العربية. هناك كم هائل من المحتوى الذي تم كتابته حول هذا الموضوع، وأنا لا أحب التكرار. ما أقصده هو كتابة اسم اللغة نفسها. الاسم C#. إذا كنت قد حاولت كتابته في أي منتدى أو مدونة أو صفحة ويب أو أي نوع من أنواع الوثائق الحاسوبية التي تكتب من اليمين إلى اليسار فستجد أنه سيظهر معك هكذا: C#. مقلوباً! شارب سي وليس سي شارب.

وهذه مشكلة معروفة عندما تتداخل الرموز مع الأحرف العربية. الحلول التي كنت أستخدمها كانت إما باستخدام عبارة “سي شارب” أو كتابة الرمز الإنجليزي بالترتيب العكسي # ثم C. الأولى مزعجة نوعاً ما لأنني لست من محبي تعريب الأسماء والرموز. والثانية، رغم أنها تعمل، تجعله من الصعب البحث عن C# لأنه سيكون مسجلاً في قاعدة البيانات #C. الحل الجديد الذي بدأت أستخدمه هو استخدام عبارة الـHTML :

1
<span dir="ltr">C#</span>

نعم هي أطول في الكتابة، ولكن لدينا شئ اسمه Replace All في جميع محررات الأكواد المحترمة وأيضاً نحافظ على صحة المصطلح ونضمن سهولة البحث. إذا كان لديكم أي حلول أخرى فسأكون سعيداً بسماعها :)

تعديل جديد:

بعد الشكر الجزيل للاستاذ password123 الذي دلني على طرف الخيط، أنا الآن أستخدم حرف اليونيكود U+200E الذي يمثل التحوبل إلى Left to Right. طريقة إدخال هذا الحرف (في ويندوز) هو كالتالي:

  1. اكبس ALT (وأبقيه مكبوساً).
  2. في لوحة الأرقام (ليس الأرقام فوق الحروف) اكتب 8206 وهو المقابل العشري لـ200E.
  3. أفلت ALT.

 

Post to Twitter

6 تعليق - أضف تعليق
  1. password123 قال:

    ابي العزيز

    مارأيك في هذا C+‎+‎

    اقرأ الكود جيدا…. كتبته 100% بالحروف الانجليزية ولم اغير ترتيب الكتابة

    والدليل: حاول تقوم بكوبي وبيست في نص انجليزي وستج الترتيب صحيحا

    وطبعا لم استخدم حركة span dir=ltr

    واذا عجبتك الطريقة ممكن ترسل لي رسالة خاصة في الفريق الغبي للشخبطة 2000 ههههههه

    • password123 قال:

      غيرت رأيي بخصوص الرسالة الخاصة (ساكتب هنا)
      للتو انتبهت لجملة: “إذا كان لديكم أي حلول أخرى فسأكون سعيداً بسماعها :)

      المسالة ان Unicode تقوم بزقع الاتجاه في الحروف ماعدى punctuation
      يعني لما نكتب عربي مزبطة الامور لان الاتجاه مزروع فيه

      لكن المشكلة مع الpunctuations مثل + و # فهذه ليست مزروعة ومتروكة للبرامج يتصرف بها
      وهناك algorithms بسيطة تحل الموضوع، والتي لا تكون ناجحة دائما ولذا سبب تضايقنا

      حل من الحلو كما ذكرت وهو span dir=ltr لكن هذا على مستوى عالي جدا…
      والسؤال يقول: لماذا لا يكون هذا في الencoding نفسه؟ اليس انظف؟
      الجواب يقول: نعم انظف وهذا موجود…

      هناك حرف حسب ترميز unicode اسمه U+200E والذي يفعله انه اذا ظهر بعد اي كلمة فكأنما يضيف عليه اتجاه اليسار الى اليمين بطريقة الزامية.. وهناك رمز آخر للعكس لكن هذا لا يهمنا نحن كعرب (لاننا نادرا ما نكتب عربي للانجليز)

      فالذي حصل أنني كتبت C وثم بعده + (والذي لا يحتوي على اتجاه الكتابة ولذا البرنامج يخبص الدنيا).. وثم بعده رمز U+200E

      كيف تضيف رمز U+200E ؟ ممكن تضيف shortcut في الكيبورد للتبسيط
      او ممكن تفتح ورد او openoffice وتقوم بinsert character
      في openoffice تذهب الى insert ثم insert character ثم formating mark وثم تجدهم

      • password123 قال:

        الخلاصة:
        C ثم + ثم U+200E ثم + ثم U+200E

        • System Down قال:

          Perfect!
          شكراً لمشاركتك. أصبح الآن لدي فكرة مشروع مستقبلي لـplugin يقوم بهذا آلياً. لكن الله أعلم إذا كان هذا المشروع سيرى النور :)

          على فكرة عبارتك “أبي الذي كنت أبحث عنه” تذكرني كثيراً بالمارد في مسلسل “رحلة عنابة” :)

          • password123 قال:

            ههههههههه لا ادري اين التقطتها… قلتها بشكل عفوي

            فكرت في مشروع شبيه يكون مندمج مع الkeyboard layout switcher
            بحيث انه يقوم بإضافة U+200E للpunctuation في حال كان الكيبورد انجليزي
            لكن المشكلة انه عندما اكتب شيء انجليزي، فسيكون حجم الملف اكبر (غير انيق)

            والمشكلة الكبرى، انه عندما استخدم الرموز ++ في كتابة البرمجة، سيحدث خطأ في المترجم

            لاحظ ان هذا الكود مكتوب بC وشكله نظيف… وحتى الcode editor يعرضه بشكل نظيف
            لكن المترجم ينزعج من U+200E الزائدة
            الكود http://codepad.org/YOZW0fuF

            لذا ربما من الافضل هو وضع shortcut على الكيبورد…
            يعني shit + alt + L ويضيف U+200E

  2. M.B.O قال:

    صحيح هذه مشكلة , وهذه دائما ما تكون في المواقع العربية لذلك افضل حل بالنسبة لي هو كتابتها كذا ” سي شارب ” ههههه

أضف تعليق

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

*

يمكنك استخدام أكواد HTML والخصائص التالية: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>


مرحباً , تاريخ اليوم هو الخميس, 2017/03/23