2016-08-22 8 views
0


私のアプリケーションではpython3とdjango1.10を使用し、djangoではkinndaを使用しています。
私はdjango管理パネル用に多くの言語を使用する予定です。 私はDjango documantionのルールに従うように、私はローカライズにmiddlewareを使用する必要があることを知る...ここに私の設定アプリがあるdjangoを使用した多言語版の問題

'django.contrib.sessions.middleware.SessionMiddleware', 
'django.middleware.locale.LocaleMiddleware', 
'django.middleware.common.CommonMiddleware', 

また、私はこの

LANGUAGES = (
    ('fa', ugettext('Farsi')), 
    ('en', ugettext('English')), 
) 

を追加
LOCALE_PATHS = (
    os.path.join(BASE_DIR, 'locale'), 
) 

もちろん、GNU gettextがインストールされ、ロケールフォルダがdjango-admin.py makemessages -l faのコンマで作成されますそして、.poファイルを翻訳してコンパイルして、.moファイルを取得します。 これまでのところすべてのことがうまく見えます。ファイルを入力するだけで言語を変更すると、すべてのことが機能します。
ここで私の質問は、どのように私は管理パネルからアプリケーションの言語を変更する機能を追加することができますか? 私のurlsファイルにurl((r'^i18n/', include('django.conf.urls.i18n'))),を追加します。しかし、私はちょうど今何をすべきかわかりません。私を助けてください。次のステップは何ですか ?このフォームを追加するにはどうしたらいいですか、sholudを使って言語を変更するにはこのフォームを追加しますか?ビューで

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

答えて

0

は、使用することができます:だから

from django.utils import translation 

# to change to French for example 
translation.activate('fr') 

# and you set it in the session to change it for the user 
request.session[settings.LANGUAGE_SESSION_KEY] = 'fr' 

、あなたはあなたの中で選択した言語の言語コードを渡し、あなたのビューの「form_valid」方法と同様のコードを追加することができます形。また https://docs.djangoproject.com/en/1.10/ref/utils/#module-django.utils.translation

と::

この詳細については、次のドキュメントをチェックアウト

https://docs.djangoproject.com/en/1.10/topics/i18n/translation/#explicitly-setting-the-active-language

+0

私は私のビューにこのコードを追加します。しかし、私が 'request.LANGUAGE_CODE'をプリントアウトしても、同じものが得られます。im在庫と混乱しています:(@Cody Parker –

+0

)申し訳ありませんが、あなたも手動でセッションを変更する必要があります。 –

+0

管理パネルで変更する方法を見つけようとしています。私のアプリケーションには、正面からのビューもビューもありません... ここにある[質問]アプリケーションの言語は正しくありますが、私が提供している言語ファイルも変更されています。どのようにしてその言語を読み込むことができますか?あなたは私を助けることができますか?[私の質問](http://stackoverflow.com/questions/39102538/language-file-dosent- load-automaticaly-in-django) –

関連する問題