Dokeos Language Translation Tool
From Dokeos
Contents |
Introduction
Dokeos is available in 28 languages: Arabic, Brazilian, Bulgarian, Catalan, Croatian, Danish, Dutch, English, Finnish, French, Galician, German, Greek, Hungarian, Indonesian, Italian, Japanese, Malay, Polish, Portuguese, Russian, Simplified Chinese, Slovenian, Spanish, Swedish, Thai, Turkish, Vietnamese.
Unfortunately some languages are no longer complete. New developments require new language strings wich are not always immediately updated. When a language string has not been translated you will get an english translation for it. The starting language of Dokeos is English and this is the language that is the most up to date (together with Dutch, French, German and Hungarian and maybe others).
Dokeos language: how does it work?
Each language has several language files (each tool has it own specific language file. The english language file is included first and then the platform language and afterwards the course language. A language variable starts in english, is then overwritten by the platform language and afterwards by the course language. If a certain language variable does not exist in the course language you will probably get and english translation for this tool. If you want to translate an english string for a certain language you have to follow the following procedure
- copy (a part of) the english translation
- search for it in the files of lang/english/ to find the language variable (remember the name of the file you found it in and the name of the language variable (or you can directly dive into the code of the apllication and look for the correct language variable(mostly stratring with $lang)
- open the same file in the lang/language_you_want_to_translate and search for this variable. If it already exist you will probably see an english translation. Change this translation. If it does not exist you can add the language variable and translate it. If this
- refresh your page. If your problem is not solved, then you might have translated the wrong language variable. note: some texts you see on the screen are composed of more than one language variable
Add a language variable
This is an easy 6 steps guide to adding a language variable into the DLTT.
1. Login 2. Click on "Add a new language variable" in the left menu 3. Choose your language file (see below) 4. Add a language variable name (e.g. $ThisActionIsNotAuthorized) 5. Add an english translation (this is a mandatory step because the english language is the reference for other translations) 6. Add your own language translation
Choosing the language file depends on the tool where the variable is located. trad4all.inc.php is a common file included in global.inc.php, so variables in there are available all over Dokeos. However, putting too much variables in there would overload Dokeos, so only use it for the common headers, footers, tools names and maybe common error messages, but keep the rest in distinct files.
If you are creating a variable for, let's say, the admin section, use the admin.inc.php file.
Language variable names *must be* using the camel-case notation (all words glued together, the first letter of each word in uppercase, like this: "ThisActionIsNotAuthorized").
The english translation is the one used by default. If no other translation is available, the english translation will be used, no matter the language. If your server is in Test Mode (as opposed to Production Mode), however, it will display the typical debug notation for the variable, showing that the translation to the current language doesn't exist.
When a course is set to a specific language, the interface is modified into that language when the learner enters the course.
When adding the english translation, if this is not your native language, PLEASE MAKE SURE YOU WRITE THE RIGHT TRANSLATION in the first place as:
- you will not be able to modify it later on
- this is the language shown to everybody by default, so it really does have a bad impact on Dokeos when the translation is bad or doesn't really read how it should.
Dokeos Language Translation Tool
This tool does not have the intention to be a comprehensive tool that solves all language problems. The main intention was to decrease the language translation problems (incomplete language files, inconsistency, mixed languages, ...) that occured when a new version of Dokeos is launched. The idea is that translations no longer occur based on the CVS language files but do happen online in on central database on http://www.dokeos.com/DLTT. The necessary language files are then created from this central database. The main aim is to obtain complete language translations so that everyone can see Dokeos in their own language (and not a mixture of English and their native language).
To do this the Dokeos Language Translation Tool (DLTT) allows the translators to make translations online on one central database. Everyone can apply to help the translation process by creating a profile which stores your name and your source language (the language you want to translate from) and the target_language (the language you are translating to). When your application as a translator is approved you can make the necessary translations.
Features
- make a translation
- step 1: select a language file
- step 2: select a language variable you want to translate (language variables that are no longer used are in pink)
- step 3: make the translation, change the status (used / possibly no longer in use), add comment (to group language variables together)
- view the language variables that do not have a translation yet
- view the language variables that are (possibly) no longer in use (see make translation)
- view the duplicate language variables
- add new language variables (for new developments)
- create the language files (admin only)
Method
As Dokeos had already several language translations we had to make sure that these translations were not lost. The first thing that was done is writing a parser so that all the existing language variables were put inside a database. This work pretty good but there were (and probably still are) some hickups. All the translation are from now on made inside this database. When we release a new Dokeos we simply create the language files from this database.
screenshots
Improvements in the Dokeos Language System
- move often used language variables to trad4all.inc.php
- suppress small language files (for instance scormbuilder.inc.php)
- remove obsolete language variablesLanguage variables that are in pink are possibly no longer in use.For the moment we can keep these language variables in but a good cleanup can further reduce the size of the language packs.
- remove lang from the language variables (and change the get_lang api and the calls to this function). By doing this we save 4bytes per language variable x about 2400 language variables starting with $lang x 30 languages => "do the math yourself" ;-) kilobytes
- Until now each file has a complete header (with comments, translators, ...). We will replace this by a reference to a language.txt file which contains all the necessary information (who made translations, some explanation what you have to do if you find errors, ...). By doing so we can save around 2kb a file x around 1000 files => 2MB. A quick test gave the following data: files with big header: 4.97 MB (zipped 2.00 MB), files with small header: 3.42 MB (zipped 1.37 MB). This reduces the Dokeos installation zip file with 600kB and a normal Dokeos installation with about 1.5 MB.
- no variables inside language variables. example:
$Message = "message"; $MessagePosted = "Your $Message was posted";
- preferably no arrays.
- a platform admin tool that allows language translations.
- change get_lang api (removing lang from all the language variables). The distinction between language variables and code variables is made through the coding rules: Cammelcase for language strings and underscoring for code variables.
The reason for this change is that there are a lot of language variables that do not start with $lang. Also removing "lang" saves some space (in the language variables itself but also in the code and the you will always call the exact language variable
function get_lang($language_string)
{
return $GLOBALS[$language_string];
}
Translators
These are the translators that have registered for DLTT.
- Arabic: Ali Pakdel,Koen Vanmeerbeek, Jason Githeko, Hassan Nilforoshan, Slim Hammami
- Brazilian: Eziquiel Menta, Marcelo Minholi, Renato Cintra, Leonardo Delpino, Luiz Caetano, Essio Godoy Junior
- Bosnian: Silvia Arlone
- Bulgarian: Dikran Hachikian, Valentin Iliev
- Catalan: Xavier de Pedro, Sergi Alifonso, Josep Llu�s Caldentey
- Croatian: Dragan Cisic, Milica Hranjec
- Danish: Kim Kold Kleener, Tristan Bendixen
- Dutch: Patrick Cool, Bart Mollet, Rene Haentjens, Roan Embrechts, Herwig Vroman, Toon Van Hoecke, Hilde Bossuyt, Bert Vanderkimpen, Thomas Berton, Olivier Cauberghe, Nicholas Mestdagh, Stefaan Vanbillemont, Tom Belmans, Frederik Vermeire, Antwain Huiskes, Koen Vanstiphout, Steven Renaer, Roel Neefs, Marc Cuffez, Toon Keppens, Wim De Smet, Dimitri Taghon, Heiko Desruelle, Thomas Corthals
- English: Roan Embrechts, Patrick Cool, Bart Mollet, Rene Haentjens, Yannick Warnier, Karel Beuckelaere, vikas bamotra, Jayakumar Kannappan, Charlotte Lizin, Bechellaoui Christophe M-A, Thomas Corthals
- Esperanto:Vito Redsky, Marc Cuffez, David Curtis, Corinne Daudier, Leo De Cooman, Tim Morley, Paul Peeraerts, Willem Wieme
- Finnish:Gaurav Shah, Jani Set�l�
- French: Patrick Cool, Rene Haentjens, Yannick Warnier, Thomas Depraetere, S�bastien Boisvert, Didier Nakache, Andr� Boivin, Nicholas Mestdagh, Gaurav Shah, Emmanuel Pecquet, Marc Sabin, Lucas Joachim, Isabelle Van Hulle, Cliquennois C, Olivier Brouckaert, Laurent Schouben
- Galician: Noa Orizales Iglesias
- German: Gerald Menzel, Wolfgang Schneider, Nikolai Stiehl
- Greek: Rene Haentjens, Eleni Postantzi, Alexandros Diamantidis, Theodoros Mastoras, Angelos Markos
- Hungarian: Denes Nagy, Istvan Mandak, Luk�cs P�ter
- Indonesian: Kurnia Muludi, Yeni Riwayanti
- Italian: Furio Petrossi, Massimo Grion, Giuseppe Zappal�, Philippe Verstraete, Alex Rota, dorella bell�
- Japanese: Hiroki Inou9e, Tairo Nomura
- Latvian:Atis Rudzitis
- Malay:
- Norwegian: Thor-Anders Pedersen, Rune Dalmo, P�l-Andr� Kj�nikse
- Persian: Ali Pakdel
- Polish: Slawomir Gurdala, Tomasz Jantczak, Wojtek Anielski, Tomasz Kopczewski
- Portuguese: Ant�nio Carvalho, Domingos Freitas, Fernando Rebelo, Manuel Russo, Maur�cio Cavalcante, Sandro Pavan, Jo�o Bastos
- Romanian: Marius Munteanu
- Russian: Alexander Lazarev, Andrej Pechonkin
- Serbian: Milica Hranjec
- Simplified Chinese: Yang Yankan, Tian Xu, Juchun Hsia, Cheng Jizhong, He Enji, Jin Yan, Shouhong Zhang
- Slovenian: Marko Kastelic
- Spanish: Juan Carlos Raña Trabado
- Spanish_Latin: Selin Carrasco, Jose Padron, Fernando Giraldo Montero, Rob Gar, Mansilla Federico, Valent�n Barr�a, Yvan Pinto, Maria R. Malmierca, Jaime Zarate, Cecilia Vargas, Bania Fuentealba, Congrio Atarip, Alexis Garcia, Jose Ramon Roca, Fernando Dougnac, Esteban Eid, Luis L�pez, Hans Le Roy, Freddy Arraez, Miguel Munoz, Diego Silva, Eliana Gallardo, V�ctor M. Hern�ndez L., Jes�s Egidio Solis Banguero, Daniel Besler, Yuei Nakada, helard flores,Mercedes Sardina, Freddy Arraez, Edwin Hipolito, Jose Mario Trujillo, Eddy Huamani Baltazar, V�ctor M. Hern�ndez L.
- Swedish: Gert H.T.S. Blomquist, Fredrik Pernros
- Thai by Assistant Professor Prachid Tinnabutr:ผศ.ประชิด ทิณบุตร http://www.prachid.com ,email:prachid@prachid.com :Demo URL : http://art.chandra.ac.th/dokeos ,http://www.wittycomputer.com/dokeos: Wisuttorn ChitAree, gumara mara, chingchai thongthai, kwanchai charoennet,
- T�rk�e: Ender Ateşman, emre yellice, Mustafa Basaran
- Vietnamese: Nguyen Nguyen Hong, Nguyen Tran Tuan Anh

