hannesmannerheim / qvitter

mirror. moved to https://git.gnu.io/h2p/Qvitter, send merge requests and issues there
https://git.gnu.io/h2p/Qvitter
GNU Affero General Public License v3.0
86 stars 26 forks source link

BiDi support #215

Open GreenLunar opened 9 years ago

GreenLunar commented 9 years ago

Text direction of input message box appears to be constant (i.e. not dynamic).

Qvitter should determine direction according to first non-neutral character, and, of course, @username must be ignored when determining direction.

For @user ♂ שלום Qvitter would set direction to RTL because first non-neutral character is ש. For @user ♂ Hello Qvitter would set direction to LTR because first non-neutral character is H.

Open Leafpad or Mousepad to see how GTK+ handles these: ♂ שלום ♂ Hello


Gajim (XMPP client in Python) appears to be the messenger with the best algorithm to handle BiDi.

Most important parts are these:

[MESSAGE] In Changeset 14440:a82c19001268, Gajim uses LRM or RLM to set direction according to the first non-neutral character in a message; there are better and cleaner ways to set direction with JS in HTML.

[STATUS MESSAGE] In Changeset 14561:df1ad38561be Gajim sets direction of status message according to locale used, with no regard to the first character it starts with.


It seems that queet-content or queet-text is BiDi adaptable (not perfect, by the way).