每个WordPress主题和插件都可以兼容WPML。按照本教程了解如何测试WPML兼容性,并进行所需改动让您的代码具有多语言功能。

该教程说明怎样让您主题的不同部分具有多语言功能。 这要1-2个小时完成适用于您主题的所有步骤。

您完成后,将创建一个XML语言配置文件并将其添加到您主题的根目录。 这会允许用户无需自行配置任何内容即可运行您主题的多语言网站。

内容

  1. 安装WPML组件
  2. 案例学习 – WooThemes Resort 主题
  3. 翻译页眉
  4. 翻译菜单
  5. 翻译WooThemes滚动条
  6. 翻译定制主题或插件元素
  7. 翻译文章主体
  8. 翻译小工具
  9. 翻译页脚
  10. 创建您主题的语言配置文件
  11. 硬编码字符串的GetText支持
  12. 提示和查错思路

1. 安装WPML组件

WPML包含多个组件。 一些是您的主题兼容任务要求的,一些是以后管理网站内容的网站管理员所需要的。

您还应该激活必要的WPML组件,这会允许您完全翻译您的主题,包含WPML核心WPML字符串翻译WPML翻译管理

要求的WPML组件

要求的WPML组件

要获得它们,进入您的WPML帐户,点击下载

当然,欢迎您了解WPML核心和附加组件中的其他组件。

2. 案例学习 – WooThemes Resort主题

让我们看一下利用WooThemes的Resort创建的网站示例:

sample-homepage

我们浏览该网站中的不同内容时,我们将学习如何利用WPML翻译丰富的主题或插件!

3. 翻译页眉

主题或插件页眉来自WordPress的通用设置:

general-settings

设置>通用

因为这并不属于任何文章,我们需要使用WPML的字符串翻译进行翻译。 转到WPML->字符串翻译,通过其内容(网站标题)搜索该字符串并进行翻译。

string-translation-example

WPML->字符串翻译

您不需要在主题或插件中进行任何操作即可进行翻译。 WPML会自动进行翻译。 我们展示了如何翻译网站名称,因为我们要使用WPML的字符串翻译处理您的主题或插件中的许多其他内容。

4. 翻译菜单

无需您任何操作,WPML即可翻译WordPress菜单。 只要您的主题使用标准WordPress菜单系统,WPML会翻译菜单。

菜单翻译控制

菜单翻译控制

转到外观->菜单时,您会看到WPML菜单翻译控制面板。 点击翻译菜单链接,了解更多信息。

5. 翻译WooThemes滚动条(使用定制文章类型)

我们看到的示例主题使用CPT,称为滚动条“滚动”。 这意味着利用WPML翻译很容易,几乎不需要进行配置。

我们需要告诉WPML“滚动”定制文章类型是多语言的。 这意味着WPML向用户提供了翻译功能。

您可能惊奇WPML为什么能够允许同一个网站上的一些内容是多语言的,而另一些内容不需要语言信息。问得好!

内容是多语言时,WPML过滤该内容,仅会以当前语言返回结果。 在某些情况下,您要将完全相同的内容用于所有语言。 例如,如果您要所有语言展示完全相同的滚动条(使用相同标题),您要让滚动条CPT不可翻译。 我们要翻译这些滚动条,以便滚动条按照不同的语言可以有不同的标题。

在WPML的GUI中,编辑滚动条并向下滚动。 您将看到一个称为“多语言内容设置”的部分。

多语言内容设置

多语言内容设置

点击复选框设置CPT可翻译并点击应用

您在我们的截屏中能看到它变灰么? 这并不是偶然的。 这是因为我们为主题或插件提供了一个语言配置文件

语言配置文件告诉WPML所需的关于您主题的所有信息。 这包含哪个CPT和分类需要设置为可翻译,什么定制字段要翻译或者同步,以及要翻译的字符串。

6. 翻译定制主题或插件元素

许多主题或插件有独特的功能,会把文本保存到wp_options表中。 Resort提供的介绍信息会精确完成该操作。

Resort中的介绍信息

Resort中的介绍信息

主题或插件会将这些文本保存到wp_options表中,我们需要告诉WPML翻译上述文本。 我们将该信息添加到语言配置文件中。在语言配置文件中,我们告诉WPML在wp_options表中哪些条目要求翻译。

选项固定时(类似多数主题),该做法很好用。 如果您的主题使用众多条目,它们会随着用户输入而增长,您需要动态注册这些条目。 使用WPML的icl_register_string icl_t函数完成该操作。

7. 翻译文章主体

WPML让用户轻易翻译内容。 文章编辑屏幕包含WPML翻译控制面板,允许创建新的翻译并编辑已有的翻译。

添加翻译

添加翻译

您不需要在主题或插件中进行任何操作即可进行翻译。 翻译内容是WPML的核心功能。

您需要确认您的主题添加到输出的任何内容是可翻译的。 例如,该截屏中高亮的内容应该是gettext调用中封装的。

主题文本

主题文本

如果您刚刚使用GetText,阅读我们的主题文本翻译常见问题解答,了解更多信息。

8. 翻译小工具

WPML让用户可以翻译文本小工具的内容。 它还可以翻译所有其他小工具中的标题。 如果您的主题或插件会创建其自己的定制小工具,确保您通过标准的WordPress过滤器传递他们的标题。 这样,WPML会允许用户通过字符串翻译屏幕翻译您的小工具标题。

9. 翻译页脚

该主题有一个定制管理员屏幕以存储页脚文本。

页脚文本

页脚文本

类似于我们看到的其他文本,文本或插件也将页脚文本保存到wp_options表中。 我们会将这些条目添加到语言配置文件中,告诉WPML翻译上述条目。

10. 创建您的主题语言配置文件

您完成后,您的主题完全兼容WPML时,您可能要尽可能使其他人能够尽量容易使用该主题运行多语言网站。

为您的主题创建一个语言配置文件,并将其保存到该主题的根目录中。 该文件会告诉WPML哪个定制文章类型、分类、字段和选项是可翻译的。

该小型XML文件会节省您客户的时间,允许他们轻松运行多个网站。 您的客户无需配置待翻译内容即可让网站运行。 这还会帮助您节约技术支持时间。

11. 硬编码字符串的GetText支持

尽管这并不是与WPML严格相关,您还应该记得将您的主题中的所有字符串封装到GetText调用中。 这意味着硬编码文本会以正确的语言出现在该网站中。 您还应该对显示在主题管理中的文本和前端页面中的文本进行操作。

所有的WordPress主题和插件,无论他们已具备或不具备多语言功能,都应该使用GetText翻译硬编码字符串。 WordPress默认主题非常精确地使用GetText,如果您是初学者,这会是一种非常好用的参考。

在GetText调用中封装文本本身是一个大的主题。 如果您不熟悉这方面的内容,或者需要帮助对您的代码进行查错本地化,查看如下内容:

您应该知道WPML与GetText完全集成。 一旦您在GetText调用中封装了硬编码的字符串,您将能够使用WPML的字符串翻译屏幕直接从WordPress管理界面翻译上述内容。 WPML还可以为您导出和导入.po文件,让您完全在WordPress中翻译您主题的字符串。

12. 提示和查错思路

如果您已经熟悉WPML基本知识,正在处理您的主题或插件的兼容性问题,请查看主题兼容性查错指南。您将看到如何使您的主题轻松兼容WPML相关的提示和思路。

如果您需要我们的帮助,尽管联系我们。 前往我们的技术支持论坛,解释发生了什么问题,我们会很快帮助您。