You can easily achieve this by modifying {web}/App_Code/SkinBase.cs :
look for the function LoadSkinTemplate and change this:
C#/VB.NET Code:
if (_url == null)
{
// try customer locale:
_url = Path.Combine(SkinRoot, m_TemplateName.Replace(".ascx", "." + ThisCustomer.LocaleSetting + ".ascx"));
m_TemplateFN = CommonLogic.SafeMapPath(_url);
if (!CommonLogic.FileExists(m_TemplateFN))
{
// try default store locale path:
_url = Path.Combine(SkinRoot, m_TemplateName.Replace(".ascx", "." + Localization.GetWebConfigLocale() + ".ascx"));
m_TemplateFN = CommonLogic.SafeMapPath(_url);
}
... snip .....
to:
C#/VB.NET Code:
if (_url == null)
{
// try customer's currency code specific template
_url = Path.Combine(SkinRoot, m_TemplateName.Replace(".ascx", "." + ThisCustomer.CurrencySetting + ".ascx"));
m_TemplateFN = CommonLogic.SafeMapPath(_url);
if (!CommonLogic.FileExists(m_TemplateFN))
{
// try customer locale:
_url = Path.Combine(SkinRoot, m_TemplateName.Replace(".ascx", "." + ThisCustomer.LocaleSetting + ".ascx"));
m_TemplateFN = CommonLogic.SafeMapPath(_url);
}
if (!CommonLogic.FileExists(m_TemplateFN))
{
// try default store locale path:
_url = Path.Combine(SkinRoot, m_TemplateName.Replace(".ascx", "." + Localization.GetWebConfigLocale() + ".ascx"));
m_TemplateFN = CommonLogic.SafeMapPath(_url);
}
... snip .....
This will try to look for currency specific template first, if there's one defined, otherwise fallback to the default template resolution.