Michells Mesterværk

Find er brugerens fortrukne sprog i ASP.NET

by Administrator 11. November 2009 10:46

I kender allesammen de der websites hvor man først skal vælge et sprog eller en lokation. UPS gør det bla. CDON gør det faktisk også. Ret store sites. Jeg kan bare ikke forstå hvorfor de ikke kan finde ud af at gøre det automatisk. De kan skære et trin væk fra navigationsforløbet, og det må vel betyde bedre usability og færre klik (mindre trafik i sidste ende og en lavere regning).

Informationen omkring brugerens sprog ligger som regel i browseren. Der kan faktisk også optræde flere sprog, men det bør bare gøre det nemmere for både UPS og CDON.

Sådan indstiller sprog i din browser. (IE og FF).

ieLangs fflangs

 

I System.Web.HttpRequest klassen er der en readonly property ved navn UserLanguages hvor du netop kan få disse sprog ud. Jeg har skrevet en lille extension method som gør det nemmere at finde ud af hvilke sprog der fortrækkes af brugeren.

public static class RequestExtensions {
public static Dictionary<decimal, CultureInfo> GetUsersPreferableLanguages(this HttpRequest request)
{
string[] languages = request.UserLanguages;

if (languages != null)
{
CultureInfo culture;

Dictionary<decimal, CultureInfo> preferableLanguages =
new Dictionary<decimal, CultureInfo>();

foreach (var lang in languages)
{
if (lang.Contains(";"))
{
decimal preferRate = decimal.Parse(lang.Substring(lang.IndexOf("=") + 1),
System.Globalization.CultureInfo.InvariantCulture.NumberFormat);

culture = GetCulture(lang.Substring(0, lang.IndexOf(";")));

if (culture != null)
preferableLanguages.Add(preferRate, culture);
}
else
{
preferableLanguages.Add(1, GetCulture(lang));
}
}

return preferableLanguages;
}

return null;
}

private static CultureInfo GetCulture(string culture)
{
try
{
return new CultureInfo(culture);
}
catch (CultureNotFoundException exception)
{
return null;
}
}
}


 

Nu kan du direkte på Request objektet kalde:

protected void Page_Load(object sender, EventArgs e)
{
Request.GetUsersPreferableLanguages();
}

Tags:

VS2010

Comments

2/14/2010 1:56:10 PM #

اخبار

Thank you very much for the possibility to have a look into the office. Nice boy, he has got the talent to explain.

اخبار Egypt

3/10/2010 12:00:05 AM #

WoW Mobile

Do you know which mobile phone companies allow tethering?

WoW Mobile United States

3/17/2010 12:00:43 PM #

arac sorgulama

I admire the valuable information you offer in your articles. I will bookmark your blog and have my children check up here often. I am quite sure they will learn lots of new stuff here than anybody else!

arac sorgulama United States

4/5/2010 12:43:21 PM #

free multiplayer games

Such a wonderful article. Thanks for revealing this post...

free multiplayer games United States

Add comment


(Will show your Gravatar icon)

(De 3 specielle karaktere i det danske alfabet?)
  Country flag

biuquote
  • Comment
  • Preview
Loading



Powered by BlogEngine.NET 1.6.0.0
Theme by Mads Kristensen