Bonjour,
Y a-t-il une méthode permetant de faire un programme en plusieurs langues, ie EN FR etc. ?
Une méthode qui évite de copier tout le code, et de remplacer tout les affichages...
Merci.
Bonjour,
Y a-t-il une méthode permetant de faire un programme en plusieurs langues, ie EN FR etc. ?
Une méthode qui évite de copier tout le code, et de remplacer tout les affichages...
Merci.
La réponse est OUI
Mais il y en a des quantités. Tout dépend de ce que tu veux faire, sur quelle plateforme tu es, quel langage tu utilises, etc....
si c'est de la programmation un peu évoluée, il "suffit" d'incorporer des fichiers de ressources à ton programme. Je suppose que c'est la langue de l'interface qui doit changer et pas la langue dans laquelle est écrit le code.
Tu changes de fichier de ressources pour changer de langue.
Si tu es en langage moins évolué, tu te crées un fichier avec des déclarations du genre
dans un fichier constantesFR.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 const char messageAlerte[]="Message d'alerte";
puis
dans un fichier constantesEN.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 const char messageAlerte[]="Alert message";
Tu inclues le fichier dont tu as besoin à la compilation.
Dans ton code tu écrits
Ce sera dans la langue désirée à la compilation.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 printf(messageAlerte);
Si en plus tu rajoutes des directives de compilation pour compiler dans la bonne langue, t'as tout gagné.
Comme il a déjà été dit, tout dépend de ton système, de ton environnement, etc. Sous Linux, beaucoup de gens utilisent gettext pour faciliter le processus d'internationalisation. Pour en savoir plus, il faut nous donner plus de précisions...
Thierry
Les certaines infos essentielles il me sembles, sont déja dans ma signature,
je les redonnes et les completes:
Je programme en C, avec Code::blocks, depuis 2ans, mes programmes ne sont pas trop évolues je pense, en fait ce qu ej'ai oublié de préciser c'est que je veux choisir la langue lors du lancement du programme, donc les fichiers .h me sembles pas du tout adaptés, et me sembles "lourd".
Et dernier point je suis sous windows, uniquement, pas sous linux.
Si j'ai oublié des précisions... je suis a votre entiere disposition.
Je rajoute que je n'ai rien trouvé dans la FAQ, mais bon j'ai pas toujours les yeux en face des trous...
Milles excuses, je n'avais pas lu ta signature...
Thierry
A ce moment là, tu peux charger dynamiquement une dll de ressources. Tu choisit la dll au démarrage de l'application.
Y'a tout plein de bonnes choses écrites sur le site developpez.com à ce sujet.
moi ce que je fais, c'est créer un fichier de textes du style :
Messages.txt
avec en entête un id de langue, par exemple
Langages : français, english
Et puis
des chaines avec un ID, et les 2 ou N valeurs
Exemple
HELLO_ID {
"Bonjour",
"Hello"
}
Et un module qui lit ce fichier au démarrage.
La routine (externe) de ce module et utilisée dans le reste du code est quelque chose comme :
char *GetString ( char *id )
Ce qui fait que les logiciels sont dynamiquement mulitlingues, et pour faire les traductions il suffit d'envoyer le fichier Messages.txt à un traducteur, qui traduit ou ajoute juste les mots de sa langue.
On peut mettre autant de langues qu'on veut simultanément, et changer de langue à tout instant.
Donc si je fait un panneau qui contient un bouton (ou un label) qui affiche "Bonjour", dans le code il suffit de mettre dans le label GetString("HELLO_ID")...
Mais c'est juste ma façon. Comme je disais il y en a des dizaines...
Sous Windows, on utilise généralement des ressources String Table.
Mais c'est plus facile d'emploi sous Visual Studio (sauf 2005 Express) qui possède un éditeur de ressources pour ça...
oui mais difficilement portable sur autre chose que Windows.Envoyé par Médinoc
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager