I know you'd have to use Unicode. And that Japanese is read vertically and reverse of English. What are some of the things one would have to take into consideration?
What you are asking about is referred to as internationalization (i18n). You would have to consider UI layout to allow text from different languages to fit properly and to allow controls to dynamically shift positions to make room for this text.
You would also have to account for locale-specific date and currency formats.
If your application requires a database, you would have to ensure that data is stored in Unicode.
Some languages (Hebrew and Arabic) are read right to left. Also, if you are including the localized display of Dates then you need to accommodate locale-specific date formats (m/d/y vs d/m/y) and abbreviations (Oct vs Okt). If you are showing localized time anywhere then you will need to tackle the Time Zone beast as well.
Before you start with vertical languages like (some of) Japanese scripts, I would look at Right-to-Left issues. Once you understand them, you are somewhat prepared to tackle other writing systems.
A good example of issues related to RTL handling is available from W3C. They mostly talk about it in the context of HTML, but the core issues are there.
You especially need to deep-dive into these issues if you expect to mix languages (e.g. Arabic content mixed in with English).
Not all languages have the notion of uppercase and lowercase, and of those that do it's not always a 1:1 mapping, and you can't always make a round trip with the conversion.
This page, from unicode.org, has some interesting information on the subject, including this:
For example, both a sigma and a final sigma uppercase to a capital sigma