|
namespace RIADataServicesDemoApp.Web.Resources
{
using System;
using System.Globalization;
using System.Runtime.CompilerServices;
using System.Threading;
using System.Web;
internal static class ClientCultureBasedResources
{
/// <summary>
/// Returns the CultureInfo that represents the culture for looking up
/// resources.
///
/// The default implementation will try to load the culture from the
/// 'RIADataServicesDemoApp-culture' cookie (which gets set by the Siverlight ASPX
/// wrapper, see RIADataServicesDemoAppTestPage.aspx). If there is no such
/// cookie, this will use the preferred language as sent by the browser, although
/// be aware that IE does not send this information.
///
/// Change this if you want to change or enhance this logic (for example,
/// if your app lets the user change the display language and store that
/// as a profile setting, you should change this method so it queries for
/// that profile setting if the user is logged on)
/// </summary>
private static CultureInfo CurrentCulture
{
get
{
string clientCulture = HttpContext.Current.Request.Cookies["RIADataServicesDemoApp-culture"].Value;
if (clientCulture != null)
{
return CultureInfo.GetCultureInfo(clientCulture);
}
else
{
// Not guaranteed to have the correct value.
return Thread.CurrentThread.CurrentCulture;
}
}
}
/// <summary>
/// Ensures any resource strings accessed by <paramref name="resourceGrabber" /> will
/// be returned in the culture the silverlight app is expecting.
/// </summary>
[MethodImpl(MethodImplOptions.Synchronized)]
internal static string GetResource(Func<string> resourceGrabber)
{
Thread.CurrentThread.CurrentUICulture = CurrentCulture;
return resourceGrabber();
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
I currently hold the following qualifications (amongst others, I also studied Music Technology and Electronics, for my sins)
- MSc (Passed with distinctions), in Information Technology for E-Commerce
- BSc Hons (1st class) in Computer Science & Artificial Intelligence
Both of these at Sussex University UK.
Award(s)
I am lucky enough to have won a few awards for Zany Crazy code articles over the years
- Microsoft C# MVP 2016
- Codeproject MVP 2016
- Microsoft C# MVP 2015
- Codeproject MVP 2015
- Microsoft C# MVP 2014
- Codeproject MVP 2014
- Microsoft C# MVP 2013
- Codeproject MVP 2013
- Microsoft C# MVP 2012
- Codeproject MVP 2012
- Microsoft C# MVP 2011
- Codeproject MVP 2011
- Microsoft C# MVP 2010
- Codeproject MVP 2010
- Microsoft C# MVP 2009
- Codeproject MVP 2009
- Microsoft C# MVP 2008
- Codeproject MVP 2008
- And numerous codeproject awards which you can see over at my blog