Python 2.7で利用可能な文字列をフォーマットするための新しく推奨される方法はformat
、Djangoで翻訳されていない文字列になりますか?
文字列は.po
ファイル内にあり、翻訳されていますが、Webサイトでは翻訳されません。例えば:
from django.utils.translation import ugettext as _
website_name = "Stackoverflow"
title = _(u"{sitename} is a good website".format(sitename=website_name))
文字列を変換した後の.po
ファイルは次のようになります。
#: path/to/file.py:4
msgid "{sitename} is a good website"
msgstr "{sitename} ist eine gute Website"
Webサーバーを実行django-admin.py compilemessages
して再起動した後、処理されたHTMLページでは、他のすべての文字列が翻訳されている間、英語のままです。さらに、を使用してすべての文字列が変換されるわけではありませんが、演算子format
を使用してフォーマットされた文字列は期待どおりに変換されます。%
問題は両方の関数で同じであるため、これはgettext/ugettextの問題でもありません。