WordPress 目前不支持开箱即用的双语或多语言博客。但是,由 WordPress 社区开发的插件使得创建多语言博客变得容易。WordPress Gutenberg 项目的第四阶段也是最后阶段将添加多语言站点的核心实现,详情见 WordPress 路线图。

创建多语言博客基本上是在多种语言下安装 WordPress,并让插件在它们之间切换。这包括安装.mo 语言文件,大多数插件会要求您手动完成此操作。更多详情,请参阅 以您的语言安装 WordPress。

不同类型的多语言插件

有几种基本类型的多语言插件:

  1. 每种语言一个帖子管理多语言帖子。然后翻译内容相互链接,表明一个帖子是另一个帖子的翻译。
  2. 在每个帖子中存储所有语言的备选内容。
  3. 在生成的页面上管理翻译,而不是使用帖子上下文。
  4. 通过来回 ping 将独立的 WordPress 站点链接到一个网络(multisite)安装中,每个语言一个站点。

每个帖子一种语言

为每个帖子分配单一语言的多语言插件允许用户选择帖子的语言,并将翻译作为新帖子添加(页面、标签和分类法也相同)。

然后,同一内容的不同版本被链接在一起形成翻译组。这种分组允许用户切换显示语言。

优点:

  1. 帖子的数据库内容保持不变(易于安装和卸载)。
  2. 所有内容默认都会翻译。如果帖子包含自定义字段,它们附加到该帖子,因此已经与语言关联。
  3. 一些插件使用 – 用于主题的显示术语 – 随可本地化主题提供的语言文件 (.mo)。在 WordPress 中,本地化基于 GNU gettext 技术。因此,当单个帖子为法语时,插件会将主题的所有术语切换到相同的语言(此处为法语)。文件可以用网站特定术语(分类法标题、小部件、链接等)进行补充。无需重新翻译所有内容,只需在目标语言中添加特定术语和翻译即可。
  4. 其他分析内容(如相关文章)的插件仍能正常工作。

缺点:

  1. 架构更复杂。插件需要挂钩到许多 WordPress 函数并过滤它们,以便只返回匹配语言的内容。
  2. 某些插件需要额外的表——通常用于保存翻译分组。较新的插件可能使用自定义分类法或帖子元字段代替。
  3. 可能导致数据库过度增长和性能变慢。例如,拥有 100,000 个产品的 WooCommerce 站点在翻译成 5 种语言后将拥有 500,000 条记录。所有产品元数据(每个产品可能有数十个,而且瞬态也会被重复),因此数据库可能会变得非常庞大。

所有语言在一个帖子中

在同一帖子中保留所有语言内容的多语言插件使用语言 meta 标签来区分不同语言的内容。当帖子被显示时,它首先被处理,只保留活动的语言内容。

优点:

  1. 并排编辑很容易实现。
  2. 破坏点更少。没有额外的表,在 WordPress 中需要修改的东西也少得多。
  3. 搜索将找到同一个帖子,无论您使用哪种语言作为关键词。
  4. 数据库中的记录数量保持不变。

缺点:

  1. 卸载可能很复杂,因为需要从数据库中清理多语言内容。
  2. 帖子永久链接可能无法翻译。

在生成的页面上管理翻译

使用 WordPress 生成的内容页面并在这些页面上执行翻译的多语言插件。当任何页面在 WordPress 上显示时,插件(离线或在线)尝试使用机器翻译创建页面的翻译版本。随后可以手动更改或修改该翻译。

优点:

  1. 安装简单,并提供页面上任何内容的翻译。
  2. 可以轻松编辑翻译。

缺点:

  1. 自动翻译不够好,网站上的页面可能会被错误翻译。
  2. 内容和翻译之间存在强耦合,原始内容的更改可能会破坏翻译。

直接指向外部翻译服务的插件

那些多语言插件通常用于创建一个小部件,该小部件创建使用在线翻译服务(如 Google Translate)的快捷方式。内容由第三方引擎按需自动翻译。

优点:

  1. 安装简单,并提供页面上任何内容的翻译。
  2. 很明显翻译过程是自动化的,因此降低了用户的期望。

缺点:

  1. 自动翻译不够好,网站上的页面可能会被错误翻译。
  2. 由于无法更改翻译,这些插件限制了内容发布者提供高质量翻译内容的能力。

每种语言在自己的 WordPress 安装中

为每种您要翻译的语言创建一个单独的站点(例如,在 WordPress Multisite 安装中)。所有站点都需要运行相同的主题和插件。当保存翻译时,源帖子会被翻译帖子 ping,系统会保持一张包含翻译关系的独立表。

优点:

  1. 每种语言站点都是一个常规的 WordPress 安装,具有常规帖子(postmeta 和外部数据库用于翻译数据)。
  2. 如果您关闭插件,内容仍可正常工作,尽管不再知晓其来源/翻译。

缺点:

  1. 单独的站点会产生更多的管理需求,这可能是不 desirable 的。

语言协商

语言协商是指如何确定用户看到网站的语种。

无论存储多语言内容的解决方案如何,多语言插件还需要能够选择要显示的语种。

通常,URL 指示显示语言。编码语言信息的不同 URL 策略如下:

  • 将语言名称作为参数添加:example.com/?lang=en 或 example.com/?lang=es
  • 将虚拟“目录”作为语言名称添加:example.com/en/ 或 example.com/es/
  • 为不同语言使用不同的域名:www.example.com 或 es.example.com

如何选择正确的多语言解决方案

为您的需求选择最合适的多语言插件需要一些时间。请查看 WordPress 插件目录 以获取多语言插件列表。

这不仅是一种方法,而是适应内容策略、数据模型、帖子和页面数量以及访客预期的行为/体验的方法。对于 WordPress 网络(multisite),还需要具备服务器管理的知识。

无论如何,安装多语言插件对任何站点来说都是巨大的变化。最好先创建一个测试站点,验证所有所需插件与主题之间的协作是否正常工作,然后再进行安装。

由于许多多语言插件会显著更改数据库,因此在实验之前必须进行 数据库备份。

相关