.NET Internationalization: The Developer's Guide to Building Global Windows and Web Applications
|
| List Price: | $54.99 |
| Price: | $37.11 & eligible for FREE Super Saver Shipping on orders over $25. Details |
Availability: Usually ships in 24 hours
Ships from and sold by Amazon.com
31 new or used available from $26.25
Average customer review:Product Description
As business becomes more and more global, software developers increasingly need to make applications multi-lingual and culturally aware. The .NET Framework may well have the most comprehensive support for internationalization and globalization of any development platform to date, and .NET Internationalization teaches developers how to unlock and utilize that support.
Experienced international application developer Guy Smith-Ferrier covers the internationalization of both Windows Forms and ASP.NET applications, using both Versions 1.1 and 2.0 of the .NET Framework. Smith-Ferrier not only teaches you the best ways to take advantage of the globalization and internationalization features built in to the .NET Framework and Visual Studio, he also provides original code to take globalized applications to the next level of international utility and maintainability.
Key topics include
• An introduction to the internationalization process and how localization and globalization are supported in Windows and the .NET Framework
• The use of resource managers, cultures, resource DLLs, and localized strings, images, and files—including strongly typed resources
• Detailed coverage of form localization in Windows Forms and Web Forms
• Dealing with regional cultures and their casing, collation, and calendars
• Managing right-to-left Middle-Eastern text and pictographic East Asian languages
• How to use the book’s original resource administration utilities
• How to translate resources with machine translation
• How to create custom cultures and integrate them with the .NET Framework 2.0 and Visual Studio 2005
• How resource managers work and how to write custom resource managers, including a resource manager that uses a database
• How to test your internationalization with FxCop using new and existing globalization rules
• How to effectively include the translator in the internationalization process
Whether you are a developer, architect, or manager, if you are involved in international applications with the .NET Framework, this is the one book you need to read and understand before you start development.
Guy Smith-Ferrier is an author, developer, trainer, and speaker with more than 20 years of software engineering experience. He has internationalized applications in four development platforms, including the .NET Framework. A frequent conference speaker, Guy is the author of C# and .NET courseware and has written numerous articles. You can read his blog at www.guysmithferrier.com.
Product Details
- Amazon Sales Rank: #607253 in Books
- Published on: 2006-08-11
- Original language: English
- Number of items: 1
- Binding: Paperback
- 672 pages
Editorial Reviews
About the Author
Guy Smith-Ferrier is an author, developer, trainer, and speaker with more than 20 years of software engineering experience. He has internationalized applications in four development platforms, including the .NET Framework. He has spoken at numerous conferences on three continents and been voted Best Speaker twice. He is the author of C#/.NET courseware and the official Borland courseware for COM and ADO. He has written articles for numerous magazines, has co-authored an application development book, and is the author of the ADO chapter of Mastering Delphi 6 (Sybex, 2001). He lives in the U.K. with his wife and two children. His blog is at http://www.guysmithferrier.com.
Excerpt. © Reprinted by permission. All rights reserved.
Preface
It is often said that the world is getting smaller every day. Cheap, fast air travel; the global economy; the global climate; the insatiable desire for standards; and, perhaps, most important of all, the Internet all play a part in the homogenization of our world. It is ironic, therefore, that this shrinking effect is not a benefit to developers—in fact, it has the opposite effect. As the world community achieves greater awareness and greater tolerance, the demand for culturally aware software increases. Within the U.S. and Canada, for example, significant Hispanic, French, and Chinese populations exist.
At best, English-only Windows applications and Web sites are difficult for these cultures. At worst, these applications and Web sites exclude or even offend these populations. Such Web sites also are potentially illegal. For example, France and Quebec, Canada, both have laws prohibiting the hosting of English-only Web sites. Many countries (Wales, for example) also require that public services always be available in the native language, in addition to English. From marketing and financial viewpoints, English-only applications—and particularly Web sites—represent a massive lost market. By their very nature, Web sites are global, but an English-only Web site loses marketing opportunities to people who do not speak English. From a marketing point of view, such a lost opportunity is a criminal waste.
Good news exists, however. The .NET Framework has arguably the most comprehensive support for internationalizing .NET applications of any development platform. The .NET Framework provides a significant infrastructure for globalizing applications, and Visual Studio 2003 and 2005 provide excellent functionality for localizing Windows applications. Although Visual Studio 2003 offered little help for ASP.NET developers, rest assured that Visual Studio 2005 has thorough support for localizing Web applications.
What This Book Covers
This book covers the internationalization of .NET Windows Forms and ASP.NET applications. It covers both versions 1.1 and 2.0 of the .NET Framework, and both Visual Studio 2003 and Visual Studio 2005. Although the main focus of the book is on the .NET Framework 2.0 and Visual Studio 2005, it highlights differences between them and the .NET Framework 1.1 and Visual Studio 2003. Visual Studio 2003 developers can read this book by skipping the sections on Visual Studio 2005, but I advise against this. Visual Studio 2005 offers many useful new facilities—many of which can be retrofitted to Visual Studio 2003—to provide guidance on how to design Visual Studio 2003 applications with a clear migration path to Visual Studio 2005. For a list of the new internationalization features in the .NET Framework 2.0 and Visual Studio 2005, see Appendix A, "New Internationalization Features in the .NET Framework 2.0 and Visual Studio 2005."
Chapter 1, "A Roadmap for the Internationalization Process," provides a general overview of what is involved in internationalizing an application, and includes more specific information on why some of the more advanced chapters will be of more interest to you and what solutions can be found in them. Chapter 2, "Unicode, Windows, and the .NET Framework," lays down the foundation of what Unicode is and what you can expect from the operating system and the .NET Framework. The essential mechanics of internationalization are covered in Chapter 3, "An Introduction to Internationalization," and this should be considered a prerequisite for all other chapters. From here, Windows Forms developers should read Chapter 4, "Windows Forms Specifics," and ASP.NET developers should read Chapter 5, "ASP.NET Specifics." Chapter 6, "Globalization," covers the concept of globalization in depth, along with the .NET Framework globalization classes and some solutions for globalization issues that are not covered by the .NET Framework classes. Chapter 7, "Middle East and East Asian Cultures," covers issues that are specific to right-to-left cultures (Arabic, Divehi, Farsi, Hebrew, Syriac, and Urdu) and Asian cultures (Chinese, Korean, and Japanese). Chapter 8, "Best Practices," provides internationalization guidance on a more general level, including issues such as the choice of fonts. Chapter 9, "Machine Translation," provides solutions for automatically translating your resources into other languages. Chapter 10, "Resource Administration," describes a number of utilities included in the source code for this book, to help with the administration of resources.
As applications grow beyond the simplistic examples used to illustrate concepts, the maintenance and management of applications' resources demand more dedicated solutions. Chapter 11, "Custom Cultures," describes how to create your own cultures and integrate them into the .NET Framework 2.0 and Visual Studio 2005. Custom cultures are useful for creating pseudo translations, supporting unsupported cultures, creating commercial dialects, and supporting languages outside their normal country (e.g., Spanish in the U.S., Chinese in Canada, and Urdu in the United Kingdom). Chapter 12, "Custom Resource Managers," describes how the existing resource managers work internally, and how to write new resource managers and use them in Windows Forms applications and ASP.NET applications. Custom resource managers are the solution to numerous developer issues, from changing the origin of resources (to, say, a database) to changing the functionality of resource managers (to, say, standardize specific properties throughout an application). Chapter 13, "Testing Internationalization Using FxCop," shows how to use FxCop to apply internationalization rules to your assemblies. It covers the existing FxCop globalization rules, introduces new globalization rules based on the issues raised throughout this book, and shows how to write these rules to enable you to write your own rules. Chapter 14, "The Translator," discusses the issues and solutions involved in including the translator in the internationalization process. As noted already, Appendix A, "New Internationalization Features in .NET Framework 2.0 and Visual Studio 2005," includes a list of the new features in the .NET Framework 2.0 and Visual Studio 2005. Most of these features are covered throughout the book, so this appendix is mostly a list of pointers to chapters within the book. Appendix B, "Information Resources," is a list of books, resources, Web sites, magazines, online machine-translation Web sites, blogs, conferences, organizations, and commercial machine-translations products that will raise your awareness of the internationalization community.
Who Should Read This Book
This book is aimed at developers, team leaders, technical architects—essentially, anyone who is involved in the technical aspects of internationalizing .NET applications. The book uses C# examples, but the content is equally relevant to Visual Basic.NET developers and anyone who uses Visual Studio. The book expects that Visual Studio will be the main development environment, but many chapters focus solely on the .NET Framework. As such, the information contained within has equal value if you use an alternative development environment such as SharpDevelop or Borland Delphi 2005.
What You Need to Use This Book
To get the most from this book, you need the .NET Framework 2.0 and Visual Studio 2005. Alternatively, you can follow a large part of this book using the .NET Framework 1.1 and Visual Studio 2003. You can follow a lesser part of this book using the .NET Framework 1.1 or 2.0 and an alternative development environment.
Source Code
The complete source code for this book is available for download at http://www.dotneti18n.com. You will also find errata, updates to the code, new code examples, and additional information.
© Copyright Pearson Education. All rights reserved.
Customer Reviews
Everything you ever wanted to know...
Like most English people, my multilingual capabilities extend to English, American, and Shouting. But as I've increasingly worked at conferences across Europe, I've become more aware at just how difficult it is for non-English speakers, and those for whom English is not their first language. It's when you attend a conference in somewhere like Austria, and all the sessions except yours are in German (de-AT or de-DE) that you realize you have a long way to go to even start to support other languages and cultures in your applications.
While I've tried hard to tailor my examples, by internationalizing them as far as I can using the features of ASP.NET 2.0, this book opened my eyes to the huge number of other issues that such "translated" applications actually face. It's then you realize that, without a professional approach and solid information on the whole gamut of gotchas involved, translating the text is just scratching the surface...
And that's why you really do need this book. It's packed with detailed, and often "inside" information that spans every related topic area. It covers not only theory and guidance on the best practical techniques, but tools and resources that can help. In fact, the detail it contains is so thorough that you'll find yourself reading some chapters over again to get to grips with the complex internal workings on .NET and Windows. Yet it's written in a friendly, readable, and often amusing way that makes perusing topics a pleasure as well as being informative.
Make no mistake, this is not a "read and remember" book. Be prepared to keep it near to hand as a reference, as you'll need to study each chapter to grasp and apply the techniques properly - and in enough depth - to make your application "world-ready". And even if you only ever build applications in one language, it's worth reading this book just to help you understand the internationalization features available, and the how to get the best from .NET. You never know, one day you may have to build a multi-language version of your Web site or Windows application...
An invaluable book
I don't rave about books very often, but this book is worth the rave.
It's perhaps the best written hard-core technical book I've ever read, and one of the few where I didn't skip half. Topics are correctly grouped and covered to an appropriate depth with clear explanations of when and why you need specific features.
If you are not familiar with internationalization - the first part of the book covers basics such as why a culture is needed and the fallback process.
If you think you know about .NET internationalization - you already know about cultures and resource managers and localizable, but you've never actually localized an application, the insight into the process - such as the value of pseudo translators will be very helpful. It also covers a boatload of language nuances from the Turkish letter I to non-cased languages.
I came to this book with an extremely difficult internationalization problem that I thought we would have to kludge by walking controls on form load. This book went deep enough into the internationalization customization points and pointed out a critical trick I had not seen, that I am building a localization system that will work for us. Instead of being kludged on top and parallel, this book showed me how to leverage the .NET extensibility to solve the problem. I did not find enough information on making the internationalization extensibility model actually work elsewhere.
I know a good bit about Winforms, the framework, and code generation and this book is solid in the coverage of these topics. I learned things I didn't know, especially that InitializeComponent code injection trick - which is also one of the best examples of why business programmers might want to know a little about the CodeDOM (one way to do code generation).
I would recommend this book to anyone who is interested in internationalization in .NET, whether an introduction, rubber meets the road suggestions/experience, or black belt insight into the extensibility points.
extensive i18n abilities
Nowadays, if you are a programmer, you might be coding an application that will be deployed globally. Very different from 30 years ago, when you would usually have English-only text for your user interface. Of course, then, the UI was often just standard out and standard in.
The book shows how the .NET platform lets you handle internationalisation (i18n) in several ways. You can define strings that will appear in your UI. Grouped into several sets, each set usually specific to a language. So given the name of a string, you can write language-specific versions of it. Plus, there is a Resource fallback process, which lets you define a hierarchy of these sets. So you might make the English set the default, say. Useful if you can't find translations into some other language. Plus, you can be more specific than just specifying a language. Within a language, there might be different terms or spellings, depending on the user's location. Hence, the book describes the concept of a locale or culture. The best example is en-US and en-GB, describing American and British versions of English.
The other main aspect of the book shows how the various .NET UIs can use these Resources. For example, Internet Explorer has a control pane that lets you define different locales, and the order in which these will be used, to look up Resource values. Of course, IE comes to you pre-programmed. More importantly, the book shows how to program this ability into your own code, written perhaps using Windows Forms.
All this should sound familiar to you, if you've already been programming in Java. Which has had these capabilities since 1998 and earlier. To some extent, the book shows how .NET is still playing catch-up. And that it essentially has achieved parity with Java/J2EE in i18n.
The book also has a section which might initially seem very exciting, machine translation. Especially if you have had prior experience dealing with programs that do this. MT is a very hard problem that really belongs fully in AI research. Accurate translations often require human input. Alas, as Smith-Ferrier points out, the book reveals no breakthrough by Microsoft. Essentially, Microsoft has a Web Service that takes an input word and returns a translation into some other language. But still very limited. And you certainly can't hand it a sentence and expect a (correct) result. Its usefulness is mostly in cases where you have single words commonly used in programs, like 'file' and 'quit', and you need translations into another language commonly used in programming. On balance, however, the Web Service is better than nothing. Microsoft has taken the obvious step and automated what can easily be automated.



