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

MFC Discussion :

Comment recharger dynamiquement une DLL de resources linguistique


Sujet :

MFC

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    303
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 303
    Points : 155
    Points
    155
    Par défaut Comment recharger dynamiquement une DLL de resources linguistique
    Bonjour,
    Mon appli charge au démarrage une DLL contenant ses resources.
    (LoadLibrary() et AfxSetResourceHandle() dans InitInstance()).

    Je voudrais offrir la possibilité à l'utilisateur de changer sa langue (et donc ses resources) en cours d'utilisation de l'appli.
    Il faut je suppose décharger la dll en cours, en charger une nouvelle mais comment réinitialiser tous les contrôles?

    Merci

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    je ne crois pas que ce soit possible, il faut décharger toutes les ressources utilisées avant...
    sauf a ruser en sérializant l'état de l'application ,en la fermant et en restituant l'état initial...

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    303
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 303
    Points : 155
    Points
    155
    Par défaut
    Merci Farscape,
    je vais envisager de redémarrer mon appli, on ne change pas de langue toutes les 5 secondes
    Mon appli est distribuée en 17 langues (11 SBCS compatibilité 98 , 6 UNICODE); Je me suis arrangé pour définir la majorité de mes resources comme Neutral, je charge les strings des différents controles à l'initialisation.
    J'ai donc 18 fichiers de resources, 1pour les resources Neutral boite de dialogue bitmap et autres et 17 fichiers de resources linguistique composé chacun d'une string table. Jusqu'à présent je compilait 17 executables, à 3M l'exe cela me donnait le temps d'aller boire un long café... J'ai donc décidé de passer ces resources linguistiques en DLL, ce qui va nettement diminuer la taille du café
    Il me reste néenmoins un autre problème: celui des traductions. Je ne parle pas malheureusement 17 langues et donc je fait traduire mes resources par des contacts dans les différents pays. J'utilise pour ce faire un fichier Excel comprenant une colonne ID une colonne avec la string en Anglais et une colonne pour la traduction. Le problème est que traduire une string hors contexte ce n'est pas facile et bien souvent ce n'est qu'après le release que des demandes de corrections arrivent avec tout ce que cela implique... Si vous avez une idée géniale qui me permettrait de lier les traductions avec le contexte je suis preneur.
    Merci

  4. #4
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    ouch ça doit être une engeance
    peut être regrouper les identifiants par thèmes de travaille en relation avec la fenêtre de traitement .
    si le traducteur connait le thème de travaille (de la fenêtre) pour les identifiants ça sera peut être plus juste...

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    303
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 303
    Points : 155
    Points
    155
    Par défaut
    Oui j'essaye déjà de les regrouper par thème, je leur donne également des identifiants qui ont +- un sens du style IDS_DIALOGFILEOPEN_CAPTION ...,
    mais bon les gars que je contacte font preuve de bonne volonté (mais pas trop ). Un autre problème aussi c'est que la langue anglaise (utilisée au départ est relativement économe en nombre de charactères. Comme j'utlise une seule resource pour les boites de dialogue, je m'arrange pour que les champs textes soit relativement larges et malgré cela les gars arrivent encore à me produire des strings qui dépassent .
    L'idéal serait d'avoir un outil de traduction dans l'appli, right click sur le statique à traduire, petit edit box qui s'affiche, l'utilisateur entre la traduction et valide, le nouveau texte prend la place de l'ancien. Ensuite génération d'un fichier ID & stings ... on peut tjrs réver

Discussions similaires

  1. comment liée dynamiquement une dll ?
    Par jmclej dans le forum Visual Studio
    Réponses: 0
    Dernier message: 05/03/2013, 18h37
  2. [C#][1.1] Comment ouvrir en dynamique une dll
    Par jmperuchot dans le forum C#
    Réponses: 11
    Dernier message: 19/02/2009, 09h46
  3. Réponses: 5
    Dernier message: 03/02/2006, 01h05
  4. Réponses: 5
    Dernier message: 09/08/2005, 17h38
  5. Comment sortir d'une dll ?
    Par Fred007 dans le forum Langage
    Réponses: 3
    Dernier message: 19/02/2004, 08h21

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