.Net applications already have a powerful localization mechanism built in, discussed at How to use localization in C#. To summarise:
- Add resource files to your project and give them a language indicative suffix appropriate suffix, e.g. "strings.fr.resx" for French or "strings.de.resx" for German.
- Add strings to the resx files with appropriate names, e.g. "header", "label1", "label2".
- Save the resource file.
- Set
Thread.CurrentThread.CurrentUICulture
to the desired culture. - Load the strings from the file, using the class automatically created, e.g. "strings.header".
Do not forget non-string localization aspects like time and date formats, too.
For an overview, see http://msdn.microsoft.com/en-us/library/h6270d0z(v=vs.110).aspx.