有参数的NSLocalizedString

NSLocalizedString的定义:

#define NSLocalizedString(key, comment) \

[[NSBundle mainBundle] localizedStringForKey:(key) value:@"" table:nil]

使用时
第一个参数key是从Localizable.strings这个文件中读取对应的key-value值。

第二个参数comment可以是nil,可以是一段为空的字符串,也可以是对key的注释。

1.有一个参数

其实与字符串中表示参数的方法一致,直接在NSLocalizedString中使用%@、%d、%f等即可。
在引用时:

Localizable.strings中的定义:
"FORMAT" = "由%@处理";

str = [NSString stringWithFormat:NSLocalizedString(@"FORMAT", nil), xxx];

2.有多个参数

多个参数就要考虑顺序问题,不同语言的表述方法不,例:
中:由a创建的事件b
英:Event b created by a

Localizable.strings中有如下定义:
"FORMAT" = "由“%1$@”创建的事件%2$@";
"FORMAT" = "Event %2$@ created by '%1$@'";

str = [NSString stringWithFormat:NSLocalizedString(@"FORMAT", nil), xxx, xxx];

本地化NSLocalizedString中有多个参数,且顺序不同时,要在%和@中间加上1$,2$等,数字就代表参数的顺序。

你可能感兴趣的:(有参数的NSLocalizedString)