The ucurr_* API is using magic numbers for some of its buffers. This means that
when a locale like ja_JP_TRADITIONAL is used, it returns U_BUFFER_OVERFLOW_ERROR
instead of valid data from ja_JP.
There are other magic numbers that should be removed too.
Also the API does its own custom fallback. Unfortunately, it presumes that the
underscore is always the delimiter for each part of a locale. However each API
is allowed to use a locale like "en-us" too. The uloc_getParent() function
should be used instead of the custom fallback() function in ucurr.cpp.
The API may also have multithreaded issues, and further investigation is needed.