3

組み込みの i18n を使用して django アプリを翻訳しようとしています。.po/.mo翻訳するテキストをすでにマークし、チュートリアルに従ってエラーなしで言語ファイル ( ) を作成およびコンパイルしました。また、設定ファイルで を true に変更USE_I18Nし、チュートリアルの指示に従って次の行を urls.py に追加しました。

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

また、チュートリアルの指示に従って、settings.py で許可される言語のリストを定義しました。

次に、新しいページ html テンプレートを作成し、チュートリアルで言語選択ページに指定したコードをコピーしました。

<form action="/i18n/setlang/" method="post">
 {% csrf_token %}
 <input name="next" type="hidden" value="{{ redirect_to }}" />
 <select name="language">
  {% get_language_info_list for LANGUAGES as languages %}
  {% for language in languages %}
   <option value="{{ language.code }}">{{ language.name_local }} ({{ language.code }})</option>
  {% endfor %}
 </select>
 <input type="submit" value="Go" />
</form>

そのページも完全に機能しますが、[Go] をクリックすると、ページの読み込み中にエラーが発生したことがわかります。

Failed to load resource:http://localhost:8000/i18n/setlang/ 
the server responded with a status of 404 (NOT FOUND)

変数をリンクに置き換えてリダイレクトを変更しようとしましたが、同じ結果になりました。二重の命名があった場合に備えて、フォームアクションパスと urls.py を変更しようとしましたが、同じエラーが発生しました。

私はチュートリアルとreadme、そしていくつかのi18nファイルを読んでいますが、それが機能しない理由を見つけることができないようです.答えをいただければ幸いです. ありがとうございました

4

1 に答える 1

2

サブディレクトリではなく、プロジェクトのルートにある正しい urls.py を使用しましたか?

次のように変更するとどうなりますか。

from django.http import HttpResponse
...
(r'^i18n/', lambda x: HttpResponse("Test")),

http://localhost:8000/i18n/その後に行けますか?

于 2012-06-06T14:43:06.457 に答える