2017-11-18 18 views
1

'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') 
    ... 

どのような考えですか?

答えて

0

アプリにはlocale独自のディレクトリが必要です。しかし、存在しなければ作成されません。アプリ内でディレクトリを作成し、それが動作するはずです。

+0

「購入」アプリの内部にロケールディレクトリを作成し、../manage.py makemessages -l cs_CZ -v 2.を再実行しましたが、結果は同じです。 –

+0

これはPython 3ですか?そして、もしあなたが 'unicode_literals'を将来からインポートしたのであれば? – Melvyn

+0

python 2.7、 'unicode_literals'はインポートされていません。 –

関連する問題