2 - Sprachiges Programm



  • Hi leute 🙂 ,

    ich möchte in c++ Dot net ein Programm 2 Sprachig machen, d.h. die Möglichkeut bieten zwischen englisch und deutsch zu wählen.
    Situation: Ich habe in Pr. in englischer Sprache (Form1.resX) ich müsste dann doch einfach ne Formdeutsch.resX anlegen, einen Button auf die Form1 legen und beim klicken auf diesen Button die Formdeutsch.resX nutzen.
    Aber wie lege ich ne Formdeusch.resX an ? 😕
    Gibts da n Tutorial, CodeSnippet oder sonst was das mir weiterhelfen könnte ???
    Ich versuch das schon seit Stunden und es klappt einfach net !😕

    Vielen D*A*N*K für eure Hilfe und Mühe schon mal vorab...

    ShadowEater



  • Ganz einfach:

    Im Form unter Eigenschaften Localizable auf true setzen. Dann die Sprache wählen und einfach den Buttontext einfügen.

    So legt VS die Resourcen selbst an und Du musst nur noch die ->Text Felder manuel befüllen (im Form-Editor), dann die Sprache wechseln und nochmal befüllen, etc.



  • (manuell - Schreibfehler *g*)

    Und wenn Du so wechseln willst, dann schau Dir
    [cpp] System::Threading::Thread::CurrentThread->CurrentCulture
    System::Threading::Thread::CurrentThread->CurrentUICulture
    an. Dort stellst Du dann bei Buttonclick Deine Sprache um. Es könnte aber sein, dass Du das Form danach neu laden musst, PerformLayout, Refresh oder was auch immer.



  • Hi LPCWSTR,

    danke für Deine schnelle antwort.
    Diesen Weg kenne ich, da ist es aber nur möglich z.b. deutsch in englisch zu übersetzen und dann die Form mir englischen Beschriftungen anzuzeigen.Ich möchte aber gern einen Butten auf der Form mit dem ich zwischen Englisch/Deusch für die Beschriftungen der Form hin und herschalten kann !

    mfg

    ShadowEater



  • Ja eben. Also Du willst das Form zweisprachig und auch die Resourcen dazu erstellen. Das geht so, wie im ersten Post beschrieben. Das Umschalten wird ja eigentlich automatisch gemacht (über die Systemspracheinstellung quasi).

    Wenn Du das selbst umschalten willst, dann geht das nur über die Umstellung der Sprache im Thread (Posting 2) und einem "Neuzeichnen" des Form.

    Ausser ich verstehe Dich komplett falsch.

    Ganz nebenbei kannst Du auch einen eigenen ResourceManager instantiieren und Deine eigenen .resx Dateien basteln. Dann musst Du aber auch alle ->Text Variablen selbst befüllen.

    So oder so bekommst Du eine zweite .dll, die eben miterstellt wird. Die Standardsprache wird in die Hauptassembly mit eingebunden.



  • Hi LPCWSTR,

    ne ich hab Dich falsch verstanden, stimmt alles was Du sagst !

    D*A*N*K*E

    ShadowEater



  • Würde mich freuen das in der FAQ zu haben. thx



  • Hallo ShadowEater

    hast du jetzt die umschaltung über einen Button gelöst ? Falls ja
    wie hast du die sache mit dem Refresh auf der Form gelöst ?

    Und noch ne andere Frage dazu !

    Ist es auch möglich einen String aus der Ressource zu füllen ? z.B für ne MessageBox ....



  • Die einzig "einfache" Lösung einer "Online-Umschaltung" ist mittels "selber machen"...
    MS bietet hierfür nix...
    Wir haben es so gelöst, dass wir eine Methode haben, die alle Texte setzt. Diese wird dann nach einen Culute-Change aufgerufen und setzt dann entsprechend der CurrentUICulture die Texte.



  • Schade eigentlich denn CLI ist so ein mächtiges Tool und das mit der Ressoucen lösungen wäre echt ne super sache. Aber man kann halt nicht alles haben 😉 😞


Anmelden zum Antworten