NSLocalizedString()的第二个参数是什么?

时间:2009-09-18 06:11:20

标签: ios objective-c swift xcode localization

以下*comment参数是什么:

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

如果我这样做:

NSLocalizedString(@"Hello_World_Key", @"Hello World")

并且有两个版本的Localizable.strings(英语和西班牙语),每个版本都需要输入:

English.lproj/Localization.strings: @"Hello_World_Key" = @"Hello World";

Spanish.lproj/Localization.strings: @"Hello_World_Key" = @"Hola Mundo";

英语不是多余的吗?

3 个答案:

答案 0 :(得分:265)

第二个参数是一个注释,如果您使用 genstrings 命令行实用程序,它将自动出现在字符串文件中,该实用程序可以通过扫描源代码为您创建字符串文件。

该评论对您的本地化人员非常有用。例如:

NSLocalizedString(@"Save",@"Title of the Save button in the theme saving dialog");

当您运行genstrings时,这将在Localizable.strings文件中生成一个条目,如下所示:

/* Title of the Save button in the theme saving dialog */
"Save" = "Save";

答案 1 :(得分:65)

应用程序忽略注释字符串。它用于翻译者的利益,为在应用程序中找到密钥的上下文使用添加含义。

例如,Hello_World_Key密钥在给定语言中可能采用不同的值,具体取决于Hello World短语在该语言中的正式或非正式性(“What is up World”,“Yo”世界“,”美好的一天世界“等。)

您可以在评论字段中添加一个字符串,以便将此用法提示给翻译人员,他们(人们可以认为)可以更好地本地化您的应用程序。

答案 2 :(得分:0)

这只是开发人员对翻译的理解,就是你给出了一个键来从相应的字符串文件中获取相应的字符串。

comment参数使开发人员能够理解密钥代表的内容......