iphone – 如何创建格式化的本地化字符串?

我有一个本地化的字符串,需要采取一些变量.但是,在本地化中,变量的顺序可能会因语言而异.

所以这不是一个好主意:

NSString *text = NSLocalizedString(@"My birthday is at %@ %@ in %@", nil);

在某些语言中,某些词语出现在其他语言之前,而在其他语言中则是相反的.我目前缺乏一个很好的例子.

如何在格式化字符串中提供NAMED变量?没有一些沉重的自制字符串替换,有没有办法做到这一点?甚至像{%@ 1},{%@ 2}之类的一些编号变量也足够……是否有解决方案?

这就是NSLocalizedString采用两个参数的原因.使用第二个参数包含描述变量的本地语言含义的注释.然后,翻译人员可以使用$number构造重新排序它们.请参阅Apple的 Notes for Localizers.

但是,您不能跳过一种语言的参数.例如,如果您有3个英语参数和4个法语参数,并且您不需要英语中的第三个参数,则不能格式化为%1 $@%2 $@和%4 $@.你只能跳过最后一个.

相关文章
相关标签/搜索