Programmatische Ressourcendatei Sprache (resx) in Code ändern Hinter
-
05-07-2019 - |
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?
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.