什么是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参数使开发人员能够理解密钥代表什么…