Tuesday, July 25, 2006

Linux Localization - How to

Want Linux in your own Language? Volunteer, and you will.

Remember last time when LFY distributed Hindi Linux in one of its CD? That time, some non Hindi people made hue and cry despite the fact that the said distribution can always be used in its base Language, i.e. US English. Well, to those readers, here is happy news. The same, Indlinux.org’s Indian language enabled distribution is available as Milan beta version 0.7 which has support for more than half a Dozen Indian languages that includes: Hindi, Gujrati, Kannada, Bangla, Malayalam and Tamil, and many more are coming. And, if you do not find your language there, act now, start translation and with some effort, you could have Linux in your own Language. Hindi and Bangla are well supported in Linux now, with nearly 70% of its Core GNOME translated in both languages. Bengali Translation statistics are slightly better than Hindi. Now it seems that we finally will be able to work in Computer in our own, Indian languages. The Indlinux.org Linux Milan 0.7 CD can boot either English or in Hindi interface. There is an Ankur Bangla Project for Bangla Linux, which also has remarkable Bangla interface. Some other groups are also working in localization of Linux in Indian Languages. In Milan Linux release 0.7, the file manager, the web browser, the IM Client, and the Open Office etc., all now have support for Indian Languages. Now we can save file, publish it in Web and browse web in our own, Indian languages. While we cannot dream of such things in a proprietary software, it is open–software’s beauty that you can make Linux work and talk in your own language, no matter which language you use.

Workshop to speed up translation

Recently, Contributors, Volunteers, Software Representatives and people from various Media sit together at a very fruitful Work-shop in Delhi under sponsorship of Sarai – CSDS, Delhi. The Writer of this article, an active volunteer member of Indlinux.org translation group also participated in the workshop. The workshop was organized to speed up the translation work and to have a well and better organized translations for better consistency across different translators. According to area and vocabulary, translators of same language at different places tend to use different words in translation for the same phrase. Even the translated phrase may look ridiculous or seems out of context in other region of same language as well. These things were sorted out at the workshop and a translated glossary was prepared for common terms to help translators in their translation work. In the Workhop, only Hindi and Bangla Language groups assembled but there is need for such Workshop for every language group that are involve in translation.

While it is good news that Hindi and Bangla are now well supported in Linux, still there are lots and lots of work needs to be done. Only basic, Core GNOME has been translated, that too is 70%. There are Error messages, Documentations, Help files for each application as well, that has multiple strings and need to be translated. Further, new KDE is out with support of Indian languages and that too is needed to be translated for a complete Linux experience. Then there are individual applications such as Open Office that need to be translated as well. Open Office itself is said to contain thousands of strings that need translation for localization. Further, every new version of application that released in every other week have some new words added, some revised and a few deleted. And they also need re-translation. For example, GNOME 2.2 has nearly 22 thousand strings, but its version 2.4 has more than 50 thousand strings to be translated. In short, the work is huge, monotonous, boring in nature and needs constant effort therefore require everybody’s help.

Difficulties in translation

At the workshop, translators across India exchange their methods and discussed their problems they face during translation. One major problem they face is lack of free computer based on-line Dictionary in Indian language, be it Hindi or Marathi or any other Indian language. Often translators flip endless pages of various voluminous, Hard-Bound Dictionaries to find word and its right meaning, which in fact must be available to him with a few key-stroke or a mouse click in his monitor. Is any-body listening? To speed-up things in making translation, this is a must have utility in every-one’s desktop. Ironically, we don’t even have one such good dictionary for even a price. Then, there are controversies as well. Some purists advocate translating as far as possible and that too in pure language for “true translation”. But, since some IT / Computer and Programming terminology and commands must not be translated at all, achieving total purity in computer terminology may lead to chaos and confusion. Therefore, a more practical, acceptable approach should be adopted in translation. Further, some terms may have multiple meanings or may not have a single word in the language being translated. In that case, either contextual meaning should be adopted or left un-translated. The translator must be little familiar with computer terms, however, this is not needed always since the translations are constantly refined and are on going process and there are maintainer in translation groups who check & test the final translation for validity, error etc.

Translation tools

Linux Applications are being written with the philosophy that they can be translated in any language for mass use. The applications use gettext po files that contains application’s information about basic interface, error messages, documentation etc. in primary language they are created. These are then compiled in Machine Object (mo) file to render user interface in that language. The po files can be translated in any language. Though the translation can be done on any platform and through any Unicode enabled text editor capable to take input in the Language in which translation is being done, such as Takhti, Vim, emacs, Yudit etc., it is better to use translation tools that are devised to help in easy and fast translation. Some tools are platform specific and some are available for cross platform. Here are some tools with their functionality described briefly so that you can choose the best one suitable for you. With editors like Takhti, you can create your own Keyboard map for use it as Unicode text editor using Unicode font of your language and keyboard you are familiar with. There is a language specific multi platform Bangla Unicode editor called “Lekho” (http://lekho.sourceforge.net) which can be used effectively for Bangla translation.

Yudit

This, in fact, is not a translation tool, but is a plain, multilingual Unicode text editor. Yudit is old, trusted, and available for most languages with fonts and its own key maps, it is much popular in mass, and is available for cross platform, i.e. you can use it either in Windows (2000 and XP with Indian Keyboard support) or in Linux platform. Yudit supports almost all font format and key-boards. To work on Yudit you have to simply install that font and key-map and configure it to use that font and key-map. It can convert text between various encodings with its conversion utility. You can set Keyboard input maps to act like text converters. It means, you need not to install Language environment in your system. For example, you can type in translation strings in Phonetic Keyboard like BharatBhasha, or Traditional Indian Typewriter keyboard and it will convert text in Unicode format. However, it is good if you type in Inscript keyboard with Indic fonts since it is native font style for Unicode and require much less effort. However you are free to choose your input keyboard you are familiar and proficient with that may vary from phonetic (that require multiple key-stroke for single character) to traditional etc. Yudit is plain and simple po file translator and does not have much functions or advanced features, hence has limited use for big translation projects. Further, you have to navigate through whole strings that are not divided in to separate Window and hence is little confusing. Further, its interface is crude black-green and is not eye friendly. Your eye will get fatigued easily, however this tool has one prominent feature that others lack, you can zoom in its window in steps so that you can increase the size of working Fonts to reduce eye strain who have vision problem. It does not show the errors you type in translated strings since it can not compile po file. Po files are translated with its formats preserved, i.e. if there are marks /n, %s etc. for a new line, some messages etc. respectively in original string, msgid, it should invariably have same marks in translated string, msgstr. Yudit is available free at http://www.yudit.org

Poedit

This is purely a po file translation tool and is available for multiple platforms. You can use it either in Windows 2000 / XP and Linux with Indian Language options enabled. It has some advanced features like Auto-translation, catalogue management, string numbering, po file compilation, error message display etc. that help you in better, effective and easy translation. The dis-advantage is that you can not use it if you have not set (or there is no support available) your operating environment in the language you want to translate. It takes input from the system keyboard and hence for Indian language translations, it is limited to the support your operating system provides. Poedit natively support 14 Indian languages, but is limited to 7 Indian languages in WindowsXP due to limitation in OS level support. It has very powerful auto-translation tool. When you right click on an un-translated string, it searches to its database which updated dynamically when you save your translated file, and if it finds something similar translated string, it gives you option to choose from. If you find an approximate translation, click that one, and do minor correction if necessary and you are done. The bigger your database, the more you will get hint and more easily and early you will complete your translation. Due to its auto translation feature, it has been observed that the consistency in translation is also maintained effectively. In its status bar it shows translation progress as how many strings are translated out of total along with Fuzzy (translation with error or need to be revised) translation. It is available free at http://poedit.sourceforge.net/

Gtranslator

It is a po file translation tool you can use in Linux. You have to set your keyboard environment to take input in language you want to translate. It has better, explorer bar like interface than Poedit. The window is divided in three parts. Left side one shows you three tabs - Translated, Fuzzy and Untranslate to select. Right side upper one shows original string, and the below one is for translation. It also has auto translation, po file compilation feature similar as Poedit. Gtranslator also lets you merge new, untranslated po file with old translated one. It has powerful Find /Replace / Query function for quick translation of similar strings. Gtranlator also lets you to edit po file header. Gtranlator comes with all standard Linux distribution with Gnome desktop. A pre configured, ready to work Gtranslator is available in indlinux.org’s Linux Milan 0.7 CD which lets you translate in six Indian Languages.

KBabel

KBabel is a program specifically written for advanced editing of po files with a view for speedier translation. KBabel uses KDE therefore, till recently it was not available for Indic fonts i.e. Indian Language Transaltion. But now KDE supports Indian Languages, you can use this tool effectively for translation. It has a Rough Translation tool which translate your file roughly with your Glossary like Database file in one go. Thus almost all standard menu items and other common terms get translated automatically. After that you only need to refine a bit, and translate remaining strings it fails to find in database and hence could not translate. This is the only tool that uses Dictionary and spell check if you have one for your language. It has host of other functions as well such as quick navigation between different kinds of strings, Validation of translated strings that performs checking in syntax, arguments etc. as well, for right translation. KBabel comes with standard KDE installation if you had select KDE Development during installation, else you can download and install it from http://www.kde.org

Support

If you want to contribute in translating Linux in your own language, act right now. It is advisable to join translation groups and their mailing lists for keeping in touch for their everyday activity and for getting help. You may need initial help in setting up language specific environment, fonts and key maps in your platform on which you work. The statuses of current level of translation, files to be translated etc. are maintained there. One such place is http://www.indlinux.org which is committed to translate Linux in Indian Language with the help of Volunteers. It has achieved 70% core Gnome translation in Hindi, and has released a bootable Linux CD Milan 0.7 that has Hindi Interface and lets you work in Hindi, Gujrati, Kannada, Bangla, Malayalam and Tamil. There is Bangla specific Linux project – Ankur, and you can contribute here in Bangla, of course at http://www.ankurbangla.org . Recently, there were some activities started in some govt. funded agencies as well for localization of Linux in Indian Languages. One such place is http://www.indictrans.org . CDAC and NCST are since long involved in making Indian languages reach to computers. Indictrans has also released a Morphics based Bootable Linux CD GNUBHAARATII that has Hindi interface and lets you work in some Indian language as well. This distribution has also used some translated po files from indlinux.org as all translations were also maintained as open source.

So what are you thinking? Steal a few hours every week to pay-back your society through your translation skill. If you face some problem – such as from where to start or facing difficulty in getting tools for translation or setting fonts and language environment etc., simply e-mail your difficulties to LFY at lfyedit@efyindia.com . We will be happy to help you out.

Screenshot Discriptions

  1. Translation01 Yudit – the versatile, multiplatform Unicode text editor – can be used independently for translation without system support since it uses its own key maps and fonts.
  2. Translation01 Gtranslator is GNOME tool for po file translation for Linux platform. It has some nice features such as auto translation, compilation etc. for making your translation a bit effortless.
  3. Translation01 KBabel is KDE tool for po file translation. This is most powerful tool among all available. It has built in Spell Check and Dictionary function provided if you have one in your language. It can roughly translate all strings of your file in one go with its reference database.
  4. Translation01 Takhti is a small, simple Unicode editor for Windows9x / NT/2000/XP. For occasional editing Unicode text in Win9x, this is used since it uses its own key maps. Its key maps are simple and you can write one for your own language and keyboard.
  5. Translation01 Poedit is the only multi-platform, feature full po file translation tool. You can use it in Linux as well as in Windows 2000/XP with Indian keyboard enabled.
  6. Translation01 Key-maps you can use to map your keyboard to render Unicode fonts. Linux localization is done through Unicode fonts. Mapping of keyboard is required if you use different (such as phonetic keyboard for Indian language in place of Indic) keyboards for text input.

No comments:

More Articles...

Translate in your own language

Want to translate this article in your own language? Just click the Flag below