我在调试我的NSLocalizedString
实现时遇到了一些麻烦。应该很简单,但是无论我做什么,该函数都只返回KEY
字符串。
我正在使用 XCode 4.5 和 iOS6,所以我:
- 添加了一个名为
File.strings
. - 在我的项目设置中,我添加了英语和西班牙语作为语言设置。
- 单击文件检查器中的“本地化”,并确保选择了英语和西班牙语选项,并且选择了我的目标的目标成员资格。
- 添加
"KEY" = "TestEnglish";
到我的英语File.strings
- 添加
"KEY" = "TestSpanish";
到我的西班牙语中File.strings
- 添加
NSLog(@"Localization: %@\n", NSLocalizedString(@"KEY", nil));
到我的.m
文件中。
当我运行应用程序时,该值"KEY"
始终显示在NSLog
.
为了更深入地了解这一点,我也尝试了这个:
NSString *path = [[NSBundle mainBundle] pathForResource:@"en" ofType:@"lproj"];
NSString *str = [[NSBundle bundleWithPath:path] localizedStringForKey:@"KEY" value:@"" table:nil];
NSLog(@"Localization: %@\n", str);
"KEY
并且仍然打印了值" ,但是,path
它是一个有效的路径。
有谁知道如何调试这个?我觉得我已经阅读了所有 SO 问题/答案,但没有任何建议有帮助。
我意识到当它无法匹配键时NSLocalizedString
返回KEY
字符串,但我不知道如何调试我的应用程序可能与键不匹配的原因。
我还删除/清理了应用程序大约十几次。