django - translation.activate() - 不会全局激活

时间:2014-09-08 13:19:28

标签: python django

我正在尝试更改页面的语言,我有一个<select>语言选项,您可以选择触发location.href的语言:

var lang = $(this).val();
var currentpage = String(window.location.href);
window.location.href = 'changelang/?lang=' + lang + '&back=' + currentpage;

我在urls.py中做了:

url(r'^changelang/$', 'changelanguage', name='changelanguage'),

和观点

def changelanguage(request):
   lang = request.GET.get('lang')
   back = request.GET.get('back')
   translation.activate(lang)
   return HttpResponseRedirect(back)

我想,它会改变所有页面的语言,但它根本不会改变语言。

我通过激活我的初始化功能

测试了这个
def startpage(request):
   translation.activate('en')
   return render(request, 'index.html', {})

它确实在改变,但仅限于初始阶段。

如何在一个视图中激活所有页面的语言?

1 个答案:

答案 0 :(得分:0)

我不知道django已经在考虑我了:

我通过使用django自己的set_language()函数here来解决这个问题

非常简单!