i18n for the browser and node.js