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 Me gusta

@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 me gusta

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 me gusta

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 me gusta

años después, esto sigue siendo un problema. Incluso cuando una publicación está escrita completamente en un idioma RTL, no se alinea automáticamente.

Screenshot_20251114_122348
(este es el editor, pero la vista previa de la derecha es una representación precisa del producto final)
la única solución que funciona es agregar etiquetas <div>. Como señaló @hnaseri, <p> no funciona, solo <div> sí.
Screenshot_20251114_122656
Screenshot_20251114_122429

Debo ser honesto, esto es bastante terrible. Seguramente hay una mejor manera que requerir que los usuarios agreguen <div>. De hecho, no es una solución lo suficientemente buena, porque si solo abres tu div pero no lo cierras, el resto del texto se verá forzado a la dirección de la primera línea, en lugar de ser párrafo por párrafo. Necesitar agregar otro <div> antes de cada párrafo no es realmente una solución.
Screenshot_20251114_122937
Screenshot_20251114_122959

image

¿Solo para confirmar que este es un problema particular en los foros en inglés donde ocasionalmente publicas en hebreo? (lugares de idioma mixto)

Porque en la configuración regional hebrea todo parece estar bien.

Algo que puede ayudar aquí es:

image

Con ese botón habilitado en la barra de herramientas es mucho más fácil como ayuda aquí. Para habilitarlo, habilitarías la configuración support mixed text direction