django日期字符串翻译为英语



我正在解析带有日期的Excel文件,并且整个文档中的日期格式会更改。其中一种格式是'1912','mart'是土耳其语的月份。

我想将此字符串翻译成英文(使用Django的内置翻译)为'1912年3月19日。

我尝试了:

 #views.py
    from dataparsers import *
    def getEnglishDate(request)
        translateDateTimeStr('19 Mart 1912')
#dataparsers.py
    from django.utils import translation  
    def translateDateTimeStr(datestr)
         translation.activate('en')
         translatedDateStr = _(datestr)
         translation.deactivate()
         return(translatedDateStr)

但是什么都没有改变,我得到了相同的字符串...

看起来Django的i18n工具很难翻译具有数字字符的字符串。我能够通过以下方法对此进行解决:

def translateDateTimeStr(s):
    t = []
    w = s.split()
    for s in w:
        translation.activate('de')
        t.append(_(s))
        translation.deactivate()
    return ' '.join(t)
print translateDateTimeStr('12 March 1912')
>>> 12 März 1912
# Does not work
def translateDateTimeStr(s):
    translation.activate('de')
    t = _(s)
    translation.deactivate()
    return t
print translateDateTimeStr('12 March 1912')
>>> 12 March 1912

您还需要确保您在设置中有USE_I18N=TrueLOCALE_PATH

最新更新