Stop using deprecated ereg() functions (#2820952)
[squirrelmail.git] / doc / translating.txt
CommitLineData
7f029a23 1How to translate SquirrelMail into another language?
2====================================================
3
8fea605c 4This document does not deal with Subversion and how to upload translations to
7f029a23 5the repository.
6
71. First time translation
8-------------------------
9
10a) You must have gettext installed. If it is not installed you can
47c5f7fc 11 download the sources from
7f029a23 12 <URL:ftp://ftp.gnu.org/pub/gnu/gettext/>.
13
14b) Find the language code for the language you are going to translate
15 into. A list of language codes can be found at
e47c673b 16 <URL:http://lcweb.loc.gov/standards/iso639-2/langhome.html>. If
974dd86d 17 there is a 2 letter code for the language, use this.
7f029a23 18
19 Create a directory squirrelmail/locale/language_code/LC_MESSAGES/.
2ce19283 20 Copy squirrelmail/po/squirrelmail.pot into this directory and rename
21 it to squirrelmail.po. This is the file that is going to be translated.
7f029a23 22
1e63b430 23c) To translate the actual strings fill in the msgstr after each
47c5f7fc 24 msgid with the appropriate translation. There are a few tools which
1e63b430 25 can make this job a bit easier at
2ce19283 26 <URL:http://i18n.kde.org/translation-howto/specialized-programs.html#gui-tools>.
7f029a23 27
28 Convert the translated squirrelmail.po into a binary file by
29 running the command "msgfmt -o squirrelmail.mo squirrelmail.po" in
30 the directory where the translated squirrelmail.po is residing.
31
867fed37 32d) Create locale/language_code/setup.php file with your translation description.
33 For example locale/tlh/setup.php
34 <?php
35 /* Klingon translation setup */
36 $languages['tlh']['NAME'] = 'Klingon';
37 $languages['tlh']['CHARSET'] = 'utf-8';
38 ?>
39
40 Before SquirrelMail 1.5.1 translation description should be added to
41 functions/i18n.php. Sample uses only required settings. Translation
42 description can use other advanced settings. Check include/i18n.php
43 or SquirrelMail developer's manual.
7f029a23 44
e3c6f613 45There is also a small script in the po/ directory that can help in
46creating charset mappings from the mappings files that are provided by
47the Unicode consortium.
7f029a23 48
492. Maintaining translations
50---------------------------
51
1e63b430 52The text strings in the program will change over time. This means that
53strings that are already translated are no longer used and new strings
54are added. Therefore it is necessary to maintain the translations.
7f029a23 55
56a) There should always be an updated template containing all strings
2ce19283 57 in SquirrelMail in squirrelmail/po/squirrelmail.pot. To merge all new
7f029a23 58 strings in this file into an existing translation run the command
59
60msgmerge squirrelmail/locale/language/LC_MESSAGES/squirrelmail.po \
2ce19283 61squirrelmail/po/squirrelmail.pot > \
0a52832c 62squirrelmail/locale/language/LC_MESSAGES/squirrelmail.po.new
7f029a23 63
64 This should keep all strings that are unchanged and comment out all
65 strings that are no longer in use. You might want to make a copy
66 before doing this.
67
2ce19283 68SquirrelMail contains po/mergepo script that can merge strings without need
69to write that complex msgmerge command. Just put your translation name as
70option.
71
47c5f7fc 72b) Run msgfmt again to create a new binary file.
7f029a23 73
74
753. Updating the template
76------------------------
77
2ce19283 78SquirrelMail provides po/xgetpo script that extracts all the required
79strings and updates po/squirrelmail.pot file.
47c5f7fc 80
81
82
2ce19283 83$ Id: $