127

*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";

英文不是多余的吗?

4

3 回答 3

285

第二个参数是一个注释,如果您使用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";
于 2009-09-18T06:18:59.007 回答
76

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

例如,Hello_World_Key键在给定语言中可能采用不同的值,具体取决于该Hello World短语在该语言中的正式或非正式程度(“What's up World”、“Yo World”、“Good Day World”等)。

您可以在注释字段中添加一个字符串以向翻译人员提示此用法,他们将(假设)能够更好地本地化您的应用程序。

于 2009-09-18T06:20:44.497 回答
0

这只是为了让开发人员理解翻译,即您提供了一个从相应的字符串文件中获取相应字符串的密钥。

注释参数使开发人员能够理解键代表什么......

于 2012-07-27T12:14:58.873 回答