Emails templates in the language of the receiver
I think there is no approach for this on CiviCRM beyond smarty approach. We workaround this by splitting receivers groups by their language preferences and sending their separate mails from templates builded in different languages.

This approach its fine for us. See this feature request on Mosaico project with the aim of facilitating work in this direction.

Also, maybe it would be better to find a language preference filter directly on the CiviMail UI without the need to have to separate the mailing groups by language previously.