我是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。
任何帮助将不胜感激。 提前谢谢。
答案 0 :(得分:1)
当您需要的所有东西已经成为框架的一部分并且有详细记录时,为什么重新发明(方形)轮子?
https://docs.djangoproject.com/en/1.6/#internationalization-and-localization
答案 1 :(得分:1)
我找到了答案。使用'懒惰翻译'在后端,只有在请求到来时才将字符串加载到HTML页面。
from django.utils.translation import ugettext_lazy as _
这解决了我的问题。谢谢你的帮助。