WPML

从右到左的语言带来了一些特殊的挑战。幸运的是,WordPress 在很大程度上减轻了这些麻烦。我们将向您展示如何基于默认的 TwentyTen 主题,创建一个功能完善的 RTL 网站。

当您创建一个多语言 RTL / LTR 网站时,需要解决两个问题:

  • 编辑 / 翻译
  • 显示

第一部分,创建或翻译您的网站,意味着要在 WordPress 管理后台中以正确的语言和正确的方向进行工作。如果您在 LTR 和 RTL 语言之间进行翻译,请记住,您需要在同一屏幕上查看混合方向的内容。

在显示网站时,您的主题需要为 RTL 和 LTR 语言处理正确的显示方向。

本教程将以我们的 Twenty Ten 多语言演示网站为例,该网站提供英语、西班牙语和希伯来语(RTL)版本。

准备工作 – 获取核心和主题的 .mo 文件


WordPress 本身和默认主题已完全本地化为多种语言。我们需要最新版本的本地化文件,因此我决定从本地化的 WordPress 版本中获取。您可以从这里获取它们:
下载并解压 WordPress 后,前往 wordpress/wp-content/languages。将全部内容复制到您的 languages 目录中。对主题执行相同的操作。翻译文件将位于 wp-content/themes/twentyten(如果您以后阅读本文,则为当前的默认主题)中。

您还需要配置 WPML,以允许其翻译主题和插件。

翻译


WPML 的翻译管理模块允许发送翻译任务并使用不同的帐户进行翻译。它还允许您使用 WPML 的翻译编辑器进行翻译。当涉及混合方向的内容时,这一点尤为重要,因为翻译编辑器会自动调整每个字段的方向。

如果您对此还不熟悉,请首先阅读有关翻译管理模块的内容。

这是我将 Hello World 文章翻译成希伯来语时的界面。

从右到左编辑

您可以看到英语文本左对齐,而希伯来语右对齐。我甚至可以使用 HTML 模式从英语中复制并粘贴项目。HTML 模式以 LTR 显示,以允许您正确输入标签。

当您翻译字符串时,WPML 也会以正确的方向显示它们。这是我翻译 Search 小工具标题时的字符串翻译屏幕。

RTL 字符串翻译

翻译编辑器和字符串翻译模块将允许我们完全翻译网站。接下来,我们来看看如何以正确的方向正确显示它。

以 RTL 和 LTR 显示网站


现在您的内容已翻译完毕,是时候将注意力转移到主题上了。

这短短的一行代码发挥了大部分神奇的作用:

<html dir="rtl" lang="he-IL">

如果您查看任何希伯来语页面的源代码,就能看到它。例如,主页

dir="rtl" 属性告诉网站,整个网站的显示方向是从右到左。浏览器能够理解这一点,并将所有内容翻转到正确的方向。

来自 header.php 的这行简单的 PHP 代码使其得以实现:

<html <?php language_attributes(); ?>>

对 language_attributes 的调用插入了 dir 和 lang 属性。这些值来自核心的 .mo 文件。如果您有正确的 WordPress .mo 文件,您就能获得这些属性的正确值。

如果您的主题的 HTML 和 CSS 遵循“安全”的做法,这确实就是您所需要的全部。所谓“安全”,我指的是没有绝对定位或宽度。如果您必须使用绝对值,您可以考虑为每种语言加载不同的 CSS。

您可以使用检查 ICL_LANGUAGE_CODE 常量的条件语句(在 WPML 编码 API 中有描述)轻松实现这一点。

结果


以下是我们的演示网站在英语、西班牙语和希伯来语中的外观。

英语

西班牙语

希伯来语

这并不像看起来那么难。尝试一下,并告诉我们您的进展。

觉得有用吗?分享这篇文章: