[ASP .NET2] Culture et MasterPage

cs_prezz Messages postés 71 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 10 octobre 2008 - 10 août 2007 à 09:22
eln_francois Messages postés 36 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 7 juillet 2008 - 7 juil. 2008 à 12:07
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

eln_francois Messages postés 36 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 7 juillet 2008
7 juil. 2008 à 12:07
c'est surement du au viewState vu que tu a un autopostback sur ta combobox.

mes tes label et autre en EnabledViewState="false"
0
Rejoignez-nous