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

Python Discussion :

Création programme multilangue [Python 2.X]


Sujet :

Python

  1. #1
    Membre chevronné

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Octobre 2010
    Messages
    178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Octobre 2010
    Messages : 178
    Par défaut Création programme multilangue
    Bonjour,

    J'ai développé un programme, j'aimerais donner aux utilisateurs la possibilité de changer la langue d'utilisation.
    Les configurations sont enregistrés dans un fichier .ini.

    Quelle serait la meilleure méthode à adopter pour gérer cette fonctionnalité ?
    Je parle pas de la création du bouton, mais des fonctions de chargement des textes prenant en compte le choix.

    J'ai eu l'idée de créer des .ini de langues, mais je ne suis pas vraiment certain de la pertinence de cette option.

    Existe-il des méthodes plus indiqués ?

    Merci,

    Tlams.

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 696
    Par défaut
    Salut,

    Citation Envoyé par Tlams Voir le message
    Quelle serait la meilleure méthode à adopter pour gérer cette fonctionnalité ?
    Je parle pas de la création du bouton, mais des fonctions de chargement des textes prenant en compte le choix.
    Ben, il faut déjà commencer par essayer d'utiliser les solutions existantes sauf à penser que construites par les anciens, elles ne sont pas assez sexy pour vous. Puis, vous pourrez vous orienter vers des bibliothèques comme babel qui adaptent un peu ces bases pour le programmeur Python.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Expert confirmé

    Avatar de deusyss
    Homme Profil pro
    Expert Python
    Inscrit en
    Mars 2010
    Messages
    1 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Expert Python
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 659
    Par défaut
    Bonjour,

    Beaucoup de logiciels Open Source se basent sur l'utilisation de fichiers .po.

    Pour ma part, je suis plutôt partisan de l'option base de données dans mes devs. Une option découverte dans ma société mais qui est appréciable. Une simple requête suffit alors à récupérer l'ensemble de la langue demandée.

  4. #4
    Membre chevronné

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Octobre 2010
    Messages
    178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Octobre 2010
    Messages : 178
    Par défaut
    Bonjour,

    Merci pour vos réponses.

    J'ai un peu galéré à implanter le système des .po, mais cela correspond assez bien à mes besoins.

    Pour ceux qui tomberaient sur le topic:

    Architecture des fichiers:
    .
    ./code.py
    ./code.pot
    ./locales/en/LC_MESSAGES/code.po
    ./locales/en/LC_MESSAGES/code.mo
    ./locales/fr/LC_MESSAGES/code.po
    ./locales/fr/LC_MESSAGES/code.mo

    Code d'exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    import gettext
     
    gettext.install('code', './locale', unicode=False)
     
    presLan_en = gettext.translation("code", './locales', languages=['en'])
    presLan_fr = gettext.translation("code", './locales', languages=['fr'])
     
    #only install one language - add program logic later
    presLan_en.install()
    # presLan_fr.install()
     
    print _('Bonjour')

    Fichier Pot:
    # SOME DESCRIPTIVE TITLE.
    # Copyright (C) YEAR ORGANIZATION
    # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
    #
    msgid ""
    msgstr ""
    "Project-Id-Version: PACKAGE VERSION\n"
    "POT-Creation-Date: 2007-06-19 17:45+EDT\n"
    "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
    "Language-Team: LANGUAGE <LL@li.org>\n"
    "MIME-Version: 1.0\n"
    "Content-Type: text/plain; charset=CHARSET\n"
    "Content-Transfer-Encoding: ENCODING\n"
    "Generated-By: pygettext.py 1.5\n"


    msgid "Bonjour"
    msgstr ""

    Logiciel pour la création des po/mo:
    poedit

    Si le code est simple, on peut utiliser la fonction scan pour récupérer les valeurs automatiquement et les stocker dans le .pot
    Pour ma part, je renseigne les valeurs à la main dans le .pot, puis je le charge dans poedit et réalise les traductions enregistrés en .po dans les bons répertoires.
    poedit s'occupe aussi de la conversion .mo

    Tlams.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Article][C++]faire un programme multilangues
    Par wogkiller dans le forum Contribuez
    Réponses: 9
    Dernier message: 01/06/2008, 17h25
  2. Création dll multilangue
    Par Iznogood12 dans le forum MFC
    Réponses: 2
    Dernier message: 20/12/2007, 20h55
  3. besoin de conseil création programme (débutante)
    Par kwakly dans le forum WinDev
    Réponses: 1
    Dernier message: 16/05/2007, 13h19
  4. initialisation programme multilangue
    Par holdup37 dans le forum C++Builder
    Réponses: 1
    Dernier message: 09/05/2007, 16h06
  5. Création programme gestion
    Par Klaad dans le forum Windows
    Réponses: 4
    Dernier message: 19/10/2006, 19h54

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