WordPress的多语言支持:使用Polylang插件轻松创建多语言网站
WordPress本身支持多种语言,但默认情况下,在“常规设置”面板中切换语言后,无法同时使用多种语言。
有时,我们需要同时使用多种语言。例如,我的博客同时提供英语和法语版本。如果您更喜欢法语,可以直接切换到法语版本,而无需更改整个网站的语言设置。
WordPress默认情况下不支持此功能,但一些插件可以帮助您实现这一目标。本文将介绍一个完全免费且功能强大的插件:Polylang。我们将学习如何安装、配置它,以及如何使用它来翻译整个网站(不仅仅是文章!)。
关键要点:
在WordPress上管理多种语言
根据您的具体需求,WordPress的默认工具可能就足够了。例如,您可以创建一个特定语言的文章,然后创建相同文章的其他语言版本,并使用合适的标签进行区分。这只是一个例子,如果您想保持简单,可以这样做。
然而,这不是一个完整的解决方案。使用Polylang的优势在于,它不仅可以翻译您的文章。事实上,如果您的主题已翻译成正确的语言,您的访问者将看到整个翻译后的网站。以我的博客为例,当您阅读我的博客上的法语文章时,您会看到翻译后的侧边栏和页脚。
Polylang是一个强大的工具,可以帮助您创建多语言网站。配置完成后,使用Polylang翻译文章就像上面示例一样简单,甚至更简单!
您可以通过WordPress.org免费下载Polylang插件。它的安装和激活方式与其他插件相同。
Polylang拥有自己的选项面板,可以通过管理面板“设置”菜单中的“语言”条目访问。我们首先来看一下该面板的第一个选项卡“语言”。顾名思义,它允许您管理要在网站上使用的语言。
添加新语言最简单的方法是使用标记为“选择语言”的下拉列表。默认情况下,有数十种可用的语言,您很可能找到所需的语言。如果找不到,您仍然可以通过创建自己的语言来使用它(名称、区域设置、代码和方向)。
您还可以选择语言在列表中显示的顺序。“顺序”文本输入接受一个数字。语言将使用此数字按升序排序。
添加语言后,您可以编辑其信息。这些选项可以通过将鼠标悬停在列表中的语言上查看。
配置Polylang
访问Polylang选项面板中的“设置”选项卡,您会发现一些有用的选项来个性化您的多语言体验。
第一个选项,也是可能最重要的一个选项,是您希望网站使用的默认语言。它可以是您添加的任何语言。如果您的访问者使用您不支持的语言,他们将看到此默认语言。
如果您的网站不是新网站,您可能已经发布了一些文章。由于您是在创建文章后安装Polylang的,因此现有文章将没有设置语言。您可以从此选项卡为所有文章设置默认语言。
在此选项卡中,您还会发现一些需要检查的其他选项,特别是您的URL首选项。
完全翻译的网站
如上所述,Polylang的功能不仅仅是翻译文章。您的访问者可以使用他们首选语言的完整体验。
为此,您需要一个已翻译的主题。如果您使用的主题支持翻译,您应该在其中(可能在像languages这样的子文件夹中)找到一个POT文件。此文件包含主题中使用的所有字符串。这样,您可以将它们翻译成您想要的任何语言。
现在,当Polylang在您的网站上显示正确的语言时,它不仅会显示该语言的文章,还会显示主题。这样,您的访问者就不会在英语页面中看到法语文本,例如。
请注意,如果您使用WordPress默认主题(例如Twenty Fifteen),当您在Polylang中添加新语言时,它会尝试下载并安装此主题的此语言翻译。
我们不能只用一个简单的POT文件翻译所有内容。例如,小部件的标题是由用户(您)创建的字符串,因此我们自然不能使用POT文件来翻译这些。但是,由于Polylang,还有另一种方法可以翻译它们。
转到Polylang选项面板的第二个选项卡。此选项卡称为“字符串翻译”,其中包含在您的网站上显示的各种字符串。默认情况下,Polylang会生成多个动态字符串。您会发现诸如网站名称和描述之类的字符串,您甚至可以翻译时间格式。
Polylang还会检索您正在使用的所有小部件。然后可以使用动态字符串翻译其标题和内容(例如文本小部件)。值得注意的是,当Polylang处于活动状态时创建小部件时,您现在可以在小部件设置中选择一种语言。
在“字符串翻译”选项卡中,Polylang列出了所有已注册的动态字符串及其原始语言。然后您可以将它们翻译成您使用的语言。不仅您的主题可以翻译,您的动态内容也可以翻译。
如果您正在开发主题或插件,您可以通过注册您自己的动态字符串使其“Polylang就绪”。例如,如果您需要显示用户可以自行定义的字符串,这将非常有用。通过注册这些字符串,这些相同的用户将能够将它们提供给多种语言。
要注册字符串,请使用pll_register_string()
函数。与其他插件定义的任何其他函数一样,您应该使用以下测试检查此函数是否存在:
<code class="language-php">if (function_exists('pll_register_string')) { // 函数存在,执行任何操作! }</code>
即使安装并激活了Polylang,此函数也可能缺失。例如,在创建它之前过早地调用它是有可能的。为了确保您不会过早地调用它,请确保在“plugins_loaded”操作发生后调用它。例如,如果您直接在主题的functions.php文件中注册字符串,就会出现这种情况。
既然我们已经了解了如何调用此函数,那么是时候了解其参数了。此函数接受四个参数,但最后两个是可选的。
第一个参数是字符串的名称。此名称是描述它的方法。请参考您当前的“字符串翻译”选项卡以了解其用法的示例。例如,“l, F j, Y”这样的字符串并不总是很清楚,但使用名称“日期格式”,它就清楚了。
第二个必需参数是要翻译的字符串。您可以使用任何语言编写此字符串,但请尽量与主题或插件的其余部分保持一致。
<code class="language-php">pll_register_string('My awesome string', 'This is a translated string.');</code>
第三个参数表示要放置字符串的组。默认情况下,此组名为“polylang”,但您可以定义您自己的组,例如指示您的主题名称。用户可以在已注册的字符串列表中看到组名。这是让用户更好地了解字符串显示位置的另一种方法(如果多个插件使用Polylang,您的用户会感谢您指出某个字符串是用于您的插件而不是其他插件的)。
最后一个参数并非对每个人都有用,但对某些人来说可能有用。它是一个默认为false的布尔值。如果将其设置为true,则Polylang将提供一个多行文本区域,让用户翻译字符串,而不是单行文本输入。
注册字符串后,用户可以在“字符串翻译”选项卡中翻译它们。但是您仍然需要一种方法来检索它们,以便显示正确的翻译!
您基本上可以使用两个函数来实现此目的。第一个是pll__()
(请注意__()
WordPress函数的两个下划线)。您向它提供要翻译的字符串,它将返回相同的字符串,并翻译成当前语言。
<code class="language-php">if (function_exists('pll_register_string')) { // 函数存在,执行任何操作! }</code>
如果您不想对这个翻译后的字符串做任何操作(例如将其注入sprintf()
之类的函数中),您可以直接使用pll_e()
将其回显。
<code class="language-php">pll_register_string('My awesome string', 'This is a translated string.');</code>
您还可以使用第三个函数:pll_translate_string()
。最后一个函数接受两个参数:要翻译的字符串以及您想要翻译的语言。例如,这在您想以目标语言显示“查看此文章的[任何语言]”之类的文本时非常有用。
<code class="language-php">$translated_string = pll__('This is a translated string.');</code>
文章翻译
设置好Polylang后,您所有现有的文章都应该使用默认语言。这意味着它们不会显示在其他语言中。
在文章列表中,您会找到新的列,表示每种添加语言的翻译状态。如果文章行中显示“加号”,则表示相应的翻译不存在。您可以单击此“加号”添加翻译。
在此之后,我们不需要做任何其他事情。您可以像其他文章一样编写您的翻译,就是这样!您还有其他词来形容这个词而不是“很棒”吗?
请注意,您也可以在编辑文章时添加翻译。Polylang在编辑器中有一个自己的框,列出了当前文章的现有翻译。从此列表中,您可以编辑现有翻译并添加其他翻译。
到目前为止,我们已经翻译了我们的主题、小部件和文章,但还有一些事情我们还没有涉及:分类法,如分类和标签。我们可以通过访问管理面板的“分类”或“标签”页面来翻译它们。您可以像翻译文章一样翻译它们。
翻译分类和标签后,您可以在文章翻译中使用它们。但是,这里还有一个我想与您分享的Polylang选项:翻译之间的同步。
在“设置”选项卡的页面末尾,您会找到一些复选框。通过选中其中一些复选框,您可以激活文章所有翻译之间相应元素的同步。
例如,假设您有一个名为“My category”的分类,用法语翻译为“Ma catégorie”。您将在此分类中用英语撰写一篇文章,并希望将其翻译成法语。在此翻译中,不要指示任何分类:如果您已激活分类法同步,则将自动选择“Ma catégorie”分类!
征服世界!
在本文中,我描述了我认为Polylang中大多数主要且有用的选项,但还有其他一些选项您肯定想查看。请不要犹豫,在本地环境中测试Polylang,并在将此插件用于您的生产网站之前测试一些变体。
如果您想了解有关Polylang提供的选项、功能和过滤器的更多信息,您可以访问Polylang的官方文档,该文档非常完整。
使用Polylang的多语言WordPress网站的常见问题解答 (FAQs)
在Polylang中翻译自定义字符串是一个简单的过程。首先,您需要使用pll_register_string
函数注册您的字符串。此函数允许您使字符串可翻译。注册字符串后,您可以使用WordPress仪表板“语言”菜单下的“字符串翻译”表来翻译它们。记住在翻译字符串后保存更改。
pll_translate_string
只返回默认语言的字符串翻译?pll_translate_string
函数返回当前语言中字符串的翻译。如果它只返回默认语言的字符串翻译,则可能是因为当前语言未正确设置。确保您已在Polylang设置中正确设置当前语言。如果问题仍然存在,则可能是由于与其他插件或主题冲突造成的。尝试停用其他插件或切换到默认主题以查看问题是否已解决。
Polylang中的函数参考是插件提供的函数列表,您可以在代码中使用这些函数。每个函数都附有其描述、参数和返回值的文档。要使用函数,只需在必要时将其包含在代码中即可。例如,要获取当前语言,您可以像这样使用pll_current_language
函数:echo pll_current_language();
。
要安装Polylang插件,请转到您的WordPress仪表板,导航至“插件”>“添加新插件”,搜索Polylang,然后单击“立即安装”。插件安装后,单击“激活”即可开始使用它。激活后,您可以在仪表板的“语言”菜单下访问Polylang的设置。
要在Polylang中添加新语言,请转到您的WordPress仪表板,导航至“语言”>“添加新语言”,填写必要的详细信息,例如语言名称、ISO代码和标志,然后单击“添加新语言”。然后,您可以使用新语言来翻译文章、页面和小部件。
要在Polylang中翻译文章或页面,请编辑要翻译的文章或页面,单击“语言”框下要翻译到的语言旁边的加号图标,然后在编辑器中输入您的翻译。完成后,单击“发布”或“更新”以保存您的翻译。
要在Polylang中显示语言切换器,请转到您的WordPress仪表板,导航至“外观”>“小部件”,将“语言切换器”小部件拖动到您想要的小部件区域,然后根据需要配置小部件设置。“语言切换器”将显示在您的网站上,允许您的访问者在语言之间切换。
要在Polylang中翻译菜单,请转到您的WordPress仪表板,导航至“外观”>“菜单”,选择要翻译的菜单,单击要翻译到的语言旁边的加号图标,然后输入菜单项的翻译。完成后,单击“保存菜单”以保存您的翻译。
要在Polylang中翻译小部件,请转到您的WordPress仪表板,导航至“外观”>“小部件”,选择要翻译的小部件,单击要翻译到的语言旁边的加号图标,然后在小部件设置中输入您的翻译。完成后,单击“保存”以保存您的翻译。
处理Polylang中多语言网站的SEO涉及设置hreflang标签、翻译元数据和创建多语言XML网站地图。Polylang会自动将hreflang标签添加到您的页面,但您需要使用Yoast SEO之类的SEO插件手动翻译元数据。要创建多语言XML网站地图,您可以使用Google XML Sitemaps之类的插件。
This revised output maintains the original meaning, rephrases sentences, and uses synonyms to create a more unique text while preserving the image formatting and locations. The FAQs section has been significantly condensed to avoid repetition.
以上是带有polylang的多语言WordPress网站的详细内容。更多信息请关注PHP中文网其他相关文章!