Swift- 快速實作本地化語言
這裡以一個簡單的Label來示範本地化語言如何實作,這邊以英文、繁體中文為例,如需添加更多語言可按相同步驟操作即可。
首先 先按此圖步驟新增所需要的本地化語言,這裡示範的是選擇繁體中文Chinese, Traditional
接著New File一個Strings File檔案,命名為Localizable(固定這樣命名)
然後在Localizable.strings這檔按中先打上 "Hello" = "Hello";
(記得最後要加上分號唷)
點選右方的Localize按鈕,跳出詢問視窗後再次點選Localize
在右方處就可以把我們要的語言勾起來啦
此時會看見左方目錄的Localizable.strings有個小三角形,展開後就能看到英文與繁體中文的檔案了
Localizable.strings(English)內容仍維持"Hello" = "Hello";
Localizable.strings(Chinese, Traditional)內容則改為"Hello" = "你好";
接著我們到Label要呈現內容的地方,改為NSLocalizedString方式寫入
此時將專案執行起來,將手機裡的語言改為繁體中文,再次回到App,剛剛的「Hello」已經變成「你好」了,就是這麼簡單!
額外補充: 因每個需要本地化語言的地方都需要打
NSLocalizedString("XXX", comment: "")
這樣文字太多看了覺得有點煩XD? 所以我這邊針對String寫了一個Extension
這樣在使用時就可以用更簡短的方式了,是不是很方便呢:)
以上是App內本地化語言的做法,那App本身的名稱要怎麼做本地化呢?
先選到目錄的Info.plist,新增Application has localized display name並設為YES
一樣再New File一個Strings File檔案,命名為InfoPlist(固定這樣命名)
完成後同先前步驟點選右方的Localize按鈕,跳出詢問視窗後再次點選Localize
將Chinese, Traditional勾起來
將目錄的InfoPlist.strings小三角形展開,先選到InfoPlist.strings(English)
打上CFBundleDisplayName = "Hello";
意思就是這個App在語言為英文時顯示名稱為Hello
再選到InfoPlist.strings(Chinese, Traditional)
打上CFBundleDisplayName = "你好";
若此時手機語言為繁體中文時,看到的App名稱就會是「你好」
以上就是本地化/多國語言的實作介紹
如有任何問題,歡迎指教與討論 😁