Introduction to Internationalization Programming Topics
Today's applications are marketed to a global audience. Selling your applications to that audience requires the customization of your software for each target market. Users in a foreign country are not going to want a user interface in a language they do not understand. Similarly, there may be images that you find acceptable but which are considered quite rude in other cultures. The problem is how do you create software in a language that you do not understand? The answer is through the internationalization technologies found in OS X and iOS.
Rather than rewrite your software for each language you want to support, you can internationalize it to support any language. This process involves separating any user-visible text and images from your executable code. Once you have this data isolated into separate resource files, you can translate it into the desired languages and integrate the localized resource files back into your application bundle. This document helps you understand the steps needed to prepare your application for these processes.
Organization of This Document
This document includes the following articles:
“Internationalization and Localization” introduces the process and terminology associated with internationalization and localization.
“Support for Internationalization” describes the support for internationalization provided by OS X and iOS.
“Language and Locale Designations” describes the conventions for identifying languages and locales in your application.
“Guidelines for Internationalization” provides tips to help you internationalize your software.
“Getting the Current Language and Locale” shows you how to find out which localization is currently in effect.
“Preparing Your Nib Files for Localization” provides tips for localizing your nib files including how to extract strings using
“Localizing String Resources” introduces you to string resource files and their benefits.
“Localizing Pathnames” describes the OS X support for localized bundle and directory names and shows you how to support this feature in your application.
“Notes For Localizers” provides tips for people who localize content in OS X or iOS.
“File Encodings and Fonts” provides legacy information related to file encodings in previous versions of Mac OS, along with information about how to support those encodings in OS X. It also describes some issues surrounding the use of fonts with different file encodings.
The bundle mechanism plays a prominent role in supporting localized versions of an application. In addition, part of the internationalization process involves using resource files instead of hard coding strings and other localizable content into your executable. You should therefore read the following books for related information about the internationalization process:
Bundle Programming Guide provides information about the structure of bundles and how they support localized content.
Resource Programming Guide provides information about resource files (including string resource files) and how you load them into your application.
Different countries use different ways to present and interpret temporal and numeric data; they may also use different calendrical systems. You should read the following books for more information about how to take account of these differences in your application:
Data Formatting Guide provides information about how to present and interpret calendrical and numerical information.
Date and Time Programming Guide provides information about how to manage dates and times in a way that takes into account different calendars and time zones in use around the world.
The following code samples illustrate localization and internationalization techniques and APIs:
Mountains for OS X.
International Mountains for iOS.
© 2003, 2012 Apple Inc. All Rights Reserved. (Last updated: 2012-01-09)