refer to http://www.onlamp.com/pub/a/php/2002/06/13/php.html
1. Install iconv and gettext module and make configure on server
Download libiconv-1.9.1.tar.gz, gettext-0.12.1.tar.gz, apache_1.3.22.tar.gz, php-4.2.tar.gz [libiconv]
[apache]
/usr/local/APACHE/bin/apachectl start |
2. gettext implement step
1) Write PHP file using gettext function
For example:
<?
$language = 'zh_CN';
putenv("LANG=".$language);
putenv("LANGUAGE=".$language);
$newLocale=setlocale(LC_ALL, $language);
echo "current Locale: ".$newLocale."<BR>";
// Set the text domain as 'messages'
$domain = 'messages';
bindtextdomain($domain, "./locale");
textdomain($domain);
echo gettext("Hello everyone");
print(_("Hello World"));
?>
2) Setting Up the Gettext locale directory
/locale
/en
/LC_MESSAGES
messages.po
messages.mo
/zh_CN
/LC_MESSAGES
messages.po
messages.mo
3) extracts translatable strings and generate *.po files to translate
$ xgettext -n *.php
message.po:
# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE packag # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION/n" "Report-Msgid-Bugs-To: /n" "POT-Creation-Date: 2004-01-16 03:28+0000/n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE/n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>/n" "Language-Team: LANGUAGE <LL@li.org>/n" "MIME-Version: 1.0/n" "Content-Type: text/plain; charset=CHARSET/n" "Content-Transfer-Encoding: 8bit/n" #: gettext.php:23 msgid "Hello everyone" msgstr "" #: gettext.php:24 msgid "Hello World" msgstr "" |
4) Fill translation of msgid into msgstr and convert *.po to *.mo
$ msgfmt messages.po
$ cp messages.mo locale/zh_CN/LC_MESSAGES/
5) Maintain translation message file—msgmerge
For example:
|