Localization can be made pretty simple in .NET or as complex as you like.
An easier way would be to create a localized resource DLL for each supported language, and then set CultureInfo.CurrentUICulture for the user selected or detected language, return to the default (preferably in English) if the language isnโt supported.
And adjust the observer in case of a change in language.
Some programs require a reboot, others just redraw (as it seems in the case of the sample that you provided).
source share