これがばかげているように聞こえることはわかっていますが、何が問題なのかわかりません。ユーザー認証に組み込みのビューを使用しており、ログインとログアウトにより、現在のセッションの言語がデフォルト以外の言語にそれぞれ切り替わります。
私は 2 つの言語を持っています。Djangoproject サイトのドキュメントに従ってセットアップします。つまり、locale フォルダーにあり、.mo ファイルとすべてがあります。罰金。
/i18n/setlang に投稿するすべてのユーザーの言語切り替えを可能にするフォーム ベースの言語切り替えがあります。
それで、私の質問は、ログアウトまたはログインを行うときに言語を切り替えるのが「POST」のように見えるのはなぜですか(どちらもPOSTだと思います)。
これについて可能な限りの光を当ててくれてありがとう。
編集:決して元に戻らないことを追加する必要があります。言語を一方向、つまりデフォルトではない言語にのみ切り替えます。
EDIT2:それ以上の回答を引き付けるとは思いませんが、ここに私の言語スイッチャーのコードがあります(jQueryを介してオンザフライで切り替えます。問題は、それがドイツ語に行き、ログアウトするたびにそこにとどまるということです(ログアウトはによって処理されますDjango のログアウト ビュー)。
<ul>
<li>
<form name="setLangen" action="/i18n/setlang/" method="POST"><div style='display:none'><input type='hidden' name='csrfmiddlewaretoken' value='871Y71JyfG9WcieiKr8jjwe4j37IkIfq' /></div>
<input name="next" type="hidden" value="/" />
<input type="hidden" name="language" value="en" />
<a href="#" onclick="document.setLangen.submit();return false;">English</a>
</form>
</li>
<li>
<form name="setLangde" action="/i18n/setlang/" method="POST"><div style='display:none'><input type='hidden' name='csrfmiddlewaretoken' value='871Y71JyfG9WcieiKr8jjwe4j37IkIfq' /></div>
<input name="next" type="hidden" value="/" />
<input type="hidden" name="language" value="de" />
<a href="#" onclick="document.setLangde.submit();return false;">Deutch</a>
</form>
</li>
</ul>