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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 public partial class PortFolioMasterPage : System.Web.UI.MasterPage { protected void 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); } protected void language_change(Object sender, EventArgs e) { } }
Dans le fichier global.asax.cs
Un gros merci par avance pour vos éléments d'aide et de reponse
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 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"; } else if (lang.Equals("1")) { lang = "en-US"; } } else { lang = cookie.Value; if (lang.Equals("0")) { lang = "en-US"; } else if (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); } }
Partager