Encoding and Localization
When developing world-ready applications, you must focus attention on a variety of issues throughout the application design and development process. The three key issues are globalization, localizability, and localization.
Globalization is the first step in the process. A globalized application supports localized user interfaces and regional data for all users. Truly global applications should be culture-neutral and language-neutral. An intermediate step prior to localization is testing for localizability. In this step, you ensure that you have separated the application's resources that require translation from the rest of the application's code. If you correctly test for localizability before proceeding to the localization step, you should not have to modify your application's source code during localization. Localization is the last step in the process of developing a world-ready application. In this step, you customize your application for the specific cultures or regions to be supported. This step should consist primarily of translating the user interface into the target languages.
If you address globalization, localizability, and localization requirements from early on in the design phase, you will minimize the amount of time and money required to produce quality localized applications for the languages that you intend to support. The .NET Framework provides extensive support for developing world-ready applications. This topic provides information to help you design and develop world-ready applications.
For additional information, see Globalizing and Localizing Applications in the Visual Studio 2005 documentation, International Support in Microsoft Windows 2000 (www.msdn.microsoft.com/library/backgrnd/html/intl\_sup\_nt5.htm), and the Microsoft Global Software Development Site (www.microsoft.com/globaldev).
In This Section
- Encoding and Localization Overview
Describes the three steps involved in designing a world-ready application in managed code: globalization, localizability, and localization; explains the advantages of following this model.
- Using the CultureInfo Class
Describes the CultureInfo class and how to set and use the CurrentUICulture, CurrentCulture, and InvariantCulture properties.
- How to: Create Custom Cultures
Describes how to use the CultureAndRegionInfoBuilder class to create a user-defined culture.
- Locating and Using Resources for a Specific Culture
Describes how the ResourceManager accesses culture-specific resources at run time based on the CurrentUICulture property.
- Cultures Generated from Windows Locales
Describes how cultures not in the .NET Framework are automatically created from Locales in Windows.
- Names Associated with a RegionInfo Object
Describes the many different names that are associated with the each geographical region.
- Unicode in the .NET Framework
Describes the Unicode universal character encoding scheme for characters and text and the benefits of using it internally in the .NET Framework.
- String Indexing
Describes how to use the StringInfo class to enumerate strings of text elements and iterate through those elements.
- Describing a Culture with LDML Data
Describes how Microsoft uses LDML to store information about a culture.
- Formatting Date and Time for a Specific Culture
Describes how to use the DateTime class to format dates for specific cultures.
- Display vs. Storage of Formatted Data
Describes guidelines for using a culture to format data stored in a file or memory versus data displayed to the user.
- Using Calendars for Specific Cultures
Describes how to use the Calendar class and CultureInfo class to display and manipulate calendars for specific cultures.
- Formatting Numeric Data for a Specific Culture
Describes how to use the NumberFormatInfo class to format and display currency, decimal separators, and other numeric symbols based on culture.
- Comparing and Sorting Data for a Specific Culture
Describes how to compare and sort data on a per-culture basis in order to support culture-specific and language-specific sorting conventions.
- Culture-Insensitive String Operations
Describes how to use .NET Framework methods and classes that are culture-sensitive by default to obtain culture-insensitive results.
- Best Practices for Developing World-Ready Applications
Describes the best practices to follow for globalization, localization, and developing world-ready ASP.NET applications.
- Resources in Applications
Describes the .NET Framework's support for the creation and localization of resources and the satellite assembly resource model for packaging and deploying these localized resources.
- Normalization and Sorting
Describes how to prepare strings for a culture-insensitive sort.
- Understanding Encodings
Describes how to choose an appropriate Encoding and how to devise an appropriate fallback strategy.
Reference
- System.Globalization Namespace
Contains classes that define culture-related information, including the language, the country/region, the calendars in use, the format patterns for dates, currency, and numbers, and the sort order for strings.
- System.Resources Namespace
Provides classes for creating, manipulating, and using resources.
- System.Text Namespace
Contains classes representing ASCII, ANSI, Unicode, UTF-7, UTF-8 and other character encodings.
- Resource File Generator (Resgen.exe)
Describes how to use Resgen.exe to convert .txt files and .resx (XML-based resource format) files to common language runtime binary .resources files.
- Windows Forms Resource Editor (Winres.exe)
Describes how to use Winres.exe to quickly and easily localize Windows Forms forms.
Related Sections
- ASP.NET QuickStart
Provides the following samples in the Localization category: Setting Culture and Encoding, Localizing ASP.NET Applications, and Working with Resource Files.
- Common Tasks QuickStart
Provides the following Globalization and national language support (NLS) samples: CultureRegion Sample, MultipleEncodings Sample, Encoding Sample, and MultiCurrency Sample. Provides the following Resources samples: Create Resources, Use Resources, Read and Write Resources, and Make a Resource Reader.