Question

J'ai une application .Net en C # et une structure de fichier semblable à celle-ci:

App_LocalResources
 - MyPage.aspx.resx
 - MyPage.aspx.fr.resx
MyPage.aspx
MyPage.aspx.cs

J'essaie de changer par programme la langue qui indique à l'application le fichier resx à utiliser. Je souhaite le faire dans le fichier code derrière (MyPage.aspx.cs).

J'ai essayé ces deux événements dans les événements OnPreRender, Page_Init et Page_Load:

Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr-CA");
Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-CA");

et ça ne marche pas. La page montre toujours la langue anglaise. Le fichier MyPage.aspx a ceci:

<h3><asp:Literal runat="server" Text="<%$ Resources:pageTitle %>" /></h3>

Notez que je ne me soucie pas de la langue du navigateur. Il faut surmonter cela. J'ai cherché cette solution sur le Web en vain. Tous les exemples montrent que la langue a été changée de la manière que j'ai déjà essayée (ci-dessus), mais cela n'affecte pas le fichier de ressources utilisé. Des idées?

Était-ce utile?

La solution

Vous devez remplacer la méthode InitializeCulture et y placer votre code. Ex:

protected override void InitializeCulture()
{
   base.InitializeCulture();
   System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr-CA");
   System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-CA");
}

J'espère que cela vous aidera

Autres conseils

Vous pouvez également examiner cette

http://www.west-wind.com/presentations/wwDbResourceProvider/

Je ne l'ai pas utilisé, mais j'ai utilisé un autre code écrit par Rick, qui était top.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top