iOS国际化多语参数顺序,格式化参数顺序、format参数顺序

2021-03-22  本文已影响0人  黑色蚂蚁_MGL

假如UI有个界面文案是某个人打了某个动物

咱们中文翻译里会写成

"translate" = "%@ 打了 %@"

在代码里会写成

let str1 = String(format: translate, "小明","狗")
界面输出:小明打了狗

这时候英文翻译回来了(很多语言的语序和中文不一样)

"translate" = ""%@ was beaten by %@""

那就界面显示的是

let str1 = String(format: translate, "小明","狗")
界面输出:狗打了小明

所以当需要国际化的文案有两个及以上的占位符时,最好加上顺序标记

中文
"translate" = "%1$@ 打了 %2$@"

英文自然会被翻译成
"translate" = "%2$@ was beaten by %1$@"
这时代码逻辑里的占位符的参数,会根据标识对应
所以英文下会输出
"狗 was beaten by 小明"
上一篇下一篇

猜你喜欢

热点阅读