2011-12-21 90 views
2

加載圖像的本地化版本我注意到了XCode 4.2一個問題,一些局部的發鈔銀行不從各自的語言包中加載正確的圖像。本地化NIB不XCode4

在我的控制器之一,我有幾個圖像視圖。在英文版中,我注意到一些圖像視圖抓住了應該加載在圖像上的法文版本。同樣的事情發生在法國版的NIB上。

我有明顯雙重檢查我的圖片資源,並驗證了法國的圖像被正確地存儲在兩個「en.lproj」和「fr.lproj」文件夾。

有沒有人遇到這個問題之前?每當我運行該項目時,無論是在模擬器還是實際的手機中,最大的頭部劃痕都是一致的。我甚至沒有在我的控制器中手動調用加載圖像。所有圖像只是通過NIB預設。

+0

這是否問題總是發生在相同的圖像? – 2011-12-21 17:30:28

+0

起初我以爲是。我嘗試重新創建NIB並手動添加本地化圖像。有一段時間,當我在IB中打開它時,圖像在NIB中會正常加載。只要我運行該項目,模擬器/ iPhone版本只會正確加載一些圖像。只要我在XCode中打開受影響的NIB,現在一些圖像以法語顯示(其他圖像視圖不受影響)。受影響的圖像視圖也是隨機的。我真的非常接近在我的代碼中手動調用加載正確的圖像。 :-( – Moonjock 2011-12-21 17:42:28

+0

您是否找到了解決方案?我有同樣的問題:( – mrmuggles 2012-01-26 18:26:42

回答

0

如果您本地化的資源也被列入建設後,該資源的未本地化版本保留在內置的應用程序。重建應用程序只會添加新文件並更新已編輯的文件,但不會刪除已刪除的文件。

要解決模擬器中的問題,您可以打開管理器(Window>Organizer),選擇Projects選項卡並刪除項目的派生數據,然後重新生成。

要解決設備上的問題,您可以刪除應用程序,清理構建產品(Product>Clean),然後重新構建。

+0

)Nicolas,我剛剛嘗試了管理器>項目>刪除派生數據方法。這並不奏效,我也從設備上刪除了實際的應用程序(我實際上每次都會在設備和模擬器中做一次全新的編譯)。仍然沒有運氣:-( – Moonjock 2011-12-21 17:52:10

+0

我只是好奇,如果我本地化一個NIB,它應該在技術上加載圖像的本地化版本吧?即,我應該看到我的筆尖的法語版本加載法國圖像,對嗎? – Moonjock 2011-12-21 17:53:26

0

我有同樣的問題,我已經找到了唯一的解決辦法是刪除圖像定位並加載它們。

UIImage *img = [UIImage imageNamed:NSLocalizedString (@"imageOne.png", @"Main Image")]; 

而在你Localizble.strings(西班牙)例如,你寫的:

"imageOne.png" = "imageOne_es.png"; 

而對於Localizble.strings(英文)

"imageOne.png" = "imageOne_en.png";