我正在解析一个包含日期的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)
但没有任何改变,我得到相同的字符串......
答案 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
。