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$
等,数字就代表参数的顺序。