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 :

Date - Module pour traduire les noms des jours et des mois


Sujet :

Python

  1. #1
    Membre �prouv�

    Profil pro
    Account Manager
    Inscrit en
    D�cembre 2006
    Messages
    2 301
    D�tails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Account Manager

    Informations forums :
    Inscription : D�cembre 2006
    Messages : 2 301
    Par d�faut Date - Module pour traduire les noms des jours et des mois
    Bonjour,
    connaissez-vous un outil qui traduise automatiquement en fran�ais la sortie du print ci-dessous (c'est du Python 3) ?

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    import datetime
     
    print(
        datetime.date(2010, 2, 2).strftime("%A %d %B %Y")
    )
    Je sais le faire mais je veux savoir si cela vaut le coup que j'en fasse un module.

    J'ai un petit package misTool o� je mets des petits trucs qui me facilitent la vie, donc je voulais voir s'il valait le coup que j'ajoute la traduction de dates format�es.

    PAS BESOIN DE ME DONNER DES CODES.

  2. #2
    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,

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    import locale
    import datetime
     
    locale.setlocale(locale.LC_ALL, ‘’)
    print (datetime.date(2010, 2, 2).strftime("%A %d %B %Y"))
    Cela correspond-t-il a ce que tu desire?

  3. #3
    Membre �prouv�

    Profil pro
    Account Manager
    Inscrit en
    D�cembre 2006
    Messages
    2 301
    D�tails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Account Manager

    Informations forums :
    Inscription : D�cembre 2006
    Messages : 2 301
    Par d�faut
    Je connais cette m�thode mais le probl�me est qu'elle change les r�glages locaux. Merci quand m�me.

    Je cherche un truc du genre translate(dateText, "fr").

    PAS BESOIN DE ME DONNER DES CODES.

  4. #4
    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
    Le module pytz te conviendrait peut etre plus alors?http://pytz.sourceforge.net/

  5. #5
    Expert confirm�
    Avatar de tyrtamos
    Homme Profil pro
    Retrait�
    Inscrit en
    D�cembre 2007
    Messages
    4 486
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Retrait�

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par d�faut
    Bonjour,

    Apr�s avoir pass� pas mal de temps � essayer de changer la locale, j'ai finis par r�soudre ce genre de probl�me de la fa�on suivante (Python 3):

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    import datetime
     
    def queljour(j,m,a):
     
        jours = {0:"lundi", 1:"mardi", 2:"mercredi", 3:"jeudi", 4:"vendredi",
                 5:"samedi", 6:"dimanche"}
     
        mois = {1:"janvier", 2:"février", 3:"mars", 4:"avril", 5:"mai", 6:"juin",
                7:"juillet", 8:"août", 9:"septembre", 10:"octobre", 11:"novembre",
                12:"décembre"}
     
        return "%s %d %s %d" % (jours[datetime.date(a,m,j).weekday()], j, mois[m], a)
     
    print(queljour(19,9,2013))
    jeudi 19 septembre 2013
    Mais si quelqu'un a une solution avec getlocale/setlocale, �a m'interesse!

  6. #6
    Membre confirm�
    Profil pro
    Inscrit en
    Ao�t 2009
    Messages
    197
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Ao�t 2009
    Messages : 197
    Par d�faut
    A Tyrtamos le gourou PyQt



    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    from PyQt4.QtCore import QDate, QLocale
    print QLocale('fr_FR').toString(QDate.currentDate(),'dddd dd MMMM yyyy')
    print QLocale('en_GB').toString(QDate.currentDate(),'dddd dd MMMM yyyy')

  7. #7
    Expert confirm�
    Avatar de tyrtamos
    Homme Profil pro
    Retrait�
    Inscrit en
    D�cembre 2007
    Messages
    4 486
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Retrait�

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par d�faut
    Aaaah, merci Nico_tournai: je ne la connaissais pas celle-l�!

    Je m'en resservirai. Mais je ne comprends pas pourquoi �a semble impossible de faire �a avec locale.setlocale.

  8. #8
    Membre �prouv�

    Profil pro
    Account Manager
    Inscrit en
    D�cembre 2006
    Messages
    2 301
    D�tails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Account Manager

    Informations forums :
    Inscription : D�cembre 2006
    Messages : 2 301
    Par d�faut
    Salut tyrtamos,
    as-tu vu le message pr�c�dent de deusyss ?

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    import locale
    import datetime
     
    locale.setlocale(locale.LC_ALL, 'fr_FR')
    print (datetime.date(2010, 2, 2).strftime("%A %d %B %Y"))
     
    locale.setlocale(locale.LC_ALL, 'en_GB')
    print (datetime.date(2010, 2, 2).strftime("%A %d %B %Y"))
    Au passage, quelle est la port�e de locale.setlocale(locale.LC_ALL, 'fr_FR') ? Est-ce pour le programme en cours, ou bien cela reste-t-il apr�s fermeture du dit programme ?

  9. #9
    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
    Apr�s avoir fait un petit essai rapide, avec getlocale() et setlocale (voir mon 2nd code), cela semble �tre uniquement pour le programme en cours

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    import locale
    import datetime
    print (locale.getlocale())
    locale.setlocale(locale.LC_ALL, ‘’)
    print (locale.getlocale())
    print (datetime.date(2010, 2, 2).strftime("%A %d %B %Y"))
    A chaque ex�cution, au d�but on r�cup�re (None, None)

  10. #10
    Membre �prouv�

    Profil pro
    Account Manager
    Inscrit en
    D�cembre 2006
    Messages
    2 301
    D�tails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Account Manager

    Informations forums :
    Inscription : D�cembre 2006
    Messages : 2 301
    Par d�faut
    Dans ce cas, c'est la solution !

  11. #11
    Membre �prouv�

    Profil pro
    Account Manager
    Inscrit en
    D�cembre 2006
    Messages
    2 301
    D�tails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Account Manager

    Informations forums :
    Inscription : D�cembre 2006
    Messages : 2 301
    Par d�faut
    Citation Envoy� par rambc Voir le message
    Dans ce cas, c'est la solution !
    En fait non car la documentation du module indique :
    It is generally a bad idea to call setlocale() in some library routine, since as a side effect it affects the entire program. Saving and restoring it is almost as bad: it is expensive and affects other threads that happen to run before the settings have been restored.

    If, when coding a module for general use, you need a locale independent version of an operation that is affected by the locale (such as certain formats used with time.strftime()), you will have to find a way to do it without using the standard library routine. Even better is convincing yourself that using locale settings is okay. Only as a last resort should you document that your module is not compatible with non-C locale settings.
    Je vais donc opter pour une solution � la tyrtamos que je vais g�n�raliser.

  12. #12
    Membre �prouv�

    Profil pro
    Account Manager
    Inscrit en
    D�cembre 2006
    Messages
    2 301
    D�tails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Account Manager

    Informations forums :
    Inscription : D�cembre 2006
    Messages : 2 301
    Par d�faut
    J'ai finalement opt� pour l'ajout d'un module � l'un de mes packages Python3. Si cela vous dit, le package se nomme misTool et est disponible sur PyPI. Voici un exemple d'utilisation.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    import datetime
     
    from mistool import date_use
     
    print(
        date_use.translate(
            dateTime  = datetime.date(2013, 9, 21),
            strFormat = "%A %d %B %Y",
            lang      = "fr_FR"
        )
    )

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 5
    Dernier message: 02/09/2014, 21h43
  2. Requ�te pour r�cup�rer les noms des tables
    Par cendrine15 dans le forum Langage SQL
    R�ponses: 1
    Dernier message: 20/04/2012, 00h46
  3. requ�te SQl pour r�cup�rer les noms des tables
    Par taher84 dans le forum Requ�tes et SQL.
    R�ponses: 2
    Dernier message: 16/07/2010, 22h07
  4. R�ponses: 2
    Dernier message: 02/04/2009, 16h44
  5. R�ponses: 2
    Dernier message: 08/08/2007, 08h57

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