Java Internationalization (i18n) is Java's built-in support for making your app able to serve users in multiple different languages. In fact, internationalization covers more than just the language. It also covers formatting of numbers, adjustment to date and time etc.
Internationalization is what you do to a Java application to make it able to handle different languages, number formats etc.
Localization is what the Java application does when it adapts itself to a user with a specific language, number format, date and time etc.
Internationalization and localization are thus two sides of the same story. Your Java application needs to be internationalized to in order to be able to localize itself.
Internationalization is often abbreviated i18n. The 18 refers to the 18 characters between the first letter i, and the last letter n. Localization is similarly abbreviated as L10n.
Java 6+ Internationalization
This tutorial explains how Java internationalization works from Java 6 and forward.
Work in Progress
This Java internationalization tutorial is "work in progress", so if you spot a a missing description of a feature etc., please be patient. I'll add it when I get the time to do it. Or better yet, send me an email, so I can add it more quickly.
Feel Free to Contact Me
If you disagree with anything I write here about the Java internationalization tutorial, or just have comments, questions, etc, feel free to send me an email. You wouldn't be the first to do so. You can find my email address on the about page.