Question

J'ai plusieurs grandes applications MFC ici, et les convertir en un autre format est hors de question. Nous élargissons dans d'autres marchés, et que vous souhaitez faire les applications fonctionnent dans d'autres langues et cultures.

Jusqu'à présent, j'ai trouvé des références occasionnelles quant à ce qu'il faut faire avec Visual C ++ version 6, avec une mention que les versions ultérieures de MFC ont des fonctionnalités supplémentaires pertinentes. Recherche MSDN me donne des instructions sur la façon de convertir les applications en Unicode, que nous avons déjà fait. Je ne trouve rien sur MSDN sur la façon de faire des langues multilingues une fois qu'ils sont en Unicode, seulement quelques choses plus anciennes en utilisant Google, et un livre sur l'internationalisation avec VC ++ 6. (Nous utilisons Visual Studio 2008 maintenant, sur XP et Vista).

Je ne prétends pas pour la force de mon Google-fu, et je serais heureux d'être dirigé vers des choses que j'ai raté.

Est-il raisonnable d'utiliser les méthodes de VC ++ 6, ou devrais-je utiliser des fonctions plus tard?

Si j'utiliser des fonctionnalités plus tard que, où puis-je trouver une référence à eux?

Y at-il quelque chose que je dois vous soucier autre que définir les paramètres linguistiques, convertir toutes les chaînes aux ressources, et la duplication des ressources dans des langues différentes?

Je peux trouver plus de choses sur l'internationalisation .NET, mais je suis inexpérimenté dans .NET. Que vais-je y trouver c'est applicable à VC ++ et MFC?

Edit: Je viens de rencontrer des difficultés en essayant de mettre des chaînes Unicode dans la ressource de table de chaînes. (Pour autant que je peux dire, les chaînes Unicode doivent être entrées dans le fichier .rc avec un éditeur de texte, en L « 0x0034 » forme. Je ne l'ai pas trouvé un moyen de l'éditeur de ressources pour le faire.) Des conseils à ce sujet? Toute autre ressource que je peux utiliser dans VS2008 en utilisant VC ++ et MFC?

Edit: Quelqu'un sur un forum Microsoft a suggéré que j'ouvrir le fichier .rc incriminé dans le Bloc-notes et enregistrez-le dans Unicode. Malheureusement, cela ne semble pas fixer les boîtes de dialogue, bien que le stringtable semble fonctionner en japonais.

Était-ce utile?

La solution

Il y a beaucoup plus que traduire « chaînes » pour internationaliser une application.

La plupart de l'interface utilisateur devra être mis à jour pour tenir compte des différentes longueurs de texte, et l'orientation de la langue (chose hébreu, chinois, arabe, ...)

Certaines images devront également être modifiées pour tenir une culture différente (malheureusement, je n'ai pas un exemple pour cela), soit le figuratif est différent ou les couleurs ne correspondent pas aux spécifications locales.

Nous utilisons un outil comme appTranslator pour nous aider à la localisation esthétique (interface utilisateur reformatage) et utiliser un traducteur technique professionnel pour les chaînes.

Autres conseils

Vous pouvez également créer une seule ressource dll

Voir Comment faire pour créer des ressources pour les DLL Localized application MFC pour plus de détails.

Vous pouvez internationaliser votre application en utilisant les méthodes suivantes.

Après avoir converti l'application à unicode (vous l'avez déjà fait) et toutes les chaînes doivent être chargées de la table String.

  1. Pour chaque langue que vous devez changer la table de chaînes et de compiler

  2. Une autre façon est de maintenir un fichier XML qui contient toutes les chaînes dans le format localisé. Charger le fichier XML et les chaînes en fonction de la langue.

Voici un article CodeProject de la mine qui décrit très méthode « codage efficace » pour tirer les ficelles de la table à cordes (obligatoire pour les textes traduisibles): http://www.codeproject.com/KB/string/stringtable.aspx

Voici une autre classe qui aident votre application à choisir la langue de l'interface droite. Il vous permet également de créer un menu de sélection de la langue: http://www.codeproject.com/KB/locale/LanguageMenu.aspx

Last but not least, appTranslator est un outil qui vous aide à traduire l'interface utilisateur de votre application, détecter les changements ont été faits dans les ressources depuis la dernière version, créer ou traduire exe DLLs ressources et bien plus encore: http://www.apptranslator.com

(Note:. Je suis l'auteur de appTranslator)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top