2010-12-06 10 views
11

私はここでもGoogleで検索しました!しかし、解決策を見つけることは成功しませんでした。私はPythonに本当にうってつけですが、PythonをYumから分離してインストールできるようになりました。Django makemessagesエラー不明なエンコーディング "utf8"

さて、私はOSQAシステム用の言語パックを再コンパイルしますが、このメッセージを取得する必要があります:

Error: errors happened while running xgettext on __init__.py 
xgettext: ./Django-1.2.3/tests/regressiontests/views/__init__.py:1: Unknown encoding "utf8". Proceeding with ASCII instead. 
xgettext: Non-ASCII string at ./Django-1.2.3/tests/regressiontests/views/__init__.py:7. 
      Please specify the source encoding through --from-code or through a comment 
      as specified in http://www.python.org/peps/pep-0263.html. 

私がしようと試みたが、それを解決するために何も成功していない、管理にUTF-8でエンコードを設定します.pyファイルも成功しません。

誰かが私にそれを解決する光を与えることができますか? :(

おかげで、とよろしく!

+0

を助けることを願っていますか? –

+0

うん、これにxgettext --from-コード= UTF-8をやってみましたが、エラーを読み取るとき(= おかげ –

+2

を、それは私には、入力ファイルを聞いて、私は魔女のファイルは、これに関連していると想像することはできませんので、何も成功していませんメッセージ、最初のいくつかの単語の後に停止しないでください... –

答えて

4

を私はhttp://code.djangoproject.com/ticket/15980で、このためにチケットを作成しました。

問題はそのPythonの扱い」され、Djangoのコードでは、単純なタイプミスのように見えますutf8 "のエイリアスとして" utf-8 "、しかしxgettextはありません。問題はSVNのDjango r16169(05/06/11 12:49:06)のままです。

EDIT: Djangoソースで修正されました(2011年5月現在)

9

実際にy私は "#coding:utf8"と書いたすべてのソースファイルの上にあるので、私はすでにmakemessagesで同様の問題を抱えていました。ソースのコンパイルにもかかわらず、すべてのファイルで "utf8"を "utf-8"に置き換えなければなりませんでした。

makemessagesに慣れていない場合は、フォーマット文字列に適用されるgettext関数を注意してください。複数のプレースホルダがある場合は、名前付きパラメータを含む文字列が必要です。 "%s"が良いです "%(max)s"も良いです "%(min)s%(max)s" too "%s%s"はOKではありません。

2

私はこの投稿が古くなっていることは知っていますが、今日は同じ問題がありました。なぜそれを見つけるのに時間がかかりました。たぶん、人々が同じ場合には次のようになります。

私のvirtualenvのは、私のDjangoのルートディレクトリにあります。ここでは

は私のプロジェクトツリーです:

DjangoDirectory:

  • my_env
  • Django_App1
  • Django_App2
  • ...
  • manage.py

私はコマンドを起動します。

./manage.py makemessage -l fr 

は、私は同じエラーを取得:

Error: errors happened while running xgettext on __init__.py 
... 

は実際に、私はにxgettextは、内のすべてのファイルに見えたことに気づいたが、私のmy_env内のファイルだけでなく、

それ以下のコマンドは、魔法のように動作し、私はもうエラーを取得しないとだから私は、今ではmakemessagesの節プロセス中

をファイルやフォルダを無視する-iフラグを見つけました。

./manage.py makemessage -l fr -i my_env 

は、それはあなたがそれを示唆したものをやってみました

+0

./manage.py makemessage -l fr -i my_env 私のために働きました、ありがとうございました! – Reynald0

関連する問題