<DIV>Hi everyone,</DIV>
<DIV>&nbsp;</DIV>
<DIV>I am working in an educational institution in India. We have using squeak to improve the level of science and maths education for over 2 years now. We train teachers to develop multimedia content for rural primary schools. In this process we face some problems. The biggest is that teachers know english sparingly. We feel that they will be better placed if we could enable squeak to display fonts for indic languages like hindi, telugu etc. I would appeal to all squeak users to extend their help and support to us in this regard. Below, I am giving the roadmap for acheiving internationalisation of squeak.</DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=2>
<P>Supporting Indian Languages in Squeak</P>
<P>=======================</P>
<P>Squeak is an IDE running on its own virtual machine. It uses 8-bit</P>
<P>bitmap fonts. Bitmap Fonts are being neglected with increasing</P>
<P>internationalization. OpenType Fonts/Unicode are being preferred.</P>
<P>To provide support for Indian language scripts we need the following:</P>
<P>1) A keyboard input mechanism</P>
<P>2) Unicode handling of squeak</P>
<P>3) Support for complex text layout</P>
<P>4) Ability to use open type fonts</P>
<P>For input of keyboard, we could depend the on the operating</P>
<P>system's input mechanisms. The user will select his own input</P>
<P>mechanism and input the characters. We could also provide support for</P>
<P>the IIIMF input mechanism (http://www.openi18n.org) if we feel that to</P>
<P>be more correct way of taking input.</P>
<P>Inorder to handle the unicode text in our application, with</P>
<P>the current 8-bit environment, it is ideal to use UTF-8 encoding. No</P>
<P>major code changes will be required this way. There will be a bit of</P>
<P>overhead finding out the length of the string, the character</P>
<P>boundaries etc. but this is the best way to get unicode support for the</P>
<P>application.</P>
<P>The next thing we need support for complex text layout. In</P>
<P>Indian languages, serveral characters make up to form a cluster. This</P>
<P>cluster should be taken as the basic unit while selecting text,</P>
<P>deleting using backspace, while moving the text cursor across the text</P>
<P>with keyboard, copy paste operations and other such actions. Also we</P>
<P>need to apply the Unicode BiDi algorithm on the text to obtain the</P>
<P>"visual" order (the order in which the users sees text on the screen)</P>
<P>of the text from "logical" order (the order in which the characters</P>
<P>are stored). For example, if we have "GREAT BUILDING" written in</P>
<P>arabic, it has to be converted to "GNIDLIUB TAERG" before trying to</P>
<P>show on the screen. Bidi algorithm also helps Indian languages render</P>
<P>the text. We could use Pango/ICU (http://www.pango.org,</P>
<P>http://oss.software.ibm.com/icu/) to handle this part. For this we</P>
<P>need to get a bridge for Pango/ICU in Smalltalk.</P>
<P>Visual ordered text thus obtained needs to be displayed on the</P>
<P>screen using opentype fonts. Opentype fonts allows us to have unicode</P>
<P>compliant fonts which have much more than 256 glyphs. The substitution</P>
<P>tables available in OTF fonts are critical for displaying Indian</P>
<P>language text. We can use the Freetype library which has got good</P>
<P>support of OTF fonts. Again we will need bindings for the Freetype</P>
<P>library to achieve this.</P>
<P>Then the text morph has to modified to keep in mind the</P>
<P>various issues in displaying international text and use the above</P>
<P>libraries to achieve its purpose.</P></FONT></DIV><p><font face=arial size=-1>
<a href="http://in.rd.yahoo.com/specials/mailtg/*http://yahoo.shaadi.com/india-matrimony/" target="_blank">
<b>Yahoo! India Matrimony</a>:</b> Find your life partner
<a href="http://in.rd.yahoo.com/specials/mailtg2/*http://yahoo.shaadi.com/india-matrimony/" target="_blank">online</a>.</font>