iconv and gettext implement step

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值