2017-04-01 102 views
0

我正在使用python 3.4 & django 1.10。python爲日期設置特定語言環境作爲字符串

我有一些代碼設置,然後根據他們在模板上選擇的語言,通過選擇的語言列表,向用戶動態顯示字符串。

例如,如果用戶選擇de,顯示德國的價值觀,en顯示英語(美國)等方面的細節

我試圖本地化今天的日期字符串以不同的語言代碼。

我已經搜索谷歌和SO,但無法弄清楚這一點,或者即使這是可能的。

有沒有人有任何建議?

謝謝。

這裏是我的代碼:

from django.template.defaultfilters import date as _date 
from datetime import datetime 

GENERIC_DETAILS_LIVE_PREVIEW_LABELS = { 
    'ar': { 
     .... 
     'nac_generic_descriptor': u"موظف السنة", # Employee of the year 
     'nac_generic_preview_date': _date(datetime.now(), "N j, Y"), # todays date localised 
     .... 
    }, 
    'en': { 
     .... 
     'nac_generic_descriptor': u"Employee of the year", # Employee of the year 
     'nac_generic_preview_date': _date(datetime.now(), "N j, Y"), # todays date localised 
     .... 
    }, 
    'it': { 
     .... 
     'nac_generic_descriptor': u"Impiegato dell'anno", # Employee of the year 
     'nac_generic_preview_date': _date(datetime.now(), "N j, Y"), # todays date localised 
     .... 
    }, 
    'de': { 
     .... 
     'nac_generic_descriptor': u"Mitarbeiter des Jahres", # Employee of the year 
     'nac_generic_preview_date': _date(datetime.now(), "N j, Y"), # todays date localised 
     .... 
    }, 
    'fr': { 
     .... 
     'nac_generic_descriptor': u"Employé de l'année", # Employee of the year 
     'nac_generic_preview_date': _date(datetime.now(), "N j, Y"), # todays date localised 
     .... 
    }, 
    'es': { 
     .... 
     'nac_generic_descriptor': u"Empleado del año", # Employee of the year 
     'nac_generic_preview_date': _date(datetime.now(), "N j, Y"), # todays date localised 
     .... 
    }, 
} 

回答

1

我得到這個使用Babel工作。

這裏是我的代碼:

from datetime import date, datetime, time 
from babel.dates import format_date, format_datetime, format_time 

GENERIC_DETAILS_LIVE_PREVIEW_LABELS = { 
    'ar': { 
     .... 
     'nac_generic_descriptor': u"موظف السنة", # Employee of the year 
     'nac_generic_preview_date': format_date(datetime.now(), format='long', locale='ar'), # todays date localised 
     .... 
    }, 
    'en': { 
     .... 
     'nac_generic_descriptor': u"Employee of the year", # Employee of the year 
     'nac_generic_preview_date': format_date(datetime.now(), format='long', locale='en_US'), # todays date localised 
     .... 
    }, 
    'it': { 
     .... 
     'nac_generic_descriptor': u"Impiegato dell'anno", # Employee of the year 
     'nac_generic_preview_date': format_date(datetime.now(), format='long', locale='it_IT'), # todays date localised 
     .... 
    }, 
    'de': { 
     .... 
     'nac_generic_descriptor': u"Mitarbeiter des Jahres", # Employee of the year 
     'nac_generic_preview_date': format_date(datetime.now(), format='long', locale='de_DE'), # todays date localised 
     .... 
    }, 
    'fr': { 
     .... 
     'nac_generic_descriptor': u"Employé de l'année", # Employee of the year 
     'nac_generic_preview_date': format_date(datetime.now(), format='long', locale='fr_FR'), # todays date localised 
     .... 
    }, 
    'es': { 
     .... 
     'nac_generic_descriptor': u"Empleado del año", # Employee of the year 
     'nac_generic_preview_date': format_date(datetime.now(), format='long', locale='es_ES'), # todays date localised 
     .... 
    }, 
} 

模板中的日期現在顯示爲:

於:2017年4月3日

FR:3艾薇兒2017年

ES :3 de abril de 2017

etcetra,etcetra。

我希望這可以幫助別人。

相關問題