[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: usability questions about Arabic script on UML sequence diagrams



Hi Imed,

Thank you very much for your view on these issues!

I had already implemented the support for right-to-left scripts and diagram layout, but I wasn't sure if a) it was useful and b) I had made the right choices. Luckily you confirmed that I'm on the right track.

Paying some attention to the Arabic language will also buy you the
support for nearly all semetic languages or languages using the Arabic
script, that is Farsi, Urdu, Hebrew, etc.
Great!

-----

Issue 1 (language related)
I'm almost sure that developers in the Arab world use English in
porgramming for portability reasons and to make it easier to
communicate with non-Arabic speaking users. This may not be good news
though, since you'll have to worry about bidirectional text which may
be a bit confusing at times.
That certainly makes sense.

Also, I'm using the built-in support for bidi-text of the Java platform, so I hope it works the way it should (i.e. no confusion required on my part :o).

-----

Issue 2 (direction related)
I cannot speak for everyone on this, but I, for one, find it more
natural to read diagrams from right-to-left. I would say this is a
plus to have, but if it gives a headaches to implement, then most
Arabic-speaking developers would still live with a left-to-right
diagram.
Actually, the diagrams were exported from the program!

Adapting the layout algorithms was pretty straightforward (in retrospect), although confusing at times. At some point I decided to first change all left/right references in comments and variables to leading/trailing, before continuing. That made it a lot easier to reason about the algorithms and adapt them. The biggest source of confusion was that the coordinate system of Java2D remains the same regardless of left/right or leading/trailing, i.e. adding to the x-coordinate always moves things to the right.

-----

Issue 3 (font related)
I get this comment quite often and I still don't know why the text,
despite the small size, is very readable for me and I didn't get
confused on any word. I guess, the human brain does not need to look
at individual letters but only a few and the general shape of the word
to recognise it. I'm sure this would be more problematic with
unfamiliar words like transliterated Latin names.

I would say, the text is very readable as is, but you may want to add
a font-sizing option to be on the safe side.
Ah, that's good news (but font-sizing is already present in the program as well).

I was wondering if I should make the space between the bottom of the text and the underline a setting the user can change?

The last couple of days, I've been adding support for multi-line text (e.g. in comments). I've run into another issue that I hope the community could help me with :

-----

Issue 4 (justification related)

At first, justification of multi-line texts seemed simple : always pick leading justification. However, mixed script complicates the matter.

Each line can have its own base direction (left-to-right or right-to-left). I simply layout each line according to its own leading direction (i.e. right for Arabic script, left for English, etc.). How it is decided what the base direction is of a line which mixes Arabic and English script, I have no idea. I just get the base direction via a library call for each line so I'm guessing it's ok.

When showing the diagram, I can give each line its own justification according to its script :

http://www.freeimagehosting.net/uploads/522ce4d984.jpg

a) Would you prefer all lines in a text to be justified the same way regardless of their script (based on user locale), or would you prefer each line to get its own justification based on its script (as in the above image)?

When editing text, aligning individual lines according to their script is not feasible I think. So I would have to pick one direction and align all lines the same way.

b) Would you prefer I pick this according to the user locale (i.e. leading justification)? So an Arab developer could see both Arabic and English lines right-justified whilst I would see them left-justified? (note : once editing is over, I could justify each line individually according to its script as mention in issue 4a above).

Thanks in advance for any view you (or someone else) can give on this matter.

Best regards,
Yanic Inghelbrecht