IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Internationaliser une application


Sujet :

C

  1. #1
    Débutant Avatar de miron
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 479
    Points : 291
    Points
    291
    Par défaut Internationaliser une application
    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.

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 916
    Points
    17 916
    Billets dans le blog
    2
    Par défaut
    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....

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 69
    Points : 69
    Points
    69
    Par défaut
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    const char messageAlerte[]="Message d'alerte";
    dans un fichier constantesFR.h
    puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    const char messageAlerte[]="Alert message";
    dans un fichier constantesEN.h
    Tu inclues le fichier dont tu as besoin à la compilation.

    Dans ton code tu écrits
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    printf(messageAlerte);
    Ce sera dans la langue désirée à la compilation.
    Si en plus tu rajoutes des directives de compilation pour compiler dans la bonne langue, t'as tout gagné.

  4. #4
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Points : 5 360
    Points
    5 360
    Par défaut
    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

  5. #5
    Débutant Avatar de miron
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 479
    Points : 291
    Points
    291
    Par défaut
    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...

  6. #6
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Points : 5 360
    Points
    5 360
    Par défaut
    Milles excuses, je n'avais pas lu ta signature...

    Thierry

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 69
    Points : 69
    Points
    69
    Par défaut
    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.

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 916
    Points
    17 916
    Billets dans le blog
    2
    Par défaut
    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...

  9. #9
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    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...

  10. #10
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 916
    Points
    17 916
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Médinoc
    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.

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/06/2013, 17h59
  2. Internationaliser une application
    Par RT222 dans le forum ALM
    Réponses: 1
    Dernier message: 25/11/2011, 10h53
  3. Internationalisation d'une application en Java
    Par dduke dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 04/04/2007, 16h22
  4. [Unicode] Internationalisation d'une application
    Par Thierry Laborde dans le forum Langage
    Réponses: 4
    Dernier message: 21/10/2003, 20h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo