Localizing your iPhone apps should be part of your plan. Oftentimes localization is an afterthought. However, with iPhone apps being available to over 70 countries, you should not ignore the impact localization will have on your overall sales figure.
Here are a few tips to get you started:
To localize your strings, use NSLocalizedString( ).
For example, instead of using
[NSString stringWithFormat:@"title"], you would do this instead:
[NSString stringWithFormat:NSLocalizableString(@"title", @"title for the app")]
The second argument to NSLocalizedString is a hint text letting the translators know what the string is for. Even though the second argument is optional, I strongly advice you supply the hint text so the translators know in what context the string is used in.
To generate all localizable strings in your code, use the command "genstrings" in your terminal. Name that as Localizable.strings and add it to your Resources. To localize, select the file in Xcode and click Get Info (or cmd + i).
BCP 47 is used to name the language code. Read more here: http://www.rfc-editor.org/rfc/rfc4647.txt.
After you have taken care of the technical side of things, the next question is: who should you get to work on your translations?
I will let you in on a little secret. IdeaOrganizer (our iPhone product) had been localized to 12 languages, and we did it all without the use of professional translation service. All the translations were done by volunteers online, and most of them are very computer savvy. Moreover, the translations are all done by a few native speakers simultaneously (via chat session), so the quality of the translations that we get far surpass what you can get from a traditional translation service and is much less error-proned.