安装gettext:ubuntu: apt-get install php-gettext, apt-get install gettextwindow:开启扩展 修改locale : $ /usr/share/i18n/locales //查看支持的语言 $ vi /etc/locale.gen //开启语言 $ locale-gen //是新设置的locale 生效 $ locale -a 查看目前支持的语言
example:test.php:
将这两个文件,移动到对应的文件夹中 var/www/test/locale/LC_MESSAGES
index.php 1 $lang = 'tw'; 2 putenv('LANG=zh_TW'); 3 setlocale(LC_ALL, 'zh_TW'); 4 5 $lang = isset($_GET['lang']) ? $_GET['lang'] : 'tw'; 6 7 if ('tw' == $lang) { 8 putenv('LANG=zh_TW'); 9 setlocale(LC_ALL, 'zh_TW'); // bsd use zh_TW.UTF-810 } else if ('cn' == $lang) {11 putenv('LANG=zh_CN');12 setlocale(LC_ALL, 'zh_CN'); // bsd use zh_CN.UTF-813 } else if ('en' == $lang) {14 putenv('LANG=en_US');15 setlocale(LC_ALL, 'en_US');16 }17 18 define('PACKAGE', 'hello'); // package其实是.mo文件的文件名称,比如是zj.mo那么我们写的时候只需要些(PACKAGE:zj)19 20 // gettext setting21 bindtextdomain(PACKAGE, 'locale'); // or $your_path/locale, ex: /var/www/test/locale22 textdomain(PACKAGE);//sets default domain ××我在这里栽了一个跟头,.mo的文件名称要和项目包的名称一样,这样才可以,23 24 25 // main program26 echo gettext("Hello World!");27 echo '';28 echo _("This is book.");29 echo '';30 echo _("Hello World!");
1、string gettext ( string $message ) looks up a message in the current domain 2、bool putenv ( string $setting ) Setting certain environment variables may be a potential security breach 3、string setlocale ( int $category , string $locale [, string $... ] ) string setlocale ( int $category , array $locale ) set locale information