2012-10-12 45 views
0

我在App Store中有一個本地化的字符串文件的應用程序。問題是我想用英文提交字符串文件的更新,但是當我從已安裝應用程序的設備(從App Store)安裝Xcode中的應用程序(僅適用於英文字符串文件)時,我可以看到英文以外的其他語言的字符串。iOS:在更新中刪除本地化的字符串文件

如果我在未安裝應用程序的設備上安裝應用程序,則只能看到英文字符串,而不管設備上選定的語言。

我知道一個選擇是更改字符串文件的名稱,但我想知道是否有更智能的方法來做到這一點。

非常感謝

+0

爲什麼不從舊設備中刪除舊的應用程序並重新安裝?有時不會在構建之間刷新對Bundle資源的更改。 – CodaFi

+0

因爲我不希望我的用戶在安裝新版本之前刪除應用程序...感謝您的評論。 – e1985

+0

(有點愚蠢)解決方法是在應用程序啓動時始終將語言設置爲英語。閱讀此http://stackoverflow.com/questions/1669645/how-to-force-nslocalizedstring-to-use-a-specific-language/5850101#5850101或類似的問題。 –

回答

0

我解決了這個問題,這條線在文件main.m文件,對打電話來UIApplicationMain()之前:

[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObject:@"en"] forKey:@"AppleLanguages"]; 

基本上它迫使應用英語只提供。

0

的問題可能是您的舊localised.strings文件仍是懸在不同的位置周圍。使用本地化添加或更改語言時,可能會將字符串文件移至其他文件夾。發生增量更新時,它會獲取新的字符串文件,但無法刪除舊字符串文件,因爲它位於不同的位置。但是,該位置在搜索樹上更高,因此在應用程序查找字符串時首先找到該位置。

一個可能的解決方案,雖然不是一個好的方法,但是將您的localized.strings文件重命名爲不同的內容,然後在之前使用localizedString的所有位置中使用localizedStringFromTable命令,將新文件命名爲原始表。這不是一個漂亮的解決方案,但它應該可以工作。

如果您只需要一種語言,另一個可能的解決方案是確保字符串文件存儲在與以前版本中的字符串文件完全相同的位置。