現在、私はDjangoのjavascriptファイルを翻訳しようとするとこの問題が発生します。私はurl(r'^jsi18n/$', javascript_catalog, js_info_dict, name='javascript-catalog'),
をurls.pyに持っていて、それをテンプレートに入れます。これは翻訳に問題ではないようですが、django-admin.py makemessages
コマンドを実行すると、いくつかのエラーが発生し、その理由がわかりません。Djangoはdjangojsのmakemessagesできません
$ django-admin.py makemessages -d djangojs -l nl_NL --keep-pot
CommandError: errors happened while running msguniq
/Users/../../src/locale/djangojs.pot:120: context separator <EOT> within string
/Users/../../src/locale/djangojs.pot:121: context separator <EOT> within string
msguniq: found 2 fatal errors
は、これは私が、私は空の文字列でこれらの行を削除し、再度コマンドを実行すると、コマンドが実行された後
#: static/jsi18n/djangojs.js:38 static/jsi18n/djangojs.js:46
#: static/jsi18n/nl/djangojs.js:84 static/jsi18n/nl/djangojs.js:92
msgid " "
msgid_plural ""
msgstr[0] ""
msgstr[1] ""
、それは単にそれらを再び追加しますdjangojs.pot
ファイルで見つけるものです。誰もがこの問題を以前に持っていましたか?
.potに記載されているファイルには、同じmsgid文字列(空白)が含まれているようです。なぜこれらのjsファイルは翻訳のためにスキャンされますか? /nl/djangojs.jsはオランダ語の翻訳に専念しているようです。なぜそれに翻訳文字列が含まれていますか? – allcaps
私は他のものを削除しましたので、これは '#:static/jsi18n/nl/djangojs.js:84 static/jsi18n/nl/djangojs.js:92'のみです。それでもエラーですので、同じ文字列を持つわけではありません。ここで間違っています(これはdjangojs.js:84です): 'var value = django.gettext(context + '\ x04' + msgid);'。 \ x04や何か@allcapsを処理できないようです – dnsko