NSLocalizedString的一个小知识点

今天在使用NSLocalizedString的时候碰到一个小问题:

中文版:我是来自“xxx”的xxx
英文版:I am xxx from 'xxx'

这里有两个问题:

  1. 中文版被两个参数分成了4部分,英文版被两个参数分成了5部分
  2. 参数的顺序不同

第1个很好办,只要在NSLocalizedString中使用%@这样的参数就可以了,这样在使用的时候按照这样的格式就可以了:

Localizable.strings中有如下定义:
"FORMAT" = "我是来自“%@”的%@";

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

第2个不太常见,原来参数是可以指定顺序的:

Localizable.strings中有如下定义:
"FORMAT" = "我是来自“%1$@”的%2$@";
"FORMAT" = "I am %2$@ from '%1$@'";

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

只需要在%和@中间加上1$,2$等等就可以啦,数字就代表参数的顺序。

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

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,868评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,067评论 25 708
  • 上学那会儿安妮宝贝非常火,但是大家评价说她的文章里满是悲凉,出于乖乖女的心态,不看非正能量的书,也就没有看安妮宝贝...
    艾米小姐阅读 554评论 0 0
  • 浩洋: 中午,我们在特斯拉体验店见面了。 我在聊天,你过来呼喊我。 我们之间没有久别重逢的惊喜,却像老友归来淡淡的...
    周洋_图乐园阅读 399评论 2 10