iconv and gettext implement step

王朝other·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

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]

./configure --prefix=/usr/local --enable-extra-encodings

make

make install

[gettext]

./configure --prefix=/usr/local

make

make install

[apache]

./configure --prefix=/usr/local/APACHE --enable-module=so

make

make install

/usr/local/APACHE/bin/apachectl stop

[php]

./configure --with-oci8=/home/oracle/OraHome1 --with-apxs=/usr/local/APACHE/bin/apxs --enable-sigchild --with-mysql=/usr/local/mysql --with-iconv=/usr/local --with-gettext=/usr/local --enable-track-vars --enable-mbstring=all

make

make install]

/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:

ls

example.php

$ xgettext -n *.php

$ ls

example.php messages.po

// ...

// Translates the messages.po file now

// ...

$ msgfmt messages.po

$ ls

example.php messages.po messages.mo

// ...

// Changes the example.php file

// ...

$ mv messages.po old.po

$ xgettext -n *.php

$ ls

example.php messages.po messages.mo old.po

$ msgmerge old.po messages.po --output-file=new.po

$ ls

example.php messages.po messages.mo new.po old.po

// ...

// Translates the new.po file

// ...

$ msgfmt new.po

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航