2017-03-28 4 views
2

languageという関数を作成して、EnglishまたはFrenchを返します。私は選択された言語に基づいて日付を与える関数を作成したいと思います。たとえば、Frenchを選択すると、関数はJeudi, 28 mars 2017を返し、Englishを選択すると、Tuesday March 28 2017を返します。フランス語の日付または英語の日付を返す関数を作成する

@property 
def date_customerprofile(self): 
    now = datetime.date.today() 
    if language == 'English' 
     date = now.strftime("%A, %B %d %Y") 
    else: 
     date = ... 

誰もこのような結果を得るためにこの機能を完了するのに手伝ってもらえますか?

ありがとうございます!

P.S.フランス語の月がJanvierFévrierMarsAvrilMaiJuinJuilletAoûtSeptembreOctobreNovembreDécembreであることを知ります。曜日は、システムにインストールされたロケールを必要としている必要がありDimanche(日曜日)、LundiMardiMercrediJeudiVendredi

+0

'datetime'モジュールは複数のロケールで動作します。平日の名前を2つの言語で表示する例は、[この回答](http://stackoverflow.com/a/4083447/355230)を参照してください(最後のコードを参照)。 – martineau

答えて

1

ファーストです。 ubuntuでフランス語のロケールをインストールするには、以下のコマンドを実行します。以下は

$ sudo locale-gen fr_FR.utf8 

質問

from datetime import datetime 
import locale 

def set_locale(locale_): 
    locale.setlocale(category=locale.LC_ALL, locale=locale_) 


def date_customerprofile(language): 
    now_ = datetime.today() 
    if language == 'English': 
     set_locale('en_US.utf8') 
     date_ = now_.strftime("%A %B %d %Y") 
    else: 
     set_locale('fr_FR.utf8') 
     date_ = now_.strftime("%A %B %d %Y") 
    return date_ 

P.S.ためのソリューションです標準のパッケージ/関数名を変数として使用しないでください

+0

私はプログラマーのチームと一緒に仕事をしています。だから 'sudo locale-gen fr_FR.utf8'をロードするだけでよいのかどうかわかりません。私はdjangoプロジェクトに取り組んでいます。何をお勧めしますか? –

+0

ロケールはOSによって異なります。 Pythonはそれを利用しています。それを利用するには、必要なロケールをインストールする必要があります。 – Technocrat

関連する問題