Properly format currencies according to its locale

This fixes a bug for JPY, where the price is displayed in a wrong
format (&yen; 10,000.00). “&yen; 10,000” is correct.

I used `money_format()` function with `setlocale()`, and modified other
currencies if its locale code is available.