Actually I believe this is the right way to do it.  Note that we are not having styling tags like <b> or <em>, but a span.  The span allows marking a span of text (with no visual effect) until they are styled via a css file.  This way we can have a language that flows based on the localization, but is still styled appropriately.  This is as opposed to concatenating multiple strings and hence assuming a specific order of the sub-strings and variables independent of localization.