Il s'agit de rendre multi-langues une application Win32 en utilisant des plug-ins.
Principe de fonctionnement:
Le point de départ est une application Win32 mono-langue. Les ressources de cette application (menu, boite de dialogue, chaîne de caractères, ...) doivent obligatoirement provenir d'un fichier de ressources (fichier .RC). J'insiste particulièrement sur les chaînes de caractères: toutes les chaînes pouvant être affichées à l'utilisateur doivent se trouver dans une string-table et être chargées par la fonction LoadString() de l'API. Aucunes d'entres elles ne doit être définie en dur dans le code.
A cette application on peut ajouter un ou plusieurs plug-ins contenant chacun une langue différente. Ces plug-ins sont en fait de simples DLL contenant le fichier de ressources de votre application dans lequel l'ensemble des ressources aura été traduit.
Le lien entre l'application et les plug-ins est la classe CMultiLangue. Elle ne contient que des méthodes statiques qui assurent l'ensemble de la gestion des langues et des plug-ins.
Commentaires
exemple
pour l'utilisation de la fonction FormatMessage :
, MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL)// DWORD dwLanguageId, // language identifier for requested message
++
B.
Par exemple, si on utilise la classe CFileDialog (dite standard) dans ton code, la boîte de dialogue (recherche de fichier) générée sera toujours en français quoi qu'il arrive.
Si tu es d'accords avec moi et si tu connais la solution à ce problème...fais moi signe car je galère dessus.
Je ne sais pas si tu as développé une soluce similaire à la mienne,
mais en tt cas, voici un autre source sur le mm sujet
http://www.cppfrance.com/code.aspx?id=24887
++
Magic Nono: l'informagicien!
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.