Set direction of text depending on text itself

AI-generated summary

The discussion revolves around implementing automatic text direction detection in Discourse based on the content itself, similar to Facebook’s behavior. Users Aymane_Shuichi and Aymane_Shuichi highlight the need for this feature, referencing a Facebook example and suggesting a solution using the dir="auto" HTML5 attribute. ibnesayeed points to an older topic on RTL support, while codinghorror encourages contributors to submit a pull request. hnaseri and hnaseri note the lack of updates and demonstrate that dir="auto" works in most cases, though it fails with <p> tags, requiring <div> tags instead. rassilon1963 confirms the issue persists, especially in mixed-language contexts, and shows that the problem is specific to English forums where Hebrew content is posted, as Hebrew locales handle directionality correctly. sam and sam discuss the issue’s context and confirm it’s mainly a problem in bilingual environments.

Facebook has it !

When Writing with an RTL language the ticker goes to the other way which gives a very intuitive experience.

I need this for my community because we are bilingual.
Thanks Discourse .. Love

6 Mi Piace

@codinghorror, Hi Jeff, do you think this is something we can have in the short term ?

Have a look at an old topic here about RTL support.

https://meta.discourse.org/t/rtl-support/1784

There is a library that automatically sets the direction of each paragraph based on the content.

https://github.com/hasenj/bidiweb

1 Mi Piace

Sure, submit a pull request with the work if you want it. This is how open source works.

Is there any update for this feature? I desperately need it.

Even if there is a button to change direction of text, when we write english/arabic/persian, would be great.

I just added pr-welcome on this, hopefully a bilingual developer looking for a contribution will look at this one day.

1 Mi Piace

I just found that there is an html5 tag dir=auto that simply works in most situations.

For example I wrote this html

<html>
<body>

<p dir="auto">Write this جمله چپ به راست text left-to-right!</p>

<p dir="auto">این RTL sentence  جمله را از راست به چپ بنویس</p>

</body>
</html>

And pasted it in a simple html editor and it works perfectly fine

Could we use the same thing in discourse @sam?

btw I tried dir="auto" with firebug on <p> tags in discourse. However it didn’t do anything. I don’t know why.

1 Mi Piace

Anni dopo, questo è ancora un problema. Anche quando un post è scritto interamente in una lingua RTL, non viene allineato automaticamente.

Screenshot_20251114_122348
(questo è l’editor, ma l’anteprima a destra è una rappresentazione accurata del prodotto finale)
L’unica soluzione funzionante è aggiungere tag <div>. Come ha notato @hnaseri, <p> non funziona, funziona solo <div>.
Screenshot_20251114_122656
Screenshot_20251114_122429

Devo essere onesto, questo è piuttosto pessimo. Sicuramente c’è un modo migliore che richiedere agli utenti di aggiungere <div>. Infatti non è una soluzione abbastanza buona, perché se apri solo il tuo div ma non lo chiudi, il resto del testo sarà forzato nella direzione della primissima riga, piuttosto che su base paragrafo per paragrafo. Aver bisogno di aggiungere un altro <div> prima di ogni paragrafo non è davvero una soluzione.
Screenshot_20251114_122937
Screenshot_20251114_122959

image

Confermo solo che questo è un problema particolare nei forum in inglese dove a volte pubblichi in ebraico? (luoghi con lingua mista)

Perché con la localizzazione ebraica tutto sembra essere a posto

Una cosa che potrebbe aiutare qui è:

image

Con quel pulsante abilitato nella barra degli strumenti è molto più facile come aiuto qui. Per abilitarlo, dovresti abilitare l’impostazione support mixed text direction