That code change does not affects string translation in any way, I am suggesting just for the sake of clean code.
so why is it a problem it has a tag included?
You got this right. It has a tag included that is the problem, I mean just code level problem. You can consider this as code refactoring. Using <em>
tag instead of % will not affect the purpose of this issue.
I am going to show you an example.
Code 1:
print t('<em>I am translatable</em>');
OR
Code 2:
print t('%translatable_string', array('%translatable_string' => t('I am translatable')));
My opinion choose Code 2, and that is what I am suggesting here.
While I was writing this.. timplunkett answered my query in IRC<subhojit777>
suppose I want to print a string within <em>
tags, and also want the string to be translatable, I mean enclose it within t(). What would be the best approach t('<em>Translatable string</em>') OR t('%string', array('%string' => t('Translatable string')))
<subhojit777>
I am asking this in reference to this issue https://www.drupal.org/node/2394951#comment-9602489 (this issue)<timplunkett>
subhojit777: no embedding tags is fine<timplunkett>
subhojit777: return t('<em>Edit @type</em> @title', array('@type' => $type_name, '@title' => $entity->label()));
is fine<timplunkett>
subhojit777: <em>
and <em class="placeholder">
are different<subhojit777>
timplunkett, Is there any significant difference between them, apart from the class<timplunkett>
subhojit777: that, and its harder for translators because they have less context<timplunkett>
<em>Edit @type</em>
@title is different than Edit @type
I hope you got what I was trying to make you understand :) I will revert back the old code. Sorry :)