Django日期字符串翻译为英语

时间:2014-03-12 21:54:41

标签: django

我正在解析一个包含日期的excel文件,并且整个文档中的日期格式也会发生变化。其中一种格式是19#Mart 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)

但没有任何改变,我得到相同的字符串......

1 个答案:

答案 0 :(得分:0)

看来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

您还需要确保在settings.py和USE_I18N=True中有LOCALE_PATH