International Conference on Computer Systems and Technologies - CompSysTech’06

Multilingual Support of e-Learning Systems:

The Bulgarian Contribution

Daniel Denev, Alexander Boichev, Preslav Nedelchev

Abstract: Multi lingual support is very important because of globalization. In this paper multilingual support for e-Learning systems is considered. Overview of the most used in common cases. Solutions for this problem in Bulgarian language for e-Learning systems and tools Moodle v.1.6dev, LAMS 1.1 Internationalization are presented. As a result of this research the criterions and requirements are to development of ML e-Learning solutions are sat up and implemented. Finally we have Moodle, LAMS and WeLOAD in Bulgarian.

Key words: e-Learning systems, multilingual support, Moodle 1.6dev in Bulgarian, LAMS v.1.1 in Bulgarian language, WeLOAD in Bulgarian

INTRODUCTION

The need of development multilingual web based software architectures is becoming increasingly more urgent as we move into the 21st century. Technology and the move to a global society demand continuous adaptation and change for those of us in education and business as we strive to upgrade skills and acquire new knowledge. Traditional methods of developing such applications are no longer meeting the needs of retaining and attracting students; adult learners need to relate to the material presented.

A question of present interest is especially important because of great number of studies and new ideas flow and modern approaches in learning. Worldwide communities’ forums of the leading open source e-Learning systems prove the above statement. [1-3] Moodle, LAMS, WeLOAD.

Moodle [1]is an alternative to proprietary commercial online learning solutions. It is an open source course management (and content management) system in witch activities are at the heart of the system. Moodle was designed on base of social constructivism. Constructionism asserts that learning is particularly effective when constructing something for others to experience. Moodle has modular design that makes it easy to create new courses, adding content that will engage learners. [1]

The Learning Activity Management System (LAMS) [2], written in Java, is part of a new generation of educational software which moves e-learning from a content-centric approach to an activity-sequence based approach. The Learning Activity Management System is a web-based learning design tool – or ‘online lesson planning tool’ as this development and research’s lecturers called it – created at McQuarie University, Sydney, Australia. [2]

WeLOAD [3]is a software tool for collecting digital materials to Content Packages and deliver them in a school intranet or via internet.

This paper is acknowledged to international leading international e-Learning projects collaboration. Exchange of new ideas in translators communities’ forums (multilingual support).

1. Common techniques for Multilanguage support development

Frequently used techniques to have web-based multilingual software are: content-language meta data, script-settings-identification, globalization-technologies in frameworks (.NET), using CSS2 dynamic classes (for fonts), exporting in external scripts (modular software architectures) and etc. We comment and compare them in a short way.

2.1 Setting up meta-tags for content in documents and appropriate character set (language codes) content-type, charset and content-language attributes into HTML code. Shortcomings of this approach are that the content needs to be doubled for all language used. Another one important condition is to save the scripts with foreign language content into utf-8 encoding.

1.2 Often used approach is script- identifying the language and country of the user's browser settings and redirect users accordingly. Doubling of web-content is not a decision (navigator.browserLanguage.substr(par1,par2)=="countr_lang_code").

1.3 Another case is web-based applications using data bases (database collation).

1.4 In .NET Framework applications the problem is solves itself due to the technology used (globalization, UICulture in .aspx file).

1.5 CSS2 dynamic classes can be an approach in multilingual applications too:

@font-face {
font-family: OldCyr;
src: local("OldCyr Cyrillic Upright"), url("http://www.fonts.org/sans/OldCyr") format("intellifont");
unicode-range: U+4??; /* Cyrillic */
font-weight: 100, 200, 300, 400, 500;
… }

Main tasks of the localization components of the web based applications are:

review identified component functionality;

localize identified component;

refine components based on users-testers from forums-feedbacks;

localization of the web content components and etc.

Main topics to track development history of complementary e-Learning platform called BEST (Bulgarian Educational Site).

2. Famous e-Learning tools in Bulgarian.

Most famous in Bulgaria worldwide projects are: Moodle, LAMS and WeLOAD. in Bulgarian The Bulgarian’s versions of these e-Learning platforms have done by us could be seen at [БГ версии ...на 1 2 3]

Moodle v. 1.5 is most suited for an educational approach involving multilingual software architecture. LAMS (Learning Activity Management System) offers lecturers a structure on which to build their lessons. LAMS v.1.1 play role of a learning activities sequences visual editor. It means that lecturers need to make their teaching explicit through the structure of LAMS and this process requires them to think about how they build a lesson. The sequence structure in LAMS can also facilitate the design and delivery of the lesson by different people.

Multilingual software architectures give opportunity of large amount of virtual (on-line) learners auditory. Such kind of knowledge presenting into multilingual software architectures will be widely used. This was initiate translation of the three discussed above solutions. During the translation process we developed and added many additional modules in to Moodle and LAMS (not only translation). This new modules needed to be translated too but this time from Bulgarian. We did many experiments and discuss in forums. This was mirror iterative translation process according criterions and standards. There aroused some computer linguistic problems, such as software application functionality and specifics.

2.1 Moodle v.1.5 Translation

Translatinon of Moodle v.1.5 was not completed when it was started [5]. As a open source there needed volunteers. Now Moodle has more than 45 language packages in contrast to commercial platforms. Unfortunately here no control mechanism for translation quality. In contrast of the beginning of the work later a build in script editor had appeared.

The language support in Moodle is structured in the following folders: help (containing the context-sensitive help files XHTML) and docs (basic documentation pages as PHP scripts).

For a Bulgarian language pack very first thing have been done was edition of the string named "thischarset" in moodle.php. It contains a valid web character set for our language. After that changes in that string have been saved in the moodle.php. As it follows a unicode version add _utf8 has been made at the end.

After that the creation of the bg language folder the file "moodle.php" take a plase. This file containing the following lines:

<?PHP
$string['thischarset'] = 'win-1251';
$string['thisdirection'] = 'ltr'; //left to right
$string['thislanguage'] = 'bg language pack';
?>

In that order followed editing of the Bulgarian language pack and small customizations have been made. We changed few things in the interface to suit bulgarian, withowt edition one of the standard language packs. The parent language (in moodle.php) to be the language that is most similar to the language user lang. (bg_BG) have been set. It is important to note that for everyone on the site to be able to see this new pack we selected it as the site language and restrict the Bulgarian languages on Admin > Configuration > Variables.

Translation of the Moodle interface language files (the "string" files) was the next step we did. These external files (php scripts) containing buttons and labels in the application were a huge number (1865 in Bulgarian language version). At that time an automated tool is needed. For this reason a built in Moodle editor tool was used. It supports an automated searching of the missing scripts. It was possible the missing php scripts with strings to be searched but for help documentation XHTML it had not been so that easy to be searched automatically. Here have to take note of the fact that this automated search of missing strings (for buttons an labels) in external language script-language packages is inapplicable. Adopted technique in those different cases could be seen from LAMS and WeLOAD translation that follow in the paper. There we describe how we solved the Bulgarian language support in that concrete examples of web-based e-Learning applications.

We used administrator permissions on our development Moodle server and we work through the language administration page.

From this administrative page the Bulgarian language from the menu has been choosen and the automated function for missing string in PHP external scripts was started.

Missing string have been translated and saved in Bulgarian language package files. If the strings were leaved empty - Moodle uses the parent language for that string instead. In parent language in moodle.php the Bulgarian have been defined as a default language used.

Following this algorithm the Bulgarian language pack was completed (only as a phase of all projects). The same approach is applicable to other language versions of Moodle. In cases when to the Moodle a new custom user module have been implemented, the one or more language files for new module in path lang/lang/newmodule.php were created where lang is the language or languages we were created the module for use with. (it was 'bg'). One of the language files for another module as a template for the file had been used. Next step was to translate “string” files in the new modules added to English language or other languages of interest. It further for implementation of the new modules (firstly developed in Bulgarian language version) in base Moodle version. (ims repository with searc, new media filter, nonlinear structure for lesson module etc.)

The Bulgarian language name in the languagepack ($string['thislanguage'] in moodle.php) was generally use Unicode Numeric Character References (NCR), because this allows the name to work within any encoding context. The files in the docs folder are completely XHTML compliants, including doc type, header etc.

There have no missing (untranslated) strings in any Moodle v.1.5

2.2 Bulgarian language version as a part of global LAMS v.1.1 Internationalisation prosess

LAMS 1.1 internationalization started and follows the standard of many other web applications. In order to have a web application in many/other languages, each label (or phrase) on the screen had tagged with an id and the content of each label puted into a language dictionary file. Each language has one dictionary file where the reference of each label is translated to that language. For instance in the login page, the "Welcome to LAMS" phrase is referenced with a unique identifier label id "lams_login_welcome".

The Bulgarian language have a separate dictionary file where all the translated labels for that particular language is stored. This dictionary (bg_dictionary.xml file) have a line that reads:

label_id = value

lams_login_welcome = Добре дошли в LAMS

the English dictionary file (en_dictionary.xml) will have then:

label_id = value

lams_login_welcome = Welcome to LAMS

and so on for each other language.

The translation of LAMS 1.1 have been started with creation a webpage on the Wiki that has all the information and tools needed to the labels into Bulgarian and others languages to be translated.

The technical work to get the internationalizations happening was supported by New Zealand Ministry of Education.

The Bulgarian dictionary (bg_dictionary.xml file) have a line that reads:

label_id = value

lams_login_welcome = Добре дошли в LAMS

the English dictionary file (en_dictionary.xml) will have then:

label_id = value

lams_login_welcome = Welcome to LAMS

Internationalisation of LAMs have been broken into two parts:

the Java side for the tools and most of the core functionality,

the Flash side.

The Flash side is covered seperately. The Java side is done using properties files which are named <something>.properties. They are also known as message resources or language files. These files are placed in the lams-dictionary.jar in the lams.ear (in JBOSS). This appears as folder on filesystem.

Bulgarian language translation for existing modules (including tools) are done, the new files was placed directly in this folder and LAMS restarted to pick up the new files. In case of an error exists in the translation then the file in the folder can be modified and LAMS restarted to pick up the new files. The restart is due to Java caching the resource files.

The txt files (e.g. bulgarian_bg.txt) in the lams-dictionary.jar have been included because the .txt files are the "original" files for languages that need UTF-8 encoding (as it has been sayed in the beginning of the papper) and hence was the starting point for the Bulgarian language version of LAMS 1.1. tahat made the translation prosess easier. The translated properties file for Bulgarian have been saved in file by BG100 encoding.

The translation of LAMS 1.1 have been started with creation a webpage on the Wiki that has all the information and tools needed to the labels into Bulgarian and others languages to be translated. The technical work to get the internationalizations happening was supported by New Zealand Ministry of Education.

For translation the web interface has been used where the list of LAMS modules are available for translation [4]. Each module displays the list of languages that is being translated to. There can be seen all language labels that have and haven't been translated. On this web interfase the labels in *any* LAMS module have been thanslated into Bulgarian. Doing translations was quite straight forward. There were two ways, the bulk translation (do all the translations at one go) or modification labels custom.

Interfase was convinient, the page displayes the English word and a brief description (in English) so the the appropiate translation could be found.

Once a module has been translated completely into a Bulgarian language the producing XML or Java properties file take place by clicking on a button and bundle into LAMS 1.1.

In LAMS 1.1, users could save their preferred locale information in database. This setting was very important (locale priority) . User interface locale will be decided by following priority:

1. Users preferred locale in lams_user table in database (locale_country and locale_language)

2. User browser client locale

Fig. 1

2.3 WeLOAD in Bulgarian language

WeLOAD [3] is a software tool for collecting digital materials to Content Packages and deliver them in a school intranet or via internet. Due to the architecture of the application all interface file are separated into language packs into direcrory “languages”. The translation proces have not been done to external scripts but it have been done on the full interface files grupped. The mechanism works as follows, when the language is changed, all files from lelated language pack in directory “languages” are copied to weload work directorie and replace the current language interfa files.