.NET Internationalization: The Developer's Guide

.NET Internationalization: The Developer's Guide
Authors
Guy SmithFerrier
ISBN
0321341384
Published
11 Aug 2006
Purchase online
amazon.com

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.

Page 2 of 2
  1. Editorial Reviews
  2. Customer Reviews

Customer Reviews

A. Homer said
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...

Kathleen A Dollard said
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.

Dave A said
This is actually one of the best technical books that I have read in a long time. It is to the point, it does not reiterate, it is well considered in its structure and it elegantly covers the topic from the beginner to the advanced.

Thomas Duff said
So what's an IBM Lotus Notes/Domino developer looking at a .NET book? Hey, solid fundamentals and learning can come from anywhere! :) And Guy Smith-Ferrier's book .NET Internationalization: The Developer's Guide to Building Global Windows and Web Applications has given me a greater appreciation for what it takes to make a multi-language application that actually works...

Contents: A Roadmap for the Internationalization Process; Unicode, Windows, and the .NET Framework; An Introduction to Internationalization; Windows Forms Specifics; ASP.NET Specifics; Globalization; Middle East and East Asian Cultures; Best Practices; Machine Translation; Resource Administration; Custom Cultures; Custom Resource Managers; Testing Internationalization Using FxCop; The Translator; New Internationalization Features in the .NET Framework 2.0 and Visual Studio 2005; Information Resources; Index

Make no mistake... This is primarily a book on how to use Visual Studio 2003/2005 to make your .NET programs functional in more than one language and culture. The information is very detailed in how Microsoft has structured the environment to allow for the use of items such as "resource managers" and "cultures" in development. These features can make it possible to have a single code base but differing text and behavior based on the user's application or browser settings for language. If I were a .NET developer tasked with building an application for use in multiple countries, I'm pretty sure I'd want this book close beside me.

But even without being a .NET developer, I still came away with some valuable concepts. Since I *haven't* had to internationalize an application, I pretty much just thought "translate the words and you're done". But it's much more extensive than that. What about languages where the character set is completely different (and not found on your "normal" keyboard?) What about languages that read right-to-left? It was a bit strange to see examples of dialog boxes where input box labels were right justified with the input boxes themselves placed to the left... I mean, it made sense once I thought about it, but I had really never done so. So much for my "open, global" mindset... :)

While there are likely better books for someone looking for internationalization concepts on a general basis, this book *does* deliver in that area to a large extent. And if you're focused on .NET, I don't think there would be much question that this would be a prime resource for you...

W Boudville said
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.

You might also like...

Comments

Contribute

Why not write for us? Or you could submit an event or a user group in your area. Alternatively just tell us what you think!

Our tools

We've got automatic conversion tools to convert C# to VB.NET, VB.NET to C#. Also you can compress javascript and compress css and generate sql connection strings.

“There's no test like production” - Anon