2010-10-12 59 views
8

情況: 我正在啓動XCode,爲iPhone(查看應用程序)創建一個新項目並將XIB文件加載到IB中。我操縱視圖(添加一個字符串「hello」的標籤),保存,構建,運行應用程序,一切都很好。 現在我正在本地化XIB。我所做的:右鍵單擊xib文件,添加所需的語言,然後在我的XCode中有兩個XIB文件。看起來絕對完美,就像它在我的iPhone編程書(「大書呆子牧場」)中所展示的一樣。 我確實將兩個XIB中的標籤更改爲另一個字符串,可以說「早上好!」。爲什麼我的XIB文件沒有本地化(iPhone)?

問題: 現在我清理並重建應用程序 - 但它總是顯示舊的XIB文件,總是字符串「你好」。即使當我將iPhone上的設置更改爲其他語言時,我總是會顯示「hello」字符串。但是帶有「hello」的XIB在任何地方都不存在於我的xcode中!

對我有什麼提示?這讓我發瘋 - 我只希望我錯過了一件簡單的事情。

我正在使用XCode 3.2.3和SDK 4.0

非常感謝!

回答

7

有隻有幾步之遙遵循,包括:

  • ibtool --generate弦文件Example.strings en.lpoj/Example.xib
  • genstrings -o en.lproj * .M
  • 平移所述資源文件
  • ibtool --strings文件fr.lproj/Example.strings en.lproj/Example.xib -write fr.lproj/Example.xib
  • 經翻譯的資源文件拖放到項目(在th準確的地方)。

看看這個iPhone localization tutorial的全部步驟+截圖。

+0

感謝您的幫助。不幸的是,這並沒有解決問題。但是:它幫助了我,使問題更加明確。即使當我在上面的示例中刪除XIB文件(使用xcode或舊的命令行) - XIB文件仍然顯示在模擬器上。所以問題是:如何擺脫XIB?我在編譯期間或執行期間期待錯誤 - 但沒有。仍然顯示舊的XIB?但爲什麼?對我有什麼提示? – peace97 2010-10-13 16:43:56

+3

好了 - 思考了2-5分鐘後,重點如下:當不在iPhone模擬器上刪除應用程序時,仿真器似乎保存着XIB文件。刪除應用程序後,我確實得到了預期的運行時錯誤 – peace97 2010-10-13 17:26:30

+4

好吧 - 就是這樣:我錯過了在iPhone模擬器上刪除應用程序。本地化應用程序後,我不得不在iPhone模擬器上刪除它,而不是做一個乾淨的+構建,並且一切都很好。 – peace97 2010-10-13 18:38:43

6

iPhone模擬器和設備持有NIB的緩存。它很容易在模擬器上清除,因爲它可以被刪除,但我想弄清楚如何清除設備上的緩存而不必刪除應用程序。

+0

你不能這樣做,但是當你的應用程序重建時,你有時間從設備/模擬器中刪除應用程序。至少,它適用於我,因爲應用程序足夠大...... – 18446744073709551615 2011-11-19 15:19:36

0

在我的情況下,除了在模擬器上刪除應用程序以使其正常工作外,我還必須重新啓動xcode。

2

試試這個:

  1. 檢查,如果你已經添加Localitations參數到您的項目文件
  2. 窗口的「信息」選項卡 - 主辦單位 - 之所以選擇你的項目 - 刪除派生數據
  3. 項目清潔
  4. 從您的設備上刪除應用程序
  5. 再次運行。
0

當涉及到xib文件中的本地化字符串時,Xcode有一個錯誤。 Xcode不是用實際的xib字符串替換本地化的字符串,而是保留原始的xib字符串。您只需將Localizable字符串文件轉換爲Interface Builder文件即可。您可以在界面構建器文件屬性的本地化部分下執行此操作。

希望這會有所幫助!

相關問題