3

ブラウザに設定されている主要言語を判別する方法が必要です。PHPの本当に素晴らしいソリューションを見つけましたが、残念ながらDjango/Pythonを使用しています。

情報はHTTPリクエストのHTTP_ACCEPT_LANGUAGE属性内にあると思います。

私のためのアイデアや既製の機能はありますか?

4

2 に答える 2

1

request.METAあなたは辞書を探しています:

print request.META['HTTP_ACCEPT_LANGUAGE']

軽量のWebフレームワークであるWebObプロジェクトには、この場合に再利用できる便利な受け入れパーサーが含まれています。

from webob.acceptparse import Accept

language_accept = Accept(request.META['HTTP_ACCEPT_LANGUAGE'])
print language_accept.best_match(('en', 'de', 'fr'))
print 'en' in language_accept

WebObパッケージをインストールしても、Djangoの機能が妨げられることはないことに注意してください。ここでは、パッケージのクラスを再利用しているだけで、非常に便利です。

短いデモは常により説明的です:

>>> header = 'en-us,en;q=0.5'
>>> from webob.acceptparse import Accept
>>> lang = Accept(header)
>>> 'en' in lang
True
>>> 'fr' in lang
False
>>> lang.best_match(('en', 'de', 'fr'))
'en'
于 2012-09-04T19:18:18.553 に答える
0

これは私が使った機能であり、それが私の創造物です。

def language(self):
        if 'HTTP_ACCEPT_LANGUAGE' in self._request.META:
            lang = self._request.META['HTTP_ACCEPT_LANGUAGE']
            return str(lang[:2])
        else:
            return 'en'

ただそれを呼んでください。

于 2015-11-17T18:15:13.357 に答える