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)

 

 

 

 

 

 

 

 

 

 

 

 

posted on 2011-08-10 09:52  小炒花生米  阅读(13435)  评论(0编辑  收藏  举报