Almost, but not quite.
There are a couple of more obscure languages with their own alphabets that Java currently has trouble handling. They're anticipating rectifying this in Java 1.5 next year. Can't remember exactly what languages they are, but I have a feeling that there's a couple of Indian or Arabic dialetcs in there. Basically, any major language is displayable in Java. Anything using a Latin alphabet (English and other European languages), Cyrillic (Greece, Russia etc.), Chinese, Japanese, Korean and Arabic are all covered. I imagine Java is capable of displaying something that can be recognized by well over 90% of the planet's population.
Of course, I could be very pedantic and point out that not all languages are displayable. From memory, the language the Kalahari bushmen use is entirely spoken and can only barely be written (see the movie The Gods Must Be Crazy for those who've no idea what I mean!). And that's only because they've had a couple of Western scholarly types come in and produce an alphabet for them (with a few entertaining characters in it to represent the clicks they make). ;-)
And there are certainly quite a few Australian Aboriginal dialects out there with no written form. But I digress... ;-D
Hope that helps!
Martin Hughes
> How do you use a language that java doesen't have?
As has already been mentioned, Java supports Unicode 3.0. Any languages it can't support are those who've had their characters' hex values standardized since (i.e. in Unicode 3.1 and upwards).
So it all comes down to extending some of Java's core classes so that they can handle Unicode 3.1.
This would be quite a task, as you'd have to start taking surrogate pairs into account (which could be quite messy - Sun themselves have left it alone until 1.5 because they can't think of the tidiest way of doing this just yet).
That's the proper way, anyway. The other way would be to create your own font that contains the characters you need (as the only languages Java can't display are those with characters it doesn't recognize), and then map those characters over the top of existing ones that you don't need. I'm not too sure on how to do this, but know it's possible. You'd likely need to use GlyphVectors to achieve this. From there, you'd need to use fake Unicode values when storing the information elsewhere, simply so they map to your font correctly when they're back inside Java. A bit horrible, but it would work.
Hope that helps!
Martin Hughes