2009-11-27 92 views
18

我有一個國際化的iPhone項目。在各種${lang}.lproj/InfoPlist.strings文件中,我有一個密鑰CFBundleName = "My App Name"XCode - 多個目標,多個*國際化*名稱?

這對單個目標來說工作正常,但我無法使其適用於多個目標。

我想要爲主要目標有幾個翻譯的InfoPlistMyApp.strings文件,以及精簡版的幾個InfoPlistMyAppLite.strings文件。但我無法弄清楚如何設置它。 InfoPlist.strings這個名字似乎是成立的,所以我不能動態替換它。

任何想法?

回答

34

原來,這很容易,如果費力。只要每個集合位於不同的Xcode組中,您可以擁有多個InfoPlist.strings,每個目標支持一個,並且每個都可以國際化,

設置的目錄結構是這樣的:

.../AppName/ 
      en.lproj/InfoPlist.strings <-- Contains CFBundleDisplayName 
      it.lproj/InfoPlist.strings <-- ... 
      ... 
.../AppNameLite/ 
      en.lproj/InfoPlist.strings <-- ... 
      it.lproj/InfoPlist.strings <-- ... 
      ... 

導入這些文件到Xcode的羣體,所以它看起來是這樣的:

alt text

右鍵單擊 「組&文件」( Xcode的左上角),並確保「目標成員身份」可見,然後遍歷目標,檢查是否爲每個目標啓用了正確的字符串集。

+0

完美地工作! – 2013-08-07 18:21:00

+0

可以確認這在xcode 9上有效。很棒的工作! – 2017-11-16 15:23:02