S. Somasegar is the corporate vice president of the Developer Division at Microsoft. Learn more about Somasegar.
Along the same lines as my previous blog posting, I thought I will focus on the features that we have added to the .NET Framework to support international applications. Here is a few that are top of mind for me on this:
Custom Cultures: Many organizations need to customize a culture. For example, perhaps your company would like to use the 24-hour clock in the United States instead of the default 12-hour clock. Or maybe you need to create a Spanish language user interface, with standards and formats in the United States. Custom cultures allow you to create new cultures, replace cultures or modify default standards and formats in a given culture.
International Domain Names: System.Globalization contains a new IDN Mapping class to map non-ascii domain names between ASCII and Unicode, allowing applications to implement support for international characters in domain names. The mapping is not yet implemented in System.NET URI/IRI classes, however.
Unicode Normalization classes: Characters can be input in a variety of ways. The German character “ü” can be input as a single character or two characters combined by a non-spacing mark. They are linguistically the same character, but are not identical code points in Unicode. The normalization classes provide conversion to and between standard forms, and verification of forms so your data is a standard format.
Supplementary Characters: There are several new methods for handling supplementary characters, such as finding a substring, determining the length, detecting the high and low code points, and convert between encodings.
New Calendars: The Framework supports several new calendars, such as the UmAlQura implementation of the Hijiri calendar, the Jalaali calendar used in Farsi communities, and new East Asia Lunar calendars for PRC, Taiwan, Japan and Korea. On the design side, we made building localized applications easier with several new features:
Resources: Accessing and editing resource strings is easier with strongly typed resources and the new resource editor. In this version, you can access your strings through Intellisense in the code editor, making it easier and less error prone to call resources from another file. Additionally, there is a new resource editor for editing strings in a grid-type view, and adding other resource types such as sound or image files.
Windows Forms: Windows Forms has had design support for localization since version 1.0. In version 2.0, it has been made easier with new controls such as the TableLayoutPanel and the FlowLayoutPanel, which allow your user interface to size automatically according to UI changes, such as longer text in localization, or a larger font size. Although Visual Studio only ships localized resources for 10 languages, customers can create Click Once deployment projects in any language by localizing some predefined strings in XML format. For Right To Left languages, there is new mirroring support for a number of controls which previously lacked full RTL functionality.
ASP .NET: One of the biggest changes in localization is with the new ASP .NET localization functionality. This version brings new designer support for generating resources from an ASP .NET page, server side resource compilation and extensibility for any property you want to localize. You can also use a single tag in your page to automatically detect the language of your browser and load the corresponding resources. Now you can click a command to generate resources whereas in version 1.0, creating resource files was a tedious manual process.
Our goal is to provide full functionality to support the many languages and cultures in the world and make building globalized and localized applications easier. You can ask internationalization questions in the newsgroup at microsoft.public.dotnet.internationalization.