我想开发一个网站有2种语言,一个默认的,我的母语和一个可选的英语.我计划将我的域设置为:
www.mydomain.com/tr/
www.mydomain.com/en/
默认情况下,一旦用户输入mydomain.com.他们将被重定向至/tr/
版本,并 Select 通过顶部菜单转到/en/.这是我的问题.
什么是最好的Django方式来维护两种语言,请注意,我不想要自动翻译,但我想自己维护两种语言的文本.
谢谢
我想开发一个网站有2种语言,一个默认的,我的母语和一个可选的英语.我计划将我的域设置为:
www.mydomain.com/tr/
www.mydomain.com/en/
默认情况下,一旦用户输入mydomain.com.他们将被重定向至/tr/
版本,并 Select 通过顶部菜单转到/en/.这是我的问题.
什么是最好的Django方式来维护两种语言,请注意,我不想要自动翻译,但我想自己维护两种语言的文本.
谢谢
在我看来,您有两个主要 Select :
(1)您可以保留两个单独的站点副本作为不同的Django应用程序,只需将您的urlconf点指向这些应用程序--因此url(r'^/en/', include(myproject.en))
将在您的urlconf中指向您的英语应用程序,而另一个指向另一种语言.这将涉及到为这两个应用程序维护不同的urlconfs集和不同的html模板等,如果您想让URL本身也反映不同的语言(例如,西班牙语"/pagina/uno"vs英语"/page/one"),这可能会很有用.
(2)使用Django sessions将语言首选项记录在cookie中(无论如何都应该这样做),然后让模板从该cookie提供您喜欢的文本的适当版本.此操作的代码可能是:
# views.py
# default to your native language
request.session['lang'] = 'tr'
# someone clicks the link to change to English
def switch_to_English_link(request):
request.session['lang'] = 'en'
然后在模板中,要收集此信息,您可以使用:
<!-- my_django_template.html -->
<div>
<span>
{% if request.session.lang == "en" %}
This is my text in English!
{% else %}
Şimdi benim sitede Türk var!
{% endif %}
</span>
</div>