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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容