ASP.NET multilingua
Creazione e configurazione del multilingua
- Creare nel progetto la cartella App_GlobalResources
- Creare sotto questa cartella due files: yoda.language.resx per la lingua di default (INGLESE) e yoda.language.it-it.resx per la seconda lingua (ITALIANO)
- Inserire in questi file le coppie KEY - VALUE
- Creare la classe BasePage sotto riportata
- Cambiare l'ereditarietà di ogni pagina del sito, facendo ereditare da BasePage
- Creare in qualche pagine i link che posso reimpostare la lingua. Tali link devono passare il parametro "lang" che può aver valore it o en
Come usare il multilingua nelle pagine .ASPX
- Esempio:
-
<
asp:Label ID="Label1" runat="server" Text="<%$Resources:yoda.language,search%>"></asp:Label>
Come usare il multilingua nelle pagine .CS
- Esempio:
-
string
myStringa = (String)GetGlobalResourceObject("yoda.language", "signoff");
Codice della classe BasePage.CS (da copiare e incollare nel progetto
using
System;
using
System.Collections.Generic;
using
System.Globalization;
using
System.Linq;
using
System.Threading;
using
System.Web;
/// <summary>
/// Summary description for BasePage
/// </summary>
public
class BasePage : System.Web.UI.Page
{
protected override void InitializeCulture()
{
if (!string.IsNullOrEmpty(Request["lang"]))
{
Session[
"lang"] = Request["lang"];
}
string lang = Convert.ToString(Session["lang"]);
string culture = string.Empty;
/* // In case, if you want to set vietnamese as default language, then removing this comment
if(lang.ToLower().CompareTo("vi") == 0 ||string.IsNullOrEmpty(culture))
{
culture = "vi-VN";
}
*/
if (lang.ToLower().CompareTo("en") == 0 || string.IsNullOrEmpty(culture))
{
culture
= "en-US";
}
if (lang.ToLower().CompareTo("it") == 0)
{
culture
= "it-IT";
}
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(culture);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(culture);
base.InitializeCulture();
}
}