Chapter 6: Multilingual User Interface (MUI)
The Indian television network known as "Doordarshan" broadcasts movies all over the country. Since there are 17 national languages and about 180 official languages in India, it is too expensive to produce and broadcast 17 or more subtitled prints of the same movie. Instead, the network uses a single feed, and each regional station gets to choose which subtitles it wants to show. For example, if the network is showing a Hindi movie, viewers in Hyderabad will get subtitles in Telegu, viewers in Karnataka will get subtitles in Kannada, and those in Goa will see subtitles in Konkani. However, viewers in Bihar and Uttar Pradesh will get no subtitles, since Hindi is the official language there.
Similarly, software must also be adaptable to the needs of its international, multilingual market in a way that is efficient and resourceful. The ultimate goal of fully globalized software is to empower the user to access and manipulate data in any language; the mantra "any language, any culture" has been the driving force behind the creation of Microsoft Windows 2000 and Microsoft Windows XP international feature set. Adopting a unified encoding mechanism for all scripts via Unicode was the very first step toward that goal. (See Chapter 3, "Unicode." ) Making sure that your applications are locale-aware and culture-aware-by leveraging Windows globalization services to format locale-sensitive or cultural-sensitive data according to user preference-was the second step. (See Chapter 4, "Locale and Cultural Awareness." ) Handling different input languages, properly designing your application's text output, and dealing with fonts in a multilingual context was the obvious next step. (See Chapter 5, "Text Input, Output, and Display.")
The present chapter is dedicated to the last step of software globalization: preparing the application to determine the language of the user interface (UI)-either through detection of the operating system's UI language or through user selection-and displaying data in the user's preferred language. The chapter first looks at MUI support in Windows 2000 and Windows XP. It then discusses options for offering your own MUI solution for Microsoft Win32 applications, Web content, the Microsoft .NET Framework, and for console applications-with pros and cons of each option. Finally, the chapter provides recommended practices and code samples.