django-multilingual と localeurl を使用します。
私のメインページビューの小さなサンプル:
def main(request): #View for http://www.mysite.com/
name = Dog.objects.all()[0].full_name #this is a translated field
return render_to_response("home.html", {"name" : name})
http://www.mysite.com/と入力するとhttp://www.mysite.com/ru/にリダイレクトされ、"name" 変数はロシア語のローカライズを取得します。今のところ大丈夫です...
しかし...
http://www.mysite.com/en/と入力すると、同じロシア語のローカライズされた変数が表示されます。
デバッガーでの実験中に、次のことを発見しました。
- request.LANGUAGE_CODE は、/en/ または /ru/ url サフィックスに従って適切に変更されています (localeurl に感謝)
- multilingual.languages.set_default_language() を呼び出すと、「name」変数が変更されます。
問題は、自分の各ビューで django-multilingual の言語を request.LANGUAGE_CODE に変更する必要があるか、それとも自動的に解決する必要があり、何か間違ったことをしたのでしょうか?