There is no out of the box way to do this, you need to customize Sitecore.Context.SetLanguage
function as
/// <summary>
/// Sets the current language.
/// This to extend the sitecore default SetLanguage behavior by adding expiration date for the language cookie
/// </summary>
/// <param name="language">The language.</param>
/// <param name="persistent">if set to <c>true</c>, the value will be persisted (in a cookie).</param>
/// <param name="ExpirationDate">The cookie expiration date, presistent should be set to <c>true</c> too </param>
public static void SetLanguage(Language language, bool persistent, DateTime ExpirationDate)
{
Assert.ArgumentNotNull(language, "language");
Context.Items["sc_Language"] = language;
if (!persistent)
{
return;
}
SiteContext site = Context.Site;
if (site != null)
{
string cookieKey = site.GetCookieKey("lang");
if (WebUtil.GetCookieValue(cookieKey) != language.Name)
{
WebUtil.SetCookieValue(cookieKey, language.Name, ExpirationDate);
}
}
}
I added more details at my blog :
http://alkouki.blogspot.com/2016/11/extend-sitecorecontextsetlanguage-to.html
Best,
Naim