Apple Developer Connection
Member Login Log In | Not a Member? Contact ADC

< Previous PageNext Page > Hide TOC

Internationalization and Localization

Internationalization is the process of designing and building an application to facilitate localization. Localization, in turn, is the cultural and linguistic adaptation of an internationalized application to two or more culturally-distinct markets. When users launch a well-localized application, they should feel fully at home with it and not feel like it originated from some other country.

Internationalization and localization are complementary activities. By internationalizing an application, you create the programmatic infrastructure needed to support localized content. By localizing that application, you then add resources that are customized for people of a different culture. Localizing an application often involves translating the user-visible text of the application, but that is only part of the work that must be done. Other parts of your application must also be modified, including the following:

Much like previous versions of Mac OS, the Mac OS X programming environments make internationalizing your application easy. The application's executable code resides in one file while individual resources are located in separate files. The resource files for a single localization are stored together in a language-specific project directory. More than one language-specific directory may exist for the same executable file, making it possible for a single application bundle to support multiple localizations easily. This support even allows you to store localizations for single-byte and double-byte languages together in the same bundle.

To simplify the development of an internationalized application, you need to identify all culture-specific information in your application. Scour your user interface for culture-specific text, images, and sounds and put them into resource files. At the same time, make sure the code that uses those resources loads them from the corresponding resource files. You should also look for places where your user interface displays dates and currency values and make sure you are formatting them using the current locale information.

Once your application’s user interface is frozen (which may be before the code freeze), you can begin to localize it. For each localization, the localization team creates language-specific versions of the nib files, text, images, and sound files. If your application is properly internationalized, the process doesn’t require modifications to your source code. You can therefore create the translations in-house or contract with an outside localization service.

Even if you do not plan to support multiple languages immediately, internationalizing your application up front is a good idea. Storing resources outside of your executable file makes it easier to change the appearance of your application without requiring a complete revalidation of its behavior. This reduces the likelihood of introducing bugs to your code if you do choose to localize. There is also no penalty for building internationalization support into your application. Even if your application is monolingual, you still need to test all available code paths. If your code is properly internationalized for one language,it should require little additional testing to support other languages.



< Previous PageNext Page > Hide TOC


Last updated: 2005-09-08




Did this document help you?
Yes: Tell us what works for you.

It’s good, but: Report typos, inaccuracies, and so forth.

It wasn’t helpful: Tell us what would have helped.
Get information on Apple products.
Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Copyright © 2007 Apple Inc.
All rights reserved. | Terms of use | Privacy Notice