How to translate SquirrelMail into another language?
====================================================
-This document does not deal with CVS and how to upload translations to
+This document does not deal with Subversion and how to upload translations to
the repository.
1. First time translation
-------------------------
a) You must have gettext installed. If it is not installed you can
- download the soources from
+ download the sources from
<URL:ftp://ftp.gnu.org/pub/gnu/gettext/>.
b) Find the language code for the language you are going to translate
into. A list of language codes can be found at
- <URL:http://lcweb.loc.gov/standards/iso639-2/iso639jac.html>. If
+ <URL:http://lcweb.loc.gov/standards/iso639-2/langhome.html>. If
there is a 2 letter code for the language, use this.
Create a directory squirrelmail/locale/language_code/LC_MESSAGES/.
- Copy squirrelmail/po/squirrelmail.po into this directory. This is the
- file that is going to be translated.
+ Copy squirrelmail/po/squirrelmail.pot into this directory and rename
+ it to squirrelmail.po. This is the file that is going to be translated.
-c) To translate the actual strings fill inn the msgstr after each
- msgid with the appropiate translation. There are a few tools which
- kan make this job a bit easier at
- <URL:http://i18n.kde.org/translation-howto/gui-specialized-apps.html>.
+c) To translate the actual strings fill in the msgstr after each
+ msgid with the appropriate translation. There are a few tools which
+ can make this job a bit easier at
+ <URL:http://i18n.kde.org/translation-howto/specialized-programs.html#gui-tools>.
Convert the translated squirrelmail.po into a binary file by
running the command "msgfmt -o squirrelmail.mo squirrelmail.po" in
the directory where the translated squirrelmail.po is residing.
-d) Add the language name and language code to the array at the top of
- squirrelmail/functions/i18n.php. For a reference of correct two character
- country codes refer to this <URL:http://palimpsest.stnford.edu/lex/iso639.html>.
-
+d) Create locale/language_code/setup.php file with your translation description.
+ For example locale/tlh/setup.php
+ <?php
+ /* Klingon translation setup */
+ $languages['tlh']['NAME'] = 'Klingon';
+ $languages['tlh']['CHARSET'] = 'utf-8';
+ ?>
+
+ Before SquirrelMail 1.5.1 translation description should be added to
+ functions/i18n.php. Sample uses only required settings. Translation
+ description can use other advanced settings. Check include/i18n.php
+ or SquirrelMail developer's manual.
+
+There is also a small script in the po/ directory that can help in
+creating charset mappings from the mappings files that are provided by
+the Unicode consortium.
2. Maintaining translations
---------------------------
-the text strings in the program will change over time. This means that
-strings that are already translated is no longer used and new strings
-are added. Therefore it is neccessary to maintain the translations.
+The text strings in the program will change over time. This means that
+strings that are already translated are no longer used and new strings
+are added. Therefore it is necessary to maintain the translations.
a) There should always be an updated template containing all strings
- in SquirrelMail in squirrelmail/squirrelmail.po. To merge all new
+ in SquirrelMail in squirrelmail/po/squirrelmail.pot. To merge all new
strings in this file into an existing translation run the command
msgmerge squirrelmail/locale/language/LC_MESSAGES/squirrelmail.po \
-squirrelmail/po/squirrelmail.po > \
+squirrelmail/po/squirrelmail.pot > \
squirrelmail/locale/language/LC_MESSAGES/squirrelmail.po.new
This should keep all strings that are unchanged and comment out all
strings that are no longer in use. You might want to make a copy
before doing this.
-b) Rung msgfmt again to create a new binary file.
+SquirrelMail contains po/mergepo script that can merge strings without need
+to write that complex msgmerge command. Just put your translation name as
+option.
+
+b) Run msgfmt again to create a new binary file.
3. Updating the template
------------------------
-This script comes from Serek:
+SquirrelMail provides po/xgetpo script that extracts all the required
+strings and updates po/squirrelmail.pot file.
+
-#!/bin/bash
-xgettext --keyword=_ -keyword=N_ \
- --default-domain=squirrelmail/po/squirrelmail \
- -C squirrelmail/src/*.php
-xgettext --keyword=_ -keyword=N_ \
- --default-domain=squirrelmail/po/squirrelmail \
- -C -j squirrelmail/functions/*.php
+$ Id: $