正如新闻稿中所述,我们已对 Liberogic 的官网进行了多语言支持!
目前仅支持 6 种语言,但坦白说,只要完成一种语言,其余的基本就是同一套流程,理论上 Google 支持的所有语言也都可以另行添加。
从“先试着翻译一下”开始的实验
起因很简单。
“既然现在海外访问者也多了,要不要先试着翻译一下?”
,抱着这样轻松的想法开始。
但认真做起来,才发现其实相当费劲。翻译 API、缓存、构建、成本、缓存更新……等等,背后的复杂之处远超想象。
因此,这次的多语言化采用了Google Cloud Translation API,并引入了构建时自动翻译的机制。
机制大致如下
构建时会运行 scripts/translate-html-cache.mjs。
如果缓存(translate-cache.json)中已有翻译好的文本则直接使用,否则调用 Google 翻译 API 进行翻译。
新的翻译结果会追加到缓存中,之后即可复用。但是,自动部署环境不会反映缓存,因此关键在于先在本地执行一次构建并推送。
这样可以避免不必要的 API 费用。(刚开始的时候,免不了要经常盯着 Google 的计费页面看……笑)
与翻译的“怪癖”斗争
实际尝试后,会发现翻译结果各有各的“风味”。
“Liberogic 株式会社”曾被译成“Liberlogic Inc.”,有时又会变成“Libelogic”……
简直让人分不清是谁了!?Google 的术语表(Glossary)功能也试过了,但它只对单句生效,很难单独控制“Liberogic Inc.”这一部分。
因此最终,我们自行实现了替换逻辑。
en: [
{ from: /Liberlogic/g, to: 'Liberogic' },
{ from: /Libelogic/g, to: 'Liberogic' },
],
de: [
{ from: /Liberlogic/g, to: 'Liberogic' },
{ from: /Libelogic/g, to: 'Liberogic' },
],
此外,我们还与 Google 表格联动,使其中登记的规则能够自动生效。这样,“Liberogic”和“Liberozee”都能得到妥善处理。
语言选择方法
首先是英语、中文(繁体・简体)、法语、西班牙语,加上原本就有的日语,共 6 种语言。
Slack 上也出现过这样的对话。
“俄语怎么样?韩语和泰语如何?”
“阿拉伯语的 CSS 比较麻烦,以后再说吧。”
“不,印地语的访问量可能会暴增,还是算了吧。”
……就这样轻松随意地定下了语言。
不过,据计算这 6 种语言可以覆盖全球 75% 以上的用户,我在某处看到过这样的说法。
其实全球化已经在悄然推进中?
目前的 URL 示例如下:
今后计划逐步扩展到约30种语言(?)。
之后还将挑战支持从右向左阅读的阿拉伯语(RTL 支持)。
敬请期待!
总结:轻松实现多语言化的建议
这套方案非常适合“想先试试翻译效果!”的客户。
借助 Google Cloud Translation API 和缓存机制,可以相对低成本地搭建多语言网站。
在迈向正式本地化之前,作为实验阶段也非常合适。
✳️ 顺便一提
多语言化后,部分文案或排版可能会有些奇怪,我们正在逐步修正,还请多多包涵。(为了优先发布,细节部分将在之后通过 CSS 调整!)
🌏 最后说一句
“即使翻译不完美,也能传达给世界”。
怀着这样的心情,Liberogic 今天也在制作网页。即使不够完美,也有能够传达的东西。正因如此,我们会先自己动手尝试,再呈现给客户。失败不怕,实验更不怕。Liberogic 今天也在网页的最前沿反复验证。
就在我们说这些的时候,Google 翻译也在日新月异地进化着呢!完
身为社长,同时也始终是一线的参与者。热衷于理解新技术,在某些事物变得更加便利的瞬间感到喜悦,并全情投入其中。对未来的技术充满期待,无论年龄多大,都希望持续享受全新的体验。
森本 忠典
项目经理 / 总监 / 2007年成立