2011-11-07 5 views
1

Je travaille sur une application MFC qui a été localisée dans plusieurs langues. Il lie dynamiquement à MFC et si les DLL LOC MFC sont installées sur le système cible, il utilise automatiquement ces DLL comme prévu. Cependant, sur certains de ces systèmes d'exploitation, nous avons des utilisateurs qui préfèrent l'anglais, est-il un moyen pour moi de le forcer à utiliser la DLL en anglais au lieu de la DLL LOC MFC traduit?Éviter MFC LOC DLL

+0

Je ne suis pas sûr du type de systèmes que vous vouliez dire (autre que Windows qui est évident) mais peut-être les utilisateurs qui préfèrent l'anglais (je doute tout le monde dans le pays donné. ..) peut définir leur langue d'interface utilisateur préférée dans les paramètres régionaux à l'anglais? Autre que cela, vous devez écrire le chargeur personnalisé pour charger la DLL dans la langue préférée plutôt que le système d'exploitation par défaut. Pourriez-vous poster ce morceau de code qui charge vos bibliothèques de localisation? Surtout en ce qui concerne la détection locale (je me demande quel code vous utilisez pour apprendre à connaître LCID)? –

Répondre

0

Le mécanisme MFC LOC est IMHO terrible. En raison de son incapacité à utiliser plus d'une traduction, comme vous l'avez expérimenté, MFC LOC mérite une bonne place dans le Hall of Shame de notre industrie. Pensez à toutes ces applications qui ont provoqué la traduction partielle d'autres applications MFC non apparentées.

C'est pourquoi je crois qu'il est préférable de fournir les traductions pour les ressources MFC dans vos propres DLL de ressources.

Avertissement: Mon annonce fait suite ;-)

appTranslator est votre ami pour traduire votre application MFC. Il traduit automatiquement la partie MFC de vos ressources dans 27 langues. Il construit automatiquement vos DLL de ressources. Et bien plus encore ...

/Fin d'annonce

Ce CodeProject article de la mine fournit le code prêt à utiliser pour supporter le chargement des DLL de ressources et de soutien pour un menu de langue. OK, ce n'était pas votre question mais j'ai pensé que ça pourrait aider. Oh, et il est hors de l'avertissement puisque c'est gratuit ;-)

+0

Si je lier dynamiquement au MFC, comment puis-je l'empêcher de charger les DLL LOC déjà sur le système? Est la seule solution raisonnable pour lier statiquement à MFC? – Jonathan

+0

Si vous installez le DLL MFC côte à côte avec votre application, il ne recherchera pas une DLL localisée MFC partagée. –

+0

J'ai essayé d'utiliser le MFC côte à côte, à la fois à l'aide de modules de fusion et d'assemblys privés dans le répertoire local et les deux parviennent toujours à trouver la DLL LOC installée par l'installation redistribuable complète précédemment installée. – Jonathan

Questions connexes