繁体   English   中英

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

[英]How to restart the django server from views.py for localization changes in python code to take affect

我是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。

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

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

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

我找到了答案。 在后端使用“延迟转换”仅在请求到来时才将字符串加载到HTML页面。

from django.utils.translation import ugettext_lazy as _

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM