我知道许多开发人员就是这样做的:他们开始用英语开发他们的应用程序,然后NSLoclaizedString(@"Tap this to do that!", @"Telling what to do...")
把@"Tap this to do that!"
.
然后他们运行genstrings
,通过提取所有这些字符串以某种方式创建一个 Localizable.strings 文件。混乱的部分:代码中使用的长文本成为关键。有用。直到有一天,您快速进入您的代码并更改英文字符串并忘记本地化,它是所有那些 Localizable.strings 文件的关键。
所以我倾向于使用不会与字符串混淆的“真实”键。为了快速测试,我创建了一个本地化为英语和法语的项目。然后我将模拟器语言设置为德语。因为,你知道,如果用户看到像TTTDT
.
因此,只有英语和德语就位,我启动了演示应用程序。我得到的是来自英文 Localizable.strings 文件的英文文本。
结论:如果应用程序未涵盖操作系统语言,则 NSLocalizedString 似乎会退回到英文文件。
问题:假设总是有一个Localizable.strings (English)
文件,并且文件中的键是正确格式的值。是否存在 NSLocalizedString 会失败然后直接显示密钥的情况?