Swift中字符串格式化的问题

maybesong 2016-06-30 01:53:28
我需要在应用的首页上写一句欢迎信息,但是中英文的填充顺序不一样,例如
中文是“欢迎某某公司的 张三”
英文是"welcome 张三 from 某某公司"

我在localizable.string里面分别写
"welcomelabel" = "欢迎 %@ 的 %@"

"welcomelabel" = "welcome %@ from %@"
然后在代码里写
var strfmt = NSLocalizdString("welcomelabel", comment:"welcomelabel")
lbl_welcome.text = String(format:strfmt,"张三","某某公司")

很明显,用这种方法,中文和英文不能兼顾了,那么我的字符串模版应该怎么写才能不按顺序来填充呢?
我试了下
"welcomelabel" = "欢迎 %1@ 的 %2@",没看到效果啊
...全文
252 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
lbl_welcome.text = String(format: "%@ %@ %@", strfmt, "某某公司","张三")
网易云捕 2016-07-04
  • 打赏
  • 举报
回复
就按照二楼(zenny_chen)的方法,代码比较好控制 根据语言环境做不同的处理 if(中文){ var strfmt = NSLocalizdString("welcomelabel", comment:"welcomelabel") lbl_welcome.text = String(format:strfmt,"某某公司","张三") }else if(英文){ var strfmt = NSLocalizdString("welcomelabel", comment:"welcomelabel") lbl_welcome.text = String(format:strfmt,"zhang san","one company") }
zenny_chen 2016-07-03
  • 打赏
  • 举报
回复
我建议楼主还是判定当前的语言环境,然后用两种不同的模式进行排版吧,否则怎么做都比较麻烦~ 此外,format作为格式字符串必须是一个字符串字面量,而不能是一个变量,所以你看不到效果~
zmc1027213356 2016-06-30
  • 打赏
  • 举报
回复
试试看,最好可以

29,027

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧