Both OS X and iOS have tremendously powerful tools for working with text. Whether it’s working with multiple languages, converting data into human-readable forms, or detecting information in text, Cocoa and Cocoa Touch contain a wide variety of useful tools for working with strings, text, and language.
In this chapter, you’ll learn how to use the system’s built-in internationalization and localization features to easily make your app display strings in your code in whatever language the user prefers. You’ll also learn how to use
NSFormatter and its subclasses to format data into strings, and how to use data detectors to detect URLs and dates in arbitrary text.
Your primary language may not be the one spoken by your end user. When you write strings embedded in your code for the user to see, those strings are hardcoded into the compiled executable—so if something is written in English, the user will see it in English, even if she doesn’t necessarily read English.
To address this problem, Cocoa has support for localized text, which is text that is replaced at runtime with versions appropriate for your user. In your code, you use placeholder strings, and store the translated versions for every language that you support in a separate file. When the code that displays the text runs, it checks to see which language the user is using, and replaces the placeholder text with the appropriate version.
A strings file ...