Felix,Isn't it because first you set it to localeID 2058 then later to the activelanguage of windowsapplication1.
If this active language is english or it is not set then this will overwrite the 2058 localeID.
From the Localization docs:
GetActiveLanguage() - Retrieving the Active Language
The GetActiveLanguage method in the Localization class loads the locale ID for the active language for a specified application. If no active language is located, the localization database will be used to find the default base language.
Try commenting out the last line in your code and run again.
/Teddy