Going global: Language support in Windows Phone 8

“When will Windows Phone support my language?” As a member of the phone’s international engineering team, it’s a question I once heard nearly every day.

Not anymore.

It’s hard to believe that just over a year ago I touted the 22 languages in our last release. My teammates and I were proud of the work—but knew we had more to do. And you told us as much: Language support was the No. 1 customer request on Suggestion Box for Windows Phone 8. So we kept busy—and now have more than doubled the number of display languages to 50 (you can see them all below). Today I’d like to tell you how fluent Windows Phone 8 has become.

Simple vs. complex languages

What does it take to make a phone display menus and other interface text in Russian or Dutch? In some cases, adding languages is straightforward; we’re limited mostly by the number of quality translation efforts we can manage simultaneously.

But it can also be a knotty technical problem, as there are a set of languages that require some sophisticated engineering in the operating system itself.

We call these complex scripts. Some, such as Thai and Hindi, do complicated things when letters combine. For example, the shapes of Hindi letters can change in surprising ways depending on adjacent letters. In the picture below, the two letters on the left yield the single glyph on the right when displayed.

Mirror, mirror

Perhaps most challenging are the languages that are written right-to-left, specifically Arabic, Hebrew, and Persian. Maybe it’s because I’m left-handed, but I’ve always had a special fondness for these languages and was amazed (but delighted) that we had so many requests for Persian in our Suggestion Box forum. (And you’ll note we managed to get it and a few other top vote-getters added. So keep those votes coming in. We do listen.)

Initially we considered localizing Arabic, Hebrew, and Persian as we do other languages: the text would flow right-to-left, but the screen orientation wouldn’t change. This is similar to what some of our competitors have done.

However, early investigations showed this didn’t really work for Windows Phone, mostly because text is such an integral part of our design. For example, in Windows Phone, the end of a word often flows onto the next screen. Without mirroring, this would cause the beginning of right-to-left words to flow off screen—not very readable. So we adopted an approach for these languages that we share with Windows 8: we call it “mirroring” because it reverses the appearance of the screen for these languages.

If everything was mirrored, the design wouldn’t be too complicated, but in reality only certain things are. For example, mirroring the phone dialing pad or a map would be a very bad idea. Adapting our design philosophy required us to look carefully at every screen in Window Phone and judiciously choose which elements to mirror. Below is a screenshot from the Arabic interface. Note that text is now aligned on the right side of the screen, and the flow is towards the left as is natural for a language such as Arabic, although “Facebook” is still written left-to-right. More subtly, the arrow icons still point to the right since users associate this direction with “play” as opposed to “reverse”.

Reading A to Z (and beyond)

While 50 display languages was ambitious, we felt the reading experience required even more. Our goal was “If you can read it on Windows 8, you can read it on Windows Phone 8.” To achieve this, we added many fonts and upgraded much of the core code for email, Internet Explorer, SMS, Office, and more to handle complex scripts.

This screenshot shows the language portion of the www.wikipedia.org page displayed in Internet Explorer 10 on the phone.

I’ve drawn a red circle around the two reading languages listed here we don’t support because we lack fonts: Lontara and Myanmar (also known as Burmese). But as you can see, you’ll still be able to read nearly any website or email in your language. For example, a colleague here follows his favorite cricket team on a Tamil language site on his phone, even though it’s not among the 50 supported display languages in Windows Phone 8.

Where do they speak Hinglish?

Text prediction has been thoroughly revamped for Windows Phone 8, with features such as word prediction, auto-correction, and auto-accent. (Jason Grieves recently wrote a nice post explaining some of these changes.) Not every language supports every feature, but 40 of the languages have some form of advanced support.

Windows Phone 8 offers on-screen keyboards for each of the 50 supported display languages, plus a bit more. French supports text prediction for French as it is written in France, in Switzerland, and in Canada. Dutch text prediction supports both Belgium and the Netherlands. And English supports text prediction customized for India, the UK, and the US. (Learn how to change your keyboard language.)

One of my favorite features is our support for Hindi input. Windows Phone 8 supports an on-screen Devanagari keyboard with Hindi text prediction, but we also support Hindi written using the Latin alphabet (popularly known as “Hinglish”). Some of the engineers I work with speak Hindi and they seem especially enthusiastic about this new text prediction support. I’ll be very interested to see how well this feature is received; the same principle could apply to other languages.

We can hear you now

We’ve covered display and reading languages, but there are still other ways we’ve improved language support in Windows Phone 8. For example, we’ve expanded the set of speech recognition languages.

From the six supported in our last release, we’ve grown in Windows Phone 8 to support 15 languages and dialects spoken in the following countries or regions: Brazil, China, France, Germany, Hong Kong, India (English), Italy, Japan, Mexico, Poland, Russia, Spain, Taiwan, United Kingdom, United States. (Learn more about speech support in Windows Phone 8 and how to use it on your phone.)

But that’s not all

There’s so much more I could talk about. As much progress as we’ve made, it’s still a big, diverse world: According to one authority, there are almost 400 languages with over a million speakers each. It will take a while for Windows Phone to support this many (and sadly we may never get to Rongorongo). The good news is that the engineering work we did in Windows Phone 8 on complex scripts should make adding new languages easier than in the past.

The comments many of you wrote after my last post were insightful and encouraging. I hope you’ll see that we take your requests seriously and have tried to address many of them in Windows Phone 8. So do please keep the feedback coming. We’re not done yet.