1. 程式人生 > >WAPG2 iOS App名稱本地化(info.plist本地化)

WAPG2 iOS App名稱本地化(info.plist本地化)

應該有不少同學做的iOS App或者遊戲是要同時上架多個地區的,同一個App名稱在國內和海外應該是不同的,應該要隨著系統設定本地化才行。如果處理不好這個問題,就會很蛋疼,像我有個朋友做的遊戲,國內外下App名稱都是中文,^ ^。

這個呢,網上搜了下,好像沒有系統講的文章,也比較老了,這裡自己稍微總結下過程。

測試環境是Xcode 7.2, iOS 9.2

首先在工程設定PROJECT—>info—>Localizations新增要本地化的語言,我這裡是英文加簡體中文


然後新增檔案,在工程目錄右鍵->new file,在下圖所示地方選擇Strings File新增一個新檔案InfoPlist.strings



然後在工程中選中這個檔案,在file inspector中點選Localize...


然後繼續,一路點下去


把勾都選上


這樣InfoPlist.strings檔案展開會看到三個檔案


然後在英文對應的語言檔案中新增CFBundleDisplayName = "test";

在簡體中文的語言檔案中新增CFBundleDisplayName = "測試";

然後,測試是可以的,你可以在“設定-》通用-》語言和地區”選擇手機的語言,我測試的結果是,如果手機語言設定為簡體中文,app的名字就是“測試”,如果手機語言設定為English,app對應的名字是“test”,基本上就是這樣,另外還有一點要注意:


從iOS8開始,系統語言可以設定一個語言列表,會根據這個語言列表的排序選用備選語言,規則就變了:


1.如果APP支援的語言在系統語言列表裡有,優先選擇列表上排序靠前的語言。
2.如果APP支援的語言沒在系統語言列表上,按CFBundleDevelopmentRegion的值選擇,無論APP是否支援英文,英文不再是預設的備選語言。
3.我再補充一條,如果APP支援的語言沒在系統語言列表上,CFBundleDevelopmentRegion設定的值也不是APP所支援的語言包的話,那麼APP會崩潰,實測(APP支援簡體中文跟英文,而CFBundleDevelopmentRegion設定為fr_FR,報錯'Could not find a storyboard named 'Main' in bundle NSBundle‘

),不過一般應避免這種情況發生,就是說你CFBundleDevelopmentRegion一定要在你支援的語言中選擇


舉個例子,APP支援中文跟英文,CFBundleDevelopmentRegion的值是中文,當系統語言列表是[日文]或[日文,中文]時,會選擇中文,系統語言列表是[日文,英文]時,會選擇英文。

參考資料:

1.iOS8多語言備選規則:http://www.cocoachina.com/ios/20141208/10548.html

2.IOS程式名稱及內容國際化(本地化):http://my.oschina.net/jackyyang/blog/67219?fromerr=Oya7DEYF