#1,130 – Localization XI – Satellite Assemblies

After localizing an application, you’ll have a directory structure that looks something like what’s shown below.

\bin – contains AppName.exe

\bin\fr-FR – contains AppName.resources.dll

\bin\en-US – contains AppName.resources.dll

We started by setting the UICulture tag to en-US.  This resulted in the \en-US\AppName.resources.dll file being generated.  This assembly is the satellite assembly containing English/US resources.

We then extracted resources using the LocBaml tool, translated content to French, and then generated a new satellite assembly for the fr-FR culture, again using the LocBaml tool.

At run-time, the current user interface culture (CurrentUICulture property) is read to determine the desired culture to use when loading resources.  This is typically the language used by the version of Windows that is installed.  (Rather than the current regional setting).

If there is a sub-directory whose name matches CurrentUICulture, then the corresponding satellite assembly is loaded.  If none is found, a neutral language assembly is used.