"language skifter" web user control
Hej e.Er her en som har løst problemet med at bygge en "language skifter" web user control.
Jeg vil gerne bygge en kontrol som har 2 knapper. Når man klikker på den ene så skifter det til Engelse sprog og den anden til dansk.
For ikke at have kode på alle mine sider, vil jeg gerne bygge en web user control til dette.
Problemet er bare at jeg ikke kan kalde InitializeCulture da den kommer fra System.Web.UI.Page. som min Web User Kontrol ikke bruger.
Jeg har prøvet at lave min egen basepage som arver fra page. Dette virker fint fra en "normal" aspx side, men ikke en Web User Kontrol.
Men ander ord. Hvordan kan jeg lave en Web User Kontrol som kan skifte sprog?
Her der den kode jeg har testet med:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Threading;
using System.Globalization;
/// <summary>
/// Summary description for BaseClass
/// </summary>
public class BaseClass : System.Web.UI.Page
{
public BaseClass()
{
//
// TODO: Add constructor logic here
//
}
protected override void InitializeCulture()
{
if (Session["Language"] != null)
{
string currentLanguage = Session["Language"].ToString();
System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo(currentLanguage);
System.Threading.Thread.CurrentThread.CurrentCulture = ci;
System.Threading.Thread.CurrentThread.CurrentUICulture = ci;
base.InitializeCulture();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Globalization;
public partial class Default3 : BaseClass
{
protected void Page_Load(object sender, EventArgs e)
{
Session["Language"] = CultureInfo.CurrentUICulture.ToString();
Label1.Text = Session["Language"].ToString();
}
protected void Page_prerender(object sender, EventArgs e)
{
Label1.Text = Session["Language"].ToString();
}
protected void Button1_Click(object sender, EventArgs e)
{
Session["Language"] = "en-GB";
InitializeCulture();
}
}