phalcon框架多语言msgid使用中文

从wordpress项目弄了一个.po文件直接生成.mo文件 如果是英文是正常的,为了减少一套语言包 打算直接用中文做msgid 结果发现怎么都不行

各种搜索

> http://stackoverflow.com/questions/31804791/gettext-not-translating-every-string
> https://www.gnu.org/software/gettext/manual/html_node/msgfmt-Invocation.html

按说是可以解决的,继续各种折腾

> 找到一个中文的文章 http://blog.csdn.net/williamwanglei/article/details/8568926
> 这个参数是关键 –from-code=utf-8

### 步骤

> xgettext –keyword=e –from-code=utf-8 app/controllers/IndexController.php –output=fool.pot 扫描源代码生成pot文件
> msginit –locale=zh_CN –output=zh_CN.po –input fool.pot 得到.po文件
> msgfmt zh_CN.po –no-hash –o=zh_CN.mo 得到.mo文件

“`
echo $this->e(‘中文’);//得到结果 chinese
“`
完整的po文件
“`
# Chinese translations for PACKAGE package
# PACKAGE 软件包的简体中文翻译.
# Copyright (C) 2016 THE PACKAGE’S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Logiz , 2016.
#
msgid “”
msgstr “”
“Project-Id-Version: \n”
“Report-Msgid-Bugs-To: \n”
“POT-Creation-Date: 2016-03-25 17:55+0800\n”
“PO-Revision-Date: 2016-03-25 17:59+0800\n”
“Last-Translator: Logiz \n”
“Language-Team: Chinese (simplified)\n”
“Language: zh_CN\n”
“MIME-Version: 1.0\n”
“Content-Type: text/plain; charset=UTF-8\n”
“Content-Transfer-Encoding: 8bit\n”
“X-Generator: Poedit 1.8.6\n”

#: app/controllers/IndexController.php:36
msgid “Hello”
msgstr “test”

#: app/controllers/IndexController.php:37
msgid “中文”
msgstr “chinese”
“`

### phlacon 新版有个BUG

setlocale(LC_ALL, ‘zh_CN’);

要自己设置下才行

发表评论

电子邮件地址不会被公开。 必填项已用*标注