views:

771

answers:

9

While most operating systems and web browsers have very good support for bidirectional text such as Hebrew and Arabic, most commercial and open-source software does not:

  • Most text editors, besides the original notepad and the visual studio editor, does a very poor job. (And I tried dozens of them).
  • I could not find any file compare tool doing a decent job - No even Beyond-Compare.
  • Same thing for software and packages dealing with charting and reporting.

Some questions I have:

  • Do you share the same pain I do?
  • Is the software you write bidirectional compliant? Do you have bug reports about it?
  • Do you even know what are the issues involved? Do you test for them?
  • Any suggestions on how to make the software world a better place for bidirectional language speakers?
+3  A: 

Do you share the same pain I do?

No. And that's probably the answer: most people have no idea how bidirectional languages work. I for example have some troubles working with that. Because I'm interested in that topic quite a bit I was reading pango sources a while back, and that's probably the second reason why the support sucks: it's damn hard to get right.

I think the GNOME project has one of the best support for bidirectional user interfaces thanks to Pango (of course I can't verify that because I wouldn't be able to spot the problems).

But because you said "open source": I think the globalization support in open source projects is generally outstanding. Linux sucks are pretty much everything, but internationalization is something they get right.

gettext is still one of the few translation systems that has a (I know half baked but) working pluralization system.

Is the software you write bidirectional compliant? Do you have bug reports about it?

Probably not. I'm working on a web publishing software currently and that's one of the things I haven't tested at all so far :-(

Do you even know what are the issues involved? Do you test for them?

Bi-directional support is not no the direct roadmap. So no tests for them, where the issues are I know from the translation interface I wrote for Plurk.

Any suggestions on how to make the software world a better place for bidirectional language speakers?

For an open source project: ask guys to help you that know where the issues are. For closed source? Hire someone who knows.

Armin Ronacher
+2  A: 

Simple, get more bidirectional language speakers to voice their concerns! With so few bidirectional language users around, I'd imagine that bidirectional text support is pretty low on most people's priority lists. The more bug reports you and other bidirectional language speakers file, though, the more the problem will be addressed.

William Keller
+2  A: 

If you break up a string into substrings and display them individually you will break the OS bidi rendering, also if you add some mostly innocent symbols (like a - for example) you will mess up the text display.

The two things you have to know to write bidi-compatible software is:

  1. Always display entire strings, never try to display parts of a larger string.
  2. Always test any formatting code with bidi text.

And if you are writing a text editor, word processor or anything that requires high end typography and you can't follow rule 1 above then writing a bidi rendering engine is a lot of work.

Nir
You nailed the issue with "Always display entire lines". I guess this is just where text editors end file compare tools go wrong.
zvikara
I really hate it when they want to mess with letter spacing and do it letter by letter.
Osama ALASSIRY
+1  A: 

I'm left-handed, and deal with similar issues in the physical world. It's a natural part of being in the minority, that businesses primarily cater to the majority.

If you think there are problems with bidirectional text, you should check out the Turkish i problem sometime..

Anyhow, I think what will happen is either that text processing will become very standardized, and the libraries will do things correctly, or you'll have to wait until the app becomes big enough to warrant adding good support..

tfinniga
A: 

A note regarding some of the answers - There are no "bidirectional languages". a language is either left to right or right to left (or top to bottom...). A Text or a String can be bidirectional if it contains both say Hebrew and English.

Regarding the question, Firefox seem to work swell for me. Also MSWord and that's pretty much everything I use Hebrew in.

shoosh
Certain Languages are bidirectional when writen. That is normal reading takes place Right to Left, however Numbers are read Left to Right.If english were bidirectional:There are 01 cows.would read: There are ten cows.
Brian Leahy
Arabic is bidirectional, you have the numbers in LTR, and you could have some words written in English within the text.does SO support RTL هذه تجربة!
Osama ALASSIRY
@shoosh means bidirectionality is a property of a text, not a language. Any text containing both LTR and RTL expressions (not matter whether words, number of punctuation marks) is technically bidirectional from the computer's pov.
tareqHs
+2  A: 

I think there are two main answers to this:

1) Most languages read left-to-right, so people either think they can get away with not having it or just don't even think about it in the first place.

2) It can be hard to support it, depending on what your project is. If your tools/libraries don't support it, your software probably won't either. And it's not just hard in a programming sense, but hard to get it right when the programmers aren't familiar with right-to-left languages. As I understand it, to really properly support bi-directional text, some things in the UI must also be flipped to look "right."

The only reason I know anything about this is because I work with a guy who speaks Arabic as his native language and I've talked to him about it a little. I still don't know much about it. Our products only pretty recently started supporting Arabic and I haven't been a part of that effort.

Evan Shaw
A: 

Any suggestions on how to make the software world a better place for bidirectional language speakers?

Unfortunately, I don't think the situation will improve unless there are a lot more RTL-language-speakers participating in global affairs... which seems unlikely.

Currently we have Israel which is a very technologically advanced society, but very small and nearly all the educated people speak English. And then there are the Arab countries and others that use Arabic script, which don't produce and consume nearly as much information as the Western world, according to studies I've seen.

Dan
Same thing here, many prefer to communicate in English, because they feel like being part of a more global audience.
Osama ALASSIRY
+1  A: 

I know ltr text in Flash is a pain in the ass - I've heard it's easier for web pages, although you've got to be careful how you process strings so they don't get mixed up.

This is an awfully subjective question, by the way, one that's impossible to find a 'solution' for - are you sure this is the right place to ask it?

matt lohkamp
I heard about flash problems with bidi text, and recently I checked some flash charting components where globalization support and bidi where not supported at all.I don't expect to get an answer to this problem - just trying to raise awareness and maybe learn something new.
zvikara
+1  A: 

I myself has been researching around on how to add native BiDi to Android. Results so far: lots of work, Android practically lacks real BiDi.

The issue is that the world of computers is all about internet and sharing, especially open-source software. This means dominant languages are the concern, and if you note english is actually the standard and other (mostly western) languages are provided as side translations.

I speak Arabic/Hebrew/English. With computers I use almost only englis, with arabic/hebrew for local stuff (news, online tv, ...) which is handled well by web browsers. However since I bought Samsung Galaxy and started updating firmware I starting noting how big the problem is :(

tareqHs