ユーザに言語を選択させる方法について

61 views
Skip to first unread message

taichino

unread,
Aug 4, 2009, 2:45:09 AM8/4/09
to django-ja
はじめまして。松本と申します。

ユーザに表示言語を選択させる方法について質問させて下さい。

現在 localeMiddlewareとテンプレート中のtransタグを利用して、
ブラウザの言語設定から言語が選択されるようにしているのですが、
それに加えてユーザがブラウザ設定言語とは別の言語を選択できるようにしたいと考えています。
ページ上に「日本語」「英語」というような言語切替リンクを張るイメージです。

特定のリンクを踏むとリクエストの言語設定を上書きして、セッション情報に埋め込むような
処理になるのかなと想像して、localeMiddlewareのドキュメント等を調べてみたのですが、
うまく情報を見つけられませんでした。

どのようにすれば「言語自動切替 + ユーザに言語選択の余地を残す」を実現できますでしょうか。

お手数ですが、ご教示頂けないでしょうか。




taichino

unread,
Aug 4, 2009, 9:22:16 AM8/4/09
to django-ja
松本です。

失礼致しました。

ドキュメントを読み飛ばしていました。
セッションにdjango_languageを書き込んで置けば、
ブラウザの言語設定(HTTPリクエストヘッダ)よりも優先して設定されるのですね。
http://djangoproject.jp/doc/ja/1.0/topics/i18n.html#id16

viewに以下のようなメソッドを用意して処理する事にしました。
---
def set_lang(request, lang):
request.session['django_language'] = lang
return HttpResponseRedirect('/path/to/redirect')
---

以上,お騒がせ致しました。

Hiroshi Ayukawa

unread,
Aug 5, 2009, 8:37:22 AM8/5/09
to djan...@googlegroups.com
松本様

鮎川と申します。
POSTでの通信でよいのでしたら、viewが用意されています。
http://djangoproject.jp/doc/ja/1.0/topics/i18n.html#set-language
GETの場合に対応してないので、ちょっと使いにくいかもしれませんが。
(自分はこれのGET対応バージョンをどっかで書いて使ったこともあったように記憶しています。)


2009/08/04 22:22 に taichino<taic...@gmail.com> さんは書きました:

Taichi Matsumoto

unread,
Aug 6, 2009, 1:18:22 PM8/6/09
to djan...@googlegroups.com
鮎川様

松本です。

ご返信ありがとうございます。
既に機能として存在していたのですね!
確かにpostですと少し使いづらいので、
僕もgetバージョンを作って対応しようと思います。

ありがとうございました。

以上,よろしくお願い致します。


2009/08/05 21:37 に Hiroshi Ayukawa<ayukawa...@gmail.com> さんは書きました:
Reply all
Reply to author
Forward
0 new messages