Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : string table ressource [ Archives / Au secours ] (redshirt)

lundi 24 février 2003 à 14:24:08 | string table ressource

redshirt

Je voudrais creer une application en plusieurs langues. J'essaye donc d'utiliser les string tables. J'en ai cree une en francais et une en anglais. Pour recuperer une chaine j'utilise loadString. Mais je ne sais pas comment selectionner la table suivant la langue. Pourriez vous m'aider ? Merci.

mardi 14 décembre 2004 à 13:54:51 | Re : string table ressource

yanousbie

Salut,
je n'ai malheureusement pas de solution mais j'ai le même problème. si cela ne t'embête pas peux-tu me décrire ce que tu as déja fait, je planche sur le probleme également, des que j'ai du neuf, je t'en fais part, ciao merci
@+

yann

mercredi 26 janvier 2005 à 10:38:49 | Re : string table ressource

liv

Salut,

Il y a des manières beaucoup plus efficaces de faire des programmes multilangues.
Par exemple, dans ton projet principal tu crées une dll de ressource dans un projet vide. Tu dois avoir autant de dll que de langues.
Si tu as installé les MSDN va sur help://MS.VSCC/MS.MSDNVS.1036/vccore/html/_core_Create_a_Resource.2d.Only_DLL.htm

Ensuite tu copies le fichier .rc de ton programme principal dans celui de ton projet dll.
Tu traduis le fichier .rc de la dll dans la langue que tu veux.

Dans ton code au niveau de l'initialisation de ton programme (InitInstance() par exemple) tu copies le code suivant.
//Chargement de la Dll de langue
HINSTANCE dll;

if(m_Lang == "FR")
   dll = LoadLibrary("ResDllFr.dll");

else if (m_Lang == "EN")
   dll = LoadLibrary("ResDllEn.dll");

if(dll)
   AfxSetResourceHandle(dll);
Lors de la fermture de ton programme tu décharges ta dll avec le code suivant:
HMODULE hDLL = AfxGetResourceHandle();
if (hDLL != AfxGetInstanceHandle())
{
   AfxSetResourceHandle(AfxGetInstanceHandle());
   FreeLibrary(hDLL);
}

La dll te sera utile pour traduire toutes tes ressources. Par contre si tu as du texte dans ton application (MessageBox, Champ texte dynamique...) indépendant de tes ressources tu devras mettre en place un objet langue à part ne servant qu'à stocker des variables contenant le texte.

Le choix de la langue lui peut se faire via une clé contenue dans un fichier .ini. En fonction de cette clé (FR, EN...), au démarrage de ton application (voir code ci-dessus) tu charges la dll adéquate et tu instancies tes variables texte de ton objet langue.
Le changement de langue ne peut s'effectuer qu'en redémarrant ton application...tu n'as plus qu'à mettre en place une routine te permettant de le faire.

Voilà pour les méthodes....si tu as des questions d'ordre technique n'ésite pas.

. Liv




Cette discussion est classé dans : table, string, ressource


Répondre à ce message

Sujets en rapport avec ce message

String table et fichier texte [ par Marsin ] Bonjours, je cherche comment ecrire le contenu d'un fichier texte dans une string table. le but c de rendre une application multilanguage, le soft doi String Table [ par Beuss ] salut,je voulais savoir comment on accède aux différentes entrées d'une string table pour par exemple, l'affichage dans une messageboxMon application help :: String => Int [ par Skyman ] Comment on fait pour changer un string en int ou en long ?ex :char *chaine;int entier;long entierlong;chaine = "1234";int = chaine; // (int = 1234) [C] recherche caractere [ par GazGaz ] bonjourj'ai un bout de code qui me permet de chercher un caractere dans une phrase. Ce code me renvoie l'emplacement du premier carcactere.ex : "yop"a API: Menu, comment charger un menu dynamiquement AU FUR ET A MESURE [ par JackosKing ] Bon, voilà je souhaite faire un menu qui liste tous les fichiers du disque dur. Pour des raison de performances, je ne peux tout lister en meme temps. Editeur de ressource: [ par phpman ] Bonjour,est ce que quelqu'un connait un editeur de ressource?Merci d'avance. Conversion "system::string __gc *" vers "char *"....HELP [ par starkrous ] oui ce cher "name" dans Fileinfo ne se presente pas sous une forme chaine de caractere...du coup ça m'empeche un peu de le manipuler, est ce qu'il y a convertir LPCTSTR en string [ par sampq ] Comment convertir correctement un LPCTSTR en string ???merci font dans mon fichier ressource [ par nipower ] Bonjour je travail avec Dev-c++ et j'ai besoin dans mon projet d'intégrer une police spéciale et non standard.Le problème et que je n'arrive pas à uti convertir un string en LPCTSTR [ par sampq ] Comment convertir un type string en un type LPCTSTR correctement ???merci


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,530 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.