What’s new in Xcode 6 Localization for iOS 8 and Yosemite

Xcode 6 brings XLIFF file format and new localization languages

While developers are poring over the Xcode 6 beta released at WWDC 2014, we’ve been getting questions about some of the big changes and improvements Apple made for localization in iOS 8 and Mac OS X Yosemite. We’ll go in depth in these topics as we update our iOS App Localization Tutorial, but for now here is a recap of the biggest changes.

Update Our new iOS localization tutorial for Xcode 6 is ready. Check it out!

XLIFF comes to Xcode with easy import and export

Apple touts that the new xliff file file format is an industry standard, which can be used by many localization tools. That’s true. Babble-on has been working with xliff for years, so we’re happy to see this change. (We can still work with your .strings files of course.) Essentially, xliff is just an xml file structured specifically for localization. Rather than having to go through the unintuitive process of using two, separate command-line functions to export your strings for localization, Apple now let’s you do it from the menu bar. Select Editor > Export For Localization

The localization editor in Xcode 6 makes it much simpler to export your strings.
The localization editor in Xcode 6 makes it much simpler to export your strings.

The exported xliff file is actually a combination of ALL your .strings files. Those .strings still exist in Xcode — you just won’t need to deal with them any more! Once we’ve translated the en.xliff file for you, you’ll get back a new one for each language: fr.xliff for French, es.xliff for Spanish, and so on. Import those into Xcode using the menu Editor > Import Localizations. Easy! Having just 1 file per language is a great improvement.

In case you do love the command line, Apple also introduced new commands to accomplish the same thing:

xcodebuild -exportLocalizations -localizationPath <dirpath> -project <projectname> [[-exportLanguage <targetlanguage>]]
xcodebuild -importLocalizations -localizationPath <dirpath> -project <projectname> [-forceImport] Import CLI removed from Xcode golden master

Preview localizations and pseudolocalizations in Interface Builder

Another new feature in Xcode 6 is the ability to view your localizations “live” in Interface Builder. This is a good way of checking that your interface doesn’t break or look sloppy in other languages that are more verbose than English (I’m looking at you, German). We hope more developers will take advantage of this tool to improve the design layout for international audiences. In fact, Xcode 6 even lets you preview these issues BEFORE you localize. There is a new Pseudolocalization option for Interface builder offering right-to-left and DOUBLE-length options.

 Testing your app using Apple’s pseudolanguages

  1. Click the target in the Run destination menu and choose Edit Scheme.
  2. On the right, select Options.
  3. Choose a pseudolocalization from the Application Language pop-up menu. Then hit the Close button.
  4. Click Run to relaunch your app in the pseudolanguage.

Apple’s method is nice because it is built in. However, our developers have told us they like the pseudolocalization files we provide because you can view your texts as    

Seeing your texts in a different script makes it easier to spot strings you have overlooked. Apple’s method simply CAPITALIZES words to indicate you forgot to localize them. We still offer free pseudolocalization, including for the XLIFF format, from our Web site.

Free Pseudolocalization

New localization languages, regions, and locales

The other big news for localization in Xcode 6 is the addition of new languages and locales. Specifically, Apple has added its own localizations for:

Hindi
Indian English
Canadian French
Hong Kong Chinese

In addition, Apple added keyboards for Bengali, Marathi, Urdu, Indian English, Filipino, Slovenian. That means that, even if iOS 8 is not translated into those languages yet, at least users in those countries can use their own alphabet or keyboard to type out messages.

For developers, the bigger news is the lifting of an old iOS restriction about languages and locales. You can now localize your app into ANY language (even Klingon) — not just those that Apple has done! This means that if you have a project for India, you can localize in Tamil and Bengali even though Apple doesn’t provide system-wide localizations for those languages. That puts iOS on par with Mac OS X in region capabilities. It also means Lord of the Rings fans can add Elvish to the list of languages they support, assuming they find an Elvish translator.

Babble-on can’t translate Elvish or Klingon, but we can help you with some of the other localizations you may want. Contact us!

Share this article

2 thoughts on “What’s new in Xcode 6 Localization for iOS 8 and Yosemite

  1. There is no -importLocalizations option on the xcodebuild tool.
    That is shown in your example but it doesn’t work for me.

    1. You’re right. This command was shown in WWDC 2014 in the internationalization talk, but seems to have been removed from the final shipping version of Xcode 6. We’ll have to see if it found it’s way to Xcode 7.

Comments are closed.