使用Polylang为WordPress实现多语言

本博客原本是只写中文的,出于一个偶然的机会做了那么个尝试,把这个网站做成了多语言。本人就记录使用Polylang为Wordpress实现多语言的过程以及需要注意的地方。


Polylang是什么?

Polylang是一款 WordPress 多语言方案,逻辑核心在于利用原生 Taxonomy(分类法)实现内容的语言标记。

它不通过繁冗的额外数据库表来堆砌功能,而是允许用户为每一篇 POST、每一个分类甚至媒体文件指定语种,并在它们之间建立关联。这种做法尊重了 WordPress 的既有架构,保证了查询效率。在处理 SEO 时,它生成的 hreflang 标签与子域名或子目录配置,也显得足够规整且克制。

免费和收费有一些不同

维度免费版 (Free)专业版 (Pro)
基础翻译文章、页面、分类、标签、菜单包含免费版所有内容
URL 结构支持子域名或目录名支持翻译 URL Slug (如 /about 变为 /zh/guanyu)
机器翻译不支持 (需第三方插件)集成 DeepL API,支持自动化翻译流程
同步功能手动同步元数据自动同步文章间的分类、标签及自定义字段
编辑器支持基础块支持深度集成 FSE (全站编辑) 及模板零件翻译
REST API不支持完全支持,适合 Headless WP 或复杂应用

使用免费版实现双语化后的效果

本站现在就使用这个插件实现了双语化。

本站中文版
本站中文版
本站日文版
本站日文版

本站是一个不对称的双语网站,不同语言有部分对应的内容,但也有仅中文和仅日文的部分。


插件的设定

1-添加一门语言

比如我的网站原本是中文,现在加日文,那么就需要在左边选择语言,最后添加。

添加完毕后就是下图的样子,右边多了一行日语。

插件设定首页
插件设定首页

2-翻译通用的部分

这里需要翻译一些通用的部分,比如网站名,简介等。在这里翻译完后,网站的基本信息将随语言的变化而变化。

Image
翻译通用的部分

3-定义链接格式

对我来说这是免费版少数可以自己随手决定的东西,选项如下。

定义链接格式
定义链接格式

4-开始将各种要素多语言化

4-1分类目录和菜单

这是我最早碰到的问题,毕竟上面的设置界面内容挺少的,我以为我这就可以开始着手博文的多语言化了。但打开主页发现主页上的分类标签全是乱的,这是因为下图的部分没有设置好。

分类目录多语言化
分类目录多语言化
菜单多语言化
菜单多语言化

菜单这里需要多建立一份新菜单,然后分别将刚才设置好的内容定义到中文站和外文站上。

4-2标签、文章和页面

道理都是一样的,只不过标签打几个字就完了,文章需要重体力劳动。

标签的翻译
标签的翻译

免费版麻烦的地方

到这里,多语言化的框架基本就算完成了。当然了,完成的仅仅是个框架而已,等待我的将是一堆我觉得需要双语的文章的翻译工作。毕竟是免费版,这是个日常拿来消磨时间的体力活。总结一下大致上免费版有这几个需要忍的地方。

  • 无法同步属性: 修改原稿的标签、分类或自定义字段后,译文不会自动更新。必须手动进入每个语种逐一对齐。
  • URL 无法本地化: 页面后缀(Slug)强制与原稿一致。比如中文版是 /about,日文版只能是 /ja/about,不能改成 /ja/xxxxxx
  • 媒体库逻辑冗余: 若想给图片加不同语言的描述,必须在后台手动为同一张图生成多个“语言副本”,操作繁琐。

与其说是同一个网站的双语版,不如说是两个站合体在一个地方更加确切。