软件汉化相关问题——wordpress&poEdit

最近研究了下wordpress汉化,将相关结论做整理,以供查阅。

1、wordpress汉化原理

和诸多软件一样,wordpress通过加载.mo文件来实现通一版本的不同语言限制功能,例如,zh_CN.mo一般为中文语言包。.mo文件为二级制文件,供程序读取,不可编辑。

wordpress上没有语言设置项,那是通过怎么样方式来指定定用哪个语言包加载呢?可以看到wordpress主目录的wp-config.php中define (‘WPLANG’, ‘zh_CN’); 即表示当前语言版本为zh_CN(中文版wordpress为该选项),因此在加载主题的时候,只采用对应目录下的zh_CN.mo作为语言包,因此我们在设置的时候一定要注意协调好,避免出现不生效的情况。

因此得到.mo文件后,只要做两个设置:

  1. 主目录的wp-config.php 里代码修改成:define (‘WPLANG’, ‘zh_CN’);
  2. 将zh_CN.mo文件拷贝到主题路径(/wp-content/themes/主题名)下的languages文件夹即可(如没有则新建)。

2、mo文件怎么得来的?——poEdit编辑器

poEdit官方下载地址(http://www.poedit.net/download.php 中选择Windows version(window版)下载即可),该编辑器有两个主要功能:

  1. 将.po/.pot文件转为.mo文件。(点保存自动在同目录下生成同名的.mo文件)
  2. 对.po/.pot文件文件进行编辑(翻译或者二次翻译)。.po 文件,可以从菜单中的”文件->打开” 来打开文件。.pot 文件:使用 “文件->从 POT 文件新建编目” 来打开,语言选择 “Chinese”(由于中文的代码是 zh,所以Chinese在最下面)。实际上直接用记事本打开可直接编辑,只是不太直观。
  3. 从已有项目代码中提取po模版文件。

poEdit相关教程很多,从3(提取pot)-2(编辑/翻译pot为po)-1(po生成.mo)的流程顺序执行即可,推荐一个教程:poEdit汉化WordPress主题,插件教程

wordpress主题的pot文件一般在/wp-content/themes/主题名 下的languages文件夹中。

3、po和pot文件的区别

说到这里,po和pot文件的区别其实不大(记事本打开即可看到)。一般pot由开发者提供,只有模版,文件中相关翻译的位置为空,而po文件就是在相关翻译为位置填充了翻译语句。通俗说法,pot是汉化模版(开发者提供给各国翻译者),po是翻译稿源文件(翻译者提供给二次翻译者),职责分得比较清楚,一个pot对应多种语言版本的po文件,不过实际上了解这些规则的人不多,因此基本混淆使用,但不造成多大影响。详情参见:wordpress语言文件.po.pot.mo简介及汉化

4、只有.mo怎么办?——软件汉化之路

是的,逆向解析.mo成po。

  1. 先使用poEdit安装程序bin文件夹中的msgunfmt程序将.mo文件转换成.po文件,windows下cmd命令示例:

    cd C:\Program Files\Poedit\bin msgunfmt d:\demo.mo -o d:\demo.po

    注:这里会有一个问题,如pot中有ABC3句模版,但是po中只对AB进行了翻译、C的翻译部分为空,因此得到的mo文件中只有AB的翻译,因为C没有被翻译,为节省字节,mo中不会含有C的任何信息,这样,mo文件逆向解析得到的po文件中也将不会出现C这个模版,由于pot转mo时候信息不是完全等价的(可能存在遗失,比如遗失C模版),因此逆向并不能保证得到所有的模版(也即文件pot不一定能完全还原)

  2. 再使用poedit汉化,然后生成.mo文件,这样就实现了对无po软件的汉化。

5、poEdit和gettext的关系

所谓gettext实际基于文本替换的一种技术实现,将语言部分非核心代码按照gettext标准编写,这样程序只要发布一个语言版本并且提供pot文件之后就可以让各地爱好者自行翻译汉化,节省在国际沟通上的成本。

poEdit的“从已有项目代码中提取po模版文件”也即是通过这个原理,如wordpress中语言部分通过“_e”或“__”(注意是两条下划线)来统一起来,因此你只要告诉poEdit通过“_e”或“__”这两个关键字去提取模版pot文件,poEdit自然就很容易实现“从已有项目代码中提取po模版文件”这个功能。

参考:

wordpress语言文件.po.pot.mo简介及汉化

poEdit汉化WordPress主题,插件教程

wordpress英文主题怎样汉化成中文主题?

 

浏览量(1555) | 此条目发表在计算机分类目录,贴了, 标签。将固定链接加入收藏夹。

发表回复

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

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据