I got a strange or maybe intended behavior with angular translate.
Our value strategie is
sanitizeParameters instead of
sanitize. Here is the fixed plnkr: http://plnkr.co/edit/qicVqPXn3qo6hMNa1fY2?p=preview
(EDIT: 07/10/2016): There is a significant difference between the two sanitization strategies.
sanitizeParameters sanitizes the interpolation parameters and not the translated output. That means that it doesn't allow for changes in those parameters, but the translated content is still vulnerable since it's not sanitized. What I like to do is use
$translateProvider.useSanitizeValueStrategy('escape','sanitizeParameters'); when using UTF-8 characters to ensure that all content is either sanitized or escaped. However, that means that you wouldn't be able to use any HTML in your translations, which might not be an option for some people (like the OP in this case).
The problem with
sanitize and UTF-8 characters is a known issue and I believe it's being worked on.