本指南将向您展示如何创建多语言WordPress主题。多语种主题不仅仅是用 GetText 调用封装所有文本并提供 .mo 文件那么简单。将主题文本本地化是一个重要步骤,但还有其他工作要做。
多语言网站的主题需要显示可用语言,允许选择以哪种语言查看,并在每种语言中正确显示。
这些都是我们需要做的:
为翻译主题做好准备
为使主题能以不同语言显示,文本在显示前需要通过翻译。 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就会自动配置,让用户无需点击任何设置屏幕就能运行多语言网站。