挑选多语言插件

因为每个多语言插件对于文章和帖子应以什么样的结构进行归类、每篇文章的元数据应该如何定义有着不同的要求,所以应该在最开始的时候就选定一个合适的插件。如果日后更换插件的话,可能需要对网站的源文件进行大量的改动工作。

挑选多语言插件前,您应该先对您的需求做一个概括,思考一下您想要一个什么样的网站。在我选择多语言插件时,我准备将我网站上页面的内容同时以多种语言提供,就好比一个维基百科页面有多种语言版本,而我想得到的功能就是像维基百科那样,在每个页面上都有每种语言版本的链接,点一下链接就可以切换到另一种语言。同时,有些内容可能只会以一种语言提供,此时我的网站最好就不要显示切换到别的语言的链接,或者在切换后显示一个提示,称该页面没有翻译版本。

Polyglot 就可以很好地满足我的需求。首先,它可以确保同一网站的不同语言版本的站点地图是完全一致的。这样一来,即使在一种语言中,有一篇文章没有翻译版本,Polyglot 也会生成该文章对应的网页,不过网页的内容就是未经翻译、以原样呈现的了。这种情况下,我就可以在页面上显示一条信息,告知浏览者此页面没有翻译。

对于 Polyglot,我唯一不太满意的地方就是它要求给每篇文档(即不是帖子的集合中的文章)都指定一个永久链接;我想直接将每篇文档在我网站源文件中的路径用作永久链接,却还需要给每篇文档手动指定。好在 Jekyll 允许给文章集合设定全局永久链接,可以有效避免给每篇文章都重复指定永久链接的繁琐操作

与此同时,我顺便看了一些其它的多语言插件。Octopress 的多语言插件的概念我感觉很不错,但是很遗憾,该插件自 2015 年起就再没有更新过,而且有很多人称在 Jekyll 3 上用不了这个插件,更别提 Jekyll 4 了。另外一个 Jekyll Multiple Languages 插件 是支持 Jekyll 4 的,但是要用这个插件的话,还得按这里描述的方法,额外维护一份记录所有页面的标题的翻译的文件。本着标题这些文章元数据应该和文章内容一起存储,而非单独抽离到一个文件中的原则,我放弃了使用它的想法。