[ASP .NET2] Culture et MasterPage

Signaler
Messages postés
71
Date d'inscription
mardi 6 juillet 2004
Statut
Membre
Dernière intervention
10 octobre 2008
-
Messages postés
36
Date d'inscription
mercredi 13 avril 2005
Statut
Membre
Dernière intervention
7 juillet 2008
-
Bonjour a tous

je possede un site web qui contient une master page gerant le bilinguisme.

Dans cette master page j'ai donc une combobox qui me permet de faire un choix entre francais et anglais.


J'ai deux problemes :

1) Au moment ou j'effectue un changement de langue, j'ai une
rechargement de ma page. Mes libellés passent bien dans la culture
choisie, par contre mes boutons eux restent dans la culture de base.
(mes ressources sont gérées dans un fichier resx lié à la page tandis
que mes boutons sont gérés dans un fichier global resx, peut etre est
ce la raison de mon erreur)


2) Lorsque je passe d'une page a une autre, je recupere
systématiquement ma culture de base et pert donc ainsi la valeur
précédemment rentrée


Voici des bouts de mon code pour plus d'infos


Dans la master page
<!-- BEGIN TEMPLATE: bbcode_code -->

Code :

 
public partial class PortFolioMasterPage : System.Web.UI.MasterPage
{
protectedvoid Page_Load(object sender, EventArgs e)
{
HttpCookie cookie = new HttpCookie("UserLanguage");
 
if(LangueSelect.SelectedValue.Equals("0"))
cookie.Value = "0";
else
cookie.Value = "1";
Response.SetCookie(cookie);
}
 
protectedvoid language_change(Object sender, EventArgs e)
{
}
}
 
 

<!-- END TEMPLATE: bbcode_code -->


Dans le fichier global.asax.cs
<!-- BEGIN TEMPLATE: bbcode_code -->

Code :

 
void Application_BeginRequest(Object sender, EventArgs e)
{
if(Check.IsNotNul(Request.UserLanguages))
{
string lang = string.Empty;//default to the invariant culture
HttpCookie cookie = Request.Cookies["UserLanguage"];
 
if(cookie != null && cookie.Value != null)
{
if(Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName.Equals("fr"))
{
lang = cookie.Value;
if(lang.Equals("0"))
{
lang = "fr-FR";
}
elseif(lang.Equals("1"))
{
lang = "en-US";
}
}
else
{
lang = cookie.Value;
if(lang.Equals("0"))
{
lang = "en-US";
}
elseif(lang.Equals("1"))
{
lang = "fr-FR";
}
}
}
else
{
if(Request.UserLanguages[0].Contains("en-us"))
lang = "en-US";
else
lang = "fr-FR";
}
 
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo(lang);
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(lang);
}
}
 
 

<!-- END TEMPLATE: bbcode_code -->

Un gros merci par avance pour vos éléments d'aide et de reponse

1 réponse

Messages postés
36
Date d'inscription
mercredi 13 avril 2005
Statut
Membre
Dernière intervention
7 juillet 2008

c'est surement du au viewState vu que tu a un autopostback sur ta combobox.

mes tes label et autre en EnabledViewState="false"