如何讓iOS app支援多國語言 (XCode 12)

一般來說在開iOS app的時候都是從一種語言開始。當開發到一定程度,也許是使用者已經夠多了,下一步可能就是將app多國語言化,使原先的app可以支援更多種語言。這個過程稱為localization。這篇文章中我會將在XCode 12.4中測試多國語言化的流程做整理。

支援語言設定

首先第一步我們要確認的是在XCode中”Use Base Internalization”已經打開。在Xcode 12中這是預設開啟的,要確認的話可到Project setting->Info下。在這個時候我們大概還只有一種語言,按下+號加入要支援的新語言即可。

Localizable.strings

從一開始開發時使用的語言要翻譯為另一種語言,每個字詞都需要一個翻譯。這就是Localizable.string這個檔案的用途。針對每種支援語言,Localizable.strings有一個對應的檔案將每個字詞和對應的翻譯的key-value pair存起來。

下一步要做的事情就是製作Localizable.strings。從File->New->File,選擇Strings File並將其命名為Localizable.strings即可。

經過此步驟後我們可以看到project裡現在多了Localizble.string檔案,並且有新加入的繁體中文版本。

這裡使用一個以SwiftUI實作的範例app。XCode會幫我們找出所有需要翻譯的英文字詞,相當方便。接下來我們只要進到繁中的Localizable.strings中將相對應的翻譯填入就可以了。左邊是原先的英文,由XCode自動生成,右邊的中文翻譯是我填入的。

原先的SwiftUI完全不需要做任何更動。

App名稱的多國語言化

前面的方法只能處理app介面內容多國語言的處理,那麼如果想要加上app名稱翻譯呢?其實也是用類似的方法,只是我們需要另外再做一個InfoPlist.strings檔案。作法和前面相同,從File->New->File選擇Strings檔,然後將新檔案命名為InfoPlist.strings就可以了。

app名稱是對應CFBundleDisplayName這個key。在中文的InfoPlist.strings中,加入下面這一行,把YOURAPPNAME改成想要在繁中版使用的app名稱。

"CFBundleDisplayName" = "YOURAPPNAME";

References

https://developer.apple.com/videos/play/wwdc2020/10119/


謝謝你看完這篇文章。如果你喜歡我的讀書心得,請到Twitter追蹤新發佈的讀書心得。想要更了解我們嗎?追蹤或訂閱Facebook粉專和我們交流、獲得最新文章通知吧。

如果你覺得這篇文章不錯,請在下面用力的拍五次手,給我們一點鼓勵!
對於如何拍手有疑問嗎?請見快速教學

如果這篇文章或許會對你的朋友有幫助,請按下面的分享按鈕,將這篇文章分享給你的朋友。

若有興趣在你的網站或出版品引用這篇文章或部份內容,請來信索取授權。

發表迴響