| |
| |
Foreword | |
| |
| |
Preface | |
| |
| |
Acknowledgments | |
| |
| |
About the Author | |
| |
| |
| |
A Roadmap for the Internationalization Process | |
| |
| |
The Operating System | |
| |
| |
The .NET Framework and Visual Studio | |
| |
| |
Languages | |
| |
| |
Resource Formats | |
| |
| |
Languages and Cultural Formatting | |
| |
| |
Windows Forms Applications | |
| |
| |
ASP.NET Applications | |
| |
| |
Globalization | |
| |
| |
Localization | |
| |
| |
Machine Translation | |
| |
| |
Resource Administration | |
| |
| |
Testing | |
| |
| |
Translation | |
| |
| |
Where Are We? | |
| |
| |
| |
Unicode, Windows, and the .NET Framework | |
| |
| |
Unicode | |
| |
| |
Code Pages | |
| |
| |
Unicode Windows | |
| |
| |
Code Page Windows | |
| |
| |
Virtual Machines | |
| |
| |
Windows Multilingual User Interface Pack | |
| |
| |
Language and Locale Support | |
| |
| |
.NET Framework Languages and .NET Framework Language Packs | |
| |
| |
Where Are We? | |
| |
| |
| |
An Introduction to Internationalization | |
| |
| |
Internationalization Terminology | |
| |
| |
World-Readiness | |
| |
| |
Localization | |
| |
| |
Customization | |
| |
| |
Internationalization Terminology Confusion | |
| |
| |
Cultures | |
| |
| |
Localizable Strings | |
| |
| |
How It Works | |
| |
| |
Resource File Formats | |
| |
| |
Resource Managers | |
| |
| |
Localized Strings | |
| |
| |
CurrentCulture and CurrentUICulture | |
| |
| |
CurrentCulture, CurrentUICulture, and Threads | |
| |
| |
The Resource Fallback Process | |
| |
| |
NeutralResourcesLanguageAttribute and UltimateResourceFallbackLocation | |
| |
| |
Image and File Resources | |
| |
| |
Adding Images and Files in Visual Studio 2003 | |
| |
| |
Strongly-Typed Resources in the .NET Framework 2.0 | |
| |
| |
ResGen | |
| |
| |
StronglyTypedResourceBuilder | |
| |
| |
Strongly-Typed Resources in the .NET Framework 1.1 | |
| |
| |
Where Are We? | |
| |
| |
| |
Windows Forms Specifics | |
| |
| |
Localizing Forms | |
| |
| |
Property Assignment Model | |
| |
| |
Property Reflection Model | |
| |
| |
Localizing a Form | |
| |
| |
Setting the CurrentUICulture | |
| |
| |
Changing the Culture During Execution | |
| |
| |
Using Regional and Language Options to Change the Culture | |
| |
| |
Dialogs | |
| |
| |
Windows Resource Localization Editor (WinRes) | |
| |
| |
Resource File Mode | |
| |
| |
WinRes 2.0 and Cultures | |
| |
| |
WinRes 1.1 and Visual Studio 2003 Compatibility | |
| |
| |
WinRes and Visual Form Inheritance | |
| |
| |
WinRes Pros and Cons | |
| |
| |
ClickOnce | |
| |
| |
A Brief Introduction to ClickOnce | |
| |
| |
Deploying a Single Culture Using Visual Studio 2005 | |
| |
| |
The ClickOnce User Interface | |
| |
| |
Deploying a Single Culture Using msbuild | |
| |
| |
Deploying All Cultures Using Visual Studio 2005 | |
| |
| |
Deploying All Cultures Using msbuild | |
| |
| |
Deploying All Cultures Individually Using Visual Studio 2005 | |
| |
| |
Deploying All Cultures Individually Using msbuild | |
| |
| |
Download On Demand | |
| |
| |
.NET Framework Language Packs and ClickOnce Prerequisites | |
| |
| |
Thread.CurrentThread.CurrentCulture and ClickOnce Security | |
| |
| |
Where Are We? | |
| |
| |
| |
ASP.NET Specifics | |
| |
| |
Localizability in .NET 1.1 | |
| |
| |
Automating Resource Assignment | |
| |
| |
Static Text | |
| |
| |
Calendar Control | |
| |
| |
Setting and Recognizing the Culture | |
| |
| |
Setting the Culture in Internet Explorer | |
| |
| |
Recognizing the User Culture | |
| |
| |
Setting the Culture in Configuration Files | |
| |
| |
Caching Output by Culture | |
| |
| |
Localizability in Visual Studio 2005 | |
| |
| |
How It Works | |
| |
| |
Resx Files, Application Domains, and Session State | |
| |
| |
Automatic Culture Recognition for Individual Pages | |
| |
| |
How It Works | |
| |
| |
Manual Culture Recognition for Individual Pages | |
| |
| |
Application-Wide Automatic Culture Recognition | |
| |
| |
Session/Profile vs. Page-Level Attributes | |
| |
| |
Explicit Expressions | |
| |
| |
Global Resources | |
| |
| |
Implicit Expressions vs. Explicit Expressions | |
| |
| |
Programmatic Resource Access | |
| |
| |
Localizing ASP.NET 2 Components | |
| |
| |
Login Controls | |
| |
| |
SiteMap Control | |
| |
| |
Localizing the Website Administration Tool | |
| |
| |
Where Are We? | |
| |
| |
| |
Globalization | |
| |
| |
The CultureInfo Class | |
| |
| |
CultureInfo.GetCultures and CultureTypes Enumeration | |
| |
| |
The Relationship Between CultureInfo and Other Globalization Classes | |
| |
| |
The RegionInfo Class | |
| |
| |
Geographical Information | |
| |
| |
String Comparisons | |
| |
| |
Casing | |
| |
| |
Sort Orders | |
| |
| |
Alternate Sort Orders | |
| |
| |
Persisting Culture Identifiers | |
| |
| |
Calendars | |
| |
| |
Calendar Eras | |
| |
| |
Calendar.TwoDigitYearMax | |
| |
| |
DateTimes, DateTimeFormatInfos, and Calendars | |
| |
| |
DateTime.ToString, DateTime Parsing, and DateTimeFormatInfo | |
| |
| |
Genitive Date Support | |
| |
| |
DateTime.ToString and IFormatProvider | |
| |
| |
Numbers, Currencies, and NumberFormatInfo | |
| |
| |
International Domain Name Mapping | |
| |
| |
International Domain Names and Visual Spoofing | |
| |
| |
Environment Considerations | |
| |
| |
Extending the CultureInfo Class | |
| |
| |
Where Are We? | |
| |
| |
| |
Middle East and East Asian Cultures | |
| |
| |
Supplemental Language Support | |
| |
| |
Right-to-Left Languages and Mirroring | |
| |
| |
Detecting a Right-to-Left Culture | |
| |
| |
Right-to-Left Languages and Mirroring in Windows Forms Applications | |
| |
| |
Right-to-Left Languages and Mirroring in ASP.NET Applications | |
| |
| |
Right-to-Left Cultures and Images | |
| |
| |
Input Method Editors | |
| |
| |
Installing an IME | |
| |
| |
How to Use an IME | |
| |
| |
Using an IME in a Windows Forms Application | |
| |
| |
Where Are We? | |
| |
| |
| |
Best Practices | |
| |
| |
Font Selection | |
| |
| |
Font Terminology and the Font Class | |
| |
| |
Font Properties Extension | |
| |
| |
Getting Font Information Programmatically | |
| |
| |
Windows Forms Controls | |
| |
| |
ASP.NET Controls | |
| |
| |
The SystemFonts Class | |
| |
| |
Font Substitution | |
| |
| |
Font Linking | |
| |
| |
Font Fallback | |
| |
| |
Font Names Are Sometimes Translated | |
| |
| |
Font Strategy | |
| |
| |
Strings and String.Format | |
| |
| |
Text Ending with Colons | |
| |
| |
Embedded Control Characters | |
| |
| |
Exception Messages | |
| |
| |
Hot Keys | |
| |
| |
ASP.NET and Hot Keys | |
| |
| |
Windows Forms Best Practices | |
| |
| |
Form Layout | |
| |
| |
AutoSize | |
| |
| |
AutoSizeMode | |
| |
| |
AutoEllipsis | |
| |
| |
TableLayoutPanel and FlowLayoutPanel | |
| |
| |
Where Are We? | |
| |
| |
| |
Machine Translation | |
| |
| |
How Good Is It? | |
| |
| |
Translation Engine | |
| |
| |
The ITranslator Interface | |
| |
| |
The Translator Class | |
| |
| |
The TranslatorCollection Class | |
| |
| |
Pseudo Translation | |
| |
| |
Choosing a Culture for Pseudo Translation | |
| |
| |
The PseudoTranslator Class | |
| |
| |
Static Lookup Translator | |
| |
| |
Web Service Translators | |
| |
| |
HTML Translators | |
| |
| |
Visual Studio 2003 WebBrowser Control | |
| |
| |
The AltaVistaTranslator Class | |
| |
| |
Office 2003 Research Services | |
| |
| |
WorldLingo Translation Services | |
| |
| |
Translator Evaluator | |
| |
| |
Where Are We? | |
| |
| |
| |
Resource Administration | |
| |
| |
Resource Administrator | |
| |
| |
Keeping Sets of Resources in Synch | |
| |
| |
Automatic Translation of Strings | |
| |
| |
Resource Administrator Is Not Limited to Maintaining resx Files | |
| |
| |
Exporting Resources | |
| |
| |
Integrity Check | |
| |
| |
Add Resource String Visual Studio Add-In | |
| |
| |
Installing the Add-In in Visual Studio 2005 | |
| |
| |
Installing the Add-In in Visual Studio 2003 | |
| |
| |
Reading and Writing Resources | |
| |
| |
Reading Resources | |
| |
| |
Writing Resources | |
| |
| |
ResXDataNodes and Comments | |
| |
| |
ResX File References | |
| |
| |
Resource Governors | |
| |
| |
Data Nodes, Comments, and File References | |
| |
| |
The Resource Editor Control | |
| |
| |
Where Are We? | |
| |
| |
| |
Custom Cultures | |
| |
| |
Uses for Custom Cultures | |
| |
| |
Using CultureAndRegionInfoBuilder | |
| |
| |
Installing/Registering Custom Cultures | |
| |
| |
Uninstalling/Unregistering Custom Cultures | |
| |
| |
Public Custom Cultures and Naming Conventions | |
| |
| |
Supplemental Substitute Custom Cultures | |
| |
| |
Custom Culture Locale IDs | |
| |
| |
Custom Culture Parents and Children | |
| |
| |
Support for Custom Cultures | |
| |
| |
Supplemental Custom Cultures | |
| |
| |
Bengali (Bangladesh) Custom Culture | |
| |
| |
Pseudo Translation Custom Culture | |
| |
| |
Culture Builder Application Sample (CultureSample) | |
| |
| |
Combining Cultures | |
| |
| |
Exporting Operating System-Specific Cultures | |
| |
| |
Company-Specific Dialects | |
| |
| |
Extending the CultureAndRegionInfoBuilder Class | |
| |
| |
Custom Cultures and .NET Framework Language Packs | |
| |
| |
Custom Cultures in the .NET Framework 1.1 and Visual Studio 2003 | |
| |
| |
Where Are We? | |
| |
| |
| |
Custom Resource Managers | |
| |
| |
ResourceManager.CreateFileBasedResource Manager | |
| |
| |
Incorporating resgen into the Build Process for Windows Forms | |
| |
| |
Incorporating resgen into the Build Process in ASP.NET 2.0 | |
| |
| |
Incorporating resgen into the Build Process in ASP.NET 1.1 | |
| |
| |
ResourceManager.CreateFileBasedResourceManager in Practice | |
| |
| |
ResourceManager Exposed | |
| |
| |
ResourceManager.GetString | |
| |
| |
ResourceManager.GetString Example | |
| |
| |
ResourceManager.Constructors | |
| |
| |
ResourceManager.InternalGetResourceSet | |
| |
| |
ComponentResourceManager Exposed | |
| |
| |
Custom Resource Managers Examples | |
| |
| |
DbResourceManager | |
| |
| |
ResourcesResourceManager and ResXResourceManager | |
| |
| |
Writeable Resource Managers | |
| |
| |
DbResourceWriter | |
| |
| |
Writeable ResourcesResourceManager | |
| |
| |
TranslationResourceManager | |
| |
| |
StandardPropertiesResourceManager | |
| |
| |
ResourceManagerProvider | |
| |
| |
Using Custom Resource Managers in Windows Forms | |
| |
| |
Generating Strongly-Typed Resources for Sources Other Than resx Files | |
| |
| |
Generating Strongly-Typed Resources Which Use ResourceManagerProvider | |
| |
| |
Using Custom Resource Managers in ASP.NET 2.0 | |
| |
| |
The Resource Provider Model | |
| |
| |
Setting the ResourceProviderFactory | |
| |
| |
ResourceManagerResourceProviderFactory | |
| |
| |
DbResourceManagerResourceProviderFactory | |
| |
| |
Where Are We? | |
| |
| |
| |
Testing Internationalization Using FxCop | |
| |
| |
A Brief Introduction to FxCop | |
| |
| |
Using FxCop's Stand-Alone GUI | |
| |
| |
FxCop and ASP.NET | |
| |
| |
FxCop Globalization Rules | |
| |
| |
"Avoid duplicate accelerators" | |
| |
| |
"Do not hardcode locale specific strings" | |
| |
| |
"Do not pass literals as localized parameters" | |
| |
| |
"Set locale for data types" | |
| |
| |
"Specify CultureInfo" and "Specify IFormatProvider" | |
| |
| |
"Specify MessageBoxOptions" | |
| |
| |
FxCop Spelling Rules | |
| |
| |
Overview of New FxCop Globalization Rules | |
| |
| |
Resource Rules | |
| |
| |
Type/Resource Rules | |
| |
| |
Instruction Rules | |
| |
| |
Writing FxCop Globalization Rules | |
| |
| |
Getting Started Writing FxCop Rules | |
| |
| |
Type/Resource Rules | |
| |
| |
Instruction Rules | |
| |
| |
Where Are We? | |
| |
| |
| |
The Translator | |
| |
| |
The Translation Process | |
| |
| |
Translator or Localizer? | |
| |
| |
Translation/Localization Strategies | |
| |
| |
ASP.NET 2.0 Translation/Localization Strategies | |
| |
| |
Windows Forms and ASP.NET 1.1 Translation/Localization Strategies | |
| |
| |
Signed Assemblies | |
| |
| |
WinRes Translation/Localization Strategies | |
| |
| |
Resource Translation Manager | |
| |
| |
Reintegrating Resources | |
| |
| |
Where Are We? | |
| |
| |
| |
New Internationalization Features in the .NET Framework 2.0 and Visual Studio 2005 | |
| |
| |
Compatibility | |
| |
| |
Windows Forms Compatibility | |
| |
| |
Windows Forms Designer | |
| |
| |
CultureInfo.DisplayName and CultureInfo.EnglishName with Scripts | |
| |
| |
CultureInfo.GetCultures Order | |
| |
| |
Control.DefaultFont Logic | |
| |
| |
CultureInfo.Equals Logic | |
| |
| |
CultureInfo.OptionalCalendars Has New Calendars | |
| |
| |
Base Data Has Changed for Some Cultures | |
| |
| |
ResX Relative File References Break Code That Uses ResXResourceReader | |
| |
| |
ResX Changes Break Code That Uses ResXResourceReader | |
| |
| |
.NET Framework Redistributable | |
| |
| |
.NET Framework Language Packs | |
| |
| |
.NET Framework | |
| |
| |
New IdnMapping Class | |
| |
| |
String Identifiers for Alternate Sort Orders | |
| |
| |
CultureInfo.GetCultures and CultureTypes Enumeration | |
| |
| |
New CultureInfo Properties | |
| |
| |
New CultureInfo Methods | |
| |
| |
String.Compare and StringComparison Enumeration | |
| |
| |
New DateTime Properties | |
| |
| |
New DateTimeFormatInfo Properties | |
| |
| |
New DateTime Methods | |
| |
| |
New Calendars | |
| |
| |
New Calendar Properties | |
| |
| |
New Calendar Methods | |
| |
| |
New CompareInfo Properties | |
| |
| |
New CompareInfo Methods | |
| |
| |
New RegionInfo Properties | |
| |
| |
New TextInfo Properties | |
| |
| |
New TextInfo Methods | |
| |
| |
New NumberFormatInfo Properties | |
| |
| |
New ResourceReader Methods | |
| |
| |
New ResXResourceReader Properties | |
| |
| |
New ResXResourceReader Methods | |
| |
| |
New ResXResourceWriter Methods | |
| |
| |
New String and StringInfo Methods | |
| |
| |
New CharUnicodeInfo Class | |
| |
| |
resx Files and File References | |
| |
| |
New ResourceManager Methods | |
| |
| |
Customizing the Fallback Process | |
| |
| |
ResView and ResExtract (Managed Resource Viewer) | |
| |
| |
Strongly Typed Resources | |
| |
| |
Custom Cultures | |
| |
| |
Visual Studio's Resource Editor | |
| |
| |
Windows Forms | |
| |
| |
Property Reflection Model | |
| |
| |
Control.AutoSize | |
| |
| |
Label.AutoSize Default | |
| |
| |
AutoSizeMode Property | |
| |
| |
AutoEllipsis Property | |
| |
| |
RightToLeftLayout Property | |
| |
| |
TableLayoutPanel and FlowLayoutPanel Controls | |
| |
| |
BackgroundWorker | |
| |
| |
WinRes | |
| |
| |
ASP.NET | |
| |
| |
Localizability | |
| |
| |
Web.config [left angle bracket]globalization[right angle bracket] culture and uiCulture Attributes | |
| |
| |
New Page Culture and UICulture Attributes | |
| |
| |
New Page.InitializeCulture Method | |
| |
| |
Web Control Properties Are Marked as Localizable | |
| |
| |
New Localize Control | |
| |
| |
Automatic resx File Change Detection | |
| |
| |
| |
Information Resources | |
| |
| |
Books | |
| |
| |
Resources | |
| |
| |
Magazines | |
| |
| |
Web Sites and FTP Sites | |
| |
| |
Online Machine-Translation Web Sites | |
| |
| |
Blogs | |
| |
| |
Conferences | |
| |
| |
Organizations | |
| |
| |
Commercial Machine-Translation Products | |
| |
| |
Alternatives to .NET Framework Internationalization | |
| |
| |
Index | |