如同新聞稿所述,我們已完成 Liberogic 官網的多語系支援!
目前僅支援 6 種語言,但老實說,只要完成一種語言,其餘的就差不多了。若要說的話,要支援 Google 所有語言也不是不行。
從「先試著翻譯看看」開始的實驗
起因很單純。
「既然 Web 無障礙越來越受重視,海外的訪客也增加了,要不要先試著翻譯看看?」
就是這樣輕鬆的起點。
不過,認真去做其實相當不容易。翻譯 API、快取、建置、成本、快取更新……等等,比想像中更多「複雜的內部機制」。
因此,這次的多語系化採用了 Google Cloud Translation API,並透過 在建置時自動翻譯的機制 來實現。
運作方式如下
建置時會執行 scripts/translate-html-cache.mjs。
若快取(translate-cache.json)中已有翻譯過的文字就直接使用,若沒有,則呼叫 Google 翻譯 API 進行翻譯。
新的翻譯結果會追加到快取中,之後即可重複使用。不過,自動部署環境不會套用快取,因此重點是先在本機建置並推送一次。
如此一來,就能避免不必要的 API 費用。(一開始常常得盯著 Google 的計費畫面看……笑)
與翻譯的怪癖對抗
實際操作後,會出現各種有趣的翻譯結果。
「リベロジック株式会社」被翻成「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」都能正確保留。
如何選擇支援語言
一開始選定英文、中文(繁體、簡體)、法文、西班牙文,加上原本就有的日文,共六種語言。
在Slack上也出現過這樣的對話。
「俄文要不要也加?韓文和泰文怎麼樣?」
「阿拉伯文的CSS很麻煩,之後再說吧」
「不,印地語的流量可能會暴增,還是先不要好了」
……就這樣隨意地決定了語言。
不過,據說這六種語言可以涵蓋全球超過75%的使用者,我記得在某處看過這個數據。
其實國際化已經在悄悄進行中?
目前的網址範例如下:
未來預計將支援增加到約 30 種語言。
接下來也計畫挑戰從右至左閱讀的阿拉伯語(支援 RTL)。
敬請期待!
總結:輕鬆實現多語言化的建議
這次的架構非常適合「想先試試翻譯效果!」的客戶。
結合 Google Cloud Translation API 與快取機制營運,能以相對低成本建立多語言網站。
在邁向完整在地化之前,實驗階段也非常適合。
✳️ 順帶一提
多語言化後若有些文字或版面略顯怪異,我們正陸續修正中,還請您多多包涵。(因優先確保發布,細節將於日後透過 CSS 調整!)
🌏 最後說一句
「翻譯就算不夠完美,也能傳達給世界」
抱持著這樣的心情,Liberogic 今天也在製作網站。就算不夠完美,也有傳達的價值。正因如此,我們會先自己動手嘗試,再呈現給客戶。失敗無妨、實驗至上。Liberogic 今天也在網站的最前線持續驗證。
說著說著,Google 翻譯也每天都在進化呢!完。
身為社長,卻始終站在第一線。理解新技術,當某件事變得更方便的那一刻就會感到喜悅,並全心投入。對未來的技術充滿期待,無論年紀多大,都想享受新的體驗。
森本 忠典
專案經理 / 導演 / 2007 年創立