Lokalisierung und manuelles Umschalten der CultureUI
-
Hallo zusammen,
habe ein Projekt, das 3-sprachig aufgebaut werden soll.
Nun kann man ja mit VS ziemlich einfach anhand von Lokalisierung und Stringtables die Mehrsprachigkeit erreichen.Mein Problem ist nun, das ich das Umschalten der Sprache auch manuell ermöglichen möchte, da ich nicht sicherstellen kann das der Benutzer ein lokalisiertes Windows hat.
Dazu habe ich mir 3 Flaggen auf die Form gezogen
und beim Klicken auf die jeweilige Flagge soll die entsprechende Lokalisierung geladen werden (also auch wenn das Programm bereits läuft).
Das Umstellen der CurrentUICulture müsste ja so klappen:
private: System::Void pictureBox2_Click(System::Object^ sender, System::EventArgs^ e) { //Thread.CurrentThread.CurrentUICulture=new CultureInfo(“en-US”); c# String ^loc; loc = "pt-PT"; Thread::CurrentThread->CurrentUICulture = gcnew System::Globalization::CultureInfo(loc, true); }
Aber wie sag ich jetzt der Form das die neue Stringtable zu benutzen ist?
Bitte um Infos
gruß
-
Update:
Habs jetzt so gelöst, indem ich nach dem Umstellen der CultureUI die Form neu initialisiere:
this->Controls->Clear(); InitializeComponent();
Ist das die richtige Methode?
-
So jetzt gibt's auch schon das nächste Problem.
In der IDE funktioniert das Lokalisieren einwandfrei.
Aber bspw. in einer VMWare schaltet das Programm zwar die CultureUI um (lasse mir die aktuelle Kultur in einer Textbox anzeigen) aber er lädt die relevanten Stringtables nicht.
Jemand ne Idee wieso das im VS funktioniert aber nicht im Release?