【发布时间】:2018-06-16 19:58:16
【问题描述】:
我有一个可本地化的字符串文件,其中包含
"please" = "Please";
"try.again" = "try again.";
在我的应用程序中,我想使用
"please" = "Please";
"try.again" = "try again.";
同时造句 = $please + $try.again = Please try again.
所以,我已经尝试过这种方法
+ (NSString *)pleaseLocalizedString {
return NSLocalizedStringFromTableInBundle(@"please", @"Localizable",[Bundle bundle], @"Please button");
}
+ (NSString *)tryAgainLocalizedString {
return NSLocalizedStringFromTableInBundle(@"try.again", @"Localizable",[Bundle bundle], @"try again button");
}
但是用这种方式我又得用stringWithFormat把这两种方法结合起来造一个句子……
我怎样才能以一种简单的方式做到这一点?有什么想法吗?
【问题讨论】:
-
你必须隔离它们???
-
为什么要使用两个独立的可本地化字符串?我建议改用一个 - 否则您可能会在某些语言中遇到麻烦:不能保证“请”应该是任何语言的句子中的第一个词。
-
你好,因为我会有太多以
please开头的字符串,所以我想尽可能少地使用它。你有什么想法吗? @algrid @Sh_Khan -
没有“以 please 开头的字符串太多”这样的东西。您有需要本地化的字符串。数量无所谓。预先做好,以后省去很多工作。
-
您应该仔细阅读objc.io/issues/9-strings/string-localization 本地化是一个“重构”不是好主意的地方。您不能假设英语单词或结构与其翻译之间存在一对一的映射。请参阅该文章中的“字符串键最佳实践”标题以获得一个很好的示例。
标签: ios objective-c localization nsstring nslocalizedstring