在订单重要的地方定位多个占位符

时间:2014-08-13 17:24:55

标签: objective-c ios7

我很难弄清楚如何使用各种占位符本地化字符串,在某些语言中订单很重要。

例如以下消息,其中%1 $ s是歌曲标题,%2 $ s是歌曲艺术家。在日语中,翻译需要首先显示歌曲艺术家的歌曲名称。这对于Android来说相当容易,因为占位符指定了输入所需的参数号。

的Android

<string name="share_listening_msg_2">I’m listening to “%1$s” by %2$s on #xiialive</string>

对于iOS,我很难找到解决方案,因为Android上没有占位符ID。

的iOS

"share_listening_msg_2"="I’m listening to “%@” by %@ on #xiialive";

1 个答案:

答案 0 :(得分:1)

您可以使用顺序说明符。

此处的文档:https://developer.apple.com/library/ios/documentation/MacOSX/Conceptual/BPInternational/Articles/NotesForLocalizers.html

相关摘录:

  

如果字符串包含多个变量参数,则可以更改   使用“$”修饰符加上参数的参数顺序   编号

/* Message in alert panel when something fails */
"Oh %@! %@ failed!" = "%2$@ blah blah, %1$@ oh!";