因为我从我的应用程序中删除了一些本地化,所以我遇到了这个问题:第一次加载我的应用程序时,我在标签中看到我的密钥的本地化字符串。第二次加载应用程序时,出现 xxxxxkey。下次加载应用程序时,一切都很好(显示本地化字符串)。怎么会这样?
如果有人能指出我正确的方向,我会很高兴。我使用的是 Xcode 4.2。
提前致谢!
在将 ShareKit 库添加到我的项目后,我也经历过这种情况。事实证明,问题在于 ShareKit 包含一个 localized.strings 文件,而我自己的项目包含一个同名文件。我不知道为什么,但是当您启动应用程序时,这两个 localized.strings 中的一个被拾取,而不是两者都被拾取。如果您重命名 localized.strings 文件以便不存在文件名冲突,则问题应该会消失。
如果重命名 localized.strings,则需要使用 NSLocalizedStringFromTable 宏而不是 NSLocalizedString 来更新从该特定字符串文件加载字符串的代码。例如,我将ShareKit的localized.strings重命名为ShareKit.strings,并编辑了该方法的第一行,如下所示:
NSString* SHKLocalizedString(NSString* key, ...)
{
// Localize the format
// Was:
// NSString *localizedStringFormat = NSLocalizedString(key, key);
NSString *localizedStringFormat = NSLocalizedStringFromTable(key, @"ShareKit", key);
va_list args;
va_start(args, key);
NSString *string = [[[NSString alloc] initWithFormat:localizedStringFormat arguments:args] autorelease];
va_end(args);
return string;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)