I completed work on the first edition of Developing International Software in December of 1994. Eight years later, I still receive scattered e-mail with questions about running or developing world-ready software, which I usually forward to the very capable World-Ready Guides (WRG) team (who are also responsible for the Dr. International column on http://www.microsoft.com/globaldev) inside the Microsoft Windows division. Since the most frequently asked question by far has been "When is a new book coming out?" I was thrilled when the WRG team picked up the enormous task of doing an update. The finished product is a much more comprehensive treatment of the subject matter, which is needed and welcome given the central relevance of Web-based software, a phenomenon that has emerged since we published the first edition. Basic techniques and knowledge of the Microsoft Win32 application programming interface (API) could help developers produce world-ready software in 1995, but in today's Internet-laden climate they seek to understand the role of other Microsoft products such as Microsoft Office, Microsoft Internet Information Services (IIS), Microsoft SQL, and Microsoft Visual Studio .NET, as well as industry standards such as Extensible Markup Language (XML). It is heartening to see how much these products and technologies have expanded their support for international functionality over the past several years.
International support in Windows also continues to mature. While the basic foundation-Unicode and the National Language Support API (NLS API)-remains very much the same, functionality has deepened with each new release to encompass new locales, new locale information, and more sophisticated text-layout and font capabilities. The book delves into these updates and lists detailed information in the significantly improved appendixes. I am also happy to see an entire section on testing. Given increasing requirements for product reliability and security, particularly for global firms, nothing could be more important than thorough and methodical software testing methods.
It is my hope that this book will become not only an indispensable reference, but required reading for any software development organization that takes its customers' needs seriously. Although challenges like sharing data and mixing and matching localized applications with localized operating systems have become easier to manage, it is up to the development community to make global interaction much simpler to achieve and much more powerful in its uses. The tools that enable such interaction will continue to evolve, but even once the infrastructure is perfected, developers will still need to take proper advantage of it for businesses and consumers to reap the appropriate benefits. For so long, those of us who evangelize world-readiness have emphasized "making it work properly" and lessening the pain of getting there. Following the methods outlined in this book should make "it works" a given. As a developer, your energy will be better spent on the still underexplored arena of multicultural, multilingual software communities and the untapped opportunities they present. "It works" is not enough. "Now that's a brilliant idea that will change the way people do things" is a much more fetching proposition.