当前位置:蚂蚁分类目录 » 站长资讯 » 站长运营 » WordPress教程 » 文章详细 订阅RssFeed

WordPress博客实现语言国际化 WordPress主题教程

来源:陈德馨博客 浏览:894次 时间:2021-05-10 21:51:40

如果你想要使用 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 文件。