Engineering Windows 7

Welcome to our blog dedicated to the engineering of Microsoft Windows 7

Engineering Windows 7 for a Global Market

Engineering Windows 7 for a Global Market

  • Comments 52

Microsoft has been a global software company for a long time and has always put a lot of effort into engineering our products for a global customer base.  It is also an area where the engineering is complex—probably a lot more complex than many might think—and one where we are always trying to learn and improve.  Building global software is a responsibility for everyone on the team.  We also have feature teams dedicated to developing both global and market specific features—whether it is font handling or doing East Asian language input as two examples.  We of course have a significant engineering effort that goes into localizing (“translating” is not quite accurate) Windows into nearly 100 languages. Julie Bennett represents the global development and localization teams and she and John McConnell on her team collaborated across the team to author this post that provides an overview of engineering for a global market. --Steven

Many of the readers of the e7 blog are located outside of the United States or speak a language other than English, so we thought it would be useful to share the international and multi-lingual improvements in Windows 7. Our goal for Windows 7 is to deliver exciting features that benefit users worldwide as well as features that make Windows feel local to every user. Like Windows 7's focus to improve the fundamental scenarios of performance and reliability, we improved our processes to allow us to deliver a great customer experience in every language and every country we serve, including delivery of Windows 7 as close to simultaneously as possible worldwide. This blog entry discusses some of the new features and improved processes that we believe make Windows 7 a great worldwide release.


The international features of Windows 7 are pervasive across the system, from such low-level aspects as the supported characters in NTFS file names (now upgraded to match Unicode 5.1) to such high-level aspects as the selection of backgrounds and themes (now including locally-relevant photos). But there are certain features which are intrinsically critical for proper support of the world’s many languages and cultures, and we will describe some of those here.


Language and writing are at the heart of any culture and thus support for fonts is essential to supporting international users. Windows 7 significantly increases both the range and quality of fonts. We have added fifty new fonts:

 New fonts in Windows 7

As you might guess from the font names in the above table, many of the new fonts are for non-Latin scripts. In fact, Windows 7 will be the first version of Windows to ship with more fonts for non-Latin scripts than for Latin-based scripts. One major area of improvement is for the languages of India. To the nine (9) fonts for Indian languages that shipped in Vista, Windows 7 adds forty (40) more. Windows 7 will now include multiple fonts (often in multiple weights) for each of the official languages of India.

Indian font examples

Aparajita: A New Devanagari Font in Regular, Bold, Italic and Bold-Italic



Besides new fonts, we have also improved many of the existing fonts. For example, we have added over two thousand (2,000) glyphs to Consolas, Calibri, Cambria Bold, and Cambria Math. But the most dramatic improvements have been to some of the non-Latin scripts. For example, Windows 7 does a much better job rendering the common Lam-Alef ligature in Arabic (see the illustration below) and in the placement of vowel marks.

Ligature example

Left: Lam-Alef Ligture in Vista Right: Lam-Alef Ligature in Windows 7

Changes to fonts (even clear improvements) are always tricky because of backwards compatibility issues. For example, if a character changes width or position, it may cause existing documents to reflow (repaginate), which is unacceptable. Therefore, whenever we change a font, we must run extensive verification tests against the changes to ensure the font metrics and other tables are unchanged. In the case of the Lam-Alef fix shown above, we discovered that there were existing applications that relied on the (undocumented) order of the glyphs within the old font. These applications would break if we simply replaced the glyphs. The font team worked closely with the international application compatibility team to ensure that changes we made did not affect the order of glyphs within the font, thus providing backward compatibility.

Font Control Panel

With so many new and expanded fonts for Windows 7, we also wanted to help users manage their fonts more easily. For the first time in years, we have done a complete overhaul of the font control panel.

The first picture below shows the font control panel with the large icon view. The most obvious change is that the font icons now convey much more information about the appearance of the font. The content of the icon gives a hint as to the glyph repertoire of the font. The style of the icon matches the style of the font. Non-Latin fonts show typical glyphs from the script for the font to see how it is designed. A more subtle change is that some font icons are faded to indicate fonts that are installed, but hidden. Hidden fonts will not show by default in the ribbon and font dialogs. Users can now use the font control panel to tune the fonts that they regularly use. By hiding fonts they never use, users can simplify choosing the correct font within applications. By default, only fonts supporting languages that can be written with the users installed input locales (keyboard layout plus language) will be shown. For example, users with English and French input locales will see only the Latin fonts, whereas users with the Japanese input method installed will see only the Japanese fonts. Users can override these defaults by right-clicking on any of the fonts in the control panel. Hidden fonts are still installed so an existing application that uses a hidden font will behave identically.


Font Control Panel with Large Icon View

The next picture below shows the font control panel with the detailed view. Now users can see much more information about the font. For example, the user can sort fonts by style, whether they are hidden, and information about the creator of the font. Font files generally contain information only in the design language of the font (e.g. a Japanese font might contain only information in Japanese). In Windows 7, we needed a solution that would work for all languages and for all fonts, so we created a hybrid approach that combines information from the font itself with metadata (an XML file that provides the information about the fonts on the system).

Font control panel detail view


Font Control Panel with Detail View

Local Packs

Windows 7 has increased opportunities for personalization. New themes, backgrounds, and sounds make it easy to customize Windows 7 to match your personality. To the extent that our preferences are influenced by our language and location, Windows 7 reflects this with the introduction of Local Packs. Local Packs provide customized Windows 7 visual themes for a specific region. These visual themes contain locally relevant wallpaper images, custom aero glass colors, and regional sound schemes. Windows® Internet Explorer® Favorites and RSS feeds may also be updated when the Local Pack is activated on an end user’s computer. For example, adding and enabling the Local Pack for France will add a market-customized theme for France to the end user’s Personalization control panel and a number of links to useful French Public Sector websites and RSS Feeds to the user’s profile.

Local Packs

Customized Themes in the Personalization control panel

The Local Pack content provides users with seamless local experiences right out of the box. Users are never exposed to Local Packs per se, they just select their Location as normal during Windows Welcome, and appropriate local content is exposed to them based on that setting.

Users looking for visual themes for other countries, or indeed any other areas of interest, can find them on the Windows Online Gallery, which is accessible via the “Get more themes online” link in the Personalization control panel.

Other Features

Other new features include five (5) new locales (bringing the total number of locales supported to two hundred and ten (210)), twelve (12) new input locales, and improvements to sorting for traditional Chinese characters. Also, we have generally updated our system databases to the latest version of the Unicode Standard (5.1). There are also interface improvements that should allow developers to create better globalized applications. Extended Linguistic Services (ELS) is a cool new feature we describe below in the International Timeliness and Quality section.

Perhaps one of the most important improvements outside the core international features has been in Search, which now recognizes more languages. For example, Windows 7 desktop search now recognizes Russian morphology (the rules for single and plural, tenses, and case). This means that searches for a particular word in Russian will now match not only that exact word, but also the common variations of the word, yielding significantly better results.

International Timeliness and Quality

In previous versions of Windows, final delivery of every language to every market took several months. For Windows 7, we changed how we worked on international releases to significantly shorten this delta so that all users worldwide can enjoy Windows as simultaneously as possible. This goal had far reaching implications on how we perform our work as engineers and on how we interact with partners and customers during our public testing phases.

To understand our approach, we should first explain two important concepts: localization and globalization.

Localization is the process of adapting the user experience into another language. Beyond the translation of strings, it can also include activities such as resizing dialogs and mirroring icons for right-to-left languages, such as Hebrew and Arabic. Localization bugs, such as the mistranslation of a menu item, are defects introduced during this process.

Globalization, on the other hand, is the process of producing a product that works well in every country no matter the user interface language setting. A globalization bug may be as simple as showing a UI element in the wrong language and as complex as not properly handling right-to-left scripts. Globalization bugs are inherently more serious than localization bugs as they usually affect many or all languages and often require re-thinking the technical design. In past Windows releases, repairing globalization bugs contributed to the necessity of the long release deltas. For Windows 7 we worked to prevent, find, and fix globalization bugs as early in the development process as possible.


To prevent common globalization bugs, pseudo-localized builds were created. Pseudo-localization is a process that creates a localized product in an artificial language. That language is identical to English except that each character is written with a different character that visually resembles the English character. Except for being entirely machine generated, we create the pseudo-localized builds exactly the same way as we create the localized builds. Because even monolingual US software developers can read pseudo-localized text, it has proven to be an excellent way to find globalization problems early in the development cycle. In the Windows 7 beta, some UI elements were still in their pseudo-localized form, causing some interesting theories about what the meaning might be. We hope we have solved the mystery with this blog post. :-)


Pseudo-loc control panel

Control Panel Dialog in Pseudo-localized Windows 7

Pilot Languages

Beta is always an exciting time for us as it is our first real chance to hear from you about our efforts. We are thrilled that people from over one hundred and thirteen (113) countries downloaded the Windows 7 Beta. With such a large and diverse beta program, we must have highly scalable processes to gather and incorporate your feedback. In Windows 7, we are very excited about some new approaches we took here.

In the past, localization languages for Windows beta releases were selected for a mix of pragmatic reasons. While this ad hoc approach had benefits, too often we found that serious globalization defects were not reported because they did not manifest in the chosen languages. For the Windows 7 Beta, our priority was to find globalization bugs and therefore we have concentrated on four languages (plus English) that experience has shown are most likely to find specific types of defects:

  • German - Because it contains some very long words, German can reveal dialog size and alignment defects better than other languages.
  • Japanese - With tens of thousands of characters, multiple non-Latin scripts, alternative input method engines, and an especially complex orthography, Japanese is a great way to find defects that affect many East Asian languages.
  • Arabic - Written right-to-left and with contextual shaping (character shape depends on adjacent characters), including this language in the Beta helped us test code paths not exercised by German and Japanese.
  • Hindi - Windows 95 and Windows 98 never supported Hindi and support for this language relies entirely on Unicode. Testing Hindi helps find legacy (non-Unicode) defects that affect all such languages.

By concentrating on these four languages during Beta, we maximized our chances to find and fix the globalization bugs that affect many languages. This in turn gave us more time to improve the localization of all languages before we release the actual product. The pictures below show two bugs found during Beta that illustrate the advantages of focusing on these pilot languages.

Example bug

Globalization Defects Found During Windows 7 Beta

In addition to our goal of finding globalization bugs via these languages, we also asked some of our OEM customers to provide feedback on the language aspects within their manufacturing processes. Since many of the OEMs are located in East Asia, we also localized Windows 7 Beta for Simplified Chinese, Traditional Chinese, and Korean.

RC Language Packs

In part because of the engineering process improvements described above, we were able to deliver more language packs for Windows 7 RC than we have ever been able to do in the past for Windows. For those of you running the Ultimate version of Windows 7 RC, you will have noticed the following thirty-two (32) Language Packs available for download on Windows Update:

RC Language Packs

32 Windows 7 RC Language Packs on Windows Update

One thing we will do differently in the future is to ensure that all languages available at Beta are also available at RC (e.g. not including Hindi for Windows 7 RC). We will correct this for future versions.

Understanding feedback from around the world

With Windows 7 beta localized into five languages and globally enabled for hundreds more, we received beta bugs from customers all over the world. We rely on these bug reports to help us improve Windows 7, so we devote much time to reading customer bug reports to determine product issues. Because bugs come from worldwide customers in many languages, we look for ways not only to understand their feedback, but also to address it as quickly as possible. The faster we can understand the issue, the better chance we have of addressing the feedback. As we receive bug reports in all the many languages that our customers speak, this has sometimes posed quite a challenge.

In the past, we have handled multilingual bug reports using manual processes, where individual bugs were examined and then manually translated one-by-one for appropriate follow-up by the feature team that owned the affected component. This is a time-consuming and error-prone exercise that scales poorly to a program as large and diverse as the Windows 7 beta. In the worst case, valuable international feedback has missed the window to affect the final product, and thus slipped to a Service Pack or subsequent release.

In Windows 7, by using the language detection API in the new Extended Linguistic Services (ELS), we have been able to automatically detect the language of customer bugs as they are reported. ELS functionality is new for Windows 7 and available to any developer who wants to leverage advanced linguistic functionality in the operating system. Beginning in Windows 7, developers may use ELS to provide language and script detection of any Unicode text, as well as transliteration to map text between writing systems. To use these Windows 7 services and all further services that we will add in subsequent releases, developers need only to learn one simple and unified interface. The ability to detect over one hundred (100) languages is available for all Windows 7 application developers, and we are happy to be able to apply this functionality to triage and handle beta feedback you send us from around the world. We use our own international developer functionality to improve our ability to respond to customer issues globally.

Once we have detected the language, we take the resulting text and use the machine translation support that is available online from Live Translator. This allows us to translate the text to English to get a sense of your feedback. Our engineers can then search our feedback database for specific features or areas of functionality. This also helps us in our efforts to ensure international application compatibility, as we can learn about potentially problematic international application experiences as soon as customers report them. Machine translation does not provide a perfect translation, but it does allow us to determine which issues might require further investigation. This in turn allows us to hear and respond to customer issues with a much faster turnaround time than we have had in previous releases, which means better quality in Windows 7 when we release it to the world.

By the end of Windows 7 Beta, we had used this process to translate 35,408 issues and comments submitted using the Feedback tool.

Putting it all together

The end result of the work to improve globalization and localization quality is reflected in the announcement that all fully localized releases of Windows 7 will be available within two weeks of the initial release wave with all languages available in October. We hope (and believe!) end users will find the overall quality of these releases to be the best ever.

36 Windows 7 languages releases available in October 2009

36 Windows 7 language releases available in October 2009

In addition to the 36 languages that will be released in October, there will be additional languages available for download as Language Interface Packs (LIPs) onto any Windows 7 edition as part of the Local Language Program (LLP). The LLP is a partnership with governments, universities, and language experts from around the world. (You can find more information on the LLP at Work on a LIP starts at RTM and continues for many months based on the schedules of our partners. Two (2) LIPs will be available for download when Windows 7 is available in October – Catalan and Hindi. Additional LIPs will become available for download over the following months based on the schedules of our partners. We are happy to have improved the delivery time of the first 38 languages (36 + 2 LIPs) and recognize that future releases are an opportunity to improve further. Creating a track record of dependable release schedules on our part will help everyone around the world plan better for a more unified release timeline.

More information about Extended Linguistic Services (ELS) and other cool new features of Windows 7 are available on-line on MSDN. In particular, you can download the Windows SDK for Windows 7 and read about what is new in the ‘International’ section. Also, the new Go Global Developer Center on MSDN has a wealth of information about international technologies.

If you want to send us feedback, please comment on this blog entry or use the Feedback button in Windows 7. We love to hear from you (in any language).

-- Windows International Team

Leave a Comment
  • Please add 2 and 1 and type the answer here:
  • Post
  • @Mantvydas, I never said the *Add Fonts* dialog wasn't updated. I referred to the "Choose font" common dialog which applications like Notepad and formerly WordPad etc used. And Character Map has not been updated since it's 32-bit NT port. Maybe it has been updated under the hood for Unicode 5 support but the UI and usability (especially at high resolutions) need a serious overhaul.

  • And by the font control panel preview, I mean the one which you get when you right click a font and click "Preview" to view all of its character set.

  • 1st comment and Cuppa beat me to it...

    Make MUI available for all, as opposed to locking it down to Ultimate/Enterprise. LIPs are available to all after all (and be installed concurrently with a "master" MUI) and would stop silly situations in the future of a LIP becoming "unavailable" because they got upgraded to MUI status.

    Lastly, can there please be an English-English LIP? I made some enquiries in the past (I volunteer in being the moderator, having done similar things in software regarding i18n/L10n management) but just got blanked. English as used in England and thus the UK is also the variant used in the European Union.

    How can Windows 7 be "global" when it sidelines half-a-billion users where their variant of English used in official settings is not American English?

  • You're missing one very simple, and very important, feature:

    The ability for the user to set a preferred language.

    I live in Denmark, so I've set regional settings to Danish, giving me times, dates and numbers formatted as I'd expect. But many apps, including Microsoft ones, take this setting to mean that I prefer applications translated to Danish as well. I don't. I run an English version of Windows for that precise reason. I've seen enough unintelligible translations (again, including some from Microsoft), that I prefer the original language whenever possible.

    Games for Windows Live is a prime example of this. It doesn't even give the user the option of choosing a language himself. It just picks a language based on some unspecified setting somewhere in the bowels of Windows. Of course, we could blame GfWL for that (and I do. It is a horrible piece of software in many ways besides this), but it seems the problem would not have occured if Windows had some clear guideline for "when multiple languages are available, this is the one applications should assume the user prefers".

    Whether this should be addressed by adding a new API call, exposing new options in the control panel, or just a guideline in prose form in the documentation, it seems like a pretty obvious use-case for localization. "The user might prefer another language than the developer had expected. What do we do?"

  • I see others have already posted what I was thinking when I saw this article, but I think it's important to reiterate.

    After all the years, and all the effort of adding all these complex non-latin scripts etc., we STILL don't have a version of Windows that is in ENGLISH.

    MICROSOFT - GIVE US A VERSION IN STANDARD BLOODY ENGLISH. It will only take you a day of search and replace to fix the most annoying misspellings like Favorite->Favourite, Color->Colour etc.

    Thank you, and apologies for shouting.

  • @AnanthaKancherla, thank you for your detailed and encouraging reply.  

    But it does sound as though Microsoft and the GPU manufacturers are writing off DX8-class machines (like the Dell D600) as being too old to care about even though they run Win7 very nicely with 2GB of RAM.  When you say "harder to guarantee working of drivers" for DX8 machines, does that really mean that you're not even trying?  

    All these DX8 people are going to be unhappy as they upgrade to Win7, experience driver problems, like with projectors or dual displays, while they wait and wait and wait for Win7 drivers that may never come.  Why can't Microsoft invest 0.0001% of its cash on this to ensure a smooth upgrade from XP to 7?  

    On the retail side, millions have bought netbooks, but many millions more have simply kept their slightly older machines to be used AS netbooks.  On the corp side, we simply can't spend the money now to buy new hardware when the current hardware runs XP perfectly fine and all the XP drivers are good.  I personally would love to upgrade all of our laptops to Win7 and send Microsoft more money, but we won't (we can't) if the drivers aren't forthcoming for the "older" machines (which can run Win7 just fine).

    Please don't take my response as ingratitude or personal animosity, I am thankful for your response and I hope for the best.  But it does sound like you're saying we'll probably never see Win7 drivers for the D600-class machines and that you don't intend to push for them either (Dell certainly won't do it anytime soon), and so I guess we'll keep our XP D600's for years more.

    Thank You.

  • Hi,

    Nice to see that a lot of effort has gone in to providing a wide variety of fonts for Indian Languages...

    But am really disappointed to see that there are no localization themes for India... - thought it was a large enough market to provide a separate theme (none of the existing ones even remotely fit!) - I can assure you guys there are enough picturesque places to make wallpapers! :)


  • Wish the new fonts are better than the previous ones, if one goes by the quality of Kart(h)ika which is very unlike Malayalam and devoid of any aesthetic merit. In fact despite the best intentions of creating an original typeface, it ends up being an insult to the language.

  • I would really appreciate a version of Windows that properly supports British, Australian and New Zealand English spellings.

    Firefox, Gmail and many other applications support  the hundreds of millions of people who don't use US English.  Why can't Microsoft?

  • Here's another "vote" for an English version.

  • Interesting that mdsn doesn't use Passport for logging in.

    Thanks for that update on Windows seven (7).

  • It is extremely annoying to have to keep switching between non-Unicode languages, including the reboot. And that is because Japanese, Brazilian Portuguese and English are all that concern me. Wonder how those who have to deal with more than that must feel.

    There should be some sort of option, either at install time, through the shortcut or at the executable (as is the compatibility mode), to set it instead of the current global setting.

    It is understandable that auto detecting the character coding is asking too much, however allowing for it to be set manually and independently on a per program basis is not.

    I would also like to mention that the only Japanese input currently working fine at my test system is through the IME keyboard layer. My native hiragana/katakana keyboard is not working, even properly configured and identified as a Japanese keyboard.

  • I've found what might be a bug, not sure. In Windows Live Photo Gallery, when attaching files to an email, selecting Medium (1024 x 768) is supposed to attach a file of approximately 230 KB. In fact, however, the attached photo (in Outlook) is only 22 KB. Selecting Large (1280 x 1024) is supposed to create a file size of 384, and the resulting attachment is in fact 370, so that appears to work properly.

  • Microsoft is currently about to start the pre-order Windows 7 offers in the UK - but only for Home Premium and Professional.

    Given that MUI is only in Ultimate, how about Ultimate pre-order pricing?

    I want to learn Russian, so would prefer a copy of Windows 7 with both English and Russian interfaces.

    It really is a bit daft that it's not included in the offer. Might I perhaps suggest 150 quid for Ultimate as opposed to 100 quid for Professional?

    Also, I'd love to have the option for UK English translation, too. IBM used to do that, why can't Microsoft?

  • English locales outside of the US are more-or-less invisible in Microsoft, completely taken for granted. So many bugs appear in MS progs when you set a non-US English locale that wouldn't occur if the locale was non-English. From experience that often comes about from MS programmers simply assuming English=US in their coding.

Page 2 of 4 (52 items) 1234