[opensource-dev] Problem with displaying Arabic menu text in SL client

Boroondas Gupte sllists at boroon.dasgupta.ch
Tue Oct 5 03:19:57 PDT 2010


 Hi Izze

On 10/05/2010 10:31 AM, izze euler wrote:
> I have been looking to get Arabic text working on the SL client, but
> so far with no luck. I am only looking to display Arabic for menus and
> text on the client.
>
> What I have found is that the Arabic text is being displayed
> left-to-right, rather than right-to-left. I have added a language to
> SL, so I have the Arabic translations in UTF8 format in XML files, as
> with the other languages such as Chinese.
>
> I used Notepad++ to copy the translations to the XML files, and they
> are displayed right-to-left correctly. However, when loaded into the
> SL client, the text is being reversed so that it reads left-to-right.
Unicode has special control characters to switch between left-to-right
and right-to-left in mixed language documents. Additionally, I think
some programs switch direction automatically when they encounter
characters they know belong to a right-to-left written script. So if the
translations are displayed correctly, Notepad++ is capable of at least
one of those, probably the former (interpreting the control characters).

> I have tried reversing the text, so that it displays left-to-right in
> the XML file, in the hope that it will then be reversed and display
> right-to-left in the client. I cannot read or write Arabic, but I have
> been told that the characters are displayed disjoint, most likely due
> to the wrong ordering of the characters breaking associations between
> them in the XML file.
Arabic script relies heavily on ligatures. Ligatures are glyphs that
represent multiple characters. Other than the ligatures used for latin
script (fl, fi ffi, etc.) which merely make the rendered text look
"nicer", ligatures in scripts like Arabic, Devanagari (a script used for
Sanskrit, Hindi and other Indian languages), Bengali (another Indian
language and script) and probably many others look very distinct from
the characters they represent
<http://en.wikipedia.org/wiki/Devanagari#Conjuncts>and aren't
"optional". (Typographs and typesetters might argue that Latin ligatures
aren't optional either. But omitting ligatures in these other scripts
will not only look typographically wrong but, well, just wrong. (I don't
know whether it'd be considered an orthographic error in the respective
cultures.))

> Has anyone looked into this problem, or have any ideas to what I could
> try?
We've discussed the problem this summer, see here:
http://wiki.secondlife.com/wiki/Open_Source_Meeting/2010-07-13

The issue is that while the SL client has support for displaying Unicode
characters, it lacks the ability to use Unicode's script direction
markers and the feature of converting specific character sequences to
the matching ligatures. For pre-set strings (e.g. your UI translation),
the first problem can be worked around by writing stuff backwards, as
you already tried. To work around the second problem, you'd have to
directly write the ligature "characters" (so you have only one character
per wanted glyph). I don't know Unicode well enough to tell whether
"characters" for all possible glyphs exist. It might well be that some
ligatures always have to be created on-the-fly from a sequence of
single-character "characters".

Of course, both of these workarounds aren't feasible for chat and other
run-time user input, because users will be used to write sequences of
single characters in reading order rather than ligature "characters" in
left-to-right order. Also, entering these ligature "characters" (if they
even exist) might be complicated and time consuming, because their usual
keyboard layout might not give direct access to them.

> Does anyone have this working?
Adding these features to Linden Lab's homebrewn text rendering system
would be a major effort that probably none of us is capable of.

Alissa Sabre once adapted the Viewer to use Pango for text rendering. (
See
http://wiki.secondlife.com/wiki/User:Alissa_Sabre/Pango_adaptation_in_SL_viewer)
Pango can handle bidirectional text and ligatures just fine, so this
solved the problems. However, these changes haven't been integrated in
the official viewer and her patches are now out of date.

For chat, using Dzonatas' Icesphere (allows for IM and chat in separate
GTK+ windows, thus also using Pango) has been recommended to some Arabic
users, and that seems to work alright. Both, the sender and receiver,
will have to use it to be able to chat in Arabic script.

Cheers,
Boroondas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.secondlife.com/pipermail/opensource-dev/attachments/20101005/f1832d0f/attachment.htm 


More information about the opensource-dev mailing list