Add i18n support and some other modification