change the way to handle i18n