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

什么是*comment参数在:

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

如果我这样做:

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

并有两个版本的Localizable.strings(英文和西class牙文),每个都需要条目:

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

英国人不是多余的吗?

注释string被应用程序忽略。 它用于翻译的好处,为应用程序中find的关键字的上下文使用添加含义。

例如, Hello_World_Key键可能在给定的语言中使用不同的值,这取决于Hello World短语在该语言中的正式或非正式forms(“What's Up World”,“Yo World”,“Good Day World”等) )。

您可以在注释字段中添加一个string,以向翻译人员提示这种用法,谁将(可以假定)能够更好地本地化您的应用程序。

第二个参数是一个注释,如果你使用genstrings命令行工具,它会自动出现在string文件中,它可以通过扫描你的源代码为你创buildstring文件。

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

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

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

comment参数使开发人员能够理解密钥代表什么…