features and fix bugs by installing only application logic files -- without modifying the installed language files Terminology The following MUI related terms are either used in or derived from the Microsoft documentation. Language-neutral (LN): Describes something that conveys a meaning regardless of the languages of the viewer, such as an image without text or other localizable aspects LN resource: a resource that is shared by and installed for all language versions of the application LN file: Windows binary containing the application logic and language-neutral resources Language-specific (LS): Describes something that has significantly different meaning based on the languages of the viewer. The most common LS items are interface strings but can be other items such as an image with text in it LS resource file: A set of resources localized for one language; a.k.a. MUI file Language Preferences A language selection is stored by the system for the system (shared by all users and maybe used as default for a new user) and for each user. These selections can be modified by the user via the system Control Panel but cannot be modified by an application. These preferences control the language that the OS uses for UI elements. Applications can also use these preferences, and via MUI-enabled system functions (such as LoadString) the use is automatic and transparent (requires no MUI-specific code to use). But use of these preferences is optional and customizable. An application can be designed to ignore the language preferences. Or it may use them in ways other than that provided by MUI-enabled system functions. An application can use MUI functions to read language preferences -- that default to the user selection [assumed] and are a list of languages in preference order. These preferences are provided at the system, user, process and thread levels [assumed that changing at a higher level modifies the preferences for lower levels]. An application can modify these language preference lists (via SetThreadPreferredUILanguages and other functions) in order to influence the behavior of MUI. For example: std::string languageIdSpec = "en-US"; languageIdSpec.push_back('\0'); // must be double-null terminated ULONG langCount = 1; if (!::SetThreadPreferredUILanguages(MUI_LANGUAGE_NAME, languageIdSpec.c_str(), &langCount)) throw std::runtime_error("Unable to set thread preferred UI language."); Resource Storage MUI provides support for localized resources stored in Windows binary (a.k.a. Win32 PE) files (DLL, EXE, SYS) -- usually DLL files. The resources for a language can either be stored in the application binary or in a MUI