tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
944
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    howc1 howc1 ist offline Grünschnabel
    Registriert seit
    Jun 2008
    Beiträge
    2
    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
    Andreas
    Geändert von howc1 (19.06.08 um 08:40 Uhr)
     

  2. #2
    Avatar von Nico Graichen
    Nico Graichen Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.898
    Blog-Einträge
    34
    Hi

    Du musst in deinem UserControl ebenfalls diese Routine implementieren, da das UserControl eigene Resourcen nutzt.
     
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

  3. #3
    howc1 howc1 ist offline Grünschnabel
    Registriert seit
    Jun 2008
    Beiträge
    2
    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

  1. Lokalisierung
    Von lusiphur im Forum .NET Windows Forms
    Antworten: 1
    Letzter Beitrag: 05.05.08, 15:03
  2. Lokalisierung
    Von wolfeye im Forum .NET Application und Service Design
    Antworten: 0
    Letzter Beitrag: 11.02.08, 11:12
  3. Lokalisierung
    Von Radhad im Forum Coders Talk
    Antworten: 0
    Letzter Beitrag: 18.09.07, 10:18
  4. Lokalisierung .resx oder .resources - Komplexe Grundsatzfrage zur Lokalisierung
    Von Macan im Forum .NET Application und Service Design
    Antworten: 13
    Letzter Beitrag: 08.11.06, 14:14