> Andrew Dunbar: > Does it actually render all 5 characters into the one > character cell or does it need to map them to a > precomposed character? It lays the 5 characters over each other.
> Cool! Does it support the Arabic vowels? No, I have no knowledge of Arabic, the only stuff I implemented is the consonant shaping and support for 2-char ligatures. I would love to do more, but it is beyond my abilities. > Maybe Syriac. Unfortunately, Syriac is defined purely semantically in Unicode, the shaping is delegated to font renderers, which is one reason why we really need OpenType support. > Greek has a final form for Sigma but I > read somewhere that this is usually handled specially. The Greek data is in the tables, but I have no idea what a Greek user expects. (I got into trouble because of automatic shaping for Hebrew; the normal Israeli user does not expect that, so I had to add a checkbox into preferences and it is off by default). > Indian scripts don't care about position but have > extremely complex ligature requirements. We could improve the ligature support, but that may not be the best the way to go. We will need to use a 3-rd party renderer for all of this stuff sooner or later. > I think these font problems are going to become a more > prominent problem the further we get. I think you are right. That's one reason why I am so keen to migrate to FreeType, for that should at least make things easier. > We need to push for Hebrew, Arabic, Thai and Indian > language users - or at least testers! Especially the > first two since they work pretty good on the current > AbiWord - we should really make a special effort to > announce AbiWord 1.0 on Hebrew and Arabic Linux and/or > free software sites if they exist. I have been trying. There are quite a few Hebrew testers involved now, and it is working fairly satisfactory. Folk from the Arabeyes.org project expressed interest recently, and hopefully we will get some contributions from them. There is though another problem. The Hebrew-speaking folk are interested in Hebrew, which means their interest stops largely at the level of Fribidi functionality. The Arabeyes folk are interested in Arabic, planning to produce shaping engine for Arabic that could be used alongside fribidi. For me the scope is too limited. I would be happy to plug in 3rd party Arabic shaping engine, but ultimately I want more than that. In long run, Pango (or something like it) is the answer, it certainly has got the vision, but even in the medium run, I would like to be able to do more, to support any language that has line-based layout and for which the shaping can be done via the Unicode codepoints. > > Consequently, I want us to migrate to FreeType ASAP. > > This will give us a level playing field on all platforms, and > > rid us of huge problems on Unix and the serious difficulties caused > > by inconsistent behaviour of the myriad of Windows. > > This means Xft on X too, right? No, FreeType is independent of any system font mechanism; it parses the font files and gives you the glyphs as bitmaps. > > As far as Pango is concerned, apart from the > > portability problems, from what I have seen, its API would make it very > > difficult to integrate with the existing layout engine. My > > Can you give us some concrete, technical examples? > Please CC the GTK I18N list too so we can get comments > straight from the Pango guys. No, I cannot :). But as far as I understand, Pango is a fairly high level formatter, it does something like our fl_BlockLayout class, and we would have to replace the blockLayout with it _to_get_most_out_of_it_. This basically means throwing our entire existing layout engine out and start again. It could well be the best thing to do right now, but I am not fully convinced. > I'm under the impression that using Pango will make > exotic languages "just work" in places such as > dialogs and widgets too. We might handle the rendering > nicely on screen but can we handle it in say the > spellchecker window or in window title bars? I am not sure that is the case; what we can do with the widgets depends on what the widgets can do, and that varies from OS to OS. But this is a real issue we will have to address as well. > Again please tell us what Pango is missing for us specifically. I am not saying Pango is missing anything, I am merely not sure that the folk who advocate using Pango have strayed past the Pango home page. It is about time that someone undertook as serious feasibility study of using Pango. > Surely we would use Pango only for rendering the > straight "runs" of text. All formatting including > tabs we would do ourselves. If that is all we want to use Pango for, then we have to migrate to freetype first, because we will be left to do the screen drawing using glyph indices, and we do not want to do this in platform specific code, because that would mean having the whole shaping system in platform specific code, since the indices are system- dependent. Also, no-one should assume that this is trivial, to quote from the Pango docs: "While complete access to the layout capabilities of Pango is provided using the detailed interfaces for itemization and shaping, using that functionality directly involves writing a fairly large amount of code." > Surely if pango can give us a shape > to print on the screen it can give us one to print on > a printer - but I don't know printers alas... Pango, if used in the way you envisage, only gives us a glyph indices, but even if it gave us actual shapes, this would be of no use for generating PostScrip. In the Unix World the fact we can draw it on screen does not mean we can print it via PostScript, because we could well be using non-PostScript fonts on the screen. Again, I am not saying there is a problem, merely that this issue has to be looked into, for being able to support a myriad of languages on screen is not enough in itself. Just for the record, I am _not_ objecting to us using Pango, neither for low-level shaping, nor for high level layout. I am objecting to deciding to use Pango without thinking seriously through what would be involved, what it would bring us, and *WHO WILL DO THE CODING*. The bidi experience taught me that not that many people will do the coding when it comes to more "exotic" internationalization. Even in its most reduced form, the migration to Pango would require serious commitment from the entire development team, without it we should stop even talking about it right now. As for me, I am entirely convinced that we will have to migrate to using a 3rd party layout engine sooner or later, and if Pango is the best choice, let's use it. Tomas