站点双语改造

本站现在能够同时显示中文和英文了。

https://his2nd.life/zh-CN/posts/7a6a6b5a.html
Hollis

本站现在能够同时显示中文和英文了。

AI 生成的摘要

这篇文章描述了作者在创建双语 Hexo 站点时遇到的挑战和解决方法。作者承认自己中文水平有限,但出于兴趣和验证可行性的目的,决定创建英文站点。文章详细介绍了作者采取的方法:在同一代码库内生成中英文两个站点,每个站点使用各自的配置文件和目录,但共享一些内容,如脚本和部分资源。作者还编写了一些脚本来方便站点的生成,并在页面上添加了信息图标,允许用户切换语言版本。最后,作者提到了为整站编写 index 和 404 页面,引导访客前往正确的语言页面。文章以作者对于未来可能写英文博客的想法结束。


老实说,我也不知道我增加一个英文站点有什么用——我的中文水平都还不足以让我流畅地书写,更不用说英文了;仅仅是因为有趣并且想验证一下可行性,才做了英文站。

Hexo 的国际化支持有限,它能够显示多个语言版本的文章,但是主题生成的页面往往只能使用一种语言。我采取了一个取巧的办法,简单来说就是在同一个代码库内生成中英文两个站点,每个站点使用各自的配置文件、主题配置文件、sourcepublic 目录;生成页面所需的其他内容,如 scaffoldsscripts 目录,则是共享的。所以中文站与英文站尽管看起来协调一致,本质上仍然是两个单语言的站点,生成的静态资源存放在各自的 public 目录内。为了方便站点的生成,我编写了几个脚本,能够清理中间产物、为两个站点的 source 目录包含部分同样的资源、根据输入参数切换生成的站点语言等。你可能注意到,某些文章(如本文)和页面的右上角显示了一个信息图标(现在它作为语言图标挪到了页面右下角。),它代表当前页面存在多个可用的语言版本,你可以点击它切换语言。它是我写的元数据生成器、过滤器、注入器与在浏览器中运行的注入脚本共同支撑的。当我打算为一篇文章写两个语言的版本时,会在 front-matter 中提供它在不同语言下的路径,通过元数据生成器与过滤器把它嵌入页面,在浏览器中通过注入器注入的脚本读取,然后显示信息图标。我提到的这个“注入的脚本”是我用来在浏览器端实现一系列特定功能与修改的脚本,它本身也包含许多提示字符串,所以我也为这些字符串编写了简易的国际化函数以提供中英文两个版本。现在网站有了双语版本,对于每个语言的站点,原来的根目录变成了 /zh-CN//en/;可之前的那些搜索引擎收录的链接是不包含语言标识的,所以我还为整站编写了 index404 页面,引导访客前往正确页面。

基本上,我就是这样实现一个双语 Hexo 站点的。也许我会试着写写英文博客吧。也许。


  • 标题: 站点双语改造
  • 作者: Hollis
  • 创建于 : 2024-01-08 15:06:34
  • 更新于 : 2024-03-22 19:29:28
  • 链接: https://his2nd.life/zh-CN/posts/7a6a6b5a.html
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论
此页目录
站点双语改造