2010-12-06 21 views
11

Ich suchte hier und google auch! Aber kein Erfolg, die Lösung zu finden, ich bin wirklich noob mit Python aber könnte Python getrennt von Yum installieren können.Django makemessages Fehler Unbekannte Codierung "utf8"

Nun, ich brauche das Sprachpaket für das OSQA System neu zu kompilieren, aber diese Meldung erhalten:

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. 

Ich habe versucht, hatte aber keinen Erfolg darauf gesetzt kodieren bei utf-8 zu lösen in der Verwaltung .py-Datei, aber auch kein Erfolg.

Kann mir jemand ein Licht geben, um es zu lösen? :(

Vielen Dank und viele Grüße!

+0

helfen Haben Sie versucht, vorgeschlagen, zu tun, was? –

+0

Ja, versucht, dies zu tun xgettext --from-code = utf-8 aber hatte keinen Erfolg, weil es mir die Eingabedatei fragen, aber ich kann mir nicht vorstellen, Hexe Dateien sind damit verwandt = ( danke –

+2

Beim Lesen eines Fehlers Nachricht, hör nicht auf nach den ersten paar Worten ... –

Antwort

4

ich ein Ticket für diese bei http://code.djangoproject.com/ticket/15980 erstellt haben.

Es scheint ein einfacher Tippfehler in der Django-Code zu sein, ist das Problem, dass Python behandelt wird " utf8 "als Alias ​​für" utf-8 ", aber xgettext nicht. Das Problem existiert noch von Django r16169 (05/06/11 12:49:06) in SVN.

EDIT: Das Problem wurde jetzt in der Django-Quelle behoben (Stand Mai 2011)

9

Eigentlich y Ich hatte schon ähnliche Probleme mit Makelnachrichten, weil ich oben auf jeder Quelldatei "# coding: utf8" geschrieben habe. Obwohl es mit der Quellkompilierung funktioniert hat, musste ich "utf8" durch "utf-8" in jeder Datei ersetzen.

Wenn Sie nicht gewohnt sind, Nachrichten zu erstellen, achten Sie darauf, dass Gettext-Funktionen zum Formatieren von Strings verwendet werden. Sie benötigen Strings, um benannte Parameter zu enthalten, wenn mehr als ein Platzhalter vorhanden ist. "% s" ist gut "% (max) s" ist auch gut "% (min) s% (max) s" auch "% s% s" ist nicht ok.

2

Ich weiß, dass dieser Beitrag veraltet ist, aber ich hatte das gleiche Problem heute, und ich brauchte Stunden, um herauszufinden, warum. Vielleicht werden die Menschen im gleichen Fall sein:

Mein virtualenv ist in meinem django Stammverzeichnis:

DjangoDirectory:

  • meine_umgeb
  • Django_App1
  • Hier mein Projektbaum

  • Django_App2
  • ...
  • manage.py

Wenn ich Befehl starten:

./manage.py makemessage -l fr 

ich den gleichen Fehler:

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

In der Tat, ich bemerkte, dass xgettext die alle Dateien sah in meiner Ordner, sowie Dateien in my_env.

So fand ich das Flag -i, welche Dateien oder Ordner während des makemessages Prozess

So, jetzt mit dem Befehl ignorieren darunter wie ein Zauber funktioniert und ich nicht mehr den Fehler nicht.

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

Hoffe, dass es

+0

./manage.py makemessage -l fr -i my_env Arbeitete für mich, DANKE! – Reynald0

Verwandte Themen