假如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 小明"
网友评论