Fix #4, support more languages