rewritten to support all language data in one json file