Localization and What Goes on Behind the Scenes

Many of you may not know that Expression Blend (and the entire Expression Studio) is available in eight languages other than English. In fact, we just released them earlier today! Here is a small screenshot of Expression Blend running Japanese:

jv3

My name is Marco, and I help to create the versions of these products that ship in Japanese, German, Korean, French, Italian, Spanish, and Chinese (simplified and traditional).  Creating the international versions of our products is a challenging process that requires several steps, so let’s take a brief look through them in this post.

In order to create our international versions, we first need to be sure our products are globalized so that they can be adapted to different markets around the world where we sell our products.  Once our products are globalized properly, we test them via a pseudo localization process.  In this process, we introduce different kinds of characters into our UI strings to ensure that our application behaves as we expect it to regardless of which character set is used.

To see why, let’s look at the strings in the English version of the Expression Blend options dialog:

eng

Notice the size of the various text fields and how much space each piece of text takes. Now, let’s look at the corresponding Japanese version:

jv2

Notice that in the Japanese version, the amount of space your text takes up varies a bit from the English version. This is important, because, as a designer/developer of an app that needs to be localized, you need to ensure that any control that stores localizable strings will still look OK when the strings inside them are of various sizes as you see above. This is where pseudo localization comes in handy. While we may not have the exact translated strings to use, we have a good idea of whether the user interface can handle the text of various sizes when the pseudo localization process throws random text of various sizes.

Once we are convinced that our code is fully localizable, I work with our developers to isolate all of the visible user interface strings within the application.  This includes all of the menus, dialogs, error messages, etc.  If a string can be seen in the UI, then I need to be able to access it.  I then work with software localization specialists to translate the UI strings.

After the strings get translated, we create the localized versions of our applications.  These applications are then tested for both linguistic accuracy as well as functional quality.

As you know, we are always looking for feedback on our products, and this includes our international versions.  Feel free to leave a comment here if you have used any of the localized versions of Expression, or if there is something more you would like to see from our international versions.

Alternately, feel free to contact me directly at marcoda[at]microsoft.com.

Thanks,

Marco D’Amico

Comments

  • Anonymous
    June 13, 2008
    PingBack from http://blog.a-foton.ru/2008/06/14/localization-and-what-goes-on-behind-the-scenes/

  • Anonymous
    June 13, 2008
    Many of you may not know that Expression Blend (and the entire Expression Studio) is available in eight

  • Anonymous
    June 13, 2008
    Many of you may not know that Expression Blend (and the entire Expression Studio) is available in eight

  • Anonymous
    June 14, 2008
    Do you use locbaml or resx based loc in blend?

  • Anonymous
    June 14, 2008
    I have used Expression Studio(ES) 1 that ship in Chinese. It is a perfect work. I wish the application can switch different language just via one option. The ES does not support Capture,I can not use English-Chinese electronic dictionary software.

  • Anonymous
    June 19, 2008
    Same question as slyi -- could you tell us a bit more about your localization pipeline?

  • Anonymous
    June 19, 2008
    slyi / Rob - since Marco is actually on vacation this week, I asked Pete Blois, and he mentioned that we use Locbaml.

  • Anonymous
    July 17, 2008
    The comment has been removed

  • Anonymous
    April 05, 2009
    Hi together, I prefer to use a custom markup extension to localize my WPF applications. I can pass a key to identify the resource as parameter to my markup extension and it looks up the value in any kind of dictionary you like. You can use classic .resx files of XML or even WPF ressource dictionaries located in satelite assemblies. You can find an example here: http://www.wpftutorial.net/LocalizeMarkupExtension.html Greetings Christian