Category Archives: language

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:

Indian English
Canadian French
Hong Kong Chinese

In addition, Apple added keyboards for Bengali, Marathi, Urdu, Indian English, Filipino, SlovenianThat 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!

iOS Language Codes: What do you name your .lproj folder?

Apple makes a fine system in iOS, but their documentation of it is sometimes lacking. This is especially true for localization topics like language codes. This week we’ve put together a very handy chart to answer a surprisingly difficult question: Which languages do iOS and the App Store support?

It is actually, sadly, and for little practical reason, a trick question. Apple supports a different list of language codes and regions on iOS than the iTunes App Store. This has some real-world consequences you might never have imagined, until you have already wasted your time and money on translation. For instance,  you can localize your iPhone app into Polish, (language code: pl) but not its app description and keywords. Since those are important for discovering your app, you may not be as inclined to localize your app knowing this fact. Similarly, you can localize your app description into both Spanish for Spain (es-ES) and Spanish for Latin America es-MX, but your app itself can only speak one lonely version of Spanish (language code es). In short:

iOS: Supports 30 languages but no regional forms
App Store: Supports 21 languages and 7 regions

We always pass this information on to developers who contact us about localizing their apps into all the languages of the App Store. But we also think Apple should make this information a bit more plain to see.

iOS Language Codes – The Missing Manual

At the request of the developers we work with, we’ve put together a Knowledge Base article with a complete chart. At a glance you’ll be able to see if the language you want is supported by either/both iOS and the App Store. We’ve also included those handy ISO-639 language codes you always ask us about. You’ll need those to create your en.lproj and other folders to store the localizations of your app in Xcode.

Not sure what a en.lproj folder is? Well check out our iPhone Localization Tutorial first! And we’ve got a tutorial for adding localized app descriptions and keywords too.

Localizing Twitter vocabulary like “Follow” and “Tweet”

Localizing Twitter vocabulary and "words"How does the world say Tweet?

UPDATED: We’ve added lots more Twitter vocabulary and more languages in our iOS Localization Term Glossary!

Facebook succeeded in turning “Likes” into a noun and simultaneously revolutionized the speed at which we build social relationships and destroy grammar. What about Twitter?

Twitter has also introduced new “words” into English. Even for native speakers it is difficult to know how to use them. Stephen Colbert famously “twatted,” but the more popular past tense of “tweet” has settled upon “tweeted.”

For translators and localization engineers, words like “Follow” have become important for many applications. Instead of watching a discussion, we now follow it. But how should we translate Follow into the rest of the world’s languages?


Here is a glossary of the most common Twitter vocabulary localized into some of the languages Twitter currently supports. This “cheat sheet” will be helpful for translators localizing websites and apps that want to maintain consistency with Twitter terms.

Twitter Glossary

(verbs/buttons) (verbs) (nouns/lists)
Spanish Seguir
Dejar de seguir
French Suivre
Se désabonner
Italian Segui
Smetti di seguire
Portuguese Seguir
Deixar de Seguir
Russian (Твиттер) Читать
Japanese (ツイッター) フォロー
Korean (트위터) 팔로우
Chinese (Simplified) 关注
Chinese (Traditional) 關注

Will tweet for food

This glossary was created by reading through Twitter’s pages in the target languages, but they aren’t perfect. There are cases where one Twitterism might work, and others where local grammar or common sense precludes a term. For example, note that “following” in English is translated in at least two ways for some languages, depending on whether it is the button (“I am following”), or a list of users you are following.

Use the comments to help keep this list updated. I’ll add any languages you need.

Google and Bing Team Up to Make One Bad Translator

If you haven’t checked out Bad Translator, you don’t know what fun you are missing.

Original text:

“I think I’ll use Google Translate to localize my website so that everyone can understand it.”

…50 translations later Google gives us:

“You know, if you use Google, I think all the ingredients.”

Bad Translator does something quite simple, but demonstrates a great point. It asks Google and Bing to translate a phrase from English into another language and back again. Repeating this process dozens of times is reminiscent of the “Telephone” game we used to play as children: whisper a few words into one person’s ear, repeat it to the next, and by the end of the line you get something totally wacky. Often, the results are hilarious.

But if you’re using Google Translate or Bing to translate your company website, the results are often less funny. You quickly lose control of your message and have no idea how you are presenting yourself to foreign audiences.

How far are we from an accurate machine language translation service?

Another question from Quora:

How far are we from an accurate machine language translation service?

As a professional translator, this is a topic that interests me greatly. I agree with Steven’s assessment of what a machine should be able to do, and I believe all of us in the linguistic field believe that machines will be able to do this. The question remains: when?

It is amusing to go back and review science fiction in the past 60 years, which, since the advent of computers, has always believed that we are on the cusp of this breakthrough. “Within a decade” seems to be a common response, but it has been wrong every time and will continue to be for the foreseeable future. Advances like IBM’s Watson are encouraging, and show that a computer that is well trained and given copious amounts of data can decipher “what” we mean in most cases. This is half of the battle for translation.

The other half is correctly translating into a given context, and as Steven shrewdly points out, even humans cannot do it properly every time. However, we are good at putting ourselves in the user’s context and deciding to change English units to metric, fixing mailing addresses, and even explaining terms that make no sense in another country. For instance, imagine you are a rental car company in the US: how useful would it be for me to tell you that I have 26 points on my driving record in Italy? Points are good in Italy, with a maximum of 30. You often need a translator or a native to point such things out.

One thing I often tell translators is that the key to translating is not just what you know, but being able to see that you don’t know something. Idioms often make some sense when translated literally, but it takes someone well versed in a language and in their own abilities to identify a phrase that might have a second or third meaning. In these cases, translators research in specialized glossaries, search for examples in articles and search engines, etc. Computer architects will need to teach machines this same skill of double-checking their work.

An interesting circumvention of typical thought on translation is Google’s online translator. In large part, it works like any other translator. However, Google is also trying to gather proper translations (from humans) for everything in every language. For instance, recently it acquired rights to the European patent catalog. Using such information, Google continually improves its translator with the hopes of one day offering translations based on what it “knows” is correct. Even this has its limitations and seems a ways off. Notwithstanding, it does show, of course, that lots of computer power and human intellect is trying to tackle the problem. Ask Google, and its engineers might tell you they’ll be there “within a decade” but we all know this is unlikely.

When will machines be able to translate for us? For getting the gist of something, online translators are already there. They will be much better in 10 years time, and perhaps good enough for many more common uses. But to do a professional-quality translation, where we truly rely on the computer: that might take a lifetime.

How do two cultures with different languages learn to communicate at first contact?

Original question from Quora:

How do two cultures with extremely divergent languages learn to communicate with each other at first contact?

My thesis work was in Latin American studies, and as such I read a lot of the “first encounter” diaries and biographies that were written. The answer is actually surprisingly easy: CHILDREN.

Columbus, Cortez, and likely many of the other explorers kidnapped young children or took them on as servants. As children learn language incredibly quickly, it was not long before they could work as interpreters for the Spanish. By the time of the second voyage to the Americas, Columbus had fluent interpreters.

Other accounts of first meetings between the Spanish and the Native Americans show similar patterns that work from there. The Indian tongues could be divided into several groups, but even if you had an interpreter from one Indian language, that person could communicate with other tribes not too far off, much the way Spaniards and Italians could (and still can) communicate even though they don’t speak exactly the same language.

When no interpreter was available, they were reduced to drawing pictures and using gestures, just as you would imagine. However, language is learned rather quickly, especially when you have a child’s brain to help you!


Google gets more translations to ponder from European Patents

Via Google in Translation Pact for European Patents – ABC News.

Google said Thursday it has reached an agreement with European patent authorities to use its online technology to translate some 50 million patents.

Mountain View, California-based Google will gain access to all the translated patents – more than 1.5 million documents and 50 000 new patents each year – which will help improve its machine translation technology. Moreover, it will also deal with the growing amount of technology-related information in Japanese, Chinese, Korean and Russian.

It’s no secret that Google’s ambition for cataloging the world’s information encompasses every language. Through many efforts, including its translator toolkit, Google has been gathering raw data on translations from professional translators. Since teaching a computer grammar and syntax logic has not brought new gains, the best approach seems to be to mimic. That is, if Google’s computers can see enough examples of proper translations done by professional translators, eventually the computer can simply cut and paste phrases and put it all together.

As a patent translator, I wouldn’t be scared by this just yet. Google’s machine translation still has a long way to go before it can truly understand us mere mortals. Take a look at the following machine translation for a shipping product in Apple’s iPhone App Store.

Don't hire Google Translate to do your App Store marketing

For those who don’t read French, it says “Now available in unemployment insurance French!”

<joke>Insert French unemployment joke here</joke>