Ramkumar Ramachandra [off-list ref] writes:
Junio C Hamano wrote:
quoted
The reason would become clear once you think what string you are
feeding eval_gettext with if you do not escape. The translators
translate a fixed string (possibly with placeholders) to a fixed
translated string (possibly with placeholders).
eval_gettext "Stray $dotest directory found. ..."
would allow the shell to expand $dotest before eval_gettext sees it,
which would mean the string is no longer a constant.
Ah. I was scratching my head wondering why $dotest needed to be
translated (it's just a path).
"Stray" and "directory found" are to be translated. You can have
infinite possibilities to $dotest that is computed at runtime, so
that should be kept as a variable, untranslated in the message
template.