2011-04-10 30 views

回答

2

您只需創建相同文件的本地化版本。 See my screen shot.並在此處爲CFBundleDisplayName設置每種語言的名稱。

例如: 中英文文件: CFBundleDisplayName =「應用的法文名稱」

的iOS將加載:

在法國的文件「應用的英文名稱爲」 CFBundleDisplayName =適當的本地化文件如果缺少一種語言,它將使用info.plist中的默認語言。在我的情況下,它en。

+1

這是交易的第一部分。但是,我如何爲不同的目標分配不同的CFBundleDisplayNames? – cocoapriest 2011-04-10 23:55:32

+1

您不必爲每種語言創建單獨的目標。 – 2011-04-11 02:51:31

+0

但我必須(另一個原因)。並且每個目標都有自己的應用名稱 – cocoapriest 2011-04-11 10:58:39

-1

你可以使用

NSLocalizedStringFromTable(@"key", @"myStringsFile", @"comment"); 

在那裏你可以指定.strings文件,然後你就可以使依賴於目標的名稱。

+0

但是AFAIK只能在名爲「infoplist.strings」的文件中本地化應用程序名稱。不是嗎?.. – cocoapriest 2011-04-11 11:00:18

2

我有聽起來像是同樣的問題。我使用兩個不同的XCode項目構建了兩個不同的應用程序,但InfoPlist.strings文件需要不同,因爲它們包含應用程序的名稱。我發現一個簡單的解決方案是使用兩個單獨的文件夾,其中您的本地化infoplist.strings。例如:

+Version_A 
    +en.lproj 
    InfoPlist.strings 
    +fr.lproj 
    InfoPlist.strings 
+Version_B 
    +en.lproj 
    InfoPlist.strings 
    +fr.lproj 
    InfoPlist.strings 

然後在每個XCode項目只需簡單的一個相關位置(Version_A或Version_B),而不是其他。如果您也這樣做,請檢查您的構建階段下的複製包資源選擇正確的版本(您可以從中單擊在Finder中顯示)。