中文还是英文?

自从建立这个个人网站开始,我就没有停止过纠结网站的语言问题。我最早建立个人网站是为了展示自己的作品,为我的研究生申请加分,所以英语是必须的。申请季过去后,我把个人网站变为个人作品和个人博客的集合地,博客大多用中文书写,渐渐地,我的网站变成了中英混杂的状态。

旧版本的个人网站:

portfolio

有朋友建议我全部改用英语,毕竟「几乎所有来到你博客的人都懂英语,但不是所有的都懂中文」。的确,统一改为英语写作可以最大限度的顾及到目前所有「用户」的语言能力。但我依然不想放弃中文,一是因为我用中文写作会感到更加亲切和自如,二则是因为虽然大部分的「观众」中英文都能看懂,但中文对于他们来说也是更舒适的阅读语言。

最终我还是决定支持双语,尽管这会多花费一些心思。在 2021 年 12 月初,我更新了个人网站的语言支持,实现了中英双语一键切换。

双语写作

实现双语切换首先要同时产出两种语言的文字材料。目前我的博客写作一般会先在 Typora (一款极简的 Markdown 写作软件) 上面创作原文,然后再用 Visual Studio Code (我日常写代码用的软件) 的分屏开始翻译:

Writing

有时,为了节省时间,也可以先用翻译软件进行基础的机器翻译后,再进行人工微调。

双语切换

产出两种语言版本的文字材料后,则要考虑如何实现一键切换。目前我所使用的办法就是:同时创建两个网站,然后通过某种命名方式,让两个网站互通。

举个例子,某一篇文章的英文版地址是 www.zhangyongqi.com/en/xxx,  那么对应的这篇文章的中文版地址则是:www.zhangyongqi.com/cn/xxx

有了相通的网址后,接下来要增加一个语言切换按钮,而其跳转的逻辑则非常简单:先判断自己所在页面的语言,然后只需要将网址中的 cn 换成 en, 或者将 en 替换成 cn 即可。

代码样例:

1
2
3
4
5
6
7
if('en' === language.now){
language.label = '中文';
language.href = location.pathname.replace(/^\/en/, '/cn');
}else{
language.label = 'English';
language.href = location.pathname.replace(/^\/cn/, '/en');
}

最后

支持双语意味着要花费更多的时间和精力去写作和翻译,现在的我还不太确定未来的我还是否有足够的耐心和时间坚持下去。就目前来说,我认为这种双语的内容产出是值得的。