New code.

Now it can handle multiple language