Get hands-on training for JIRA Software, Confluence, and more at Atlassian Summit Europe. Register now ›

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.
RTL text on the Google Israel home page
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:

Input

<p>HEBREW1 HEBREW2 english3 HEBREW4 HEBREW5</p>

Result

5WERBEH 4WERBEH english3 2WERBEH 1WERBEH

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:

Input

<p>english17 <q>HEBREW18 english19 HEBREW20</q></p>

Result

english17 20WERBEH english19 18WERBEH

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’.
Bizarre.
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.

Fresh ideas, announcements, and inspiration for your team, delivered weekly.

Subscribe now

Fresh ideas, announcements, and inspiration for your team, delivered weekly.

Subscribe now