Need advice on i18n in macros and blueprints

Following the guide on Internationalization, I understood how to setup I18N for UI elements. However, how is I18N best performed in

  1. hbs files for macros
  2. client side javascript which is included in a hbs file
  3. xml files for templates
  4. in routing javascript (index.js on server), if the solution for above is to use variants of the hbs/xml files each for different languages.

I’m stuck here, please help.