Move missing placeholder text generation into its own function

Currently missing translations are handled using I18n.missingTranslation, which allows overriding the default handling (for example to report missing translations).

This pull request changes missing placeholder text generation to I18n.missingPlaceholder, so the default functionality can be overridden for it as well.