鑑於一個簡單的模板,我想添加一些國際化。但我收到以下錯誤:龍捲風locale.translate
File "login_xhtml.generated.py", line 5, in _tt_execute
_tt_tmp = _('Welcome') # login.xhtml:4
UnboundLocalError: local variable '_' referenced before assignment
(<class 'UnboundLocalError'>, UnboundLocalError("local variable '_' referenced before assignment",), <traceback object at 0x7ffc50c957a0>)
由於某些原因,「_」未在模板生成器中定義。更糟糕的是,它在這個過程的某個地方變得不明確。我已經嘗試在我的處理程序的名稱空間中添加「_」。我已經嘗試在調用模板「execute」之前從龍捲風代碼打印模板名稱空間 - 名稱空間中存在「_」,但不存在於模板代碼中。
如果我將別的東西定義爲'locale.translate'的別名,它確實按預期工作。似乎這個問題只與「_」有關。
我最後的(而迫切的)的嘗試是添加以下行龍捲風模板代碼:
def generate(self, writer):
writer.write_line("def _tt_execute():", self.line)
with writer.indent():
+ writer.write_line("_ = locale.translate", self.line)
writer.write_line("_tt_buffer = []", self.line)
writer.write_line("_tt_append = _tt_buffer.append", self.line)
self.body.generate(writer)
writer.write_line("return _tt_utf8('').join(_tt_buffer)", self.line)
這實際上做的工作。但它似乎不是一個合適的解決方案。
我確實有最新版本的龍捲風(至少pip
這麼說) - 3.1.1。
這可能是什麼原因?
注:我使用python3。這可能是問題的原因嗎?
Python3,Tornado 3.1.1適合我。 –
我懷疑問題是在我的設置中的其他地方。但我沒有想法在哪裏看。 – aragaer