Internationalization is the process of designing and building a product so that it can be easily adapted to specific languages and cultures. The product might be an application, online service, line of merchandise, document or book, or anything else that will target audiences from different cultures who speak different languages. The term internationalization is often represented as i18n, where 18 is the number of letters between the word's opening "i" and closing "n."
Internationalization provides a foundation for more effectively localizing a product for multiple target audiences. It makes it possible to deliver a product more quickly to these audiences because it streamlines the localization process.
Although internationalization incurs more upfront development costs, it can lead to long-term savings when considering the costs of rolling out and updating a product that targets multiple markets. The product is also more appealing to a wider base of customers, which can increase revenue and offset the initial investment in internationalization.
Internationalization can apply to a wide range of products, but it is most often discussed in terms of software development because of the important role that applications and services have come to play in the global market. Although internationalizing can represent a significant effort when developing software, many organizations believe it is worth this investment when releasing software on a global scale.
Software developers use a variety of methods to internationalize their applications. Some of the more common methods include the following strategies:
- Providing enough space in the user interface to accommodate different translations of the various labels and instructions as well as whether the language uses single-byte or multiple-byte character codes. For example, a button for closing a dialog box will likely include a label. In English, the label reads "Close," which is short. But in German, the label reads "Schließen;" in Croatian, it reads "Zatvoriti;" and in Japanese, the label reads "近い." If the button cannot accommodate the longer words or multi-byte characters, the label might be confusing or unreadable when localized for those audiences.
- Ensuring the interface can support text in languages that are written from left-to-right, right-to-left, or both (bidirectional). For example, a message box might display a sentence that includes a URL. In English, the entire sentence is written from left-to-right. In Arabic, all sentence elements are written from right-to-left except for the URL, which is written from left-to-right even though it's embedded in the same sentence.
- Building the software with support for Unicode character encoding to ensure that all readable text can be easily translated into multiple languages. The most recent edition of the Unicode Standard, version 15.0, includes encodings for 149,186 characters, covering most of the world's languages.
- Removing any text from the source code that will need to be translated for multiple target audiences. Instead the text should be stored in resource files and referenced through placeholder keys within the code. In this way, the correct text can be automatically substituted for the placeholder keys when delivering the product to a target audience. For instance, instead of hard-coding the word "Save" on a dialog box button, developers can use a language-independent placeholder key for that specific text.
- Removing predefined formatting instructions from the source code and putting that information in resource files, like how it's done for the application's text. In this way, the software can accommodate cultural differences in how currencies, numbers, time zones, dates, etc. are handled while still using the same code base for all localized versions.
- Removing hard-coded references or links to specific graphic images and instead using placeholders, similar to how they're used for user interface text. If a content management system is used, it should be able to accommodate the internationalization process.
- Avoiding string concatenations that could cause information to be presented incorrectly when localizing the software. For example, if a concatenation is designed for a language that reads from left-to-right, the text could become confusing or unreadable when localizing the software for a language that reads from right-to-left.
- Designing the software to accommodate cultural differences that are reflected in how users interact with the application's interface. For instance, the software should be able to handle alternate calendars or the different ways in which cultures refer to their names or addresses.
The main goal of internationalizing software is to ensure that the source code remains independent of any one culture or language. The product can be more easily localized for each target audience without updating the source code in each case.
Internationalization is often confused with globalization, localization or translation, but each concept has a specific meaning that distinguishes it from the others. Even so, the terms are related to each other in important ways, which is why they're often referenced together with the acronym GILT. The following diagram show how the four processes fit together.
The figure includes only two products as part of the globalization effort, but there can be any number of products. More importantly, it illustrates how internationalization, localization and translation fall under the larger globalization umbrella, with each playing a specific role in delivering a product:
- Globalization (g11n). The practice that an organization carries out to extend its reach beyond the confines of a specific region, culture or language. Organizations launch globalization to deliver their products to a wider market, one that potentially incorporates the entire globe. An important part of the globalization effort is to internationalize each product so it can then be easily localized for its target audiences.
- Internationalization (i18n). The process of designing and building a product so it is indifferent to any specific culture or language. Internationalization makes it easier to localize a product for specific target audiences without adjusting the code base for each of those targets.
- Localization (l10n). The process of adapting and customizing a product for a specific target audience, as identified by its language and culture. Localization includes translating text as well as ensuring that the UI, text and images are formatted and presented in a way that is acceptable to the target audience. The more thoroughly the product has been internationalized, the easier it is to localize the product for multiple target audiences.
- Translation (t9n). The process of translating all readable text into the language of the target audience. Translation is a key step in the localization process, but it is not the only step.
Each of the four processes can be represented by a numeronym, a type of abbreviation that includes one or more numbers. Each numeronym includes the first letter, last letter and the number of letters in between, as highlighted with term internationalization. For example, globalization is often represented as g11n, where 11 is the number of letters between the word's opening "g" and its closing "n."
Explore a developer guide to software localization, learn 7 supply chain management key terms you need to know and compare 6 top programming languages.