From: Martin M. <mm...@me...> - 2004-01-30 23:00:46
|
###################################################################### Webmin/Usermin - Translation - Weekly HOWTO Original: http://webmin.mamemu.de/modules.html#newlang Martin Mewes - Webmin/Usermin Translation Co-Ordinator (WTCO) Last changed: 29.01.2004 ###################################################################### History: -------- 26.01.2003 Webmin-Version 1.130 released as stable Usermin-Version 1.060 released as stable 08.01.2004 Virtualmin-Version 1.71 released as stable Administrative: --------------- 29.01.2004 FAQ-Post changed to monthly from 01.02.2004 New versions will be announced when they are released. 23.01.2004 http://www.mewes.tv/ The Source for Webmin-Translations and other fine OpenSource-Stuff My page is up again (partially), so what`s new: I have added two pages with sources to download. One is for translations for Webmin and the other for Usermin. For now its only for english into german, but with the next stable version of Webmin I will put up every incoming translation to my page so that translators can take these stuff in order to enhance the translations. 28.11.2003 I have rechecked this FAQ again and erased some of the nicest misspellings I ever saw. Those who find other things like this: From now I release misspellings in this document under GPL, which can be obtained here. German: http://www.gnu-gpl.de/gpl-deutsch.htm English: http://www.gnu-gpl.de/gpl-english.htm FAQ-EN: http://www.gnu-gpl.de/faq-en.htm ###################################################################### TOC: 1. Latest Stuff for downloading 2. Adding New Languages to Webmin 3. Is there a way to use localization when developing a new theme? 4. Use a nice script for developing languages. 5. Samples 6. Special Hint ###################################################################### 1. Latest Stuff for downloading Current Stable Release for Webmin is 1.130 http://prdownloads.sourceforge.net/sourceforge/webadmin/webmin-1.130.tar.gz http://prdownloads.sourceforge.net/webadmin/webmin-1.130-1.noarch.rpm http://webmin.mamemu.de/devel/tarballs/webmin-1.130-minimal.tar.gz Current Development Release for Webmin is 1.130 http://webmin.mamemu.de/devel/rpm/webmin-1.130-1.src.rpm http://webmin.mamemu.de/devel/rpm/webmin-1.130-1.noarch.rpm http://webmin.mamemu.de/devel/tarballs/webmin-1.130.tar.gz Current Stable Release for Usermin is 1.060 http://prdownloads.sourceforge.net/webadmin/usermin-1.060.tar.gz http://prdownloads.sourceforge.net/webadmin/usermin-1.060-1.noarch.rpm Current Development Release for Usermin is 1.060 http://webmin.mamemu.de/devel/rpm/usermin-1.060-1.noarch.rpm http://webmin.mamemu.de/devel/rpm/usermin-1.060-1.src.rpm http://webmin.mamemu.de/devel/tarballs/usermin-1.060.tar.gz Current Stable Release for VirtualMin is 1.71 http://webmin.mamemu.de/download/virtualmin/virtual-server-1.71.wbm.gz ###################################################################### 2. Adding New Languages to Webmin New translations of the existing core Webmin modules are always welcome. If you want to translate Webmin into a new language or update one of the existing translations, follow these steps : Get the latest development version of Webmin so that you can see the latest translations that have been done by other people. In the file lang_list.txt in the Webmin root directory, add a new line for your language like : lang=sw,titles=1,charset=iso-6666-6 Swahili The "lang" part defines the short code for the language, and should follow the ISO standard where possible. The "titles" part controls whether Webmin should use letter images for displaying page titles in the language, and should be set to 1 if your language uses european characters. The optional "charset" part sets the character set that is sent to the web browser when using the language, so that is can automatically select the right font to use. Switch to your new language in the Webmin Configuration module under the Language icon. In the directory lang under the Webmin root and in each of the lang subdirectories under the module directories, create a new file called sw (or whatever the short code for your language is) that is a translation of the en file in the same directory. In each of the module.info files under the module directories, add a new desc_sw= line that is a translation of the desc= line. In each of the module directories, create a new file called config.info.sw which is a translation of config.info (if it exists). In the help subdirectory under each of the module directories (where they exist), translate all of the something.html files into something.sw.html. A table of currently translated languages is available so that you can see how much has been done for each language and module so far. There is also a list of other translators that you might want to contact before doing your own translation work. You don't have to finish translating the entire of Webmin for your translation to be useful. Many people just do a few modules at a time, or skip the help pages initially. When your translation has made some progress, send a .tar.gz file of all the translated files to Martin Mewes at we...@we... so that he can include it in the main Webmin distribution. The best way to tar up everything is with the command : tar czf /tmp/translation.tar.gz */lang/sw lang/sw */module.info */config.info.sw */help/*.sw.html ###################################################################### 3. Is there a way to use localization when developing a new theme? Yes (by Jamie Cameron) There is a way to do this - create a lang/ subdirectory under your theme with the usual en, de and other files. Then in your theme CGIs or .pl, use code like : %mytext = &load_language("my-theme-directory"); print "<b>$mytext{'something'}</b> <p>\n"; ###################################################################### 4. Use a nice script for developing languages. Christophe Chisogne developed a script which is available in a special Download-Area at www.webmin.com. http://www.webmin.com/wtco/char2ent.pl There will be more stuff to download there soon. As example: dodiff.sh An easy interface to diff between en-files and your language file. dolinks.sh As there are many symlinks between Webmin and Usermin on Jamies Computer I wrote this little script which does a symlink-detection for you. So it could be that if you develop for a Usermin- Module you enhance a Webmin-Module as well :-) This is the output from the help: perl char2ent.pl Usage: char2ent [--mode=html|work] [-b] [-c] 8bitfile.txt ... char2ent [--help] [--version] --mode=x, -m=x choose html mode (default) or work mode --backup, -b backup of modified file --confirm, -c confirm conversion of each file If you still need other Entities ... German http://www.ramsch.org/martin/uni/fmi-hp/iso8859-1.html Unicode http://www.theorem.ca/~mvcorks/code/charsets/auto.html ###################################################################### 5. Samples: Editing usermin/at/lang/de is as easy as this :-) perl char2ent.pl --mode=work usermin/at/lang/de Conversion from &#ddd; entities to 8bit chars Converting file [usermin/at/lang/de]... And this now is the file ---------------------------------------------------------------------- index_user=Ausführen als Benutzer index_date=Ausführen am index_time=Ausführen um index_cmd=Auszuführende Befehle index_id=Auftrags-ID index_exec=Ausführen auf index_created=Erzeugt am index_dir=Ausführen im Verzeichnis index_return=Befehls-Liste index_cdate=Aktuelles Datum index_ctime=Aktuelle Zeit edit_cmd=Vollständiges Skript zum Ausführen edit_header=Einzelheiten des geplanten Befehls edit_delete=Diesen Befehl löschen edit_ejob=Geplanter Befehl existiert nicht mehr! create_euser=Fehlender oder ungültiger Benutzername create_ecmd=Keine Anweisungen angegeben create_edir=Fehlendes oder ungültiges Verzeichnis delete_egone=Befehl bereits ausgeführt oder gelöscht acl_users=Darf geplante Befehle bearbeiten für acl_only=Nur diese Benutzer acl_except=Alle Benutzer außer index_title=Geplante AT-Befehle index_header=Neuer geplanter AT-Befehl edit_title=Geplanter AT-Befehl edit_ecannot=Sie sind nicht berechtigt, diesen geplanten Befehl zu bearbeiten. create_err=Konnte AT-Befehl nicht einrichten create_edate=Fehlende oder ungültige Datums- oder Zeitangabe create_efuture=Datum und/oder Zeit liegt in der Vergangenheit create_ecannot=Sie sind nicht berechtigt, geplante AT-Befehle für diesen Benutzer anzulegen delete_err=Konnte AT-Befehl nicht abbrechen acl_all=Alle Benutzer acl_this=Aktuellen Webmin-Benutzer ---------------------------------------------------------------------- Now you can edit this file normally and if you are finished: perl char2ent.pl --mode=html usermin/at/lang/de Conversion from 8bit chars to &#ddd; entities Converting file [usermin/at/lang/de]... And this is the file: ---------------------------------------------------------------------- index_user=Ausführen als Benutzer index_date=Ausführen am index_time=Ausführen um index_cmd=Auszuführende Befehle index_id=Auftrags-ID index_exec=Ausführen auf index_created=Erzeugt am index_dir=Ausführen im Verzeichnis index_return=Befehls-Liste index_cdate=Aktuelles Datum index_ctime=Aktuelle Zeit edit_cmd=Vollständiges Skript zum Ausführen edit_header=Einzelheiten des geplanten Befehls edit_delete=Diesen Befehl löschen edit_ejob=Geplanter Befehl existiert nicht mehr! create_euser=Fehlender oder ungültiger Benutzername create_ecmd=Keine Anweisungen angegeben create_edir=Fehlendes oder ungültiges Verzeichnis delete_egone=Befehl bereits ausgeführt oder gelöscht acl_users=Darf geplante Befehle bearbeiten für acl_only=Nur diese Benutzer acl_except=Alle Benutzer außer index_title=Geplante AT-Befehle index_header=Neuer geplanter AT-Befehl edit_title=Geplanter AT-Befehl edit_ecannot=Sie sind nicht berechtigt, diesen geplanten Befehl zu bearbeiten. create_err=Konnte AT-Befehl nicht einrichten create_edate=Fehlende oder ungültige Datums- oder Zeitangabe create_efuture=Datum und/oder Zeit liegt in der Vergangenheit create_ecannot=Sie sind nicht berechtigt, geplante AT-Befehle für diesen Benutzer anzulegen delete_err=Konnte AT-Befehl nicht abbrechen acl_all=Alle Benutzer acl_this=Aktuellen Webmin-Benutzer ---------------------------------------------------------------------- Restrictions: You cannot use this procedure completely on ... config.info.* (WebMin) uconfig.info.* (UserMin) module.info (WebMin) .. because setting commas (,) or delimiters like a dash (-) are trailing symbols for webmin's perl scripts. You MUST write those symbols with pure HTML-Entities! ###################################################################### 6. Special hint /usr/libexec/webmin/lang/en <original> feedback_desc2=This feedback will be sent to the developer of Webmin, not your system administrator, ISP or hosting company. Please write your feedback in english, even if you are currently running Webmin in another language. </original> You should add the following (after translating it into your language). <br>If you have a question or a request on the <u>Arabic Transalation</u>, please send a feedback <u>only</u> to <u>we...@we...</u>. Complete line: feedback_desc2=This feedback will be sent to the developer of Webmin, not your system administrator, ISP or hosting company. Please write your feedback in english, even if you are currently running Webmin in another language.<br>If you have a question or a request on the <u>Arabic Transalation</u>, please send a feedback <u>only</u> to <u>we...@we...</u>. And please do not forget to set proper HTML-Entities! If you want to take care of the translations yourself you may strip off we...@we... and replace it with your own eMail-Adress. Note for the German folks: I kindly take this part for DE-Translations exclusively ;-) kind regards Martin Mewes |