分类 [ 网页网站 ] 下的全部文章
如何通过语言包汉化国外 wordpress 主题

来自:http://www.deep-time.com/ru-he-tong-guo-yu-yan-bao-han-hua-guo-wai-wordpress-zhu-ti/

第一步、安装 wordpress 和主题

首先安装好 wordpress 和下载的国外主题(国际化主题 GetText 有两个函数: _e 和 __ (两条下划线)。 “_e”是用来显示 “单纯”文本,__ 函数用于显示已经使用 PHP 标签的文本。)

第二步、下载并安装 Poedit 软件

PoEdit 是一款.po 文件编辑器,常用来汉化各种程序,用来制作 WordPress 的语言包也非常方便。

Poedit 官方网站:http://www.poedit.net/

最新版本安装好后,自动切换为中文版,不用另外设置

第三步、让 WordPress 加载语言包

找到主题文件目录的 functions.php 文件,把下面代码添加到 functions.php 文件里面即可:

load_theme_textdomain('DeepTime', get_template_directory() . '/languages');

上面代码的意思是加载主题目录下面的 languages 文件夹里的语言包,并定义为 DeepTime。

注意:只有把语言包加载到 WordPress 中,才可以看到我们制作的语言包的效果。

模板文件中有两种方法可以调用语言包:

例如:

<?php _e("The page you're looking for doesn't exist", "DeepTime"); ?>
<?php the_content(__('Read more...', "DeepTime")); ?>

上面代码中的第二个参数“DeepTime”就是我们在第一步里面 load_theme_textdomain() 函数的第一个参数。
第四步、配置 Poedit 软件,自动生成语言包
PoEdit 的配置很简单,启动 PoEdit,依次选择“文件” “新建编目”,分三个步骤,从左到右进行配置,如下图:

第一个步骤是配置预语言包的基本信息,版本之类的。

第二个步骤是配置语言包的路径,这个很关键,路径不对,PoEdit 软件是不能顺利检索模板文件中的语言关键字的。在图示 1 的红色框内填你想汉化的文件夹路径,如: “D:\Phpnow\vhosts\zequn-wh.com\wp-content\themes\dt-zequn”;在图示 2 的红色框内填上路径,如:“.”,这里的“.”代表基础路径当前文件夹下所有文件;

第三个步骤是语言关键字设置,WordPress 里面是 __ 和 _e,然后查看下当前需汉化主题有没有自定义的语言关键字(如:_x 等),如果有,都添加进去。

都设置完后点确定,选择保存路径,保存到主题文件的 language 文件夹下,弹出更新摘要对话框,选确定就 OK 了。

剩下的就是完善每个语言字段对应的中文,回到 WordPress 打开页面检查语言包的效果了。

WordPress 语言文件.po .pot 和.mo 简介及汉化教程

本文来自:http://www.benmao.com/archives/1449

最近使用 PO 文件汉化 wordpress 模板,查找了一些资料,也分享给大家。

使用 WordPress 的朋友都会发现有一些.pot 或是.mo 为后辍名的文件, 这些文件其实就是 WordPress 程序的语言包及编译文件. 我们把做的就是把这些文件翻译成中文并编辑为.mo 格式. 现在先介绍一些基本知识, 让我认识 pot 文件、po 文件、mo 文件分别是什么和它们之间的关系。

一、文件简介
.po 文件,.mo 文件,.pot 文件是由 gettext 程序生成或者使用的源代码和编译结果。

1、.pot 文件
是一种模板文件,其实质与.po 文件一样,其中包含了从源代码中提取所有的翻译字符串的列表,主要提供给翻译人员使用。

2、.po 文件

  • 用程序 msginit 来分析 pot 文件,生成各语言对应的 po 文件,比如中文就是 zh_CN.po,法语就是 fr.po 文件。
  • PO 是 Portable Object(可移植对象)的缩写形式,它是面向翻译人员的、提取于源代码的一种资源文件。
  • .po 文件可以用任何编辑器如 poEdit,vi,Emacs,editplus 打开,交给翻译人员来将其中的文字翻译成本国语言。

3.mo 文件

  • 用 msgfmt 将.po 文件编译成 mo 文件,这是一个二进制文件,不能直接编辑。
  • MO 是 Machine Object(机器对象)的缩写形式,它是面向计算机的、由.po 文件通过 GNU gettext 工具包编译而成的二进制文件,应用程序通过读取.mo 文件使自身的界面转换成用户使用的语言,如简体中文。
  • 可以用工具如 msgunfmt 命令将.mo 文件反编译为.po 文件。

不止  ,包括很多桌面应用程序都是是依靠 po 文件或 mo 文件来实现多语言版本。一般情况下,我们在汉化软件的时候会碰上如下几种情况:

二、几种情形
1、如果程序本身提供了.po 文件,直接使用 poEdit 汉化,并自动生成.mo 文件。
2、如果程序提供了.pot 文件,复制一份并更改后缀名为.po,再使用 poEdit 汉化,最后生成.mo 文件。
3、程序既没有提供.po 文件,也没有提供.pot 文件,只提供了.mo 文件,那么有以下步骤:
(1)使用 poEdit 安装程序 bin 文件夹中的 msgunfmt 程序将.mo 文件转换成.po 文件,命令类似如下:msgunfmt

d:\demo.mo -o d:\demo.po

注:在命令提示符界面,使用 msgfmt demo.po 命令将 po 文件编译为可用的 demo.mo 文件,用 msgunfmt demo.mo 命令转回 demo.po 文件,这些命令在 poEdit 的安裝目录下有,可以拷贝 msgunfmt.exe 、msgfmt.exe 及相关链接库文件 gettextlib.dll 、gettextsrc.dll 、iconv.dll 、intl.dll 到 c:/windows/system32 目录下使用。
(2)使用 poedit 汉化,然后生成.mo 文件。

三、参考资料
1、在 Windows 系统搭建 Linux 软件汉化平台
2、Wordpress 语言文件介绍:po 文件,mo 文件,pot 文件
3、如何汉化 po 文件及编译成 mo 文件
如何汉化 po 文件及编译成 mo 文件
本文介绍如何 汉化、翻译 po 文件 及 编译、转换成 mo 文件

我们在使用 WordPress 及其插件时,经常可以找到汉化的版本,一般是通过一个汉化过(翻译过)的 mo 文件来实现( WordPress 仅可识别 mo 文件),实际上不单 WordPress ,包括很多桌面应用程序都是是依靠 po 文件或 mo 文件来实现多语言版本。如果原作者提供了一个 po 文件或 mo 文件,那么我们就可以通过相关工具来自行汉化,或者翻译成其他语言版本。因为 mo 文件不能直接编辑,所以我们得编辑 po 文件,若仅有 mo 文件,那么就应该先把它转换成 po 文件后再进行编辑翻译。

至于编辑工具,由于 po 文件本身就是一个文本文件,所以任何文本编辑器都可以使用。除了专门编辑 po 文件的 poEdit ,还推荐使用 poEdit 、EditPlus、UltraEdit 或者你喜欢的 vi 或 vim。
我们来看一个 po 文件,这是 yskin 制作的 WordPress 2.11 中文版 po 文件 中的一部分

msgid ""
msgstr ""
"Project-Id-Version: WordPress 2.1-1.0\n"
"PO-Revision-Date: 2007-02-22 12:35+0800\n"
"Last-Translator: yskin \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Basepath: d:/wordpress\n"
"X-Poedit-Language: Simplified Chinese\n"
"X-Poedit-Country: China\n"
"X-Poedit-SourceCharset: utf-8\n"
"X-Poedit-KeywordsList: _e;__;__ngettext:1,2\n"
"Language-Team: \n"
"POT-Creation-Date: \n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Poedit-SearchPath-0: .\n"

# 第一条要翻译的字符串。
#: wp-comments-post.php:15
msgid “Sorry, comments are closed for this item.”
msgstr “对不起,这篇文章禁止评论。”

上面是这个 po 文件的最初部分,各行意思一目了然,注意编码尽可能采用 UTF-8。

# 第一条要翻译的字符串。
#: wp-comments-post.php:15
msgid “Sorry, comments are closed for this item.”
msgstr “对不起,这篇文章禁止评论。”

这段就是 po 文件的主体结构了,每一个翻译项占一段。#: wp-comments-post.php:15 说明字符串相应的位置; msgid “Sorry, comments are closed for this item.” 翻译前的原文; msgstr “对不起,这篇文章禁止评论。” 翻译后的字符串。以此类推,即可完成所有资源的翻译。非常简单。
那么如何将 po 文件编译成(转换) mo 文件呢?

如果你使用的是 poEdit ,按 Ctrl + s 保存就会自动生成相应的 po 文件和 mo 文件;
或者在命令提示符界面,使用 msgfmt demo.po 命令将 po 文件编译为可用的 demo.mo 文件,用 msgunfmt demo.mo 命令转回 demo.po 文件,这些命令在 poEdit 的安裝目录下有,可以拷贝 msgunfmt.exe 、msgfmt.exe 及相关链接库文件 gettextlib.dll 、gettextsrc.dll 、iconv.dll 、intl.dll 到 c:/windows/system32 目录下,或者安装 .Net 2.0 环境。

另外推荐一款 GUI 界面的转化程序 po2mo.exe ,作者的说明:该程序是调用 msgfmt.exe 和 msgunfmt.exe 文件,从而进行 po 、mo 文件互转。文件是用 C# 写的,需要.Net 2.0 环境。

下面介绍几个工具的简单使用方法:

用 Pootle 翻译 WordPress

  1. 在 Pootle服务器注册一个账号,发送一份邮件给管理员,要求增加我们的目标语言版本的 WordPress
  2. 开始翻译前,请登录Pootle。未登录用户有时能够浏览内容、提交意见,但翻译是登录用户的独有权利,不登录无法翻译。
  3. 访问目标语言的 WordPress 页面。例如 Afrikaan 语的页面是pootle.locamotion.org/af/wordpress/(不要忘了结尾斜线)。
  4. 点击“Show Editing Functions(显示编辑功能)”
  5. 点击“Quick Translate(快速翻译)”以编辑未翻译的与语义含糊的内容,或点击“Translate All(翻译全部)”以编辑所有内容。

为了能在 locamotion.org 上翻译 WordPress,wordpress.pot 文件被分散成多个小逻辑单元,其中包括 readme.html 文件,还包括一个包含所有内容的文件,用户可将该文件按正常步骤手动添加到 PHP 文件中。 这里这里有对 WordPress 翻译的相关介绍。

将翻译结果整合到 wordpress.pot 正常情况下,翻译人员可用 Pootle服务器随时下载自己翻译的软件的 PO 文件,并将下载的文件提交到自己的翻译项目中。但由于在 pootle.locamotion.org 上,原始源代码被分散成多个小单元,翻译人员不得不手动整合翻译结果和 wordpress.pot 文件,之后再将结果提交到 WordPress。

  1. 下载官方WordPress POT file
  2. 下载WordPress Continent POT file (可选操作)
  3. 在本地机器上下载并安装 Translate Toolkit
  4. 从 Pootle服务器上下载经过翻译的或部分翻译的 PO 文件。可以逐个下载,也可以以 ZIP 文件形式一次性下载(参见网站上的选项)。一般情况下下载经过翻译的 PO 文件无需登录 Pootle。
  5. 首先将 PO 文件整合到 0 翻译记忆中(整合后,之后的操作中只需要处理一个文件),在命令行中执行以下命令:po2tmx -l xx -i pofiles -o xx.tmx,其中 xx 即你的目标语言代码。以上操作生成一个名为 xx.tmx 的 TMX 翻译记忆文件。
  6. 接下来根据翻译记忆文件预翻译 WordPress POT 文件。可执行以下命令进行预翻译:pot2po –tm=xx.tmx -i wordpress.pot -o wordpress_xx.po。该命令为目标语言生成一个 PO 文件,文件名为 wordpress_xx.po。
  7. 最后,在命令行中使用pocount wordpress_xx.po来计算 PO 文件的字数 / 字符数,查看有多少内容已经被翻译,多少内容还没有翻译或意义不明。

如果所有 PO 文件都被 100% 翻译了,最终的 wordpress_xx.po 文件也会被 100% 翻译。如果 PO 文件中有字符串没有被翻译,pot2po 命令可能会造成 wordpress_xx.po 文件中的翻译语句含意模糊(这未必是坏事)。

用 poEdit 翻译 WordPress

  1. 下载并安装poEdit
  2. 下载官方WordPress POT file
  3. 在 poEdit 中打开官方 WordPress POT 文件
  4. 标注有①的文本框是 POT 文件中的原始信息(英文)。在标注有②的文本框中添加对①的翻译,在标注有③和④的文本框中添加对该信息的注释。与翻译团队合作时,可以通过这种方式分享自己对 PO 文件内容的看法。
  5. 文件——另存为….中将翻译结果保存为 PO 文件。
  6. 翻译完毕后,再次在文件——另存为….中将翻译结果保存为 PO 文件。
  7. 也可以点击文件——优先级,然后在编辑框中点击保存时自动编译.mo 文件

用 KBabel 翻译 WordPress

本部分内容不完整。

  1. 下载官方WordPress POT file
  2. 在 KBabel 中打开文件

用 Gettext 工具翻译 WordPress

  1. 下载官方WordPress POT file
  2. 在常用的文本编辑器中打开文件
  3. 升级页头信息
  4. 翻译信息
  5. 以.po 为扩展名保存文件
  6. msgfmt -o filename.mo filename.po

无觅相关文章插件,快速提升流量