gpt4 book ai didi

iOS - NSLocalizedString 只返回键字符串

转载 作者:可可西里 更新时间:2023-11-01 03:08:19 29 4
gpt4 key购买 nike

我在调试我的 NSLocalizedString 实现时遇到了一些问题。应该很简单,但无论我做什么,函数只返回 KEY 字符串。

我正在使用 XCode 4.5 和 iOS6,所以我:

  1. 添加了一个名为 File.strings 的新文件。
  2. 在我的项目设置中,我添加了英语和西类牙语作为语言设置。
  3. 在文件检查器中单击“本地化”,确保选择了英语和西类牙语选项,并选择了我的目标的 Target 成员身份。
  4. "KEY"= "TestEnglish"; 添加到我的英语 File.strings
  5. "KEY"= "TestSpanish"; 添加到我的西类牙语 File.strings
  6. 添加 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 字符串,但我不知道如何调试我的应用可能不匹配的原因关键。

我还删除/清理了该应用程序大约十几次。

最佳答案

如果您指定 table:nil,则 NSBundle 将尝试从默认表(SOMELANG.lproj/Localizable.strings 中的那个)获取本地化信息)。如果您在其他地方进行了本地化,则应使用 table:@"File" 显式指定表(或以类似方式使用 NSLocalizedStringFromTable() 宏):

NSString *value = NSLocalizedStringFromTable(@"key", @"File", nil);

关于iOS - NSLocalizedString 只返回键字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13994348/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com