ليس لهذا علاقة بإعدادات ثنائية الاتجاه في Discourse.
عندما أكتب -\u003e يتم تحويلها إلى حرف سهم →، لذا يتم عرض “A -\u003e B” على أنها “A -\u003e B”. رائع جدًا.
ومع ذلك، فإن السهم يتجه في الاتجاه الخاطئ في النص من اليمين إلى اليسار: يتم عرض “א -\u003e ב” على أنها “א -\u003e ב” مع اتجاه السهم الخاطئ. (إذا كنت تقرأ هذا في المستقبل بعد إصلاح هذه المشكلة، فقد تم عرضه على أنه “א → ב”)
على وجه الخصوص، غالبًا ما تحتوي الأسهم والأحرف الشبيهة بالأسهم على حرف معكوس. يمكن للمرء أن يجادل بأنه كان يجب أن يكون لها قيمة خاصية Bidi_Mirrored=Yes، لكنها لا تملكها، ولا يمكنها الحصول عليها الآن.
للأسف، لا يوجد حرف سهم يعكس اتجاهه ثنائي الاتجاه، مما يعني أنه إذا كنت ترغب في إجراء هذا الاستبدال بشكل صحيح، فيجب عليك تحديد اتجاه ثنائي الاتجاه للنص المحيط لاختيار السهم المناسب بين الأسهم < و ->. ليست مهمة سهلة.
حسنًا… لا يمكن للمرء إلا أن يقاوم قدرًا معينًا. سأقول شيئًا أخيرًا (أعدك). على حد علمي، فإن مواصفات Unicode لا تشجع على تحويل -\u003e إلى → (وهذه المشكلة ستكون أحد أسباب ذلك)، لذا فإن هذه الميزة الحالية في Discourse لا تتبع أي مواصفات Unicode. إنها تفترض خطأً بشأن النص وتدخل هذه المشكلة في هذه العملية. هكذا أراها. (الميزة لا تزال رائعة رغم ذلك)
إذا كنت أكتب بلغة من اليمين إلى اليسار، فقد أتوقع كتابة “شرطة” متبوعة بـ “أقل من” وأتوقع أن تتحول إلى سهم يتجه إلى اليسار، مثل هذا: ←. هذا يبدو توقعًا معقولًا بالنسبة لي. ولكن، عندما أكتب “أقل من”، يقوم المُنشئ بإدراج “أكبر من”. كان هذا غير متوقع تمامًا. هل هذه هي المشكلة؟
ألاحظ أن مربع نص RTL (مثل مربع البحث على aljazeera.net) يُدرج الأرقام والرموز الرياضية بترتيب LTR داخل النص RTL. هذا يبدو طبيعيًا بما فيه الكفاية. (يفعل الشيء نفسه للأحرف اللاتينية)
أدناه سأكتب “أقل من هو \u003c وأكبر من هو \u003e” في سياق RTL (لا أعرف ما إذا كانت هذه هي الطريقة التي ستعمل بها الأشياء في لغة RTL):
أنت لا تستخدم نصًا من اليمين إلى اليسار في حياتك اليومية، أليس كذلك؟ لا يوجد خطأ في ما وصفته. هناك بعض الغموض في ما قلته، ولتجنب الارتباك، سأتناول الجزء الثاني من تعليقك أولاً.
هذا هو بالضبط كيف يفترض أن يعمل. فكر في الأمر بهذه الطريقة:
الحرف > يعني حرفياً “أكبر من”. السلسلة “أ > ب” تعني “أ أكبر من ب”.
وبالمثل، لقول “أ أكبر من ب”، سأستبدل “أكبر من” بنفس حرف “أكبر من” بنفس الرمز U+003E. ومع ذلك، نظرًا لأن السلسلة بأكملها من اليمين إلى اليسار، فإن “أ” تظهر على يمين “ب”. إذا تم عرض حرف “أكبر من” بنفس طريقة عرض النصوص من اليسار إلى اليمين، فسيظهر: أ<ب مما يعني “أ أقل من ب” أو “ب أكبر من أ” - العلاقة المعاكسة تمامًا للعلاقة الموصوفة.
لهذا السبب، عند عرض حرف أكبر من، يتم قلبه بصريًا عندما يكون في سياق من اليمين إلى اليسار. لكن الحرف الأساسي، وبيانات Unicode التي تدعمه، لا يزال رمز “أكبر من”. لا تزال السلسلة تعني “أ أكبر من ب”.
الآن نعود إلى سؤالك الأول:
إذا قمت بتغيير تخطيط لوحة المفاتيح إلى لغة من اليمين إلى اليسار (مثل العبرية أو العربية)، فإن تركيبة المفاتيح Shift+, (المفتاح المطبوع عليه <) ستكتب فعليًا حرف “أكبر من” >. سيتم عرض هذا كـ > في سياق من اليمين إلى اليسار، كما في مربع البحث الذي وجدته.
[تعديل: تم كتابة الفقرة التالية عندما أسأت فهم ما قلته أنك اختبرته. اعتقدت أنك كنت تكتب في مربع من اليمين إلى اليسار باستخدام لوحة مفاتيح من اليسار إلى اليمين، بينما كنت تفعل العكس. آمل أن أكون قد أجبت على ارتباكك.]
لكنك لا تزال تستخدم تخطيط لوحة مفاتيح لاتيني، لذلك عندما تضغط على تركيبة المفاتيح هذه، فإنها تُدرج حرف “أقل من” <. ولكن يتم عرضه كـ < لأنه في سياق من اليمين إلى اليسار، يعني أن ما هو على اليمين أقل مما هو على اليسار.
الخلاصة: الحرف هو نفسه، ولكن عرضه يتم عكسه.
إذا فهمت ما قلته حتى الآن، فستفهم أن ذلك سيجعل -< أو في سياق من اليمين إلى اليسار -< وهو ما لا أتوقع أنك قصدته.
إذا كنت تعتقد أنك ستؤدي بشكل أفضل مع مستندات Unicode الرسمية، فجرب هذا: UAX #9: Unicode Bidirectional Algorithm قم بتشغيل Ctrl+F للبحث عن “mirror” وستجد بعض الأوصاف والأمثلة الجيدة.
على الإطلاق! لو سُمح لمستخدمي RTL فقط بمناقشة وإصلاح أخطاء RTL، لكان وضعنا أسوأ بكثير! لقد اغتنمت هذه الفرصة لتقديم الموضوع لك. من المفترض أن يستغرق الأمر بعض الوقت لاستيعابه. يسعدني الإجابة على أي أسئلة أو فضول آخر لديك حول هذا الموضوع.
لقد انضممت إلى القائمة البريدية لـ Unicode لاقتراح إضافة إلى Unicode ستكون حلاً في حالات كهذه. كان أحد الردود التي تلقيتها هو هذا:
(أنا:) المشكلة هي أن هذا الاستبدال يتم (على حد علمي) خارج أي سياق عرض، عندما يكون النص مجرد تسلسل من رموز الأحرف. ليس من المعقول معرفة اتجاه النص. في بعض الأحيان يكون ذلك مستحيلاً تمامًا، إذا كان اتجاه النص يعتمد على سياق غير متاح وقت الاستبدال.
ما ورد أعلاه غير دقيق بالمعنى الدقيق للكلمة. أي عرض جاد للنص هذه الأيام يتطلب محرك تشكيل، مثل HarfBuzz، وسيتم إجراء ربط “->” بـ “→” بواسطة مثل هذا المشكل بالتعاون مع خط يدعم الروابط. محرك التشكيل على دراية بسياق bidi ونص النص الذي يشكله، لذلك يمكنه من حيث المبدأ عكس السهم.
من المثير للاهتمام أنني أحصل على نتيجة مختلفة في كروم: تعديل: لا يمكنني إعادة إنتاج هذا الآن وأعتقد أنني كتبته بشكل خاطئ عندما التقطت هذه لقطة الشاشة. تعديل: والآن يمكنني إعادة إنتاجه مرة أخرى. الوضع سيء.
كما ذكرت، أعمل على اقتراح حل لـ Unicode لهذه المشكلة. أشرح فيه المشكلة بالتفصيل، وبشكل أوضح مما شرحته هنا على أمل ذلك. لا يزال قيد العمل ولكني أرجو أن تلقي نظرة: Making sure you're not a bot! (رابط دائم)
بالطبع، حتى لو قبلت Unicode هذا الاقتراح (عندما أقدمه في النهاية)، فسيستغرق الأمر سنوات ليتم تنفيذه على نطاق واسع بما يكفي ليكون موثوقًا به، لذا فهي ليست خطة جيدة للانتظار حتى ذلك الحين.