IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

ressource langue


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 92
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 41
    Par défaut ressource langue
    Bonjour
    J'ai créé une petite application que je voudrais pouvoir diffuser en plusieurs langues Pour l'espagnol j'ai créé une DLL ressources langue qui a l'extension ESP. Pour pouvoir la tester ici en France et comme indiqué dans le guide du développeur, dans le registre HKEY_CURRENT_USER\Sofware\Borland\Locales j'ai créé une entrée f:\EditHDVB2\EditHDVB2.exe avec la valeur ESP. Quand j'execute mon programme EditHDVB2 j'obtiens toujours la version française
    Bien sur si je compile en activant language espagnol, j'obtiens bien la version espagnole. Mais je voudrais pouvoir diffuser une seule version avec les DLL langues associées
    Quelqu'un a une idée ?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 61
    Par défaut
    Salut,

    moi je te conseillerai de charger la DLL en dynamique.

    En gros, un système qui scan ton dossier pour récupérer ttes tes DLL, les listes, et proposes le choix à l'utilisateur, celui-ci choisi, et hop, la DLL choisie est chargée en mémoire.

    Il y a une source de chargement dynamique d'une DLL dans la faq (récupérer son IP je crois)

    Voilà ma suggestion !

    ++

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 92
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 41
    Par défaut
    Merci.Je vais aller dans cette direction.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 92
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 41
    Par défaut
    Comme toujours ça paraît facile quand on a la solution...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #include "reinit.hpp"
     
    LoadNewResourceModule(1034);
    ReinitializeForms();
    Cest super. On passe d'une langue à l'auttre sans avoir à recharger le programme.

    reinit.pas est un module qui vient de \Examples\App\RichEdit
    1034 est le localeID de l'Espagnol.
    Si l'on veut revenir au français le localeID est 1036.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 92
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 41
    Par défaut
    Je croyais le problème résolu mais en fait j'ai encore un problème.
    La traduction de tous les composants et menus utilsés se fait bien.
    Par contre je n'arrive pas à traduire les chaines utilisées dans les ordres ShowMessage ou MessageBox.
    J'ai créé une ressource Dialogue.RC avec les chaines utilisées
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #include "Dialogues.hpp"
     
    STRINGTABLE
    BEGIN
     Msg_101 "Vous devez sélectionner au moins un canal avant de créer la liste"
    ...
    END
    Dialogue.hpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    #define Msg_101 101
    ...
    et j'ai mis à jour les DLL resources (j'ai bien Dialogue.RC qui apparaît avec les chaines à traduire)
    Dans le programme principal
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    #include "Dialogue.hpp"
     
    ShowMessage(LoadStr(Msg_101).c_str());
    J'obtiens toujours une chaine vide, quelque soit la langue.
    J'ai essayé un LoadLibrary avant, j'ai lu et relu les exemples...
    Il doit y avoir un truc tout simple qui m'échappe.
    J'ai déjà passé une bonne journée et une partie de la nuit dessus. Heureusement que je ne suis pas payé au résultat

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 92
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 41
    Par défaut
    Je tourne toujours en rond sur ce problème de traduction. J'ai analysé la Dll de ressources créée par l'assistant resource dll: les chaines qui viennent des formes s'y trouvent, les chaines qui viennent du script de ressource n'y sont pas. Que faut-il faire pour que cet assistant fasse son boulot correctement ? Il me les a listées comme les autres, pouquoi est ce qu'il ne les inclue pas ?

  7. #7
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Par défaut
    Je n'ai jamais utilisé l'assistant pour faire des dll de ressource, surtout que celui ci n'existe plus apparement dans BDS2006 pour C++ Builder.

    Mais peut tu ajouter ton .rc au projet de la dll de ressource ?

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 92
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 41
    Par défaut
    Citation Envoyé par Neilos
    Je n'ai jamais utilisé l'assistant pour faire des dll de ressource, surtout que celui ci n'existe plus apparement dans BDS2006 pour C++ Builder.

    Mais peut tu ajouter ton .rc au projet de la dll de ressource ?
    Il y est. Il en fait partie. Il est listé mais les chaines qu'il contient n'apparaissent pas une fois la Dll compilée.

    J'ai tourné la difficulté en créant une ListBox que j'appelle Dlg et dans laquelle j'ai mis les différents messages que je veux créer (un message par ligne) et j'utilise quelque chose du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MessageDlg(Dlg->Items->Strings[1].c_str(),mtError,TMsgDlgButtons()<<mbOK,0);
    Cette ListBox est prise en compte par l'assistant Resource Dll comme tous les autres composants. J'indique les traductions pour chaque Strings[] et à l'éxecution j'obtiens les messages dans les différentes langues comme désiré. Tout compte fait, c'est pas plus lourd que de faire un fichier RC avec une Stringtable et ça a l'avantage de marcher.

    Merci de t'être intéressé à mon problème.

  9. #9
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Par défaut
    Effectivement c'est pas mal comme idée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 21
    Dernier message: 25/12/2008, 21h44
  2. Fichier ressource correspondant aux langues
    Par Seth77 dans le forum C#
    Réponses: 1
    Dernier message: 11/08/2007, 23h41
  3. [VB6] Définition langue défaut ressource multilingue
    Par Theocourant dans le forum VB 6 et antérieur
    Réponses: 18
    Dernier message: 29/09/2006, 15h13
  4. Réponses: 12
    Dernier message: 10/03/2006, 11h12
  5. [Ressource][TXT] dictionnaire de la langue française
    Par Pépé Lélé dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 26/12/2005, 20h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo