Ciao,
Ho fatto un po' di pratica con una paginetta di esempio e le risorse (locali) messe a disposizione da ASP.NET per realizzare agevolmenteun sito in diverse lingue.
Tuttavia ci sono alcuni aspetti che mi lasciano perplesso:
[1] Adottando questa tecnica l'ID degli elementi interessati vengono cambiati in maniera imprevedibile (ad esempio: ID="menu" diventa id="ctl00_menu"). In tal modo se uso l'ID nel file CSS per di questi elementi non vi sarà match e la regola CSS non verrà applicata.
[2] Se ho un buttonImage nella MasterPage cliccando la quale la lingua del sito deve cambiare (es solo inglese/italiano per semplicità) come faccio a gestire il cambiamento della lingua?
FInora usavo (per una pagina aspx non master)
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
Session["lang"] = "ITA";
base.InitializeCulture();
}
}
protected void eng_button_Click(object sender, EventArgs e)
{
Session["lang"] = "ITA";
InitializeCulture();
}
protected void ita_button_Click(object sender, EventArgs e)
{
Session["lang"] = "ENG";
InitializeCulture();
}
protected override void InitializeCulture()
{
if (Session["lang"] != null && Session["lang"].ToString().Equals("ITA"))
{
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("it");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("it-IT");
}
else if (Session["lang"] != null && Session["lang"].ToString().Equals("ENG"))
{
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
}
}
Mentre nella Master Page questo non funziona
Grazie in anticipo