- (NSString *)localizedStringForKey:(NSString *)key
value:(NSString *)value
table:(NSString *)tableNameDoc将上述方法中的tableName参数描述为:要搜索的接收方字符串表。如果tableName为零或空字符串,则该方法尝试在Localizable.strings.中使用表
我的问题是,如果我们创建一个Localizable.strings,它只创建一个字符串文件。在我们的项目中没有创建任何表。桌子到底在哪里?是否可以手动创建这样的字符串表?我有必要在我的项目中这样做..。
我的最后一个问题是-作为参数传递给tableName参数的值是多少?
谢谢..。
发布于 2011-05-25 10:43:28
在这方面,“表”是指翻译的文件。因此,对于Localizable.strings,您可以使用NSLocalizedStringFromTable(@"foo“、@"Localizable”、@“NSLocalizedStringFromTable”)从它获得翻译。但是,Localizable.strings是默认的,所以您通常只使用NSLocalizedString(@"foo",@“NSLocalizedString”)。如果您添加了一个新的翻译文件(例如,Settings.strings),那么您必须使用表名来引用它。
发布于 2011-05-24 13:04:14
表-它只是指一个键值对。
在文档中有更多的细节
所以,是的--您必须手动创建这些--因为您对本地化的字符串使用NSBundle助手方法--您可以使用- (NSString *)localizedStringForKey:(NSString *)key value:(NSString *)value table:(NSString *)tableName,然后运行genstrings来生成.strings文件和表。
为了使这个更清晰,编辑了Strings表,它只是一个键值对的列表。如果生成包含以下内容的Localizable.strings文件:
/* Text for saying hello */
"HelloText" = "Hello!";现在,您可以将该文件复制到另一个本地化的.lproj文件中,并将其更改为特定语言的值:
"HelloText" = "Namaste!";这就是他们所说的桌子的意思。
https://stackoverflow.com/questions/6110641
复制相似问题