[ilugc] Indian Language support under GNU\Linux / X

  • From: bharathi@xxxxxxxxxxxxxxxxxxxx (Bharathi S)
  • Date: Fri, 27 Dec 2002 17:30:57 +0530 (IST)

Hello Mr BGanesh and All,

Here is a short(!?) summary of our IndLinuX Team work:

Today the TeNeT Group (IIT-Madras) is involved in the wide scale
deployment of Internet kiosks across the countryside.  The kiosks
require local language software so that they can be effectively used
by the marginalized literate population of OUR country.

Given the number of Indian languages and different encoding standards
and fonts they use, it was felt that we need to develop Indian
language support that is essentially INDEPENDENT OF ENCODING & FONT.

Further, we felt that this support must be provided at the kernel /
X-Window system levels so that applications that run on top of the
kernel/X-Window system INHERIT the interface.

To this end we provide TWO different solutions under GNU Linux: kernel
based and X-Window based.

Kernel based solution: 

Indian languages have variable width characters. To support variable
width at the kernel level, a multi-glyph approach is proposed, i.e. a
keystroke may correspond to one or more glyphs. Further, the number of
keystrokes possible on the standard QWERTY keyboard is not sufficient
to represent all characters and character clusters in any given
language.  This results in the problem that a sequences of keys may
correspond to different glyphs (in that a key sequence AB might
correspond to a glyph G1, while a key sequence ABC might correspond to
a different glyph G2). This requires that the system has a memory of
the keystrokes that have been made.  To address this problem a finite
state machine and a set of associated rules was introduced in the

X-Window based solution:  

Two different solutions are supported at the X-Window level, namely,
glyph based and encoding based.  In the first approach, similar to
that of the kernel, the parsing is done on the input side, while
glyphs are produced on the output side (file/display).  In this
approach, clearly the system is tied to the font that is used.  To
overcome this problem, an encoding based solution has also been
provided.  The problem with this approach is in cursor positioning.  
The position of the cursor is maintained by the application which
interacts with X to obtain the widths of characters.  The cursor is
positioned based on the keys typed (no memory/context sensitivity is
assumed). We are yet to address this problem.  We do feel that the
only solution available to us is to provide a set of cursor APIs in X
which can be used by any application.

In either solution, the language dependent information is provided in
parse rule tables.  This information is loaded at runtime.  This
ensures that changing the local language environment is SIMPLY a
question of manipulating parse rule tables.


The solutions that we have provided enable a user to type in a local
language in most applications (Open Office/ KOffice/gcc...).  We have
further customized some of the applications (menus/errors in local
languages), namely, KOffice, Konqueror, gcc, pine, emacs.  We are
currently working on customising Open Office. We are also working on a
convertor which converts indian language documents from fonts to
encoding, fonts to fonts, encoding to font and it can also do
translitration across indian languages

Current Support:

 Tamil (Glyph-based) - TamilNet99, Inscript
 Hindi (Glyph-based) - Inscript

 Tamil (Encoding-based) - ISCII
 Hindi (Encoding-based) - ISCII

The above supports are complete (This simply means that we have
populated the appropriate language dependent parse rule files). We are
currently working on Malayalam, Oriya, Marathi and Gujarathi.

Major Bugs

  o Cursor position problem
  o Few Memory leakages

Future Plans:

This work is part of a MAJOR PLAN to develop a MULTI-MODAL interface
to the computer.  By MULTI-MODAL, we mean, handwriting, keyboard and
speech interfaces.  We have started work on both handwriting and
speech.  We have developed a handwriting interface for Tamil and have
developed speech technology software for: Speech synthesis in Tamil,
Hindi, Telugu and Malayalam (Malayalam database was obtained from
ISDL, Trivandrum). Spoken language Identification, Syllable-based
recognition of continuous speech, Speaker identification.

Web Site : http://www.tenet.res.in/Donlab/Indlinux/   ;
  ( Currently reconstruction is going on)

Send ur Comments and Suggestions : indlinux@xxxxxxxxxxxxxxxxxxxx

Bharathi S, IndLinuX Team, (__)
DONLab,     TeNeT Group,   oo /
IIT-Madras, Chennai-INDIA. (_/\

Other related posts:

  • » [ilugc] Indian Language support under GNU\Linux / X - Bharathi S