NSLocalizedString(@"welcome_message", nil)
returns a NSString
.
Let's clarify, it's just a "suite of characters", there is no notion of bold/colors, italic, offsets, etc.
And to show different characters with different rendering (colors, boldness, etc.) you need to use NSAttributedString
Since it's only a suite of characters, you need to find which elements need to have a different rendering. To do so, you can use tags, like HTML, Markdown, BBCode tags.
Sample for the part, and I'll simplify focusing only in bold:
//Initial text
...un link all'indirizzo...
// With BBCode tag
...un [b]link[/b] all'indirizzo...
// With HTML tag
...un <b>link</b> all'indirizzo...
// With Markdown tag
...un **link** all'indirizzo...
// With custom tag
...un {link} all'indirizzo...
Put that new value in your strings file.
If you use HTML, there is a built-in init method for that.
See related question: Convert HTML to NSAttributedString in iOS
For the other ones, you can either use a third party lib parser, or parse them yourself. You can use NSRegularExpression
, NSScanner
, etc... and then apply the target effect to the correct range.