Copyright © 2003 by Microsoft Corporation
A Division of Microsoft Corporation
One Microsoft Way
Redmond, Washington 98052-6399
Copyright © 2003 by Microsoft Corporation
All rights reserved. No part of the contents of this book may be reproduced or transmitted in any form or by any means without the written permission of the publisher.
Library of Congress Cataloging-in-Publication Data
Developing International Software / Dr. International-- 2nd ed. p. cm. Includes index. Rev. Ed of: Developing international software for Windows 95 and Windows NT/ Nadine Kano, c1995. ISBN 0-7356-1583-7 1. Computer software--Development. 2. Microsoft Windows (Computer file) I. Kano, Nadine, 1968- Developing international software for Windows 95 and Windows NT. II. Dr. International (Group) III. Microsoft Corporation. QA76.76.D47 D479 2002 005.1--dc21 2002070303
Printed and bound in the United States of America.
1 2 3 4 5 6 7 8 9 QWT 7 6 5 4 3 2
Distributed in Canada by H.B. Fenn and Company Ltd.
A CIP catalogue record for this book is available from the British Library.
Microsoft Press books are available through booksellers and distributors worldwide. For further informa-tion about international editions, contact your local Microsoft Corporation office or contact Microsoft Press International directly at fax (425) 936-7329. Visit our Web site at www.microsoft.com/mspress. Send comments to firstname.lastname@example.org.
Microsoft, the Microsoft Internet Explorer logo, Microsoft Press, MSDN, the .NET logo, Office, OpenType, Visual Basic, Visual C++, Visual Studio, Win32, Windows, and Windows NT are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. Other product and company names mentioned herein may be the trademarks of their respective owners.
The example companies, organizations, products, domain names, e-mail addresses, logos, people, places, and events depicted herein are fictitious. No association with any real company, organization, product, domain name, e-mail address, logo, person, place, or event is intended or should be inferred.
Acquisitions Editors: Juliana Aldous Atkinson
Project Editor: Kurt Stephan
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.
The software marketplace has grown increasingly global over the past eight years but, even so, the English language still dominates. Shortly after I joined Microsoft in 1989, the then vice president of Microsoft's international division threw a party celebrating the fact that sales of localized products had reached 50 percent of company revenues. Recent figures are closer to 60 percent. Considering overall revenue growth, that 10-percent shift constitutes millions of dollars, but I still wonder why the figure isn't closer to 75 percent or more. Certainly Microsoft and many other companies have come to understand that globalizing software shouldn't be a separate effort. Microsoft, for example, no longer has an international development division-each product organization treats world-readiness as a core development requirement. Here in Redmond, we even host international teams from Original Equipment Manufacturers (OEM) partners and international subsidiaries to ensure that we address world-ready requirements on a consistent and constant basis. The results of the technical and organizational integration have included achievements like simultaneous shipment of several language editions of Microsoft Windows XP. But I still think that the mindset of the English-speaking developer stays too close to the "at home and familiar." This has ramifications beyond world-readiness-in general, our industry needs to do a better job of living and breathing the world of our customers. The scenarios in which companies deploy software are much more complicated than developers realize when they imagine how their designs and algorithms can be applied.
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.