[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ next ]

Introduction to i18n
Chapter 12 - Softwares Written in Other than C/C++


Though C and C++ was, is, and will be the main language for software development for UNIX-like platforms, other languages, especially scripting languages, are often used.

Generally, languages other than C/C++ have less support for I18N then C/C++. However, nowadays other languages than C/C++ are coming to support Locale and Unicode.


12.1 Fortran

***** Not written yet *****


12.2 Pascal

***** Not written yet *****


12.3 Perl

Perl is one of the most important languages. Indeed, Debian system defines Perl as essential.

Perl 5.6 can handle UTF-8 characters. Declaration of use utf8; will enable it. For example, length() will return the number of characters, not the number of bytes.

However, it does not work well for me... why?

***** Not written yet *****


12.4 Python

***** Not written yet *****


12.5 Ruby

***** Not written yet *****


12.6 Tcl/Tk

***** Not written yet *****

Tcl/Tk is already internationalized. It is locale-sensible. It automatically uses proper font for various characters. Though it uses UTF-8 as internal encoding, users of Tcl/Tk don't have to aware of it. This is because Tcl/Tk converts encodings.


12.7 Java

Full internationalization is naturally lead from Java's "Write Once, Run Anywhere" principle. To achieve this, Java uses Unicode as internal code for char and String. It is important that Unicode is internal code. Java obeys the current LOCALE and encoding is automatically converted for I/O. Thus, users of applications written in Java doesn't need to be aware of Unicode.

Then how about developers? They also don't need to be aware of the internal encoding. Character processings such as counting of number of characers in a string work well. And more, you don't have to worry about display/input.

However, you may want to handle specified encodings for, for example, MIME encoding/decoding. For such purposes, I/O can be done by specifying external encoding. Check InputStreamReader and OutputStreamReader classes. You can also convert between the internal encoding and specified encodings by String.getBytes(encoding) and String(byte [] bytes,encoding).


12.8 Shell Script

***** Not written yet *****


12.9 Lisp

***** Not written yet *****


[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ next ]

Introduction to i18n

14 February 2003
Tomohiro KUBOTA kubota@debian.org