hnaseri
(Hosein Naseri)
9 فبراير 2022، 10:15ص
1
I have a forum in rtl language .Recently quotes show text in ltr direction instead of rtl.
pmusaraj
(Penar Musaraj)
9 فبراير 2022، 11:32ص
2
هل تستخدم أحدث إصدار من Discourse؟ لا يمكنني إعادة إنتاجه محليًا عند تبديل لغتي إلى العربية، على سبيل المثال.
hnaseri
(Hosein Naseri)
9 فبراير 2022، 1:40م
3
لقد قمت بالتحديث إلى أحدث إصدار الآن. لم يحل ذلك المشكلة.
pmusaraj
(Penar Musaraj)
9 فبراير 2022، 3:41م
4
هل يحدث هذا في منشورات متعددة، أم في هذا المنشور المحدد فقط؟ هل جربت أيضًا في الوضع الآمن؟
إعجاب واحد (1)
hnaseri
(Hosein Naseri)
10 فبراير 2022، 6:44ص
5
نعم، يحدث هذا في منشورات متعددة. ويحدث أيضًا في الوضع الآمن.
إعجاب واحد (1)
pmusaraj
(Penar Musaraj)
10 فبراير 2022، 7:58ص
6
هل يمكنك نشر رابط لموقعك حتى نتمكن من إلقاء نظرة؟
pmusaraj
(Penar Musaraj)
10 فبراير 2022، 9:40ص
8
شكرًا، بالنظر إلى الكود المصدري، فإن علامات الاقتباس هناك تحتوي على سمة dir="ltr". أخمن أنك قمت بتمكين الإعداد mixed text direction. في الواقع، يمكنني إعادة إنتاج مشكلتك عند تمكين هذا الإعداد محليًا.
لست متأكدًا مما إذا كان هذا “يعمل كما هو مصمم” أم أن هناك خطأ صغيرًا/كبيرًا هنا. @Osama هل أنت على دراية بهذا الجزء من التطبيق؟
3 إعجابات
Osama
10 فبراير 2022، 9:48ص
9
يبدو بالتأكيد أن لدينا خطأ هنا. أتوقع أن يتطابق اتجاه الاقتباس مع اتجاه الموقع. سأتعمق وأرى ما الذي يسبب هذا!
4 إعجابات
Osama
20 فبراير 2022، 8:07م
11
بعد البحث في هذا الأمر، أنا مرتبك بعض الشيء، هل أنت متأكد من أن هذا كان يُعرض بشكل صحيح في السابق؟ لأنني لم أتمكن من رؤية أي شيء في الكود للتعامل مع نص مقتبس من اليمين إلى اليسار مع اسم مستخدم بلغة من اليسار إلى اليمين. لقد جربت أيضًا إصدار Discourse من أكثر من عام ولم يتم عرض الاقتباس بشكل صحيح أيضًا.
على أي حال، إليك طلب سحب (PR) للتعامل مع هذا بشكل صحيح:
main ← fix/quoted-rtl-text
opened 08:02PM - 20 Feb 22 UTC
Meta topic: https://meta.discourse.org/t/rtl-direction-is-broken-in-quotes/21763… 9?u=osama.
Posts in Discourse are by default always rendered in the same direction as the rest of site, for example if the site is RTL, a post in that site is always rendered RTL even if it's made of an LTR language entirely. However, this behavior can be changed by enabling the `support mixed text direction` site setting which makes our posts rendering engine consider each "paragraph" in the post and apply an appropriate direction (using the `dir` attribute) on it based on its content/language.
I put paragraph in quotes because technically we only loop through the immediate children of the HTML element that contains the post cooked HTML and do this direction check on them. Most of the time the immediate children are actually paragraphs, but not always. The direction of an element is determined by checking its `textContent` property against a regular expression that checks all characters are RTL characters and based on the regular expression result the `dir` attribute is set on the element.
This technique doesn't work so well on quotes because they may contain multiple paragraphs which may be in different languages/directions. For example:

In this screenshot, the site's language is Arabic (RTL language) and the `support mixed text direction` setting is enabled. The paragraphs outside the quotes are rendered as expected with the right direction, however the paragraphs within the quote aren't; both the Arabic and English paragraphs are rendered LTR. Additionally, the avatar in the quote is misplaced; it should always be on the right hand site in RTL sites.
The reason for this is that when we're determining the direction for the quote, it's considered as one element and the direction is set on the whole quote. But for complex quotes like the one above, we need to be more surgical and apply direction on elements within the quote.
This PR adds special handling for quotes to ensure that:
* the quote title (the avatar plus the chevron and arrow) always match the site direction
* each immediate paragraph (`<p>` elements) under `<blockquote>` in the quote gets a direction based on its content.
Screenshot of the above quote with this PR:

5 إعجابات
pmusaraj
(Penar Musaraj)
تم إغلاقه في
28 فبراير 2022، 7:00ص
12
تم إغلاق هذا الموضوع تلقائيًا بعد 3 أيام. لم يعد يُسمح بالردود الجديدة.