Frage zum Ressourcen-DLL-Experten



  • Hallo

    ich habe vor längerem mal mit dieser Variante gearbeitet. Soweit ich mich erinnern kann hast du in den einzelnen Sprach-Projekten nun die Möglichkeit die entsprechenden Texte zu übersetzen. Bist du damit fertig must du nur das Original-Projekt nochmal neu zu übersetzen und hast nun in dem Ergbenis die neuen Sprachen. Die Auswahl basiert auf der ausgewählten Systemsprache.

    bis bald
    akari



  • das heißt also ich muss "nur" alle Strings die jetzt in den einzelnen Sprach Projekten sind auf die gewünschte Sprache ändern?

    Was hast du damit genau gemeint:

    Bist du damit fertig must du nur das Original-Projekt nochmal neu zu übersetzen und hast nun in dem Ergbenis die neuen Sprachen.

    mfg



  • Hallo

    das heißt also ich muss "nur" alle Strings die jetzt in den einzelnen Sprach Projekten sind auf die gewünschte Sprache ändern?

    Ja alles was durch die Sprachen geändert werden muß.

    Was hast du damit genau gemeint:
    Bist du damit fertig must du nur das Original-Projekt nochmal neu zu übersetzen und hast nun in dem Ergbenis die neuen Sprachen.

    Ändere die sprachrelevanten Sachen und dann kompilierst du alle Projekte nochmal vollständig Projekt/Alle Projekte erzeugen. Danach ist die neue exe fertig.

    bis bald
    akari



  • super, danke!

    mfg
    Tom



  • Hi,

    jetzt hab ich nochmal ne Frage,

    für die Forms haut das ja super hin, nur wie bekomm ich die ganzen Strings aus dem Projekt raus, wo kopier ich die am besten hin und wie lese ich dann je nach ausgewählter Sprache den richtigen String ein?

    Hat dafür auch jemand ne Idee?

    mfg



  • Es ist zwar aufwendig, aber funktioniert sehr gut.
    Jeden String musst du dir als Resource definieren.
    Den kann du dann im Translationmanager, genauso wie die Formulare, entsprechend übersetzen

    Im Quelltext ...

    extern PACKAGE System::ResourceString _res_Program_Not_OK;
    #define Guimessages_res_Program_Not_OK System::LoadResourceString(&Guimessages::_res_Program_Not_OK)
    
    .....
    
    if (!FSystem->ProgramOK) {
        MessageFormular->ShowMessage(mtMsgNotification, Guimessages_res_Program_Not_OK);
        erg = -1;
        return;
    }
    

    In einer Pascal Unit GUIMessages.pas :

    unit GUIMessages;
    
    interface
    
        resourcestring res_Program_Not_OK               = 'To execute this action, it is necessary to load a valid pleat program.';
    
    Implementation
    
    begin
    end.
    


  • ok, danke soweit mal.

    Wie sieht dass eigentlich aus, wenn man nachträglich noch Forms einfügt oder im Quellcode was verändert? Werden diese Änderungen für die Ressourcen übernommen oder muss man dann alles von neuem machen?

    mfg



  • Unter C++ Builder 6 "Projekt - Sprachen - Resourcen DLLs aktualisieren" werden alle Änderungen erkannt und hinzugefügt.
    Im Translation Manager erkennst du dann die Änderungen und musst diese entsprechend anpassen.
    Keine Angst, das bis dahin übersetzte bleibt erhalten, wäre ja auch schlimm wenn es anders wäre.
    Beachte aber auch: Jede Änderung im Object Inspecktor wirkt sich auch auf die Sprach DLLs aus. Will heißen, fügst du z.B. eine Ereignisbehandlung hinzu, musst du die DLLs auch wieder aktualisieren und übersetzen !!!



  • Hi jetzt muss ich noch mal ganz blöd nachfragen: du benutzt doch C++ Builder 6 gleich wie ich, ich hab den Professional und finde da keinen "Translation Manager" oder "Projekt - Sprachen - Resourcen DLLs aktualisieren".

    Kann das sein das das nur beim Enterprise dabei ist oder find ichs einfach nicht.

    Danke schon mal



  • Tja, ich habe die Enterprise Version.

    Den Translation Manager (etm60.exe) gibt es auch als externes Tool. Schau mal nach unter : ?:\Program Files\Borland\CBuilder6\Bin

    Aber wie aktualisierst du dann die Dlls ? Dazu fällst mir jetzt nichts ein.


Anmelden zum Antworten