编程与开发,写代码也是一种创作方式

php yaf 实现对.mo多语言文件的支持

生成.mo文件

  • 在根目录创建文件夹:language/zh_CN/LC_MESSAGES
  • 在该文件夹下创建test.po文件:
msgid "Welcome to My PHP Application"
msgstr "欢迎访问我的PHP应用"
  • 在Linux命令行中进入该目录,并执行msgfmt -o test.mo test.po
若环境没有msgfmt工具,请顺手安装:
sudo apt-get install gettext
或
yum install gettext-devel

初始化

  • 在application/Bootstrap.php中增加新方法
    public function _initLang()
    {
        putenv('LC_ALL=zh_CN');
        setlocale(LC_ALL, 'zh_CN');
        $domain = 'test';
        $r = bindtextdomain($domain, "../language");
        bind_textdomain_codeset($domain,  'UTF-8' );

        textdomain($domain);
        echo _("Welcome to My PHP Application");
    }

  • 不要使用common作为textdomain,否则会无法匹配到对应的.mo文件