2012-01-06 61 views
1

我在與一個應用程序的本地化一個奇怪的問題。它在以前的版本中工作正常,但它最近停止了工作,對本地化文件沒有明顯的改變(我添加了一種語言,但這是全部)。的iOS:本地化間歇性破

當我安裝使用Xcode組織者(Xcode中3.2.5)構建,定位只能有時。在操作系統中改變語言設置似乎沒有任何作用。從Xcode Organizer中卸載,然後重新安裝不起作用。

看來,本地化的API無法找到我的資源。我加了一些的NSLog()語句來我ViewControllers打印出應本地化字符串的一個,使用此功能:

NSLog(@"Value: %@", [[NSBundle mainBundle] localizedStringForKey:@"MY_KEY" value:@"none found" table:nil]); 

當本地化工作,這樣就會打印出預期的結果。當本地化不起作用時,打印出「找不到」。我檢查了包的內容,並且.lproj文件都在那裏。我錯過了什麼?

編輯:我發現,我建立後,一些導致* .LPROJ/Localizable.strings文件的各種語言的不正確創建 - 有時。我可以觸摸德文文件,它會正確生成,但下一次運行構建時不正確。所有Localizable.strings文件的編碼當前都設置爲UTF-16,並且我試圖切換到UTF-8而沒有運氣。我在構建日誌中看不到任何警告或錯誤,以指示字符串文件存在問題。

回答

3

我已經看到,由於在此之前發生在你的項目不止一個localizable.strings文件。如果您將開放源代碼庫放入解決方案(例如ShareKit,它自帶localizable.strings文件),則很容易發生這種情況。請參閱Localisation strings not always work having ShareKit in a project處的問題獲取更多關於此問題可能原因的信息。

+0

看起來這是原因。還有另外一套翻譯項目已被添加到另一個目標中。一旦我重新命名這些,一切似乎都很好。 – mayonaise 2012-01-06 21:47:19