Skip to content

Instantly share code, notes, and snippets.

@diegobersano
Last active May 29, 2016 23:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save diegobersano/9ae996b8aa00326828a4cbbf18fbdcaa to your computer and use it in GitHub Desktop.
Save diegobersano/9ae996b8aa00326828a4cbbf18fbdcaa to your computer and use it in GitHub Desktop.
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Threading;
using System.Web.Mvc;
using Internacionalization.Infraestructure;
namespace Internacionalization.Controllers
{
public abstract class BaseController : Controller
{
protected override IAsyncResult BeginExecuteCore(AsyncCallback callback, object state)
{
var cultureRoute = RouteData.Values["culture"] as string;
var cultureDefinition = string.IsNullOrEmpty(cultureRoute)
? Thread.CurrentThread.CurrentCulture.Name.Split('-')
: cultureRoute.Split('-');
RouteData.Values["culture"] = cultureRoute = this.GetCulture(cultureDefinition);
Thread.CurrentThread.CurrentCulture = new CultureInfo(cultureRoute);
Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;
return base.BeginExecuteCore(callback, state);
}
private string GetCulture(IReadOnlyList<string> cultureDefinition)
{
return cultureDefinition[0] == SupportedCulture.English
? SupportedCulture.English
: SupportedCulture.Spanish;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment