Hi all,
Thank you for your interest in this important issue. I believe many are looking for an Outlook replacement and see Zimbra as a great candidate, only if it would support the local language. Hopefully this is not too much work if using any of the below mentioned algorithms and/or actual components!
The main issues we have to think about if we want to give Zimbra its I18N & L10N for Hebrew and Arabic are listed below. There are minor other ones, but this is what I believe compiles the main gist:
- Is "main direction" for writing a paragraph RTL or LTR? This decides how the paragraph begins.
- Alignment of rows - where to begin counting letters from, reverse coordinates etc'.
- Does the paragraph contain any second-language information? If so, that portion only should be displayed in its native direction - בצורתה המקורית - like is shown here on Internet explorer.
- Take into consideration correct breakdown of a paragraph, if sentences break in the middle of the second-language... this can be rather frustrating to write. See BiDi algorithms for how to correctly support it.
- Take into consideration that numbers retain their LTR order!! This is important so you do not display 13.51 as 15.31 or even 51.13... Again, see good BiDi algorithms for that.
- Technicalities like where to put the semicolon and colon, comma and dot after an RTL sentence so it doesn't come out at the wrong end of the word.
REFERENCES - check out the following: Bidirectional Text UAX #9: Unicode Bidirectional Algorithm ICU Homepage @ icu-project.org ICU project contains interesting and reliable I18N libraries in C++ and Java (good for Zimbra)
GNU FriBidi GNU Fribidi algorithm
Products & Technology (Eli Marmor's Hebrew support - I remember working with his solutions as early as some 14 years ago...)
All the best,
Etamar Laron