 <p>Localization can be made quite simple in .NET or as complex as you like.</p> <p>The simpler way, would be to create localized resource DLL's for each supported language, and then set the <code>CultureInfo.CurrentUICulture</code> for the user's selected, or detected, language, falling back to a default (preferably English) in case the language isn't supported.</p> <p>And set up a watcher in case the of a language change.</p> <p>Some programs requires to reload, others simply to repaint (as it seems the case with the sample you provided).</p>