如何从views.py重新启动django服务器以使python代码中的本地化更改生效

时间:2014-04-04 11:31:05

标签: python django python-2.7

我是python和django的新手。我已经开始了一个翻译项目。我在哪里让用户从UI中选择语言。来自language_localize.html页面的发布请求将调用我的views.py方法language_localize。

def language_localize(request):
print "inside language_localize.."
if request.method == "GET":
    print "inside  GET request"
    _id = request.GET.get('language')
    print "_id="+str(_id)
    if _id == None :
        request.session['django_language'] = 'en'
        print "Language set to English"

    elif str(_id) == "en":
        request.session['django_language'] = 'en'
        print "Language set to English"

    elif str(_id) == "de":
        request.session['django_language'] = 'de'
        print "Language set to German"

    elif str(_id) == "fr":
        request.session['django_language'] = 'fr'
        print "Language set to French"


return HttpResponseRedirect(reverse('homepage'))

这将改变我的UI(用户界面)内容以显示翻译的字符串。所有翻译框架都已完成。

但每次我更改语言时,我需要通过按Cntrl + c并在控制台上执行“python2.7 manage runserver 0.0.0.0:8060”来重启服务器,以使更改生效。

是否有任何python命令重启服务器,以便我可以在我的language_localize方法中自动重启服务器?或者还有其他一些方法可以让更改对UI产生影响吗?

顺便说一下,我在同一app目录下有locale /目录,views.py。我还有一个text_translation.py,其中包含所有带有ugettext标签的字符串以进行转换。每次显示页面时,urls.py都会调用views.py下的特定方法,而views.py方法从text_translation.py获取字符串,并使用变量'params'将其呈现为html文件并显示。

我正在使用python2.7和django1.5。

任何帮助将不胜感激。 提前谢谢。

2 个答案:

答案 0 :(得分:1)

当您需要的所有东西已经成为框架的一部分并且有详细记录时,为什么重新发明(方形)轮子?

https://docs.djangoproject.com/en/1.6/#internationalization-and-localization

答案 1 :(得分:1)

我找到了答案。使用'懒惰翻译'在后端,只有在请求到来时才将字符串加载到HTML页面。

from django.utils.translation import ugettext_lazy as _

这解决了我的问题。谢谢你的帮助。