add i18n module
split big functions; fixes #52; fixes #53; fixes #55
add locale info of en