Do both at the same time using just the locale param...
We implemented some SEO friendly urls for v8 and v9 that allow language specific product pages and category pages. For example:
www.mysite.com/de/p-1234-productname.aspx (the product in German)
www.mysite.com/us/p-1234-productname.aspx (the product in English)
We do something similar to you by detecting the '/de/' in the URL and then converting this into a locale parameter for showproduct.aspx, for example:
To switch locale and currency at the same time, edit your SkinBase.cs file in the 'GetTemplateName()' method and create some lines of code similar to this (m_customlocale is the value of the locale parameter from the URL):
This allows you to get the currency for the specific locale.
if (m_customlocale != "")
ThisCustomer.LocaleSetting = m_customlocale;
String CurrencySetting = AppLogic.GetLocaleDefaultCurrency(m_customlocale);
if (CurrencySetting.Length == 0)
CurrencySetting = Localization.GetPrimaryCurrency();
ThisCustomer.CurrencySetting = CurrencySetting;