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文件