创建 WordPress 多语主题
本指南将向您展示如何创建 WordPress 多语主题。 多语主题不仅仅是把所有文本放入 GetText 调用中,然后提供一个 .mo 文件。 将主题文本本地化只是其中一个重要步骤,但还要进行一些其他操作。
一个用于多语网站的主题需要显示可用的语言,允许用户选择以哪种语言查看网站,并能够以各种语言正确显示。
以下是我们需要做的:
- 为不同的语言提供本地化。
- 允许用户在语言之间进行切换。
- 调整主题中的链接,以便在不同语言中使它们正确指向页面(例如首页)。
- 调整外部链接。
使主题准备好进行翻译
为了让主题以不同语言显示,其文本在显示之前必须加以翻译。 WordPress 使用 GetText 实现此目的,您的主题也应当如此。
我们已经撰写了一篇关于 WordPress 主题本地化的文章。此文说明如何将主题文本放入 GetText 调用中,创建翻译(.mo 文件),然后将其应用到主题。
在不同语言之间进行切换
语言切换器向访客显示可用的语言并让他们选择。
语言切换器以不同的形式出现。 一些人喜欢带有语言名称的紧凑式下拉菜单。 一些人则喜欢显示国旗,还有些人喜欢显示水平或垂直的语言列表。
WPML 使实施语言切换器变得简单。 语言切换器随附自己的下拉式语言切换器,该切换器也可作为小工具被加入主题。 该语言切换器可以显示国旗、语言名称及其翻译。 用户可以从语言菜单对其进行配置。
您也可以定制自己的语言切换器并将其插入主题中的不同位置。 入门手册中的定制语言切换器页面解释其创建方法并提供一般用途的示例。
首页链接
首页链接是您网站中的一个独特链接。 它是唯一只提供 URL 而不提供页面自身名称的页面。
当您访问 http://example.com/ 时,您实际上指向的是域名 example.com 的页面 ‘/’。WordPress 将自动从 http://example.com 重定向至 http://example.com/。
我们作此解释的原因是由于这与正确创建首页链接有非常大的关系。 一般的 WordPress 做法是使用以下语句创建首页链接:
<a href="<?php echo get_option('home'); ?>/"
该语句的功能是获取网站的 URL( get_options(‘home’) 调用)并在其尾部附加一个 ‘/’。
但是在运行多种语言时,此做法就不可行了。 虽然默认语言仍然在 http://example.com 中,但其他语言可能在不同的 URL 中。 WPML 提供一个返回首页正确位置的函数:
<a href="<?php echo icl_get_home_url() ?>"
在使用硬编码的首页链接的所有地方,您应当使用该函数。
调整链接
许多主题都包含硬编码的页面、分类和标签链接。
WPML 包含一个可连接至页面、文章、标签和分类的函数,那样链接文本和 URL 都能以正确的语言显示。
如果您的主题含有硬编码的链接,请将其替换为 WPML 的自调整多语链接。
避免使用相对链接
一些主题包含位于同一目录中的样式表、图像、Javascript 和其他文件的相对链接。 当运行多语言时,这极可能造成问题。
不同的语言内容大都总是位于不同的 URL 中。 如果您使用相对链接,它们将出错,将缺少需要包含的文件。
您务必计算同一目录中其他文件的绝对链接。 WordPress 可以提供您主题的完整 URL。 例如,如果需要连接到位于主题目录中的收藏夹图标 (favicon),请使用:
<link rel="shortcut icon" href="<?php bloginfo('template_url'); ?>/favicon.ico" />
这将生成收藏夹图标的绝对 URL,无论使用什么 URL 结构都不会出错。