The .NET framework provides support for globalization and localization. Localization deals with customizing data and resources for specific culture or locale or language.
The .NET localization model consists of a main assembly that contains both the application code and the fallback resources — strings, images, and other objects for the language in which the application is originally developed. Each localized application will have satellite assemblies, or assemblies which contain only the localized resources.
Because the main assembly always contains the fallback resources, if a resource is not found in the localized satellite assembly, the ResourceManager will attempt to load it in a hierarchical manner, eventually falling back to the resource in the main assembly.