'purchase'というアプリでは、reports.pyというファイルがあります。このアプリでは、時々私がチェコ語に翻訳したいと思ういくつかのpdfレポートを生成しています。残念ながら、makemessagesスクリプトは翻訳可能な文字列を検出しません。翻訳可能な文字列が検出されないdjangoのマックメッセージ
次は、reports.pyが処理されていることを示しています。しかし、ファイルは追加されません。
.././manage.py makemessages -l cs_CZ -v 2
processing file reports.py in .
processing locale cs_CZ
これはreports.pyファイルからの抜粋です:
LOCALE_PATHS = (
os.path.join(BASE_DIR, "locale"),
)
編集: それはDjangoのようだロケールフォルダは、このような設定である
from django.utils.translation import ugettext as trans
def purchase_order_report(purchase_order, language='en'):
...
doc.add_text(trans('Items requested'), 'Heading2')
...
makemessagesが正しくインポートを翻訳していません。
次作品を実行している(ただし、変数は_に開梱時に競合する可能性があります):以下を実行している
from django.utils.translation import ugettext as _
def purchase_order_report(purchase_order, language='en'):
...
doc.add_text(_('Items requested'), 'Heading2')
...
も同様に動作します(ただし、あなたが混在し、ugettextとugettext_lazy一致させたい場合に非常に便利ではありません):
from django.utils.translation import ugettext
def purchase_order_report(purchase_order, language='en'):
...
doc.add_text(ugettext('Items requested'), 'Heading2')
...
どのような考えですか?
「購入」アプリの内部にロケールディレクトリを作成し、../manage.py makemessages -l cs_CZ -v 2.を再実行しましたが、結果は同じです。 –
これはPython 3ですか?そして、もしあなたが 'unicode_literals'を将来からインポートしたのであれば? – Melvyn
python 2.7、 'unicode_literals'はインポートされていません。 –