微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

NSLocalizedString只检索密钥,而不是Localizable.strings(IOS)中的值

我创建了一个名为“Localizable.strings”的字符串文件,并添加了两种语言,如下所示:

"CONNECTIONERROR" = "Check that you have a working internet connection.";
"CONNECTIONERRORTITLE" = "Network error";

我也将文件转换为Unicode UTF-8
但是,当我创建一个这样的UIAlertView时:

UIAlertView *myAlert = [[UIAlertView alloc]
 initWithTitle:NSLocalizedString(@"CONNECTIONERRORITLE",nil)
 message:NSLocalizedString(@"CONNECTIONERROR",nil)                    
 delegate:self
 cancelButtonTitle:@"Ok"
 otherButtonTitles:nil];

警报视图仅显示关键文本,而不是值。例如,如果我将UITextviews文本设置为NSLocalizedString(@“CONNECTIONERROR”,nil),则该工作正常,但警报视图只显示该键。有人知道有什么问题吗?

解决方法

在我的情况下,是因为我错误地命名了文件“Localization.strings”,并没有注意到(它必须被命名为Localizable.strings)。如前所述,症状是因为编译器找不到字符串。否则原因可能是任何数量的事情,但通常它是一个缺少的半殖民地或引号。当您一次做很多本地化时,很难找到这些。学到的教训是在开发过程的早期开始构建您的本地化文件,并随时构建本地化文件,以便更容易找到。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐