Introduction to globalization
Globalization lets you create applications for all of your customers in all the languages that you support. In some cases, globalization can let you accept data input using a different character set than the one you used to implement your application. For example, you can create a website in English that lets customers submit form data in Japanese. Or, you can allow a request URL to contain parameter values entered in Korean.
Your application also can process data containing numeric values, dates, currencies, and times. Each of these types of data can be formatted differently for different countries and regions.
You can also develop applications in languages other than English. For example, you can develop your application in Japanese so that the default character encoding is Shift-JIS, your ColdFusion pages contain Japanese characters, and your interface displays in Japanese.
Globalizing your application requires that you perform one or more of the following actions:
- Accept input in more than one language.
- Process dates, times, currencies, and numbers formatted for multiple locales.
- Process data from a form, database, HTTP connection, e-mail message, or other input formatted in multiple character sets.
- Create ColdFusion pages containing text in languages other than English.
You might probably find several different definitions for globalization. Here, globalization is defined as an architectural process where you place as much application functionality as possible into a foundation that can be shared among multiple languages.
Globalization is composed of the following two parts:
- Internationalization Developing language-neutral application functionality that can recognize, process, and respond to data regardless of its representation. That is, whatever the application can do in one language, it can also do in another. For example, think of copying and pasting text. A copy and paste operation should not be concerned with the language of the text it operates on. For a ColdFusion application, you might have processing logic that performs numeric calculations, queries a database, or performs other operations, independent of language.
- Localization Taking shared, language-neutral functionality, and applying a locale-specific interface to it. Sometimes this interface is referred to as a skin. For example, you can develop a set of menus, buttons, and dialog boxes for a specific language, such as Japanese, that represents the language-specific interface. You then combine this interface with the language-neutral functionality of the underlying application. As part of localization, you create the functionality to handle input from customers in a language-specific manner and respond with appropriate responses for that language.
Importance of globalization in ColdFusion applications
The Internet has no country boundaries. Customers can access websites from anywhere in the world, at any time, or on any date. Unless you want to lock your customers into using a single language, such as English, to access your site, consider globalization issues.
One reason to globalize your applications is to avoid errors and confusion for your customers. For example, a date in the form 1/2/2003 is interpreted as January 2, 2003 in the United States, but as February 1, 2003 in European countries.
Another reason to globalize your applications is to display currencies in the correct format. Think of how your customers would feel when they find out the correct price for an item is 15,000 American dollars, not 15,000 Mexican pesos (about 1600 American dollars).
Your website can also accept customer feedback or some other form of text input. You might want to support that feedback in multiple languages using a variety of character sets.
How ColdFusion supports globalization
ColdFusion is implemented in Java. As a Java application, ColdFusion uses Java globalization features. For example, ColdFusion stores all strings internally using the Unicode character set. Because it uses Unicode, ColdFusion can represent any text data from any language.
In addition, ColdFusion includes many tags and functions designed to support globalizing your applications. You can use these tags and functions to set locales, convert date and currency formats, control the output encoding of ColdFusion pages, and perform other actions.
Character sets, character encodings, and locales
When you discuss globalization issues, two topics that you must consider are the character sets or character encodings recognized by the application and the locales for which the application must format data.
A character set is a collection of characters. For example, the Latin alphabet is the character set that you use to write English, and it includes all of the lower- and uppercase letters from A to Z. A character set for French includes the character set used by English, plus special characters such as “é,” “à,” and “ç.”
The Japanese language uses three alphabets: Hiragana, Katakana, and Kanji. Hiragana and Katakana are phonetic alphabets that each contain 46 characters plus two accents. Kanji contains Chinese ideographs adapted to the Japanese language. The Japanese language uses a much larger character set than English because Japanese supports more than 10,000 different characters.
In order for a ColdFusion application to process text, the application must recognize the character set used by the text. The character encoding maps between a character set definition and the digital codes used to represent the data.
In general use, the terms character set (or charset) and character encoding are often used interchangeably, and most often a specific character encoding encodes one character set. However, this is not always true; for example, there are multiple encodings of the Unicode character set. For more information on character encodings, see About character encodings.
ColdFusion uses the term charset to indicate character encoding in some attribute names, structure field keys, and function parameter names.
A locale identifies the exact language and cultural settings for a user. The locale controls how dates and currencies are formatted, how to display time, and how to display numeric data. For example, the locale English (US) determines that a currency value displays as:
while a locale of Portuguese ( Portugese ) displays the currency as:
To correctly display date, time, currency, and numeric data to your customers, you must know the customer's locale. For more information on locales, see Locales.