幸運輪盤多語支援


這個假日在練習 React app 支援多語言,使用的是 react-i18next 套件。其實我之前就用它寫了一個範例程式 pwa-react18-redux-i18n-ts-example 放在 GitHub。在使用一項新的程式架構時,我個人很建議先用它寫範例程式、放上 GitHub,接著再用在大程式上。因為大程式往往很吃硬體資源,要較長的編譯時間,系統也複雜不易修改,所以可以避免的話,不建議拿它來實驗一項新程式架構。而把範例程式放到 GitHub 或其它地方也是很重要的一步,將來要用到時,找出來複製、修改比較快,這些看似平凡的程式碼,背後卻有不知花了多少時間才想出的作法!因此它的價值可不要被它的表面低估了,即便是幾10行的程式碼,也可能是思考了1天才想出。

初步熟悉新工具 react-i18next,接著就要把它用在實際的應用上。我想到我可以拿我過去寫的 apps 作應用。我的 apps 可概略分為2類:1類是特定區域的應用,如電子佛典、台灣水庫、台灣藥品…等。另1類則非特定區域,全球都可用的,如幸運輪盤、雙重認證,這一類 app 就很適合支援多語,因此我決定拿幸運輪盤 app 作練習。

練習的過程包括 app 的修改,要把每個靜態字串用動態程式改寫,才可依不同語言傳回不同字串。而每個字串都要有每個語言的版本。甚至 app 要上架至 Apple App Store, Google Play Store, …等,螢幕擷圖裡的文字也要有各語的版本。雖然作這種重複性的事,會有一些煩人😅,所以我只做了中文、英文兩個語言。但考量到 app 的親切度,還是覺得這麼作是有意義的。試想一支只有你看不懂語言的 app,你應該也不太想用。

我這支 app 前端是用 PWA,因此可以直接推送給使用者。而後端則須上架至各 app 商店。截至目前為止,iOS apps, Android apps, Snap apps 都上架成功了。其它還在審查。不過後端變更不大,只是修改 logo,所以即便是從商店裝舊版,前端 PWA 還是最新的。以下是 app 的各個下載連結:

商店下載:
Apple App Store:
https://apps.apple.com/app/id1581902216

Google Play Store:
https://play.google.com/store/apps/details?id=io.github.myhpwa.SpinTheWheel

Microsoft Store:
https://www.microsoft.com/store/apps/9NLV45GXQ9QN

Snap Store (Linux):
https://snapcraft.io/spin-the-wheel

網頁版 (PWA):
https://myhpwa.github.io/spin-the-wheel

PWA 安裝教學與程式原始碼:
https://github.com/MrMYHuang/spin-the-wheel#web-app


Leave a Reply