我知道很多開發者只是這樣做的:他們開始用英語開發他們的應用程序,並且把NSLoclaizedString(@"Tap this to do that!", @"Telling what to do...")
而不是簡單地@"Tap this to do that!"
。在NSLocalizedString()中使用「真實」鍵安全嗎?是否有保證的回退語言?
然後他們運行genstrings
它通過提取所有這些字符串以某種方式創建Localizable.strings文件。雜亂的部分:代碼中使用的長文本成爲關鍵。有用。直到有一天,您快速進入代碼並更改英文字符串,忘記本地化,並將其作爲所有Localizable.strings文件的關鍵字。
所以我傾向於使用「真正」的鍵,它們不會與字符串混淆。爲了進行快速測試,我創建了一個本地化爲英文和法文的項目。然後,我將模擬器語言設置爲德語。因爲,你知道,如果用戶會看到像TTTDT
這樣的密鑰,它會非常糟糕。
因此,只有英語和德語,我推出了演示程序。我得到的是英文Localizable.strings文件中的英文文本。
結論:看來,如果操作系統語言未被應用程序覆蓋,NSLocalizedString會回退到英文文件。
確認:假設總是有一個Localizable.strings (English)
文件,並且文件中的按鍵ARE以及格式正確的值。有沒有情況下NSLocalizedString會失敗,然後直接顯示密鑰?
好點。我還會增加更好的性能。 – dontWatchMyProfile