wordpress的汉化机制
1. 在php文件中,需要汉化的地方使用__()或_e()函数进行标识;2. 创建.po文件,进行翻译;
3. 将.po文件编译成.mo文件;
4. 向主题中加载.mo文件。
__()函数和__e()函数
这两个函数都接收字符串作为参数。例如:1 2
__("Translate Me") _e("Translate Me")
它们的区别在于:_()函数 返回翻译后的字符串,而__e()函数 打印出翻译后的字符串。其实__e()就相当于echo __()。
.po文件和.mo文件
.po文件用来对已标识的字符串进行汉化,它的格式如下:1 2 3 4 5 6 7 8 9 10 11
#: sidebar.php:22 msgid "Get updates by email" msgstr "通过邮件订阅更新" #: sidebar.php:33 msgid "Latest Posts" msgstr "最新文章" #: sidebar.php:37 msgid "Feed _disibledevent=>msgstr "订阅"
msgid是用__()或_e()标识的字符串,msgstr是对应的翻译。
.mo文件二进制文件,它由.po文件生成,wordpress在生成网页时使用它来快速提取翻译后的字符串。
可以用poedit软件来快速方便地( 批量 )生成.po文件和.mo文件。
poedit的使用
poedit可以从它的主页下载。如果主题目录中已经存在zh_CN.po文件,直接用poedit进行编辑即可;如果不存在则参见以下步骤:
1. 点击“ 文件-新建消息目录文档”。
2. 在弹出的对话框中填写“工程名称以及版本”、“团队”、“团队专用电子邮件”、“语言”、“字符集”、“源代码字符集”等信息。
注意:不要填写“国家”,否则是否汉化会信赖于国家而不是信赖于语言。
3. 切换到“路径”选项卡,在“基本路径”中填入要汉化的主题的路径,在“路径”中加入一个"点(.)"。
4. 切换到“关键字”选项卡,在“关键字”中加入“__”和“_e”,这样poedit就会在所有php文件中查找由__()和_e()标识的字符串。
5. 点击确定后,弹出“另存为”对话框,把po文件命名为zh_CN.po。poedit会自动从所有php文件中提取出需要翻译的字符串,如下图所示,一项一项翻译就可以了。
在“编辑-首选-编辑器-行为”中勾上“保存时自动编译.mo文件”,则在保存时会自动生成zh_CN.mo文件。
若翻译完后又在php文件中添加或删除了要翻译的字符串,点击“类目-自源更新”,poedit会查找出相应的变更。
使用汉化主题
如果你用的是wordpress中文版,那么汉化完的主题就可以直接使用了;如果是英文版,则需要把wordpress安装目录的wp-config.php文件中的:1 2 3
define ('WPLANG', ''); 改成: define ('WPLANG', 'zh_CN');
更多信息参见:
- I18n for WordPress Developers
- How to create a .po language translation
附:php gettext方式实现UTF-8国际化多语言(i18n)