Adding support for

New language

in Linux *


Whats required to support a language in computers

  1. [Binary representation] A character encoding standard, which identifies the characters of the language to their binary representation in the computer.
  2. [Output] A font which maps these characters to their respective glyphs.
  3. [Input] A keyboard mapping which converts
    1. scancode to the language character encoding (at a lower level)
    2. From one Character encoding to another (at a higher level)

How to support multiple languages simultaneously


How to do it in Linux

System Level

  1. Adding system locale files for the given language
    1. Character mapping
    2. Collation sequence
    3. Date time format and strings
    4. Money maters
    5. Translated messages of the applications
    Usualy the
    1. Source is in /usr/share/i18n/LL
    2. Binary is in /usr/share/locale/LL
  2. Creating requried console fonts
  3. Adding locale files for X window system
    1. Character encoding
    2. The font set that supplies the given glyphs
  4. Creating required GUI fonts (bdf-pcf, type1, ttf...)

Application Level

  1. Use gettext to add internationalization in Linux apps
    1. Intelligently identify the strings that require to be translated within gettext() function
    2. Use special functions which adapt to the currently set locale
    3. Run xgettext on the files to generate the pot file
  2. Provide translated messages for the application for the given language
    1. Run msgmerge to merge the new template with previous translated po file
    2. Run msgfmt to generate the binary mo file from the po file
    3. Install the mo file in respective locale directory
      /usr/share/locale/LL/LC_MESSAGES/application.mo

User Level

  1. Set the enviornment variable LANG to Language code (LL/LL_special)
  2. Run the application, and viola there it is, the application in your language

Hey come back later for more and clearer ideas.