具有多语言支持的 Timber 和 WordPress 的最佳实践

Best practices for Timber and WordPress with multilanguage support

问题


正如我在 Timber 文档中看到的那样,可以添加多语言支持,例如 this:

// Set language to French
putenv('LC_ALL=fr_FR');
setlocale(LC_ALL, 'fr_FR');

// Specify the location of the translation tables
bindtextdomain('myAppPhp', 'includes/locale');
bind_textdomain_codeset('myAppPhp', 'UTF-8');

// Choose domain
textdomain('myAppPhp');

{% trans "Hello World!" %}

{% trans string_var %}

{% trans %}
    Hello World!
{% endtrans %}

问题是,像这样我有静态站点 - 将被翻译成法语,但我无法从 wp-backend 向它添加多语言内容。所以我确信有一种更好的方法可以通过使用 Timber 编写的 WordPress 主题来实现多语言支持。

问题


我想知道用 Timber 构建 WordPress 主题并实现多语言支持的最佳和最可靠的方法是什么。

有什么最佳做法吗?

多语言 WordPress 是一个关于如何最好地做到这一点仍有很多争论的话题。所以目前可能没有最好和最可靠的方法。

在 Timber 中使用多语言与构建普通 WordPress 主题时的处理方式并没有什么不同。请注意,Timber 与 Twig 不同。 Timber 使用 Twig,这是一个模板引擎,可以更轻松地将数据和逻辑与您显示的 (HTML) 关注点分开。因此,如果您想了解如何添加多语言支持,您首先要了解如何使用 Timber/WordPress 方法。您可能 不需要 Twig’s i18n Extension 提供的任何功能,您是通过这些功能迈出第一步的。

阅读有关 Multilingual WordPress 的 Codex 页面以开始使用。

如果您想翻译从数据库中提取的内容,您可能需要使用插件。我自己用过的比较流行的有:

当您安装了其中一个并准备好多种语言的内容后,您就可以开始了。你真的不需要改变你的主题中的任何东西来使基础工作。添加语言切换器或链接到菜单外的其他帖子有点不同。在那里你必须参考你将要使用的插件的文档。

如果您的主题中有 静态字符串 并且您也想翻译,则必须考虑将 internationalization (i18n) 添加到您的主题中。

从 Timber 版本 1.x 开始,您可以使用大部分 common translation functions right in your Twig files. There’s a guide about internationalization in the Timber Docs