I have a Windows forms application that I've configured for localization but it will not change languages either automatically based on the OS install language or by an event in code. Here is a breakdown of the settings and the steps I've taken to troubleshoot.
1. frmMain property Localizable set to True
2. I have 3 form resx files; frmMain.resx, frmMain.de.resx and frmMain.de-DE.resx and all three of the resx files are configured as Embedded Resources.
3. I have an additional 3 project level res files that I use for various other strings; WinFormStrings.resx, WinFormStrings.de.resx and WinFormStrings.de-DE.resx, all three of the files are configured as embedded resources. I also have the designer files for all of the resx files and I've tried to delete those files and re-create them several times using the "Run Custom Tool" on the resx files.
4. I have a combox that allows the end user to switch between English and German language. In the event of the combo box I'm setting the currentuiculture and the currentculture properties of the current thread then recursing through all of the controls on the form and applying the appropriate resource.
When I run the application from the debugger and select another language via the combobox the form switches languages properly and the text of the form controls switch to the appropriate language. When I run the compiled application from the projects build location the language switches properly. When I run the compiled application from anywhere else other than the build location the language will not change. This leads me to believe that the language files are not embedding into the compiled application properly. The way that this application is being depoyed I can't include any additional files with the application, the compiled application needs to have any necessary resources embedded into the application.
Any help would be greatly appreciated.