2017-09-13 14 views
2

私は既にDjangoを使って英語でWebページを実装しています。 中国語でWebページを作成しようとしているときに、今質問があります。中国語のページは接頭辞(/ ch /)で区切られます。DjangoはDjangoで実装された多言語Webページの言語の変更をどのように認識できますか?

言語を変更するためのボタンを実装する予定ですが、Djangoが変更されたページをどのように記憶しているかが問題です。私のドメインが「domain.com」であると仮定すると、ボタンを使って言語が中国語に設定されていると、ユーザーが「domain.com」にアクセスしたときに「domain.com/ch」を開きたいと思います。 しかし、ボタンをクリックしてもDjango(urls.py)のurlパターンは制御できないようで、javascriptに言語に対応する変数を格納する必要があります。

私はあなたの助言に感謝します。

答えて

1

これはかなり複雑なトピックですが、デフォルトでDjangoに役立つ多くのものがあります。 djangoのロケール部分には、言語設定のクッキーが表示されます。&ブラウザで提供されている要素もあります。

Djangoでは、外見はで、トピックのドキュメントはこちらです。 https://docs.djangoproject.com/en/1.11/topics/i18n/

複数の言語をサポートするには、2つの設定を有効にする必要があります。 USE_I18Nは言語要素を追加し、USE_L10Nは翻訳のトピックに関するなど

日付、数値、通貨のローカライズされた書式設定することができますあなたはjavascriptを&テンプレートに示され得ることを、あなたのPythonコードで確認文字列を作成する必要があるとして、give this a readユーザーは、適切な翻訳機能でラップされます。

ルートurls.pyファイルでは、i18n_patternsを使用して、URLの前に現在有効な言語コードが付加されていることを確認する必要があります。 Javascriptの翻訳URLを含むその例は、次のとおりです。

from django.conf.urls.i18n import i18n_patterns 

urlpatterns = i18n_patterns(
    url(r'^jsi18n/$', JavaScriptCatalog.as_view(), name='javascript-catalog'), 
) 

あなたの設定がソートましたら、URLはi18n_patternsに設定して、テンプレート内のいくつかの{% trans "" %}タグを使用するには、メッセージカタログの実際の生成を試すことができます。

これに2つの管理コマンドを使用します。最初はmakemessagesです。変換を生成されたファイルに追加し、compilemessagesを実行してジョブを終了します。

関連する問題