Also, it might be useful to mention that filter and directive behave differently. The filter get evaluated on every `$digest` (which is a common behaviour in angular filters), however, the directive is smart enough to deregister watches for the translation ids. Therefore, when using translate directive, translation ids only get evaluated when needed, which is when somebody changes the language.

In other words, it's better to use directive over filter where possible.