This little manifesto is a general note about the fundamental development 
work needed for further i18n of AbiWord, and who's going to do it.  Thanks 
to all of Pruet's great information on Thai character-handling, I'll use 
Thai as an example.  

To be clear, though.  This description applies to *anyone* who is interested 
in adding support for *any* language which doesn't simply use the Latin-1 
character set.  You know who you are.  :-)

the goal
========
AbiWord was originally designed by a few English-speaking GUI fanatics who 
know a lot about what it takes to edit and format the kinds of documents we 
read and write.  Our intent all along has been to do the best job we could 
to make our stuff i18n-friendly, which is why we tried to design in stuff 
like Unicode support from the beginning.  

Our official design goal for this product is that it should Just Work, the 
way you expect it to, and we'd like that to eventually be true for every 
computer user on the planet.  

the reality
===========
However, we do know our limits.  Rather than botch the work it takes to 
truly support languages like Thai, we've decided to save that work for folks 
who really know what they're doing in that area.  After all, that's what 
being Open Source is all about, right?  :-)

Based on the information Pruet has provided, and what I know about the 
current state of the code, it looks like there are a total of seven issues 
that may need to be addressed to properly support Thai in AbiWord.  My goal 
here is to identify design issues which may also be leverageable for other 
languages.  As such, they fall into three categories:

  - charset mapping
  - combining characters
  - line break algorithms

I'll send separate messages with details on each category in a few minutes.
In each case, there are two kinds of work needed -- a general approach which 
would work for any language which has that problem, and the details specific 
to each language.  

For example, if any developers interested in adding, say, Latin-2 support 
for Czech, solve the issues in category A in a sufficiently-generic way, you 
shouldn't need to do much work in that area for Thai.  (And vice-versa, of 
course.)

bottom line
===========
I'm a native speaker of English.  Unlike most Americans, I studied more 
European languages than most (French, some German, and a bit of Russian) 
when I was in my teens, but I'm fluent in none of them, and I'm certainly no 
linguist.  Like most AbiWord developers, I'm far from an expert on i18n 
issues.  That means that my ability to *solve* i18n problems is drastically 
limited.  So, I'm not going to try.  :-)

Instead, I'll reiterate our standing offer to give whatever help we can to 
any i18n-savvy developers who want to understand the existing code so that 
they can add these features.  We're very, very willing to defer to the 
expertise of anyone who knows what they're doing here.  

Don't get me wrong.  AbiWord *will* eventually Just Work for your language 
of choice -- as soon as the developers who know how to solve that problem 
provide the code needed!

Thanks,
Paul




Reply via email to