So I want Windows to support my language. How does that happen, exactly?

One of the disappointing things about the end of a product cycle is that it's too late to add into this version all the cool new customer requests that we get. (Of course, the flip side of this is that one of the great things about new product cycles is that we have lots of cool new customer requests to figure out how to add in the future!)

One type of request that comes from customers throughout the cycle is how they should go about getting support for their language into Windows. The extensibility tools we've been developing for keyboard layouts, locales, and transliteration are the beginning of this story, but people often want to know how they might go about getting on the roadmap for future releases, especially in terms of writing system and localization support.

In the end the single best way to let us know that you are advocating for support is to work with your local Microsoft subsidiaries. By engaging locally, we have a great opportunity to understand local markets and their particular needs and to help people in the region provide us with the technical information that we need to assess a support roadmap. Just a few of the factors we consider:

  • Is the writing system encoded in Unicode? If not, the first step towards support is working with the Unicode consortium to get the writing system encoded (including all relevant glyphs for your language).
  • Can we find accurate, reliable locale data? In many parts of the world that are newer to technology, finding consistent information can be a challenge. Locale data here encompass a pretty broad range of stuff:
    • Generally accepted standards for date/time formatting, calendar information, currency standards, and so on.
    • Generally accepted encoding of the writing system in the software space. Are there any particular challenges with getting the script to shape or render? Can we provide a font that the majority of speakers will be happy with?
    • Consistent standards for keyboard layouts and input methods. Is there some layout that users in the region favor? Are there multiple layouts? Does the language require an input method editor?
    • Consistent sorting behavior. Do literate speakers of the language agree on collation order? Do we have native speakers who can help us encode the sort order correctly?
  • Does the language have technical terminology? Would a Community Glossary effort help?
  • What do developers need? What kinds of applications are being developed for the language? Does the language require localization support? Are there other languages in the region that are commonly used?

And that's just a partial list!

Over time I'd like to use this space to address the requirements entailed in each of the above and more, plus let customers know how they can best collect and assemble this information and use our existing tools to provide solutions faster. One area where we've received feedback that we could do better is in clear, agile responses to this kind of request. As we've discussed, our extensibility tools are one part of that story; providing transparent information about the roadmap process is another important piece, and I want to use this space to answer some of the questions that we receive about this.