This commit is contained in:
gferg 2003-06-02 15:07:36 +00:00
parent 41fbe95e2c
commit ae06924717
1 changed files with 885 additions and 0 deletions

View File

@ -0,0 +1,885 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" []>
<article>
<!-- Header -->
<articleinfo>
<title>Bengali in GNU/Linux HOWTO</title>
<author>
<firstname>Taneem</firstname> <surname>Ahmed</surname>
<affiliation>
<address> <email>taneem@_NOSPAM_bengalinux.org</email> </address>
</affiliation>
</author>
<author>
<firstname>Santanu</firstname> <surname>Chatterjee</surname>
<affiliation>
<address> <email>santanu@_NOSPAM_Softhome.net</email> </address>
</affiliation>
</author>
<author>
<othername>Progga</othername>
<affiliation>
<address> <email>abulfazl@_NOSPAM_juniv.edu</email> </address>
</affiliation>
</author>
<author>
<firstname>Sayamindu</firstname> <surname>Dasgupta</surname>
<affiliation>
<address> <email>unmadindu@_NOSPAM_bengalinux.org</email> </address>
</affiliation>
</author>
<subjectset>
<subject><subjectterm>Bangla/Bengali</subjectterm></subject>
<subject><subjectterm>Localization</subjectterm></subject>
</subjectset>
<pubdate>2003-04-25</pubdate>
<revhistory>
<revision>
<revnumber>1.1.2</revnumber>
<date>2003-04-29</date>
<authorinitials>SDG</authorinitials>
<revremark> Added section on testing the translations. Initial LDP release.</revremark>
</revision>
<revision>
<revnumber>1.1.1</revnumber>
<date>2003-04-20</date>
<authorinitials>Pro</authorinitials>
<revremark> Initial LDP release, section added on Lekho </revremark>
</revision>
<revision>
<revnumber> 1.1.0 </revnumber>
<date>2003-02-20</date>
<authorinitials>SDG</authorinitials>
<revremark> Added Developers' Guide, made some significant changes in the document structure</revremark>
</revision>
<revision>
<revnumber> 1.0.0 </revnumber>
<date>2003-02-14</date>
<revremark> Initial Release </revremark>
</revision>
</revhistory>
<abstract>
<para>The purpose of this document is to guide you setup and develop support for Bengali (Bangla) in <systemitem class="osname"><acronym>GNU</acronym>/Linux</systemitem>.</para>
</abstract>
</articleinfo>
<!-- Section1: intro -->
<sect1 id="intro">
<title>Introduction</title>
<sect2 id="preface">
<title>Preface</title>
<para> One of the foremost things on many GNU/Linuxers' wishlist is better support for their vernacular
script on their favourite operating system. But Indic scripts are some of the most difficult in
the world to add support for, because of inherent complexities like the exsistence of conjuncts
(yuktakshars) and non-standard spellings. However, the Free/Libre/Open Source community is not one that is
easily daunted, and this document tries to outline the process of setting up Bangla support in <acronym>FLOSS</acronym> applications.
Moreover, it also aims to be the "developers' guide" for new developers in the Bangla in GNU/Linux project. </para>
</sect2>
<!-- Section2: copyright -->
<sect2 id="copyright">
<title>Copyright Information</title>
<blockquote><para> Copyright (c) 2002-2003 Taneem Ahmed, Santanu Chatterjee, Progga, Sayamindu Dasgupta.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.1
or any later version published by the Free Software Foundation;
with no Invariant Sections , with no Front-Cover Texts , and with no Back-Cover Texts .
A copy of the license is located at
<ulink url="http://www.gnu.org/licenses/fdl.html">
http://www.gnu.org/licences/fdl.html</ulink>.</para></blockquote>
</sect2>
<!-- Section2: disclaimer -->
<sect2 id="disclaimer">
<title>Disclaimer</title>
<para> All copyrights are held by their respective owners, unless
specifically noted otherwise. Use of a term in this document
should not be regarded as affecting the validity of any trademark
or service mark. </para>
<para> Naming of particular products or brands should not be seen
as endorsements. </para>
<para> You are strongly recommended to take a backup of your system
before major installation and backups at regular intervals. </para>
</sect2>
<sect2 id="newversions">
<title>New Versions</title>
<para> The latest version of this mini-HOWTO will always be made available at the <ulink url="http://www.bengalinux.org">www.bengalinux.org</ulink> site in a variety of formats. </para>
<para>
<itemizedlist>
<listitem>
<para>
<ulink url="http://www.bengalinux.org/howto/bengali.html"><acronym>HTML</acronym> </ulink>. </para>
</listitem>
<listitem>
<para>
<ulink url="http://www.bengalinux.org/howto/bengali.txt">Plain text</ulink>.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.bengalinux.org/howto/bengali.pdf"><acronym>PDF</acronym>
</ulink>. </para>
</listitem>
</itemizedlist>
</para>
</sect2>
<!-- Section2: credits -->
<sect2 id="credits">
<title>Credits</title>
<para> We are extremely grateful to all the developers/users involved in the Bangla in GNU/Linux project, especially
the people at <ulink url="http://www.bengalinux.org">Ankur</ulink> and at <ulink url="http://www.nongnu.org/freebangfont">the Free Bangla Fonts project</ulink>. </para>
<para> The <acronym>XML</acronym>-stuff has been done with the help of the template written by <othercredit><firstname>Stein</firstname><surname>Gjoen</surname></othercredit>, <othercredit><firstname>Gregory</firstname><surname>Leblanc</surname></othercredit> and <othercredit><firstname>Greg</firstname><surname>Ferguson</surname></othercredit>. </para>
</sect2>
<!-- Section2: feedback -->
<sect2 id="feedback">
<title>Feedback</title>
<para> If you have any comments, criticisms, ideas, additions, corrections, questions then please do mail them to
<email>users@bengalinux.org</email> mailing list. We would be happy to help you. </para>
</sect2>
<sect2 id="conventions">
<title>Conventions used in this document</title>
<para>We have used a number of special formatting to indicate warning messages, commands, filenames, computer outputs etc.
They are listed below. </para>
<para>
<variablelist>
<varlistentry>
<term>Shell commands</term>
<listitem>
<para><command> bash$ ls </command></para>
</listitem>
</varlistentry>
<varlistentry>
<term>Notes</term>
<listitem>
<para><note><para>NOTE</para></note></para>
</listitem>
</varlistentry>
<varlistentry>
<term>Cautions</term>
<listitem>
<para><caution><para>CAUTION</para></caution></para>
</listitem>
</varlistentry>
<varlistentry>
<term>Information</term>
<listitem>
<para><tip><para>INFO</para></tip></para>
</listitem>
</varlistentry>
<varlistentry>
<term>Warnings</term>
<listitem>
<para><warning><para>WARNING</para></warning></para>
</listitem>
</varlistentry>
<varlistentry>
<term>Filename/Directory </term>
<listitem>
<para><filename>/usr/src/linux/</filename></para>
</listitem>
</varlistentry>
<varlistentry>
<term>Applications</term>
<listitem>
<para><application>application</application></para>
</listitem>
</varlistentry>
<varlistentry>
<term>Computer Output</term>
<listitem>
<para><computeroutput>no such file or directory</computeroutput></para>
</listitem>
</varlistentry>
<varlistentry>
<term>Codes/scripts</term>
<listitem>
<para><programlisting>#! /bin/bash</programlisting></para>
</listitem>
</varlistentry>
<varlistentry>
<term>Large Computer Outputs</term>
<listitem>
<para><screen>logfile begins</screen></para>
</listitem>
</varlistentry>
</variablelist>
</para>
</sect2>
<sect2 id="purpose">
<title>Purpose of this HOWTO</title>
<para> This document explains how to setup and develop support for Bangla (or Bengali) in a GNU/Linux systems. Bangla support in
GNU/Linux is by no means complete, but, in modern GNU/Linux distributions, you may be able to write in Bangla,
send emails in Bangla, chat in Bangla, save with Bangla filenames (<acronym>UTF-8</acronym>....), have some of your graphical
applications localized in Bangla, etc. Moreover, we have targeted to have the <acronym>GNOME</acronym> core translated into Bangla
by August 2003, so that it can be included in the 2.4 release of GNOME.
</para>
<para>
<note>
<para> However, note that this documents deals with Bangla support in GNU/Linux in <acronym>GUI</acronym> based applications only - we have
no immediate plans for supporting Bangla on the console. </para>
</note>
</para>
<para>
<note>
<para> Also note that the Bangla support that we speak of here is totally Unicode compliant. We do not support any kind of proprietary/non-standard encoding. </para>
</note>
</para>
</sect2>
</sect1>
<sect1 id="usersguide">
<title>Users' Guide</title>
<para> This part is mainly for the user - it does not go into the intricacies of development procedures.
However, developers planning to work in this field must also read it - so that they can setup the required
develoment environment. </para>
<sect2 id="locale">
<title>Setting up the locale for Bengali</title>
<para>The first job that you have to do is to setup the locale for Bangla. The
formal description of specific set of cultural habits for some country,
together with all associated translations targeted to the same native
language, is called the <quote>locale</quote> for this language or country. This
sub-section describes how to setup
the <filename>bn_BD</filename> locale definition file, which is for Bangladeshi Bengali. However, the Indian Bengali definition
file, i.e. <filename>bn_IN</filename>, can be used in the same manner. </para>
<para>
<note>
<para> Remember that this sub-section is not intended to explain how to create a locale definition file, we
will just explain how to <emphasis>use</emphasis> the locale defition file for Bangladeshi Bengali.
</para>
</note>
</para>
<para> The <filename>bn_BD</filename> file should come with the latest glibc package. in case you have an older glibc, you can download
this file from the <ulink url="http://www.bengalinux.org/downloads/">download</ulink> section of bengalinux.org. </para>
<para>
<caution>
<para> Make sure you have some Unicode encoded Bengali fonts installed on your system.
If you don't have one, check out <link linkend="fonts">fonts section</link>.
</para>
</caution>
</para>
<para> Now issue the following command as <systemitem class="username">root</systemitem>: </para>
<para><prompt>bash$</prompt> <userinput>localedef -f UTF-8 -i bn_BD bn_BD.UTF-8</userinput></para>
<para> This makes your system ready to be used with bn_BD locale definition. </para>
<para> Now make sure your X server is ready for Bengali locale. Check the following file <filename>/usr/X11R6/lib/X11/locale/locale.dir</filename> </para>
<para> It should have the following lines: </para>
<programlisting>
en_US.UTF-8/XLC_LOCALE bn_BD.UTF-8
en_US.UTF-8/XLC_LOCALE: bn_BD.UTF-8
</programlisting>
<para> Now your system is ready to use bn_BD.UTF-8 locale. For example,
I use the following command to open up an <command>xterm</command> with my own crappy font:
</para>
<para><prompt>bash$</prompt><userinput>LC_ALL=bn_BD.UTF-8 xterm -fn "-misc-Probhat-medium-r-normal--0-0-0-0-p-0-iso10646-1" -u8</userinput></para>
<para> Remember, if you want to use Bengali in any application, you will have to start that application under an environment where the locale was set to bn_BD.UTF-8, otherwise it won't work. </para>
</sect2>
<sect2 id="fonts">
<title>Installing the Bengali Fonts</title>
<sect3 id="install-rpm">
<title>Installing using the rpm package</title>
<para> If you are a rpm [read: RedHat %#$!@] user, then the easiest way to install the fonts from <emphasis><acronym>FBFP</acronym></emphasis> is
by using the rpm package. The rpm package can be downloaded from
<ulink url="http://www.bengalinux.org/downloads/freebanglafont-0.2-1.noarch.rpm">
http://www.bengalinux.org/downloads/freebanglafont-0.2-1.noarch.rpm</ulink> or
<ulink url="http://savannah.nongnu.org/files/?group=freebangfont">http://savannah.nongnu.org/files/?group=freebangfont</ulink>. Just install the rpm package as you would do for any other rpm package with the command </para>
<para>
<prompt>bash$</prompt><userinput> rpm -ivh freebanglafont-0.2-1.noarch.rpm</userinput>
</para>
</sect3>
<sect3 id="install-tarball">
<title>Installing using individual font file</title>
<para> If you cannot or do not want to use the rpm package, there is always the good old tgz packages.
Remember that you should have root privilege when you execute the commands mentioned here. </para>
<para> Download the files you want to install from <ulink url="http://savannah.nongnu.org/files/?group=freebangfont"> http://savannah.nongnu.org/files/?group=freebangfont.</ulink>
</para>
<para>
<note>
<para> Remember that you will find several different tgz packages in <emphasis>FBFP</emphasis>. Each of them
contain different font faces, i.e. they all look different from one another.
</para>
</note>
</para>
<para> Once you have downloaded all the packages you want, extract all the <filename>*.ttf</filename> file(s).
Basically run the following command on each <filename>*.tgz</filename> or <filename>*.tar.gz</filename> you have downloaded. </para>
<para>
<prompt>bash$</prompt><userinput>tar -zxvf your_font_package.tar.gz</userinput></para>
<para> This will create a new directory that will contain different files that comes with the font package. We are only
interested about the <filename>*.ttf</filename> files. </para>
<para> Create a new directory where you want to install these fonts. Forthe rest of this document, we will
assume we are installing the fonts in <filename class="directory">/usr/X11R6/lib/X11/fonts/bengali/</filename>
</para>
<para> Copy the <filename>*.ttf</filename> files we just extracted in to this directory, and execute the following commands: </para>
<para>
<prompt>bash$</prompt><userinput>cd /usr/X11R6/lib/X11/fonts/bengali</userinput> </para>
<para><prompt>bash$</prompt><userinput>ttmkfdir</userinput></para>
<para><prompt>bash$</prompt><userinput>mkfontdir</userinput></para>
<para>
<prompt>bash$</prompt><userinput>chkfontpath -q -a /usr/X11R6/lib/X11/fonts/bengali </userinput></para>
<para> Now we will add the new directory to <application>fontconfig</application> configuration. Usually this
configuration file is <filename>/etc/fonts/fonts.conf</filename>. Open this file with you choice of
text editor and look for the part that looks somewhat like shown below </para>
<programlisting>
&lt;dir&gt;/usr/X11R6/lib/X11/fonts/Type1&lt;/dir&gt;
&lt;dir&gt;/usr/share/fonts&lt;/dir&gt;
&lt;dir&gt;~/.fonts&lt;/dir&gt;
</programlisting>
<para>
Add the line <programlisting>&lt;dir&gt;/usr/X11R6/lib/X11/fonts/bengali&lt;/dir&gt;</programlisting> so that now it looks
something like this: </para>
<programlisting>
&lt;dir&gt;/usr/X11R6/lib/X11/fonts/Type1&lt;/dir&gt;
&lt;dir&gt;/usr/share/fonts&lt;/dir&gt;
&lt;dir&gt;/usr/X11R6/lib/X11/fonts/bengali&lt;/dir&gt;
&lt;dir&gt;~/.fonts&lt;/dir&gt;
</programlisting>
<para> After you have saved the file, execute the following command: </para>
<para><prompt>bash$</prompt><userinput>fc-cache</userinput></para>
<para> If you have GNOME print library (<systemitem class="library">libgnomeprint</systemitem>) installed, then execute the following commands: </para>
<para><prompt>bash$</prompt><userinput> cd /usr/X11R6/lib/X11/fonts/bengali</userinput> </para>
<para>
<prompt>bash$</prompt><userinput>libgnomeprint-2.0-font-install --dynamic</userinput>
</para>
<para> That should be it! If you have any problem, please let us know at <email>users@bengalinux.org</email>
</para>
</sect3>
</sect2>
<sect2 id="keyboard">
<title>Setting up the Bengali keyboard</title>
<para>
<note>
<para> The intention of this HOWTO is <emphasis>not</emphasis> to explain what is xkb symbol file, or how to create
a new layout, etc. There are tons of places on the web where one can find a better and more in-depth HOWTO about XFree86 keyboard[layout/xkb/etc]. </para>
</note>
</para>
<para> There is nothing special about setting up a Bengali Keyboard, just follow the steps described below. Remember
everything you need in the following steps can be downloaded from the <ulink url="http://www.bengalinux.org/downloads/">
download</ulink> section of bengalinux.org, except the machine and the OS :-).
</para>
<para>
<caution>
<para> Make sure you have some Unicode encoded Bengali fonts installed on your system.
If you don't have one, check out <link linkend="fonts">fonts section</link>.
</para>
</caution>
</para>
<para> Download the xkb symbol file <filename>ben</filename> and copy it to the directory where the other xkb symbol files are.
Usually this would be <filename class="directory">/usr/X11R6/lib/X11/xkb/symbols</filename> </para>
<para>
<note>
<para> <acronym>BTW</acronym>, usually only root can copy files into this directory.
</para>
</note>
</para>
<para> You are now one command away from starting the keyboard. On my system I just type the following command: </para>
<para>
<prompt>bash$</prompt> <userinput>setxkbmap -symbols "us(pc101)+ben+group(ctrl_shift_toggle)"</userinput>
</para>
<para> On your system you are most likely to use a different value for <option>-symbols</option>
option. Let me explain what they mean, then you can decide what should
be the value for your system. My default keyboard layout for X is <literal>us(pc101)</literal>.
If you don't know what is the default you use, check the <filename>XF86Config</filename> file
As the Bengali keyboard layout is defined in the second group we can simply
add everything from <filename>ben</filename> to our keyboard layout. Now you have setup
your keyboard with <literal>us(pc101)</literal> as group one and <literal>ben</literal> as your second group. What does that mean? Well in simple words: with
X you can have different layouts in different groups and you can switch
between these different layouts. And that is exactly why we added <quote>group(ctrl_shift_toggle)</quote>.
This means we can switch between the two groups by pressing <keycombo><keycap>ctrl</keycap><keycap>shift</keycap></keycombo> buttons together. Matter of fact there are other options for the toggle
switch. If your XFree86 is new enough, you will find a file named <filename>group</filename>
in the same directory you copied <filename>ben</filename>. If your system does not have this file do not worry. You can use an option like <quote>grp:shift_toggle</quote> which will toggle by pressing
both shift buttons. In which case your command becomes: </para>
<para>
<prompt>bash$</prompt> <userinput>setxkbmap -symbols "us(pc101)+ben" -option "grp:shift_toggle"</userinput>
</para>
</sect2>
<sect2 id="Bangla-Application">
<title>Some "special" Bengali only applications</title>
<sect3 id="lekho">
<title>Lekho</title>
<para> <application>Lekho</application> is a text editor for creating Bangla Unicode files without
using any type of Unicode font. </para>
<note>
<para> This section must not be taken as "The Complete Reference of Lekho". At best it can be regarded
as a short introduction to the editor. The main purpose of this section is to make you aware of
the presence of this wonderful editor. In any case, the primary source of information on Lekho
is it's website or the documentation provided with the package distribution.
</para>
</note>
<para> You may find <application>Lekho</application> helpful if you are </para>
<orderedlist>
<listitem>
<para> Too lazy/busy to install the necessary Locale, Opentype fonts and Keyboard. </para>
</listitem>
<listitem>
<para> Currently using a Gnome version earlier than 2.0 . </para>
</listitem>
<listitem>
<para> Don't have gtk+ in your system at all. </para>
</listitem>
<listitem>
<para> Want to export as Latex for use with Bangtex macro package. </para>
</listitem>
</orderedlist>
<para> Some of the major features of <application>Lekho</application> are as follows </para>
<itemizedlist>
<listitem>
<para>
Keyboard Layout- Phonetic (i.e. k=ka, kh=kha etc)
</para>
</listitem>
<listitem>
<para> Minimum Requirements- Qt 2.3 </para>
</listitem>
<listitem>
<para> Font Usage- Adarshalipi </para>
</listitem>
<listitem>
<para> Save As- UTF-8, UTF-16, ISO-8859-1 </para>
</listitem>
<listitem>
<para> Export As- HTML, Bangtex </para>
</listitem>
<listitem>
<para> Development Status- Beta </para>
</listitem>
<listitem>
<para> Support- Through Mailing list </para>
</listitem>
</itemizedlist>
<orderedlist>
<listitem>
<para> Download the latest tarball from Lekho's website at <ulink url="http://lekho.sourceforge.net">
http://lekho.sourceforge.net</ulink> (Rumours are that an RPM is
on the pipeline. By the time you read this HOWTO, it may be already out. So
please check it if you prefer RPMs). Now untar the tarball: </para>
<para> <prompt>bash$</prompt> <userinput>tar xfz Lekho.tar.gz</userinput> </para>
</listitem>
<listitem>
<para> 'CD' to the Lekho source directory and then go through the traditional way
of compilation+installation: </para>
<para><prompt>bash$</prompt> <userinput>./configure</userinput> </para>
<para><prompt>bash$</prompt> <userinput>make</userinput></para>
<para><prompt>bash$</prompt> <userinput>make install</userinput></para>
</listitem>
<listitem>
<para> At the very end of 'make install', the Adarshalipi fonts are copied to a
seperate directory and the name of this directory is also printed. Now add
that directory to your fontpath. There are several ways to do this depending
on the XFree86 version you are using. Please consult Lekho's documentation
for details. </para>
</listitem>
</orderedlist>
<para> Although Lekho is still in development stage, it has enough features to meet
the requirements of most people <acronym>IMHO</acronym>. </para>
</sect3>
</sect2>
</sect1>
<sect1 id="devguide">
<title>Developers' Guide</title>
<para> This part of the HOWTO is mainly for developers - though the user who is interested in the internals can also
go through it ;-). However, the developer should not start from here - he/she should at first read the preceding
section to setup the system for Bengali support. </para>
<sect2 id="devproc">
<title>The general development process</title>
<para> The development center is the <ulink url="http://www.bengalinux.org">www.bengalinux.org</ulink> website.
The model followed is the generic FLOSS type "bazaar" model (slightly localized version ;-), and you
get all the goodies (<acronym>CVS</acronym>, shell access, scp, email lists, etc).
If you are interested in developing, send a mail to <email>core@bengalinux.org</email> announcing your intentions. </para>
<para> A developer must be subscribed to the mailing list of the project he or she is work on - please see the
<ulink url="http://www.bengalinux.org/projects">Projects</ulink> section of Bengalinux.org. </para>
<para> Usual netiquettes are applicable to all the lists - be polite/gentle, do not send HTML mails, do not shout, etc. </para>
</sect2>
<sect2 id="prerequisites">
<title>Pre-requisites</title>
<para>
<itemizedlist>
<listitem>
<para> Must know how to read and write proper Bangla (at least Grammar should be OK). </para>
</listitem>
<listitem>
<para> Must have some sort of editor which can be used to edit Unicode encoded Bangla. (Proprietary
editors are not advisable - no support will be provided.)
</para>
</listitem>
<listitem>
<para> (This one is optional) - must have basic idea about l10n (if possible, <acronym>RTFM</acronym> by going through the
<application>GNU gettext</application> info page)
</para>
</listitem>
<listitem>
<para> Must be willing to follow the general FLOSS philosophy and procedures while developing for the project - and in general
behave like a saint ;-). </para>
</listitem>
</itemizedlist>
</para>
</sect2>
<sect2 id="transguide">
<title>Translators' Guide</title>
<sect3 id="procedural">
<title>Procedural Guide</title>
<para> Translation is pretty straight forward - you need to edit the <filename>*.po</filename> (Portable Object) files.
To get the <acronym>PO</acronym> files - check out which files are untranslated from
<ulink url="http://developer.gnome.org/projects/gtp/status/gnome-2.2/bn/index.html">
http://developer.gnome.org/projects/gtp/status/gnome-2.2/bn/index.html</ulink>. Download any one of the untranslated
files and open it in an editor that supports Bangla (sorry - vi/emacs won't work here). I personally use
<ulink url="http://www.yudit.org"><application>Yudit</application></ulink> - and other possible options
are <ulink url="http://lekho.sourceforge.net"><application>Lekho</application></ulink> and the good old <application>
Gedit2</application>. </para>
<note>
<para> Before you start working on something, make sure that you announce the file you are working on at
<email>gnome-translations@bengalinux.org</email>. This may save a lot of trouble and frustation ;-). </para>
</note>
<para> At the beginning of the file you will see some fields for filling in the translators' name, email, translation time,
package name, etc. Fill them up, and proceed to the next part. </para>
<para> You will find some lines like </para>
<programlisting>
<![CDATA[
#: atk/atkobject.c:1183
msgid "invalid"
msgstr ""
]]>
</programlisting>
<para> The first line specifies the filename and the position in which the string in the second line occurs. The
second line contains the actual string that is to be translated and the third line is the placeholder for the
translated string in Bangla. Thus, in a translated file this set would look like</para>
<programlisting>
<![CDATA[
#: atk/atkobject.c:1183
msgid "invalid"
msgstr "bhul"
]]>
</programlisting>
<tip>
<para> Here, I have written the word <foreignphrase><emphasis>bhul</emphasis></foreignphrase> in English due the limitations of present day technology. However, when you do the actual translation, you will need to write the translated strings in Bangla - and not
English. </para>
</tip>
<para> You will have to translate all the sets in a po file before it is considered to be complete. When it is complete,
mail it to the translation list <email>gnome-translation@bengalinux.org</email>, so that the other developers can also
go through it. </para>
<important>
<para> Before submitting the translation as final - please check the file with the command: </para>
<para> <prompt>bash$</prompt> <userinput>msgfmt -c filename_bn.po -o /dev/null</userinput> </para>
<para> where <filename>filename_bn.po</filename> is the file you are working on. </para>
</important>
</sect3>
<sect3 id="style">
<title>Style Guide</title>
<para> While translating, remember not to <emphasis>kill the language</emphasis> ;-). Do not overdo the translation -
do not use <foreignphrase><emphasis>Sadhu Basha</emphasis></foreignphrase>. Also, when the computer is addressing the user, it is <foreignphrase><emphasis>
samman-shuchak (karun, balun, etc)</emphasis></foreignphrase> while the computer is addressed by<foreignphrase><emphasis>karo, balo, etc</emphasis></foreignphrase>.
If a Bangla equivalent sounds too out of the ordinary - keep the English word (in Bangla script) - it can be always
changed/improved later. <emphasis>DO NOT</emphasis> overdo anything. </para>
<para>Also, keep proper nouns and trademarks/brandnames as they are. (<application>Bourne Again Shell (BASH)</application> should not be called <foreignphrase>Aabaar Bourne Shell</foreignphrase>).
</para>
<para> Use the more common word (<foreignphrase><emphasis>jaanlaa</emphasis></foreignphrase> and not <foreignphrase><emphasis>gabaakhya</emphasis></foreignphrase>). Also always remember that
the words need not be very much applicable to the actual action - an Englishman from the nineteenth century could not
even have guessed what <quote>Save</quote> can do in a computer ;-). </para>
<!--FIXME - I need to rephrase the above -->
<para> If you have comments regarding a certain translated string, please write that (commented out with a <quote>#</quote>), so that
we can go through it later. If you have more than one equivalent string in your mind, write all of them, and comment
all of them except the one you think is the best. </para>
<para> However, while commenting, remember that you <emphasis>cannot</emphasis> have any comments between the
<emphasis>msgid</emphasis> and <emphasis>msgstr</emphasis> lines. </para>
<para> That means </para>
<programlisting>
<![CDATA[
#: atk/atkobject.c:1183
msgid "invalid"
# yadayadayada
msgstr "bhul"
]]>
</programlisting>
<para>is invalid. Instead you should write-</para>
<programlisting>
<![CDATA[
#: atk/atkobject.c:1183
msgid "invalid"
msgstr "bhul"
# yadayadayada
]]>
</programlisting>
<para> Also ...last but in no way the least, spellcheck, spellcheck, spellcheck. During translation session - always sit with
your dictionary, or even better, the <emphasis>Bangla Baanaan Abhidhan</emphasis> from the Bangladesh Bangla Academy.
The <application>bspeller</application> from <ulink url="http://www.bengalinux.org/projects/dictionary/bspeller.php">Bengalinux</ulink> may be useful
here. </para>
<para> Another recommended book is the <emphasis>Samartha-ShabdaKosh</emphasis> (Bangla Thesaraus) by Ashok Mukherjee from Sahitya Samsad. </para>
</sect3>
<sect3 id="testing">
<title>Testing the translations</title>
<para> One of the most tricky things for a translator is understanding the context. For example, by simply looking at a
pofile, a translator will have no clue whether <emphasis>Open</emphasis> stands for <foreignphrase>Kholo</foreignphrase>
or <foreignphrase>Khola</foreignphrase>. To do context sensitive translation, a translator has to check out his/her
translations in action, that is, in the application interfaces. This section describes a hack to see the translations
without having to recompile the program. </para>
<note>
<para> This process works for most systems with GDM as the login manager. However, I cannot guarantee
that this will work on your system. </para>
</note>
<para> To begin with, setup the <link linkend="locale">locale for Bangla</link> and <link linkend="fonts">install some
</link> Bangla fonts. </para>
<para> Once that is done, get all the translated pofiles in a single folder in you machine (to avoid mess), and one by
one convert them into <acronym>MO</acronym> files with the command: </para>
<para><prompt>bash$</prompt> <userinput>msgfmt -o file.mo file.version.gnomeversion_bn.po</userinput></para>
<caution>
<para> While doing this, remember to strip all the version and language information from the mofile's name, ie,
<filename>gnome-games.gnome-2-2.bn.po</filename> should be converted to <filename>gnome-games.mo</filename>. </para>
<para> If you are unsure about a package, do a <command>rpm -ql packagename</command>, and you will get the naming
scheme for the package. For example, a part of the output of <command>rpm <option>-ql</option> <parameter>gdm</parameter></command> reads
</para>
<programlisting>
/usr/share/locale/ru/LC_MESSAGES/gdm-2.4.mo
/usr/share/locale/sk/LC_MESSAGES/gdm-2.4.mo
/usr/share/locale/sl/LC_MESSAGES/gdm-2.4.mo
/usr/share/locale/sv/LC_MESSAGES/gdm-2.4.mo
/usr/share/locale/ta/LC_MESSAGES/gdm-2.4.mo
</programlisting>
<para> From this, it becomes apparent that one has to issue the command <command>msgfmt <option>-o</option>
<parameter>gdm-2.4.mo gdm2.gnome-2-2.bn.po</parameter> </command> for the <application>GDM</application> package. </para>
</caution>
<para> Once you are finished with that, copy the <acronym>MO</acronym> files to <filename>/usr/share/locale/bn_IN.UTF-8
</filename> or <filename>/usr/share/locale/bn_BD.UTF-8</filename>, depending on how you set up your locale. </para>
<para> Now, open up <filename>/etc/X11/gdm/locale.alias</filename> and add the following lines to it. </para>
<programlisting>
Bengali bn_IN.UTF-8,bn_IN
</programlisting>
<para> After this, restart <application>X</application>, select Bengali in the Languages menu and relogin into
<application><acronym>GNOME</acronym></application>. You will be presented with a Bangla system. </para>
<note>
<para> For testing a single application, you don't have to go through all this stuff. Just setup the locale, install the
font and put the <acronym>MO</acronym> file in the proper place. Now, fire up <application>xterm</application>, and
issue the command <command>export LANG=bn_IN.UTF-8</command> or <command>export LANG=bn_BD.UTF-8</command>. After this,
from xterm itself, start the program you want to check, and it will start up with a Bangla interface. </para>
</note>
</sect3>
</sect2>
</sect1>
<appendix id="appendix">
<title>Appendix</title>
<para> This section contains some miscellaneous information. </para>
<sect1 id="sites">
<title>Related Websites</title>
<para>
<itemizedlist>
<listitem>
<para> <ulink url="http://www.bengalinux.org/">www.bengalinux.org</ulink>: The mother site of all major projects
related to Bangla in GNU/Linux. </para>
</listitem>
<listitem>
<para> <ulink url="http://www.nongnu.org/freebangfont">http://www.nongnu.org/freebangfont</ulink>: The font
wing of bengalinux.org. </para>
</listitem>
<listitem>
<para> <ulink url="http://www.unicode.org">www.unicode.org</ulink>: The official site of the Unicode Consortium. </para>
</listitem>
</itemizedlist>
</para>
</sect1>
<sect1 id="volunteering">
<title>Volunteering for the Bangla in GNU/Linux project</title>
<para> If you want to help us in bringing Bangla support in GNU/Linux and in other Free/Libre/Open Source Software (FLOSS)
applications, then please let us know at <email>users@bengalinux.org</email>. We are looking for mentors, developers,
beta testers, translators, font designers to volunteer for our project. Even if you are not a conventional technically
skilled person, you may help us by letting us know your comments on the work we are doing (especially the translation
jobs.) </para>
<para> Also, if you are a font developer, you may consider (re)licensing your work under the GNU <acronym>GPL</acronym> so that we can reuse
the fonts in our projects (of course, with due credit to you).
</para>
</sect1>
<sect1 id="software">
<title>Software which has Bangla rendering support</title>
<para> Rendering of the Bangla script is a complex job, especially when one has to be within the Unicode limits. Hence,
the technology behind Bangla rendering is considered to be quite <quote>bleeding edge</quote>, and only the latest software support
it. For example, Bangla text rendering support is not there in the <systemitem class="library">QT</systemitem> toolkit (which is used for <application><acronym>KDE</acronym></application>), and at present
only <ulink url="http://www.pango.org"><application>Pango</application></ulink>, which is the text rendering/layout engine of <systemitem
class="library">GTK 2</systemitem>, supports
Bangla rendering. Pango 1.1.1 and above has a seperate module for Bangla. In addition to that, in the Free Software
world, <ulink url="http://www.yudit.org"><application>Yudit</application></ulink> can render Bangla text correctly. However, the situation is
improving slowly, and in the near future, we will probably see Bangla rendering in QT based applications, <application>Mozilla</application>,
<application>OpenOffice</application>, etc. In fact, the beta version of OpenOffice (at the time of writing) has partial support for
Bangla - however, it still has some serious problems with the split vowel signs. </para>
</sect1>
</appendix>
</article>