Localization en ASP.NET 2.0
Bonjour,
Je développe une appli web qui devra être déployée dans différents pays, mais à chaque fois sur une serveur avec un OS en US.
Mon objectif est de rendre l'appli multilingue. 2 possibilités s'offrent à moi :
- utiliser la culture du client
- forcer la culture dans le paramétrage de l'appli.
Les deux solutions sont envisageables, d'après ce que j'ai compris, par une simple configuration dans le web.config. Perso, je préfère la seconde solution, et j'ai donc essayé la ligne suivante :
Code:
1 2
|
<globalization uiCulture="es" culture="es-MX" /> |
... sans succès.
J'ai donc forcé la culture au niveau de la page par l'ajout du code suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
protected override void InitializeCulture()
{
string lang = "es-MX";
this.UICulture = lang;
this.Culture = lang;
System.Threading.Thread.CurrentThread.CurrentCulture =
System.Globalization.CultureInfo.CreateSpecificCulture(lang);
System.Threading.Thread.CurrentThread.CurrentUICulture =
System.Globalization.CultureInfo.CreateSpecificCulture(lang);
base.InitializeCulture();
} |
... là ça fonctionne, c'est à dire que le bon fichier resx est utilisé. De plus, je retrouve bien "es" quand je fais dans le Page_Load :
Code:
1 2 3
|
Response.Write("culture:"+System.Threading.Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName);
Response.Write("<br>cultureUI:"+System.Globalization.CultureInfo.CurrentUICulture.TwoLetterISOLanguageName); |
Cependant, cette solution n'est pas satisfaisante. Comment se fait-il que la première solution ne fonctionne pas ??
Pour info, j'ai trouvé le how to ici :
http://msdn2.microsoft.com/en-us/lib...08(VS.80).aspx
Merci d'avance !