首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSLocalizedString“本地化NSLocalizedString:value:table:”

NSLocalizedString“本地化NSLocalizedString:value:table:”
EN

Stack Overflow用户
提问于 2011-05-24 12:46:46
回答 2查看 10.1K关注 0票数 9
代码语言:javascript
复制
- (NSString *)localizedStringForKey:(NSString *)key 
                              value:(NSString *)value 
                              table:(NSString *)tableName

Doc将上述方法中的tableName参数描述为:要搜索的接收方字符串表。如果tableName为零或空字符串,则该方法尝试在Localizable.strings.中使用

我的问题是,如果我们创建一个Localizable.strings,它只创建一个字符串文件。在我们的项目中没有创建任何表。桌子到底在哪里?是否可以手动创建这样的字符串表?我有必要在我的项目中这样做..。

我的最后一个问题是-作为参数传递给tableName参数的值是多少?

谢谢..。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-25 10:43:28

在这方面,“表”是指翻译的文件。因此,对于Localizable.strings,您可以使用NSLocalizedStringFromTable(@"foo“、@"Localizable”、@“NSLocalizedStringFromTable”)从它获得翻译。但是,Localizable.strings是默认的,所以您通常只使用NSLocalizedString(@"foo",@“NSLocalizedString”)。如果您添加了一个新的翻译文件(例如,Settings.strings),那么您必须使用表名来引用它。

票数 18
EN

Stack Overflow用户

发布于 2011-05-24 13:04:14

表-它只是指一个键值对。

文档中有更多的细节

所以,是的--您必须手动创建这些--因为您对本地化的字符串使用NSBundle助手方法--您可以使用- (NSString *)localizedStringForKey:(NSString *)key value:(NSString *)value table:(NSString *)tableName,然后运行genstrings来生成.strings文件和表。

为了使这个更清晰,编辑了Strings表,它只是一个键值对的列表。如果生成包含以下内容的Localizable.strings文件:

代码语言:javascript
复制
/* Text for saying hello */
"HelloText" = "Hello!";

现在,您可以将该文件复制到另一个本地化的.lproj文件中,并将其更改为特定语言的值:

代码语言:javascript
复制
"HelloText" = "Namaste!";

这就是他们所说的桌子的意思。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6110641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档