如新聞中所提及,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 株式會社」這樣的詞彙很難進行精確控制。
因此最終我們自行實現了替換邏輯。
en: [
{ from: /Liberlogic/g, to: 'Liberogic' },
{ from: /Libelogic/g, to: 'Liberogic' },
],
de: [
{ from: /Liberlogic/g, to: 'Liberogic' },
{ from: /Libelogic/g, to: 'Liberogic' },
],
此外,我們還整合了 Google 試算表,使得在其中註冊的規則能自動套用。這樣無論是「Liberogic」還是「Liberogic 爺」都能正確處理。
對應語言的選擇方式
一開始已有英語、繁體中文、簡體中文、法語、西班牙語和日語,共 6 種語言。
Slack 上曾經有過這樣的對話。
「俄語怎麼辦?要不要加韓語和泰語?」
「阿拉伯語因為 CSS 很麻煩,暫時先不加」
「不,印地語似乎會帶來流量爆增,還是算了」
就這樣以隨意的方式選定了語言。
話說回來,據說這 6 種語言就能涵蓋全球 75% 以上的使用者,我在某處看到過。
其實全球化進程相當順利?
目前的網址範例如下:
今後預計增加至約30種語言左右(?)。
其中也計劃挑戰從右到左的阿拉伯文(rtl 對應)。
敬請期待!
總結:推薦輕鬆實現多語言化
這次的機制非常適合想「先試試翻譯看看!」的客戶。
透過 Google Cloud Translation API 和快取管理,可以相對低成本地製作多語言網站。
作為在追求全面在地化之前的試驗階段也最合適。
✳️ 順帶一提
多語言化的過程中,如果出現奇怪的措辭或排版,我們正在逐步修正,敬請包涵。(由於優先發佈,細節會後續用 CSS 調整!)
🌏 最後想說一句話
翻譯不必完美,世界也能接收懷著這樣的想法,Liberogic 今天也在製作網頁。不完美,但也能傳達。正因如此,我們先在客戶面前自己動手嘗試。失敗沒關係,實驗沒關係。Liberogic 今天也在網頁最前線不斷驗證。
話說回來,Google 翻譯每天都在進化呢!完!
身為公司代表,卻始終保持著合作夥伴的心態。熱愛理解新技術、享受事物變得便利的瞬間,是個徹底沉浸於現場工作的人。對未來科技充滿期待,無論年紀多大都想持續體驗嶄新的事物。
森本
專案經理 / 總監 / 2007年創立