SourceForge Logo
"LEKHO"
লেখ

MULTI-PLATFORM
BANGLA UNICODE EDITOR

© Kaushik Ghose, 2001-2003
last update 2002.12.08

Summary
Screenshots
Download and install
Project page
Features
Mailing lists
lekho-interested - (release information, usage help etc.)
lekho-devel - (bug reports, bug fixes, developer info)
Browse CVS
Example Bangla page made with Lekho
নিয়মাবলী (Manual in unicode bangla)
¢euj¡hm£ (Manual in adarshalipi font)
Manual in English
Unicode on your system
Links
Some program details
Thoughts
Lekho logo

SUMMARY

Bangla (Bengali) is a modern south asian language of the indo-european family.

লেখ (Lekho) is a "plain text" editor designed to take in phonetic input from a standard US keyboard and convert (transliterate) it online into bangla text. The text is stored as unicode ( UTF-8 ) and can be read by any unicode aware application. Lekho is NOT designed to be a WYSIWYG word processor (like MS Word)

For browsers/systems that are not unicode aware, the text can be exported as a webpage composed using the Adarshalipi font. Provided this font is installed on the system, the page will render correctly.

Lekho allows the export of the bangla text in bangtex format. If you have LaTeX and bangtex installed on your system, you may use this editor to compose bangla documents to be compiled in LaTeX using the bangtex package.

Lekho is coded to run on both Linux (X11 systems) and Windows.

FEATURES CHANGE LOG

  • Flexible transliteration scheme : you can change the latin->bangla rules by modifing a text file
  • Unicode encoding. This makes the generated text a standard bangla representation
  • Export to html. Bangla webpages can be created and maintained
  • Export to LaTeX. (using the bangtex font and macro package)
  • Spell checker
  • Unlimited redo/undo
  • Limited syntax highlighting (latex and html)
  • Find and replace
  • Copy and paste between Lekho windows and other applications using the system clipboard

    (this is as far as I will go, I hear there are others who want to turn this into LyX for bangla, but I'll be in Hawaii then...)

    DOWNLOAD AND INSTALL

    The latest version is v1.15.

    Change log is here

    WINDOWS
    If you have never installed Lekho before use the
    full_install_v1.15.exe. If you have an existing installation of Lekho and want to upgrade to v1.15, download update_to_v1.15.exe. Other mirrors can be found by going to the download page at Sourceforge Look at the release notes on that page to figure out which download is the best for you. If you want to compile you should first have MS VC6 installed and the QT tool box from trolltech installed. After installing you should be able to find the source code in the directory \src where you installed Lekho. Go into the \src\vc6 subdirectory and click on vc6.dsw this should open up the required workspace. The software is released under the GNU GPL)

    LINUX/X11 SYSTEMS (e.g. FreeBSD)
    Compilation of the source is currently the only way.
    You need to get both the source code and the dictionary files (if you want to use the spell chekcer too)
    Go to the files page and get the .src.tgz file of the version you want.
    You can also get the latest version from CVS. Be aware that the CVS code may ocasionally be half worked, and may actually have more bugs than the older version, but in general I update CVS after resolving an issue.
    Get the dictionary archive from here for versions 1.15 and above, and from here for earlier versions. Unzip the archive with the command

    tar -zxvf XXXX.src.tgz where XXXX.src.tgz is the source file

    This should create a directory Lekho under which all the sources are to be found.
    Open up the Makefile in your favourite editor and change the four lines

    LEKHO_DIR = $(HOME)/C++/Lekho/
    INSTALL_DIR = $(HOME)/LekhoBin/
    OBJ_DIR = $(LEKHO_DIR)/obj/
    BIN_DIR = $(LEKHO_DIR)/bin/
    
    to where ever you want the object files and executable to be placed.
    Type make and then make install to compile and then install the program

    From v1.1 onward Lekho comes with a spell checker. In order for this to work you need to get the dictionary files which are kept on the same page as the rest of the files.
    Unzip this to some directory then keep a link to this directory as Dict where the lekho executable is kept

    e.g. for my system the location of the lekho executable is
    /home/kghose/bin
    and the dictionary directory is soft linked as
    /home/kghose/bin/Dict

    GETTING UNICODE WORKING YOUR SYSTEM

    The following worked for me

    Windows (win98,NT & 2000, my guess is it should work for win95 too)

    Get the usp10.dll (uniscribe processor) and copy it to the c:\windows\system\ directory for win9x and c:\windows\system32\ directory for NT and 2000. This dll comes as part of windows for 2000 and XP (and can be found in c:\windows\system32).
    Get the code2000 font from James Kass
    Install Internet Explorer 6. (Yes a MS product. For some reason it does what Netscape and Mozilla don't do - supports the proper rendering of OpenType fonts). And you should be all set...

    Linux

    Unfortunately no solution yet. At best Netscape 6 and Opera 6.03 can render the unicode chracters as separate glyphs. Ligatures arn't decoded and thus juktakkhor appear as letters separated by hoshonto. If you want to help with the bangla localization goto http://www.mozilla.org/projects/l10n/mlp_status.html and volunteer !

    LINKS

    BANGLA RELATED
    The evolution of bangla.
    Bangla document archive
    BanglaPenguin.org project aimed at making a complete bangla linux distribution
    Bangla on Linux

    UNICODE
    Unicode
    Unicode Bengali chart (77k)
    Some debates relevant to Bangla unicoding
    free bangla font list archive. The issues are often relevant to unicodeing in bangla...
    Unicode Test page (This will show you what unicode fonts your browser supports)

    PHILOSOPHY
    Free Software, GNU
    Opensource ond free software
    WYSIWYG vs. LaTeX like separation of writing and typesetting

    CODING
    QT from Troll Tech.
    Here's their license.
    Mozilla localization initiative
    Memory leak debuggers!
    How to build rpms from a directory of your source code.

    FONTS
    GPLd bangla fonts (free).
    James Kass has a open type font called code2000 that supports bangla ligature forms (Shareware)
    Microsoft's OT specs for Bangla

    EDITORS
    bspeller, a nice lightweight bangla editor for GNOME (linux) with a spell checker based on barda's dict
    Yudit. Unicode editor for "all" languages. Very widely used. Efficient. Mostly for Linux, but there is one windows version.
    Bengali writer very popular for X11 systems. Uses ISCII encoding. Has a spell checker, this is important.
    Ekushey, a neat plug-in for MS word that enables typing in bangla. It supports over 200 bangla TTF fonts, many keymaps and romanisation too. You can interconvert between different bangla fonts. Easy to install.

    LISTS etc.
    ilug-cal. Fairly lively.
    indic-computing mailing list at sourceforge.

    PROGRAM DETAILS

    Since you're poking round here, you probably want all the gory details. Well, here's the PG-13 version...

    The bangla script consists of 49 base forms (or 47, if you discard 2 letters considered archaic). The base consonants can be concatenated together to form ligatures whose glyphs (script form) may be unrelated to the components
    e.g. da + dha

    Consonant sounds may also be modified by vowels
    e.g. la + i

    Phonetically and logically, the "la" sound comes first in both cases and then the vowel sound "i" or "ii". But as can be seen, glyph wise, the position of the "la" changes.

    These are the challenges in encoding, storing and displaying bangla text on a computer system, especially in conjunction with other languages. Unicode provides a standard encoding scheme for all modern, living languages using 16 bits. Unicode provides a systematic way to encode bengali vowel, consonant and ligature forms. Unicode as a standard has gained wide acceptance.

    "Lekho" is designed to take in phonetic input from a standard US keyboard and convert it into bangla text. The animated gif above illustrates this. The text is stored as unicode (UTF-8) and can be read by any unicode aware application. The major issue is the proper display of the bangla glyphs corresponding to the text. A font is needed that can resolve ligatures into the proper glyphs and order vowel-consonant combinations correctly on screen. (This is in contrast to current fonts that perform a one-one mapping of code point to glyph) Opentype fonts should solve this problem. James Kass has a open type font called code2000 that supports bangla ligature forms.
    This works fine on win95 onwards using the usp10.dll and unicode aware applications. However I, at least, was unable to make this work on a linux machine.

    Lekho handles the issue of rendering glyphs by using a freely available higher ASCII bangla font called Adarshalipi to render the bangla forms on screen. This is also how it exports the text to html : it basically substitutes the unicode bangla for the corresponding glyph composition in this higher ASCII bangla font. If adarshalipi is installed on your system, the exported web page will render fine. Lekho is coded in c++ using the QT library and is source compilable on both systems. Lekho is GPLd and the source is freely available for modification and redistribution without limitation provided the conditions of the GNU GPL are met.

    CVS

    Look for Lekho (first letter is CAPS) under CVS. Thats the current CVS version. Ignore the rest, its mostly junk

    THOUGHTS etc.

    This was my first experience in coding a GUI in c++. All my previous experience was in commandline scientific number crunching stuff. This was a nice change.

    My main motivation to write this editor was to be able to write essays etc. in bangla. Of course what this editor needs is a spell checker, as you probably agree if you read bangla and have seen some of the webpages I've created.