跳过导航
已更新
7 6 月, 2024
这篇文章已经过时。 请参阅为您的主题和插件实现WPML兼容性

本指南将向您展示如何创建多语言WordPress主题。多语种主题不仅仅是用 GetText 调用封装所有文本并提供 .mo 文件那么简单。将主题文本本地化是一个重要步骤,但还有其他工作要做。

多语言网站的主题需要显示可用语言,允许选择以哪种语言查看,并在每种语言中正确显示。

这些都是我们需要做的:

  1. 提供不同语言的本地化服务。
  2. 允许用户从一种语言切换到另一种语言
  3. 根据语言返回正确的内容
  4. 告诉WPML哪些内容需要翻译

为翻译主题做好准备

为使主题能以不同语言显示,文本在显示前需要通过翻译。 WordPress使用 GetText 来实现这一功能,您的主题也应如此。

我们写过一篇关于 WordPress主题本地化的文章。 它讲述了如何在 GetText 调用中封装主题文本、创建翻译(.mo 文件)并将其应用到主题中。

在不同语言之间切换

语言切换器可向游客显示可用的语言并让他们进行选择。

语言转换器的形式多种多样。 有些人喜欢紧凑的下拉菜单,并带有语言名称。 还有一些显示国旗,还有一些显示横向或纵向的语言列表。

WPML可轻松实现语言切换。 它内置了自己的下拉语言切换器,也可以作为小部件加入。 该语言切换器可显示国旗、语言名称及其翻译。 可通过WPML>Languages菜单进行配置。

您还可以创建自己的自定义语言切换器,并将其插入主题的不同位置。 自定义语言切换器手册页面解释了如何创建该语言切换器,并提供了常用语言切换器的示例。 在主题中添加自定义语言切换器可以增加亮点和优雅,让用户明显感觉到主题是为多语言网站设计的。

以正确的语言获取内容

许多主题都包含指向页面、类别和标签的硬编码链接。

WPML与标准WordPressAPI 功能挂钩,并按语言进行过滤。

例如,当您拨打

$args = array( 'category' => 1 );
$myposts = get_posts( $args );

假设类别 “1 “是英语类别,翻译成西班牙语是类别 “4”。 在查看西班牙语页面并运行此代码时,WPML会将过滤器中的类别编号替换为 “4”。

为此,您的代码必须只使用WordPressAPI 调用,而不是手动查询数据库(这本身就是一种不好的做法)。

您可以在WPML>Languages 中控制该功能。 查找自动调整 ID 的选项。

告诉WPML什么需要翻译

WPML可以读取语言配置文件。 该文件会告诉它关于主题的一切信息。

这包括您正在使用的管理文本、自定义字段和自定义类型。

一旦创建了这个 XML 文件,WPML就会自动配置,让用户无需点击任何设置屏幕就能运行多语言网站。