を使用して:あなたはカスタムLANGUAGES
設定を定義する場合は、Djangoのドキュメントからのgettextを使用して、適切に翻訳した名前のsettings.LANGUAGES()
、それは デフォルトのように(言語に翻訳文字列として をマークするためにOKです値は ではなく
django.utils.translation
の "ダミー"gettext()
関数を使用します。 自体でその モジュールは の設定に依存するため、あなたは、あなたの設定ファイル 内からdjango.utils.translation
をインポートすることはありません、それは 円形輸入を引き起こします。解決方法は に "ダミー"gettext()
関数を使用することです。 は、ここでのサンプル設定ファイルです:これにより
gettext = lambda s: s LANGUAGES = (
('de', gettext('German')),
('en', gettext('English')),
)
、
django-admin.py makemessages
まだ見つけて、翻訳が 実行時に発生しません翻訳のため これらの文字列を、しかし マークします - - 実際にはgettext()
の言語をラップするには を覚えておいてください。LANGUAGES
実行時に
実際に言語をラップするとはどういう意味ですか?gettext()
?コード内でどのように呼び出されるべきですか?あなたが実際にそれらを使用するか、またはユーザーにそれらを表示する場合、言語名に)(gettextの呼び出し::
from django.utils.translation import ugettext
for lang_code, lang_name in settings.LANGUAGES:
translated_name = ugettext(lang_name)
...
を(あなたは、一般的に内のすべてのテキスト以来、かなりのgettextよりもugettext使用する必要があり、それが言うまさに
この方法は、前方と理解できるかなりstrightです。しかし、この場合、ダミーのラッパーを設定に使用する点は何でしょうか.LANGUAGES?とにかくコード内のすべての行を折り返さなければならないので、チュートリアルで提案されているラッパー関数のポイントは何ですか? –
ソースツリー(おそらく./manage.py makemessages経由)上でgettextコマンドラインツールを実行すると、それらの文字列を「必要な翻訳」として認識してPOファイルに追加できるようにする必要があります。 –