这个NSLocalizableString代码有什么问题?

时间:2014-11-18 06:24:48

标签: ios objective-c nslocalizedstring

我在Viewcontroller.m上有这个代码,在Xcode上:

 NSString *language = NSLocalizedString(@"es", @"language");
 NSString *connector = NSLocalizedString(@"de", @"connector to link words");

这篇关于“Localizable.strings(英文)”的文章:

"language" = "en";
"connector to link words" = "of";

问题在于,我在iOs Simulator上更改了每种语言,我总是得到第一个值,即Viewcontroller.m的值,而不是获取字符串值。 有谁知道什么是错的?非常感谢你!

更新

我有这个:

NSString *language = NSLocalizedString(@"es", @"language");
NSString *connector = NSLocalizedString(@"de", @"connector to link words");

但它仍然不起作用!!为什么???? 它只显示关键值!!在我的字符串中:

"es" = "en";

"de" = "of";

在英文文件上,以及西班牙文件:

"es" = "es";
"de" = "de";

解: 我想我已经做好了一切,所以问题必须在iOs模拟器中。如果有人可以利用这一点,我的解决方案是在上级任务栏中单击项目图像中的编辑方案,并在“选项”选项卡(在运行部分)中将“西班牙语”设置为我的语言默认情况下。 无论如何,谢谢大家。

2 个答案:

答案 0 :(得分:2)

NSLocalizedString的语法如下所示。

NSString * NSLocalizedString(
  NSString *key,
  NSString *comment
)

key文件中应使用.strings。对于不同的语言,密钥的值将是不同的。

因此,当您运行时,密钥将替换为您设置的语言.strings文件中提供的值。

请查看此tutorial以获取更多解释。

答案 1 :(得分:0)

语法是NSLocalizedString(key,comment)

  

这篇关于“Localizable.strings(英文)”的文章:

     

“language”=“en”;   “连接词链接词”=“of”;

     

所以“语言”是关键,“en”是值

所以

NSString *language = NSLocalizedString(@"language", @"");
NSString *connector = NSLocalizedString(@"connector to link words",@"");