Skip to content

Instantly share code, notes, and snippets.

@pedroadaodev
Last active August 9, 2016 09:49
Show Gist options
  • Save pedroadaodev/081a32c773bd20224b095cb0f8280748 to your computer and use it in GitHub Desktop.
Save pedroadaodev/081a32c773bd20224b095cb0f8280748 to your computer and use it in GitHub Desktop.
Umbraco : on root node, redirect to current users browser culture ex: /en/ or /fr/
@using System.Globalization
@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{
Layout = null;
string[] languages = HttpContext.Current.Request.UserLanguages;
var detectedLanguage = false;
var urlToRedirect = "/en/"; // TODO : go to first node homepage?
if (languages != null && languages.Any())
{
var allHomapeges = Model.Content.Descendants("Homepage");
if (allHomapeges != null && allHomapeges.Any())
{
foreach (var lang in languages)
{
if (detectedLanguage)
{
break;
}
var letfLanguageTag = CultureInfo.GetCultureInfoByIetfLanguageTag(lang.Split(';')[0]).IetfLanguageTag;
@* <div>@lang » @letfLanguageTag</div> *@ // DEBUG
foreach (var homepage in allHomapeges)
{
if (homepage.Name.Equals(letfLanguageTag, StringComparison.InvariantCultureIgnoreCase))
{
urlToRedirect = homepage.Url;
detectedLanguage = true;
break;
}
if (detectedLanguage)
{
break;
}
}
}
}
}
Response.RedirectPermanent(urlToRedirect); // DONT END RESPONSE
}
@pedroadaodev
Copy link
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment