WordPress博客实现语言国际化 WordPress主题教程
如果你想要使用 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 开头那段注释)添加一个文本域的声明,如果你的网站主题使用的是DUX,那在主题的 style.css 就应该这么写:
/* Theme Name: 大前端主题 Text Domain: DUX */
插件也是同理:
/* Plugin Name: 大前端插件 Text Domain: DUX */
最后,引入翻译文件。假设翻译文件在主题目录的 languages 目录,翻译识别域是DUX 名称,那么在 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 文件。