2

私は英語のサイトを持っていて、ロシア語を追加したいと考えています。設定.py

LANGUAGE_CODE = 'en'

LANGUAGES = ( (('en', ('English')), ('ru', ('Russian')), )

MIDDLEWARE_CLASSES = ( 'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.locale.LocaleMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib. auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', # 簡単なクリックジャッキング保護のために次の行のコメントを外します:

urls.py

url(r'^i18n/', include('django.conf.urls.i18n')),

単純なフォーム grom django docs

> <form action="/i18n/setlang/" method="post" id="language-select">
>        <input name="next" type="hidden" value="/" />
>             {% csrf_token %}
>             <select name="language">
>                 {% for lang in LANGUAGES %}
>                     <option value="{{ lang.0 }}">{{ lang.1 }}</option>
>                 {% endfor %}
>             </select>
>        <input type="submit" value="Go" /> </form>

gettext をインストールし、'locale' フォルダーを追加します (プロジェクト フォルダー内の manage.py の近く)。.po ファイルで「ru フォルダー」を作成し、いくつかの翻訳を追加します。しかし、言語を変更すると [26/Jul/2013 13:43:32] "POST /i18n/setlang/ HTTP/1.1" 302 0 が返され、英語のページにリダイレクトされます。ここで何が問題なのですか?

4

2 に答える 2

0

両方の言語をサポートする URL の urls.py で i18n_patterns を使用しましたか?

from django.conf.urls import include, url
from django.conf.urls.i18n import i18n_patterns

urlpatterns += i18n_patterns(
    url(r'^about/$', views.anything, name='about'),
)

https://docs.djangoproject.com/en/1.9/topics/i18n/translation/#language-prefix-in-url-patterns

于 2016-04-19T19:38:39.627 に答える