The two rules of thumb for translations:
Make the translatable strings as long as possible so translators have
context.
If there are a reasonable number of alternative phrasings needed, include
them all, this lets translators freely conjugate them.
So if you have "there is a $monster in sight", it's not practical to make a
separate string for each monster, but if there are 2, 3, even 5 phrases,
prefer explicitly including them all.  Pluralization is special and you
need to use ngettext.