We’ve had a longstanding feature request for Arabic and Hebrew support in Confluence. Although pages can be written in any language, our UI didn’t support internationalisation until 2.2, and it still doesn’t have the flexibility to be easily adapted for right-to-left (RTL) languages.
Google in RTL script
And even though you could write a page in RTL script, depending on where the RTL content appears, it might not be ordered correctly as RTL. The proper way to enforce a RTL ordering is through a couple of CSS properties that support bi-directional (‘bidi’) text. Reading through the documentation, I was struck by how quirky the rules for bidirectional text are.
For instance, let’s say you’ve got some text like the input below, where uppercase letters are RTL characters (say, Hebrew), and lowercase are LTR (say, English). If you explicitly mark the paragraph as RTL, Hebrew characters will flow right-to-left but the English text will still appear left-to-right. Apparently, this is the way RTL readers read foreign text:
Even stranger is what happens if you have a Hebrew quote containing an English word, inside an English paragraph. If you mark the input paragraph as explicitly LTR, and the quote as explicitly RTL, you get this cool output:
The word ‘english17’ comes first because it is unquoted LTR text. Then, because the Hebrew quote is read right-to-left, the word ‘HEBREW18’ has to be right-most and displayed with RTL character order. Moving left from here according to the RTL sentence order, next comes the quoted English word with characters in LTR order. The final word in the paragraph is ‘HEBREW20’.
Regardless of all this CSS and HTML trickery, I really don’t understand how native Arabic or Hebrew readers can read or type in the opposite direction to normal. ?ti si ,sdrawkcab daer ot ysae taht ton s’tI
Anyway, for more fun examples, and to find out what happens when word-wrap is involved, check out the bidirectional text part of the CSS2 specification.