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

Harakat is broken in Qt



 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.