Во-первых, вы должны иметь в своих .strings гораздо более общий и читаемый ключ, что-то вроде:
"_REPLIED_IN_" = "%@ has replied in %@";
Не путайте ключи и значения, как вы это делаете в своем примере.
Кроме того, позже будет легче увидеть, когда в вашем коде нет жестко закодированной строки.
Теперь есть проблема, потому что в английском это может быть в таком порядке, но не обязательно в других языках.
Так что вместо:
"_REPLIED_IN_" = "%1$@ has replied in %$2@";
Теперь я буду использовать пример, выделенный жирным шрифтом, потому что это проще, но вы можете использовать некоторые пользовательские теги, чтобы сообщить вам, что он должен быть выделен жирным шрифтом, например HTML, MarkDown и т. Д.
В HTML:
"_REPLIED_IN_" = "<b>%1$@</b> has replied in <b>%$2@</b>";
Вам нужно разобрать его в NSAttributedString
:
let translation = String(format: NSLocalizedString(format: "_REPLIED_IN_", comment: nil), userName, conversationTitle)
let attributedText = NSAttributedString.someMethodThatParseYourTags(translation)
Вы сами выбираете самый простой формат тега), в соответствии с вашими потребностями: это легко понять переводчикам и легко разобрать (у CocoaTouch уже есть анализатор HTML и т. Д.).