The Developer's Guide to Building Global Windows and Web Applications
by Guy Smith-Ferrier published by Addison-Wesley
ISBN 0321341384
Previous versions of the source code (for Visual Studio 2010, Visual Studio 2008, Visual Studio 2005 and Visual Studio 2003) are no longer being updated. If you want the latest and greatest updates you should download the Visual Studio 2012 source code. If you want to follow along with the code in the book you should download the Visual Studio 2005 and Visual Studio 2003 source code.
Chapter | Project | Description | VS2005 Pre-requisites | VS2005 Download | VS2003 Pre-requisites | VS2003 Download |
N/A | Internationalization.Common | A library of Internationalization tools including EmptyResourceReader, FileFinder, GlobalizationUtilities, PseudoTranslation, ResourceUtilities, TargetLanguages and ThreadFactory classes | None | Yes | None | Yes |
4 | ChangeCulturesDuringExecution | Demonstration of how to change CurrentUICulture while the application is running (based on a menu of culture choices) | None | Yes | None | Yes |
4 | ChangeCulturesDuringExecution2 | Demonstration of how to change CurrentUICulture while the application is running (based on Regional and Language Options Dialog) | None | Yes | None | Yes |
4 | ClickOnceBootstrapperManifestFiles | Example ClickOnce Bootstrapper Manifest files for packaging .NET Framework Language Packs | None | Yes | N/A | N/A |
4 | ClickOnceDownloadOnDemand | Demonstration of a ClickOnce application that downloads resources for the user’s choice of culture on demand | None | Yes | N/A | N/A |
4 | SetPublishState, SetPublishStateTask | A command line utility and msbuild task to set the ClickOnce PublishState of satellite assemblies | None | Yes | N/A | N/A |
4 | SchizophrenicUI | Demonstration of a schizophrenic user interface problem | None | Yes | N/A | N/A |
4 | TranslatedApplication | Demonstration of a translated Windows Forms application with resources in English, French, Greek, Japanese and Pseudo Translation. | None | Yes | N/A | N/A |
5 | ASP.NET Control Localizer | Localizes System.Web controls from resources in the .NET Framework Language Packs | None | Yes | N/A | N/A |
5 | SchizophrenicUI | Demonstration of a schizophrenic user interface problem | None | Yes | N/A | N/A |
5 | Script Resource Viewer | Debugging tool to decrypt WebResource and ScriptResource references and get unzipped content from these HTTP Handlers | None | Yes | N/A | N/A |
6 | CultureInfoExExample | Demonstration of the CultureInfoEx class | Globalization | Yes | N/A | N/A |
6 | Globalization | A library of Globalization tools. AlternateSortOrders gets an array of LCIDs of installed sort orders. CultureInfoEx is an extended CultureInfo class. CultureInfoProvider is a provider of CultureInfo objects. GeoInfo provides access to geographical information given a GeoId. PostalCodeInfo holds a postal code mask which is suitable for use with data entry controls. | None | Yes | None | Yes |
6 | IDNTest | Demonstration of the IdnMapping class | None | Yes | N/A | N/A |
7 | IMEExample | Simple demonstration of control of an IME in a Windows Forms application | None | Yes | N/A | N/A |
7 | IMEExample2 | Complex demonstration of control of an IME in a Windows Forms application | None | Yes | N/A | N/A |
7 | SetInputLanguageExample | Demonstration of setting the input language appropriate to the CurrentUICulture | Internationalization.Common | Yes | N/A | N/A |
8 | ExceptionMessages | Demonstration of how exception messages get localized | None | Yes | None | Yes |
8 | FallBackFontUsingCourierNew | Demonstration of the Courier New font falling back to render Devanagari | None | Yes | N/A | N/A |
8 | HotKeyAssignments | The HotKeyAssignments class handles the assignment of hot keys to controls and labels after localization has taken place | None | Yes | None | Yes |
8 | HotKeyAssignmentsExample | Demonstration of the HotKeyAssignments in a Windows Forms application | None | Yes | N/A | N/A |
8 | LogFontExample | Demonstration of the Font.ToLogFont method | None | Yes | N/A | N/A |
8 | TableLayoutPanelDemo | Demonstration of the localization benefits of using TableLayoutPanel | None | Yes | N/A | N/A |
9 | TranslationEngine | An engine for translating text. The project includes many wrappers for free machine translation services. | Internationalization.Common | Yes | Internationalization.Common | Yes |
9 | TranslatorEvaluator | The TranslationEvaluator is a utility for evaluating the effectiveness and performance of machine translators. | Internationalization.Common, TranslationEngine | Yes | Internationalization.Common, TranslationEngine | Yes |
10 | AddResourceString | AddResourceString is a Visual Studio add-in for adding a resource to a complete set of resource files and, optionally, translating the resource in the process | Internationalization.Common, ResourceAdministration, TranslationEngine | Yes | Internationalization.Common, ResourceAdministration, TranslationEngine | Yes |
10 | ResAdmin | The Resource Administrator (ResAdmin) is a stand alone developer tool for providing the complete maintenance of resources | Internationalization.Common, ResourceAdministration, ResourceEditorControlLibrary, TranslationEngine | Yes | Internationalization.Common, ResourceAdministration, ResourceEditorControlLibrary, TranslationEngine | Yes |
10 | ResourceAdministration | Implementations of the IResourceGovernor and IResourcesGovernor interfaces for providing an abstraction for resource implementations | Internationalization.Common, CustomResourceManagers, TranslationEngine | Yes | Internationalization.Common, CustomResourceManagers, TranslationEngine | Yes |
10 | ResourceEditorControlLibrary | Includes the ResourceEditorControl component. ResourceEditorControl is a complete resource editor in a control. Use this control to build your own custom resource editor. | Internationalization.Common, ResourceAdministration | Yes | Internationalization.Common, ResourceAdministration | Yes |
11 | CustomCultureExamples | Demonstration of 7 custom cultures. Includes the source for the CultureAndRegionInfoBuilderHelper class that helps build custom cultures. | None | Yes | N/A | N/A |
11 | RegisterCustomCulture | Command line utility for registering custom cultures from a .LDML file | None | Yes | N/A | N/A |
12 | CustomResourceManagers | 5 custom resource manager classes (DbResourceManager, ResourcesResourceManager, ResXResourceManager, StandardPropertiesResourceManager, TranslationResourceManager). Also includes the ResourceManagerSetter class for allowing Windows Forms to use a resource manager other than ResourceManager. | TranslationEngine | Yes | TranslationEngine | Yes |
12 | CustomResourceManagersExample | Demonstration of using the DbResourceManager, ResourcesResourceManager and TranslationResourceManager resource managers and the ResourceManagerProvider and ResourceManagerSetter classes | ResourceManagerProvider, CustomResourceManagers, TranslationEngine | Yes | ResourceManagerProvider, CustomResourceManagers, TranslationEngine | Yes |
12 | ResourceManagerProvider | A provider for resource manager implementations. The ResourceManagerProvider provides an abstraction from the actual resource manager class employed by an application. | None | Yes | None | Yes |
12 | ResClassGen | ResClassGen is similar to the .NET Framework ResGen utility. It generates a strongly typed resource class (for both the .NET Framework 1.1 and 2.0) and allows the generated class to use a ResourceManagerProvider instead of a ResourceManager. (Includes a StronglyTypedResourceBuilder class for the .NET Framework 1.1). | Resources.Tools | Yes | None | Yes |
12 | Resources.Tools | Includes the StronglyTypedResourceBuilderHelper class. This class uses the .NET Framework StronglyTypedResourceBuilder to generate a class with the difference that the generated code uses the ResourceManagerProvider to supply a resource manager instead of using the hard-wired ResourceManager class. | None | Yes | N/A | N/A |
12 | Resources Code Generators |
Includes the ResourceProviderCodeGenerator and PublicResourceProviderCodeGenerator replacements for the ResXFileCodeGenerator and PublicResXFileCodeGenerator.
These code generators generate the same strongly typed resource classes from .resx files as the ResXFileCodeGenerator and PublicResXFileCodeGenerator with the
exception that the resource manager is abstracted to the ResourceManagerProvider instead of being hard wired to the .NET Framework ResourceManager. The
benefit is that your code can now use any resource manager not just the one in the .NET Framework. You can download the .exe/.msi built from this code |
None | Yes | N/A | N/A |
13 | FxCopAdditionalGlobalizationRulesTest | Test project for causing the FxCop rules in GlobalizationRules to fail | GlobalizationRules | Yes | GlobalizationRules | Yes |
13 | GlobalizationRules | A library of 14 custom FxCop rules for testing internationalization | Internationalization.Common | Yes | Internationalization.Common | Yes |
13 | LiteralStringManager | The Literal String Manager is a tool that accompanies the DoNotUseLiteralStrings custom FxCop rule. It provides a GUI for accepting or rejecting suspect strings in assemblies | None | Yes | None | Yes |
14 | InvokingWinRes | Demonstration of the InvokeWinRes class. InvokeWinRes is a class for invoking WinRes from within a Windows Forms application. | ResourceAdministration | Yes | ResourceAdministration | Yes |
14 | ResourceTranslationManager | The Resource Translation Manager is a translator/localizer tool for translating/localizing resources | Internationalization.Common, ResourceAdministration | Yes | N/A | N/A |
App. A | ConvertResX | Converts .NET 2.0 resx files to .NET 1.1 .resx files | None | Yes | N/A | N/A |