Let\'s say I have a User Entity :
$user = new User(007);
echo $user->getName(); // display Bond
echo $user->getGender(); // display \"Male
I ran into the similar problem and finally found this solution. This is not a direct answer to your problem because I'm also aware that an entity should have nothing to do with a service, like translator. So you should leave the getDesignation function untouched. Instead, in the presentation layer, twig for example, you translate that French designation.
{% trans %}{{ entity.designation }}{% endtrans %} {{ entity.name }}
And in your messages.en.yml
Monsieur: Mr.
Madame: Mrs.