You may implement custom approaches to choose the language preference and then override the SetPageCulture function in your page to set the culture by setting values for:
System.Threading.Thread.CurrentThread.CurrentUICulture
System.Threading.Thread.CurrentThread.CurrentCulture
This override needs to be in just one page of your application (default page recommended) and it will be set for the application thread.
Creating a Multi-Lingual Application
Localizing (Internationalizing) Your Application