Ghost博客-Ruby主题增加中文支持

Ghost博客-Ruby主题增加中文支持
Photo by David Ballew / Unsplash

我自己的博客是用的Ruby主题,但是官方的这个主题是不支持多语言的,所以在`Publication Language` 设置里单纯的设置zh是没用的

所以我fork了一份官方的Ruby主题,然后为它增加了多语言支持,项目地址:

https://github.com/gitlexin/Ghost-Ruby-i18n

按照文档里的操作步骤来就可以了

其他主题如果你有兴趣去修改的话,也可以自己fork一份出来,修改步骤:

  • 根目录增加locales文件夹
  • 新建zh.json文件,把所有.hbs文件里对外可见的内容,替换成{{t "xxxx"}}这样的格式,然后在zh.json里增加"xxxx": "中文翻译"

上面的步骤我是用bing chat来完成的,我和bing chat的对话内容如下:

我:
我计划将一个主题文件改写成多语言版本,我需要你帮我识别出html里用户可见的文本内容,将识别出来的内容作为变量A,然后按照{{t "A"}}这种格式把识别出来的内容首先替换成里面的A,然后用这个字符串替换文件里原来的A的内容,举一个例子:
<a class="gh-head-btn gh-btn gh-primary-btn" href="#/portal/signup" data-portal="signup">Subscribe</a>
这段html里,用户可见的内容是Subscribe,我需要把他替换成下面这样
<a class="gh-head-btn gh-btn gh-primary-btn" href="#/portal/signup" data-portal="signup">{{t "Subscribe"}}</a>
还有替换出来的A内容,需要把他累计记录到一个格式为下方这样的json对象里,然后json的key名就是这个A的值,value的值是需要你帮我把A翻译成中文,类似这样:
{
  "Subscribe": "关注"
}
你明白了吗,有不明白的可以问我

bing chat:
我明白了。您想要我帮您识别出 HTML 文件中用户可见的文本内容,然后将其替换为 `{{t "A"}}` 这种格式,其中 `A` 是识别出来的内容。同时,您还希望我将替换出来的 `A` 内容累计记录到一个 JSON 对象中,其中 JSON 的键名就是 `A` 的值,值是 `A` 翻译成中文的结果。例如,在您给出的例子中,用户可见的内容是 `Subscribe`,应该被替换为 `{{t "Subscribe"}}`,并且在 JSON 对象中添加一项 `{ "Subscribe": "关注" }`。是这样吗?

我:
是的,你需要把替换下来的内容都持续记录到这个json中,我后面需要把他作为一个中文语言包的配置文件,你明白的话,我接下来会持续发送需要识别并替换的内容给你,你把我发给你的内容完成替换和记录json后,再发给我

然后就是持续把.hbs文件发给他了,让他自己去检查,全部替换完后,让他把json文件完整的发给你,然后粘贴到zh.json里就行