如果你想要使用 WordPress 做一个多语言网站,或者你想让你制作的主题或插件让世界上的其他人所使用,那么 WordPress 的翻译工作你是必须要做的,本文讲述如何通过 Poedit 翻译你的 WordPress 网站。
准备工作
因为是通过 .po 文件进行翻译,所以我们首先得安装一个可以编辑 .po 文件的软件(如 Poedit);同时,编写代码时应该使用 WordPress 内置的 __( $text, $domain = 'default' ) 和 _e( $text, $domain = 'default' ) 函数表示需要翻译的文本内容,如:
赋值:<?php $title = __('WordPress的语言国际化', 'chendexin');?>
输出:<?php _e('WordPress的语言国际化', 'chendexin');?>
其中 $domain 参数是所对应的翻译文件识别码,下面会讲到。
应用到主题/插件
首先我们需要在主题/插件的声明注释中(如主题就是 style.css 开头那段注释)添加一个文本域的声明,如上使用的是 chendexin 那在主题的 style.css 就应该这么写:/*
Theme Name: 德馨主题
Text Domain: chendexin
*/
插件也是同理:/*
Plugin Name: 德馨插件
Text Domain: chendexin
*/
最后,引入翻译文件。假设翻译文件在主题目录的 languages 目录,翻译识别域是 chendexin 名称,那么在 functions.php 中的代码应该这么写:function dmeng_setup() {
//~ 载入本地化语言文件
load_theme_textdomain( 'chendexin', get_template_directory() . '/languages' );
}
add_action( 'after_setup_theme', 'chendexin_setup' );
如果是插件,那么使用 load_plugin_textdomain() 函数。
创建 .po 文件
一切准备就绪之后,你的主题/插件就已经具备翻译支持,你可以不翻译让有需要的人再去翻译,或者你也可以自己翻译,像下面说的这样做。
首先,我们打开 Poedit 软件,在菜单中选择“文件 > 新建编目”,然后按提示填写配置信息。如:翻译属性:
项目名称和版本: DMENG 2.0
团队: DMENG.NET
团队的电子邮件地址: 1500213442@qq.com
语言: zh_CN
字符集: UTF-8(推荐)
源代码字符集: UTF-8(推荐)
复数形式: nplurals=1; plural=0;
源路径:
因为 .po 翻译文件是位于主题目录下的 languages 目录,所以只需要在路径添加两个英文句号代表上级目录。..
源关键字:
删除其他关键词,分别新建 __ 和 _e 这两项。__
_e
然后点击“确定”保存文件到主题的 languages 目录下,因为配置的语言(也就是这个语言包所翻译的语言)是中文 zh_CN,所以保存文件名为 zh_CN.po ,如果配置的语言是英文 en_US 那么保存的文件名是 en_US.po ,以此类推。
保存后程序就会自动搜索主题目录中使用 __() 和 _e() 函数表示的文本并列出来,你只需点击文本并在翻译输入框中输入对应语言翻译,然后点击保存即可。保存时程序会自动生成两个文件,一个 .po 文件和一个 .mo 文件。
至此,翻译工作已经完成,你只需在 WordPress 中切换语言即可看到翻译的内容。
更新 .po 文件
如果你在代码中使用 __() 或 _e() 函数添加了新的需要翻译的内容或删除了一些内容,那么你打开 .po 文件,点击菜单下的“更新”功能按钮,程序便会自动为你搜索新建的或废弃的字符串,你只需按照你的需求进行修改,再次保存时程序会自动为你更新 .po 文件和 .mo 文件。