0

我有一堆以下代码行:

[NSString stringWithFormat:@"%@ and %@", subject.title, secondsubject.title];

 [NSString stringWithFormat:@"%@ and %d others", subject.title, [newsfeeditem count] - 1];

以及应用程序中的更多内容。基本上我正在构建一个像 facebook 这样的新闻提要风格,它有字符串常量。废话喜欢废话。我应该在哪里/如何做这些字符串常量,以便轻松实现国际化?我应该有一个仅用于存储字符串常量的文件吗?

4

1 回答 1

2

请参阅资源编程指南的字符串资源部分。这个特定问题的关键部分是“格式化字符串资源”。

你会有类似的东西:

[NSString stringWithFormat:NSLocalizedString(@"%1$@ and %2$@", @"two nouns combined by 'and'"),
                           subject.title, secondsubject.title];

%1$@是第一个替换的位置。这使您可以重新排列文本。然后你会有字符串资源文件,如:

英语:

/* two nouns combined by 'and' */
"%1$@ and %2$@" = "%1$@ and %2$@";

西班牙语:

/* two nouns combined by 'and' */
"%1$@ and %2$@" = "%1$@ y %2$@";

你需要对这些组合非常深思熟虑。首先,您永远无法以可翻译的方式从句子的一部分中构建一个句子。您几乎总是需要一口气翻译整个消息。我的意思是你不能有一个字符串说@"I'm going to delete"和另一个字符串说@"%@ and %@"并将它们粘合在一起。语言之间的词序变化太大。

同样,由于各种协议规则,复杂的事物列表可能会导致各种令人头疼的问题。一些语言有特殊的复数规则、性别协议和类似问题。尽可能保持您的信息简单、简短和静态。

但是上述工具对于解决您正在讨论的问题非常有用。有关更多详细信息,请参阅文档。

于 2012-09-14T20:57:27.387 回答