Problème d'internationalisation d'une application
Bonjour,
j'essaye de réaliser, ce que je pensais simple, l'internationalisation de mon application.
Description de l'application
Une master page contenant une liste déroulante contenant Anglais/Français ou English/French suivant la culture. Ces variables sont définies dans un fichier ressources situés dans le répertoire App_GlobalResources.
Code:
1 2 3 4 5 6 7 8 9 10 11
|
<tr>
<td class="TdComboBox">
</td>
<td>Contact</td>
<td>
<asp:DropDownList runat="server" ID="HeaderLanguageComboBox" AutoPostBack="true" onchange="document.getElementById('LanguageChoice').value=this.value;" />
<input type="text" id="LanguageChoice" name="LanguageChoice"/>
</td>
</tr> |
Et le remplissage de ma liste
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| protected override void OnInit(EventArgs e)
{
// REMPLIR la liste déroulante des langues
listeDll = new List<String>();
listeDll.Add(Resources.Resource.FRENCH);
listeDll.Add(Resources.Resource.ENGLISH);
HeaderLanguageComboBox.DataSource = listeDll;
HeaderLanguageComboBox.DataBind();
base.OnInit(e);
} |
Vient ensuite une page aspx qui hérite d'une super page. Cette super page surcharge la méthode InitializeCulture.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| rotected override void InitializeCulture()
{
string culture = "en";
if (!String.IsNullOrEmpty(Request.Form["LanguageChoice"]))
{
culture = "fr";
}
//string culture = Request.Form["LanguageChoice"].ToString();
// INITIALISER la culture en anglais par défaut
CultureInfo pCultureInfo = CultureInfo.CreateSpecificCulture(culture);
// AFFECTER la culture au thread courant
Thread.CurrentThread.CurrentCulture = pCultureInfo;
Thread.CurrentThread.CurrentUICulture = pCultureInfo;
base.InitializeCulture();
} |
Au premier appel, ma langue est bien en et j'affiche donc English et French. Lorsque je change ma valeur, mon input est bein rempli et mon Request.Form["LanguageChoice"] a bien la valeur.
Avec un point d'arrêt à la fin de mon onInit, ma liste déroulante possède bien les valeurs Français et Anglais. Idem dans le Dispose de ma page.
Mais à l'affichage, rien n'a changé. Ma liste contient toujours English, French.
J'ai du mal à saisir le pourquoi.
Auriez-vous une idée ?
Merci d'avance