Moved the i18n function to vapour.js to avoid duplication