2012-08-06 197 views
0

我創建了一個新的Xcode項目並嘗試設置字符串本地化。IOS字符串本地化在添加其他本地化時停止工作

我添加了一個名爲 新文件「localization.strings'具有以下內容

。‘登錄’=‘英文文本2’;

我已經添加了第二本地化項目>信息部分在最新版本的Xcode中。

然後在右邊的框中打勾,爲localization.strings文件添加法語。一旦添加,我可以運行/構建應用程序,但字符串不再鏈接到這個文件。

例如,如果我更新上面的原始英文版本,以「測試文本英語」爲例,它仍然顯示原始英文文本2。

任何想法爲什麼會發生這種情況?該應用程序太大,無法發佈,並且沒有構建錯誤,該文件沒有損壞,丟失,編碼不正確。

+0

一旦我在localization.stings文件上單擊Make localized ...,就會出現該問題。 一旦這個被點擊的字符串不鏈接到這個文件 – StuartM 2012-08-06 13:21:32

回答

5

你需要做一個乾淨的構建並從模擬器和/或你的設備上刪除應用程序,然後一切都應該工作。你只需要做一次。

在添加任何本地化之前,您的字符串文件將最終位於應用程序包的根目錄中,例如, MyApp.app/Localizable.strings。然後,當您運行應用程序時,它將被複制到模擬器和/或您的設備中。

添加本地化後,文件的內容將被移動到本地化特定的子目錄中,如MyApp.app/en.lproj/Localization.stringsMyApp.app/fr.lproj/Localization.strings。但是根文件夾中的舊文件仍然在模擬器和設備中停留,並且在其他文件之前就已經找到了。所以做一個乾淨的版本,從模擬器和你的設備刪除應用程序,該舊文件將被刪除。

+0

我只在這個應用程序的模擬器上測試。我已重置模擬器,並完全重新啓動xcode並運行新版本,但舊文本仍然存在。我也完全從項目中完全刪除了兩個localization.string文件,因此它們不再是 - 但標籤仍然讀取「英語Test2」,就像它仍然在某處緩存一樣? – StuartM 2012-08-06 15:25:21

+0

您需要將重置模擬器與乾淨的版本結合起來。按住Alt並選擇「產品 - >清潔生成文件夾」以獲得完整的清潔。 – 2012-08-07 06:07:01

+0

真棒,乾淨的生成文件夾工作。謝謝 – StuartM 2012-08-07 09:14:59

0

這不是唯一可能發生的問題。我遇到另一種情況:兩個具有相同名稱的文件:「Localizable.strings」。 我有一個在庫文件夾中,一個在主項目文件夾中。本地化系統只使用其中一個,而不是兩個。 我通過刪除不必要的問題來解決問題。