[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Harakat is broken in Qt
- To: Development Discussions <developer at arabeyes dot org>
- Subject: Harakat is broken in Qt
- From: Mohammed Yousif <mhdyousif at gmx dot net>
- Date: Mon, 4 Aug 2003 10:08:06 +0300
- User-agent: KMail/1.5.1
Salam,
I see that harakat is almost totally broken in Qt and from the party
log, I see that the issue is making a lot of confusion so I wanted to
clear things up.
+ Firstly, as a rule, a letter can have ONLY ONE haraka, thus if there
is a haraka above the letter, then no other haraka can be below or
above it and vice versa. Tanween is considered a SINGLE haraka in both
Arabic and Uincode speak and it should be STORED that way, as
a SINGLE haraka (064B, 064C and 064D). If I want Tanween
I HAVE to type Tanween not type a haraka two times.
+ Secondly, as an exception (well, not really an exception but rather
a-not-so-clear rule), shadda is NOT considered a haraka in its own
but it HAS to be used with another haraka or else it's not correct
Arabic and it's ALWAYS ABOVE the letter, Shadda means to extend
the haraka voice (as in Mohammed, why I put two m's? simply
because there is a shadda on the m and when I transliterated it,
I added another m to give a good approximation to the actual
voice "should be read Moham-med, think of them as separated
words").
So, if I typed a shadda then a fatha, I expect to see the letter in
this order from below to above:
1- the letter itself
2- the shadda
3- the fatha
(Qt unfortunately doesn't follow this order and when you type a
complete word, bom, the haraka disappears and only the shadda
is shown)
What if I typed a fatha then a shadda?
It doesn't matter, a fatha is always _above_ the shadda.
What if I typed a kasra then a shadda or vice versa?
Still doesn't matter, a fatha is always _below_ the shadda.
(Think of the shadda as a new little letter above the actual letter)
So to summarize the shadda thing:
* A Shadda is always above the letter.
* Any haraka is applied to the letter before OR after the shadda
is transferred to the shadda, that is, the shadda is now the
letter that should have the haraka but above the actual letter.
* Harakat applied to a shadda are: fatha, kasra, damma and tanween
but this shouldn't be an issue, Qt may decide to ignore this and put
any T character above the shadda except kasra and kasratan which
should be below the shadda.
* In any arrangement, the shadda is ALWAYS ABOVE the letter even
if it has kasra or kasratan applied to it, it should STAY ABOVE the
letter.
* A shadda without a haraka results in a FAULTY arabic, and this should
be caught by spellcheckers, however this maybe ignored by the shaping
engine.
+ Thirdly, as an exception(real one this time), Quranic Symbols :-)
Indeed most of them are transparent(T) and some of those
can be put on any letter even if it has a haraka or a shadda
with haraka.
Here is a complete list of them, with the expected behaviour fitted
in to 5 groups:
1 Those which should be dealt as as a regular haraka, meaning that they
follow Rule 1 above and not 2, they may not be used with shadda.
(Rounded Zero, 0652)
(Arabic small high dotless head of khah, 06E1)
(Arabic maddah above, 0653)
(Arabic rounded high stop with filled centre, 06EC)
2 Those which should be put above any letter even if it has a haraka or
a shadda with haraka, and the order should be determined by the
order of typing them. So, if I typed a haraka and then one of those,
I expect to see them in this order from below to above:
- the letter
- the haraka
- the symbol
(Arabic small high meem isolated form, 06E2) (above the letter)
(Arabic empty centre high stop, 06EB) (above the letter)
(Arabic empty centre low stop, 06EB) (below the letter)
3 Those which may be put above any letter even if it has a haraka or
a shadda with haraka, and they should be ABOVE both the letter and
any haraka or shadda with haraka the letter may have regardless of
the order on which they were typed.
(Arabic small high meem initial form, 06D8)
(Arabic small high lam alef, 06D9)
(Arabic small high jeem, 06DA)
(Arabic small high legature sad with lam with alef maksura, 06D6)
(Arabic small high legature qaf with lam with alef maksura, 06D7)
(Arabic small high three dots, 06DB)
4 Those which should be dealt with as if they were separate letters
although they are used above or below the actual letter (like
shadda with the exception that some of them are below the letter)
(Arabic letter superscript alef, 0670)
(Arabic small high yeh, 06E7)
(Arabic small high noon, 06E8)
(Arabic small high seen, 06DC)
(Arabic small low seen, 06E3)
5 Those which are, simply, separate letters (those are regular letters
that can have a haraka or a shadda with haraka or even a Quranic
Symbol from above)
(Arabic small waw, 06E5)
(Arabic small yeh, 06E6)
Please note that Unicode doesn't have a complete set of Quranic
symbols, there are a few missed, and they are listed here:
+ (Rectangular Zero), group 1
+ (Arabic small sad initial form), group 1
+ (Place of Sajdah LINE indicator), group 3 but can be used even
if there is a symbol from group three, in which case the line
indicator should be ABOVE EVERYTHING ELSE.
+ (Fathatan Morrakabatan), dealt with the same as fathatan
+ (dammatan Morrakabatan), dealt with the same as dammatan
+ (kasratan Morrakabatan), dealt with the same as kasratan
I simply can assign them to non-standard places, for example I see
that these places are appropriate: (0610 to 0615), as they are T
in the Unicode standard.
I hope that clears up, please comment so that we can bug Qt about it :-)
--
Mohammed Yousif
"Ich liebe ihr, weil ohne sie kann ich nicht bin!"
We _will_ restore OUR Jerusalem.