Frage

Ich habe eine .NET-Anwendung in C # und ich habe eine Dateistruktur so etwas wie:

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

Ich versuche, programmatisch die Sprache zu ändern, die die Anwendung teilt die Datei ResX zu verwenden. Ich mag diese hinter Datei (MyPage.aspx.cs) im Code tun.

Ich habe diese beiden in der OnPreRender, Page_Init versucht, und Page_Load Ereignisse:

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

und es funktioniert nicht. Die Seite zeigt immer noch die Sprache Englisch. Die MyPage.aspx Datei hat das:

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

Beachten Sie, dass ich nicht über die Browser-Sprache interessieren. Es muss übergehen, diese. Ich habe für diese Lösung ohne Erfolg im Internet gesucht. Alle Beispiele zeigen Umschalten der Sprache so, wie ich bereits versucht haben (siehe oben) jedoch nicht die Ressource-Datei verwendet, nicht beeinträchtigt. Irgendwelche Ideen?

War es hilfreich?

Lösung

Sie müssen die InitializeCulture Methode außer Kraft setzen und den Code dort setzen. 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");
}

Hope, das hilft

Andere Tipps

Sie können auch in diese aussehen

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

Ich habe es nicht benutzt, aber ich habe einen anderen Code verwendet, die Rick geschrieben hat und es war erstklassig.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top