Swift- 快速實作本地化語言

Chia Wen Huang
4 min readOct 15, 2020

--

這裡以一個簡單的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名稱就會是「你好」

以上就是本地化/多國語言的實作介紹

如有任何問題,歡迎指教與討論 😁

--

--