Skip to main content

By clicking Submit, you agree to the developerWorks terms of use.

The first time you sign into developerWorks, a profile is created for you. Select information in your developerWorks profile is displayed to the public, but you may edit the information at any time. Your first name, last name (unless you choose to hide them), and display name will accompany the content that you post.

All information submitted is secure.

  • Close [x]

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerworks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

By clicking Submit, you agree to the developerWorks terms of use.

All information submitted is secure.

  • Close [x]

Java internationalization basics

Joe Sam Shirah (joesam@conceptgo.com), Principal and developer, conceptGO
Joe Sam Shirah is a principal and developer at conceptGO, which provides remote consulting and software development services, as well as products, with specialties in JDBC, I18N, the AS/400, RPG, finance, inventory, and logistics. Joe Sam was presented with the Java Community Award at JavaOne, 1998, and is the author of the JDBC 2.0 Fundamentals short course at the Java Developer Connection. He is the moderator of the developerWorks "Java filter" discussion forum and manager for jGuru's JDBC, I18N, and Java400 FAQs. Joe Sam has a B.B.A. in Economics and a Master's degree in International Management.

Summary:  This tutorial introduces you to the Java programming language's support for multilingual and multicountry environments. The tutorial begins with a general discussion of internationalization principles and concepts, and then moves on to an overview of the specific areas of Java internationalization support. The last few sections provide a more hands-on discussion of the areas basic to any internationalized Java application: Unicode and Java characters; locales and resource bundles; and formatting dates, numbers, and currencies.

Date:  23 Apr 2002
Level:  Introductory PDF:  A4 and Letter (202 KB | 64 pages)Get Adobe® Reader®

Activity:  21606 views
Comments:  

Introduction

Internationalization

Internationalization, in relation to computer programming, is the process of designing and writing an application so that it can be used in a global or multinational context. An internationalized program is capable of supporting different languages, as well as date, time, currency, and other values, without software modification. This usually involves "soft coding" or separating textual components from program code and may involve pluggable code modules.

Internationalization is often shortened to I18N by practitioners. The rationale is that there are 18 letters between the beginning I and final N in internationalization. Try saying and writing "internationalization" more than a few times and you will appreciate the value of the shorter version. Additionally, you may see "I18N'ed" as a shortened form of "internationalized." While grammatically imprecise and technically incorrect, "I18N'ed" is useful and you will see it frequently in the literature, including this tutorial.

Relational database management systems and operating systems may also provide underlying support for certain aspects of internationalization, often using the term National Language Support or NLS.

Localization

Localization is the process of designing and writing an application capable of dealing with a specific regional, country, language, cultural, business, or political context. In a sense, every application written for a specific area is localized, although most of these effectively support only one locale. Usually, though, true localization is achieved by core code that accesses locale, location, political, or other specific components and modules, along with translating text as appropriate for the audience. A properly internationalized program facilitates and provides a foundation for localization.

Localization is often shortened to L10N for the same reasons and logic used to turn "internationalization" into "I18N".

A tax or accounting package that deals with, say, the United States, Canada, Mexico, and Brazil could be I18N'ed so that display, reporting, and other programs would not have be duplicated with customizations for each country. The package would then be L10N'ed to handle different accounting and reporting procedures as appropriate for the country and possibly even for state or province.


I18N raison d'etre

The title of this section itself provides one of the reasons for internationalization: a person who had not been exposed to "I18N" or French (raison d'etre means, roughly, "reason for being" ) would have no idea what this section is about. Sometimes that lack of knowledge is an advantage, as evidenced by the success of faux diamonds. However, if software cannot be understood, no matter how intellectually gratifying to the developer, it is useless. Inconvenient or irritating software is also less useful and less marketable.

In the beginning there was ASCII. Even today, most compilers expect ASCII input. As computers developed, the need for additional language support was recognized and a country-specific character set that usually included both ASCII and a local language was provided with the operating system. Even so, only the one "other" language was generally supported and most developers designed programs according to their own national or local culture. Applications on the Internet and Web, for historical and practical reasons, often followed the same pattern. While the emphasis is usually on the English language, it is easy to find single-language applications and Web sites of all varieties.

Another consideration is economic; there is a great big market out there beyond your country's borders. With the rise of GNP in formerly poor countries, the widespread acceptance of computers, and the increasing population on the Web, markets are changing. As of December, 2001, according to Global Reach's Global Internet Statistics page, the Internet population could be broken down to approximately 45 percent English speakers. Next were Japanese at about 9 percent, followed by Chinese, German, Spanish, Korean, Italian, French, and others, in that order. It is reasonable to assume that computer access tracks similar proportions. And while the online population is expected to double from 2001 to 2005 (and online commerce to grow from roughly $1 trillion to over $6 trillion), the English-speaking percentage of that total is expected to fall to about 39 percent in a continuing trend.

Other reasons to pay attention to internationalization issues may be closer to home: your company may open offices in other countries or receive a Request For Proposal (RFP) from a potential customer in another country.

2 of 11 | Previous | Next

Comments



Help: Update or add to My dW interests

What's this?

This little timesaver lets you update your My developerWorks profile with just one click! The general subject of this content (AIX and UNIX, Information Management, Lotus, Rational, Tivoli, WebSphere, Java, Linux, Open source, SOA and Web services, Web development, or XML) will be added to the interests section of your profile, if it's not there already. You only need to be logged in to My developerWorks.

And what's the point of adding your interests to your profile? That's how you find other users with the same interests as yours, and see what they're reading and contributing to the community. Your interests also help us recommend relevant developerWorks content to you.

View your My developerWorks profile

Return from help

Help: Remove from My dW interests

What's this?

Removing this interest does not alter your profile, but rather removes this piece of content from a list of all content for which you've indicated interest. In a future enhancement to My developerWorks, you'll be able to see a record of that content.

View your My developerWorks profile

Return from help

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=Java technology
ArticleID=131609
TutorialTitle=Java internationalization basics
publish-date=04232002
author1-email=joesam@conceptgo.com
author1-email-cc=

Tags

Help
Use the search field to find all types of content in My developerWorks with that tag.

Use the slider bar to see more or fewer tags.

Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere).

My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Use the search field to find all types of content in My developerWorks with that tag. Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).