为 Docusaurus 站点添加 i18n:LLM 的正确打开方式
在发 布了建站的第一篇文章后,本想趁着三分钟热度抓紧多更新几篇的。
可惜天不遂人愿,就在文章发布当晚,家里的其中一只猫咪就因为突发心脏病回到了喵星。刚刚处理完这边的事情,又需要临时来上海出差。除此之外,还得参加之前已经定好的一大串会议。
因为各种突发事件,这几天忙得焦头烂额。好在昨天晚上 check-in 之后以及今天回北京的飞机上,都还有几个小时的空闲时间。借着这个时间我快速为网站添加了多语言(i18n)支持,也可以写一篇简短的文章介绍一下我是怎么在开发过程中利用大模型的。
Docusaurus 的 i18n 支持
对于计算机行业的从业者,i18n 大概率不是一个陌生的词。其实这个词就是“internationalization”的缩写,除去头尾的 i
和 n
,中间正好有 18 个字母。
让我看看谁不信邪真的去数了,快在评论里告诉我我没有骗你!
而 i18n 的含义也很简单,一言以蔽之,就是“翻译”。通常来说,i18n 的工作就是通过配置文件的方式为网站或应用中的所有词语和句子提供翻译,并根据用户的选择动态显示对应语言的界面。
如果还不理解的话,可以选择这个网站页面右上角的语言下拉框,并选择 English,然后就不用我多说了。
之所以可以做到这么简单的切换,主要还是因为 Docusaurus 这个框架有着完善的 i18n 支持。根据官方文档的 说明,只需要先用 <Translate>
标签包裹所有需要翻译的文字,然后简单运行一句
npm run write-translations -- --locale {{language}}
Docusaurus 的框架就会自动生成一个 i18n
文件夹,里面包含了还没有被翻译的文字列表。接下来要做的事情,就是一个一个翻译这些文字了。
不过,这里面其实也会碰到一些不太大的坑。比如,有一些 JSX 代码中可能会包括部分必须是纯文本的参数,而修改这些内容可能又会需要 Swizzling……但是总之这些工作都不需要自己写太多代码,框架已经提供了足够多的工具链来完成它们,这里就不展开说了。
那么解决了生成需要翻译内容的问题,下一步就是翻译了。