How do you localize iOS apps?
iOS localization: iPad and iPhone app localization services
Just localizing an iOS app into one additional language can add hundreds of millions of potential users.
Step by step iOS localization tutorial. Let's localize your iPhone app!
- Localize an iPhone app. Preparing your iOS app for localization in Xcode
- Teach Xcode to understand iPhone localization
- Gather every last nib and string for iOS localization
- iPhone App Store description and keywords need to be localized too
- Now your iPhone app can speak that
Preparing your iOS app for localization in Xcode
|
1. Prepare your iPhone localization project. Organize your project in Xcode to localize your iPhone/iPad app. |
2. Extract your strings.
Use |
3. Send for translation.
Hire a professional translator for each language, or do every language simultaneously with Babble-on iPhone localization! |
Place all your iPhone loclalization resources in one en.lproj basket
Teach Xcode to understand iPhone localization.
The first step of iPhone localization is reorganizing your project in Xcode so that it understands that you have a multilingual app.
- Recent versions of Xcode will often create the
en.lprojfolder for you where it stores files likeMainStoryboard.storyboardandInfoPlist.strings. If it's not there already, go to the Finder now and create a folder inside your project folder calleden.lproj. Move any resource files you plan to localize into your en.lproj folder. - Since we've reorganized folders in the Finder, you'll want to remove references to the resource files from the Xcode project window. IMPORTANT: Select "Remove References Only" to remove the file from the project, but do NOT choose "Delete".
- Switch back to Finder and, with your resources safely inside the
en.lprojfolder, drag the resource files back into the Xcode project window. This will allow Xcode to recognize the resources as iPhone/iPad localization files for each language. - As you may have guessed, "en" is the international code for English, so if your original language is something else, use the appropriate code from this ISO guide. You can create additional folders for the languages you want to localize your iPhone app into:
es.lprojfor Spanish,fr.lprojfor French, and so on. Drag these iOS localization folders into the Xcode project window for easy access.
Now we have a place to store our Localizable.strings file — and that's precisely what we're about to create!
Gather every last nib and string
Extracting your strings for iOS localization.
-
Let's begin by making sure your coded strings are ready for iPhone localization. You did use
NSLocalizedStringin your code, didn't you? If not, go back and change all hard-coded strings like this:
to this:
Ideally, you should do this with every string a user sees, including those you create in Interface Builder. Always include a helpful comment for the translators so that they know what this text is about. Remember, they'll be seeing it totally out of context and your helpful hint here is all they have!
-
You have two kinds of texts in your app that we need to extract: Interface builder nibs (.xib) and coded strings. First, we'll use
genstringsto extract all the NSLocalizedString texts we created in Step 1. Open Terminal and navigate to your project's home directory. Then run this command:find . -name \*.m | xargs genstrings -o en.lprojThis creates a strings file called
Localizable.stringsthat extracts all NSLocalizedString calls into a single file in theen.lprojlocalization directory. -
Optional – only necessary if localizing Interface Builder xibs. We can use a similar command called
ibtoolto extract interface elements from Interface Builder. (Remember, the ideal solution would have been to use NSLocalizedString for all elements here, too, making this step unnecessary.) In Terminal, change to theen.lprojdirectory where you stored all .xib files and paste in this command:find . -name \*.xib | xargs -t -I '{}' ibtool --generate-strings-file '{}'.strings '{}'This command will create a
.stringsfile for each and every.xibresource. Be sure to check the document carefully and remove any unnecessary strings that you don't need localized.
And, voilà. Your app will soon speak enough French to understand the word "voilà!" You have all the .strings files you need to send to your iPhone localization team!

IMPORTANT: When you receive the Localizable.strings files back from the translators, simply place them into the correct .lproj folder and Xcode will do the rest! Do NOT rename the files or Xcode won't find them.
What to send to the translator
Don't forget iPhone App Store descriptions and keywords.
You've generated your .strings files, both from Interface Builder and coded strings from Xcode, and those go to the iPhone localization team you hire. That's not everything, though. You'll definitely want to have your app description for the App Store localized as well. Since iTunes Connect will also ask you for keywords, make sure you come up with a list of keywords for your translation team to localize. This ensures that users in other languages will find your app when searching their localized version of the App Store.
This might also be a good time to read through your App Store description and make sure it is the best it can be—before you have it translated into 100 languages.
From our blog: How to write an iTunes App Store description »
Now your app that can speak that
Hiring a team for iOS localization.
|
1. Send your iPhone localization strings.
Send us your |
2. We'll translate. We'll produce localized Unicode-16 text files to insert back into your iOS app in Apple's Xcode. |
3. Users rejoice.
iPhones and iPads are multilingual out of the box, so your app's interface will appear localized for the user automatically. |
Babble-on does iOS localization for great iPhone developers
Talk to a real translator.
Interested in professional iPhone localization from a team that cares about making apps awesome? Unlike automated or cloud translation services which will translate your "bold" text as brave and "Archive" as a noun without considering it might be a verb, Babble-on is a dedicated team of translators that put as much care into localization as you do into app development.
You can talk to us about your project the whole way through, not just upload your strings and cross your fingers.
Developers, send
us your strings!
We localize iOS apps »
Tips for how to localize your iOS app
Localize iOS apps into the right languages
Using iTunes Connect, you've probably already noticed users from all over the world downloading your app. How many more users can you get by translating and localizing your iOS app into another language? Into two, or more? Babble-on makes it easy to localize your iPhone or iPad app for the iOS App Store.
From our blog: Which languages are worth localizing into? »
Is your App Store description going to sell?
Writing a description of your app for the App Store description is often difficult for even the best developers. How do you make your app sound great without sounding like a door-to-door salesman? How will the description translate when you localize your iPhone app, and are there any issues to consider for new markets? Babble-on helps developers with both the copywriting and translation, so we know this subject very well. Ask us for help.
From our blog: Tips for writing your iTunes App Store description »
Tell your users in their language.
A user can set their preferred language by going to Settings -> General -> International -> Language. Once the language is set, the iPhone/iPad will display all text, including the app's name on the home screen, in the user's local language.
Professional iOS localization
We love iPhone and iPad apps and are excited to help you localize your projects and test them in multiple languages. Whether you need your iPhone app localized into Spanish, Japanese, Russian or any other language, Babble-on is ready to help.
Questions or Comments?
You may also be interested in other localization projects:








