ERLEDIGT
JA
JA
ANTWORTEN
2
2
ZUGRIFFE
944
944
EMPFEHLEN
-
Hallo
Ich hab folgendes Problem in C#: (Framework anfangs 2... seit gestern 3.5)
Ich hab eine Mainform mit Menu, Toolstrip und mehreren Usercontrols. Ein Button auf der Form sorgt für die Lokalisierung. Ich schalt einfach um zwischen Deutsch-Französisch.
Beim Klick auf den Language-Button führe ich das aus:
Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr-FR"); //oder "de-DE"
Alle neuen Forms werden in Französisch angezeigt. Super... äh... superb
ABER: Die Mainform bleibt davon völlig unbeeindruckt. Wie in einem anderen älteren Thread hier beschrieben geh ich rekursiv dann alle Controls durch.
foreach (Control ctrl in AllControls)
{
if (ctrl.Controls.Count > 0)
Rekursion
else
resources.ApplyResources(ctrl, ctrl.Name);
}
//Codekurzform. Ich caste den Menustrip noch mal eigen weil man einen Seperator so //schlecht übersetzen kann. etc
So weit so gut. Das Menu wird übersetzt -> Funktioniert.
Nur hab ich dann mehrere Usercontrols auf der Mainform.
In der Rekursion taucht als Control mein Usercontrol auf. Ja, es hat noch mehr child-controls-> wir gehen in die Rekursion. In der Rekursion wird auch jedes ChildControl im UC behandelt und geht in das resources.ApplyResources rein. Aber es übersetzt sich nicht.
Um mal die Basics-Gegenfragen auszuschließen: Ja ich habs (fast) richtig lokalisiert.
Beweis: Wenn ich vor dem Initialize Component der Mainform die Culture setze, dann wird das Usercontrol übersetzt. (Mit dem kleinen Feature, dass die Größe sich verändert.)
Wenn ich nach meiner Rekursion ein Usercontrol.Controls.Clear und ein InitializeComponent ausführe, dann wird auch übersetzt.
Ich hab schon versucht die Resourcen von der Usercontrol-Ressource-Datei ebenfalls in der Ressource-Datei der Mainform abzulegen. Interessiert das Control auch nicht.
Also beim Programmstart lokalisieren: No Problem
Bei Laufzeit... ist tricky.
Also... hat jemand eine Theorie was ich falsch mache?
thx
AndreasGeändert von howc1 (19.06.08 um 08:40 Uhr)
-
Hi
Du musst in deinem UserControl ebenfalls diese Routine implementieren, da das UserControl eigene Resourcen nutzt.Grüße Nico
----------------------
Xing
----------------------
Zitat von Mark Twain (1835-1910)
Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
-
Die Lösung war so simpel, ....bzw. mein Problem äußerst dämlich.
Ich hab mir den Resourcemanager erzeugt
ComponentResourceManager res = new ComponentResourceManager(typeof(MainForm));
und dann völlig vergessen.
Das Typeof... räusper...
Jetzt erweitere ich meine Rekursion. Bei den Usercontrols wird ein neuer ComponentResourceManager erzeugt und schon gehts. THX
Ähnliche Themen
-
Lokalisierung
Von lusiphur im Forum .NET Windows FormsAntworten: 1Letzter Beitrag: 05.05.08, 15:03 -
Lokalisierung
Von wolfeye im Forum .NET Application und Service DesignAntworten: 0Letzter Beitrag: 11.02.08, 11:12 -
Lokalisierung
Von Radhad im Forum Coders TalkAntworten: 0Letzter Beitrag: 18.09.07, 10:18 -
Lokalisierung .resx oder .resources - Komplexe Grundsatzfrage zur Lokalisierung
Von Macan im Forum .NET Application und Service DesignAntworten: 13Letzter Beitrag: 08.11.06, 14:14





Zitieren

Login





