我正在解析带有日期的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=True
和LOCALE_PATH
。