0

多言語の django サイトをセットアップしようとしています。必要な言語を設定ファイルに追加し、django.po ファイルのすべてを翻訳しました。ロケール ミドルウェアと言語ブロックを URL に追加したところ、それらをナビゲートすると正しく表示されます。

/es-mx/help --- スペイン語で表示

/en-us/help --- 英語で表示

URL を翻訳したいのですが、これは私の urls.py です。

from django.utils.translation import ugettext_lazy as _

urlpatterns += i18n_patterns('',
    url(_(r'^help/'), include('help.urls')),
)

私は次のことをしたい:

/es-mx/ayuda -- スペイン語で表示

/en-us/help --- 英語で表示

しかし、スペイン語の URL にアクセスすると 404 しか表示されません。django.po ファイルに以下を追加しようとしましたが、結果はありません:

msgid "r^help/"
msgstr "r^ayuda/"

msgid "help"
msgstr "ayuda"

私は何が欠けていますか?

4

1 に答える 1

1

私はあなたmsgidmsgstrここで間違っていると思います:

msgid "r^help/"
msgstr "r^ayuda/"

誤ってr前に を含めましたが、これは実際には URL パターンの文字列の一部ではありません...

URLパターンではr"^help/"...rプレフィックスは、これが生の文字列であり、エスケープ文字を無視することをPythonに伝えます。これは、正規表現を操作するときに役立ちます

ドキュメントを読んだところ、他のすべてが私には正しいように見えるので、次のように変更するだけでよいと思います。

msgid "^help/"
msgstr "^ayuda/"
于 2015-01-03T10:28:23.277 に答える