2012-07-12 18 views
6

Ich möchte Zeichenfolgen in meiner Python-App auf meinem Mac OS X 10.7 übersetzen. Ich kann das gettext Modul importieren, aber ich kann die Werkzeuge pygettext.py und msgfmt.py nicht finden, die entsprechend den Python-Dokumenten irgendwo in meiner Python-Installation sein sollten.pygettext.py und msgfmt.py unter Mac OS X

Ist in der vorinstallierten Python-Version unter Mac OS X 10.7 diese Tools nicht vorhanden und wenn ja, wie bekomme ich sie?

Danke.

Antwort

7

Diese beiden Skripts befinden sich im Verzeichnis Verschiedene Tools der Python-Quelle. Dieses Verzeichnis ist oft nicht in einer Binärinstallation von Python enthalten, wie sie von Apple in OS X bereitgestellt wird. Es ist jedoch einfach, sie separat von einer Python-Quellversion herunterzuladen; siehe die neuesten Versionen here. Für den aktuellen Python 2.7.3 Release, können Sie folgendes tun:

$ curl -O http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz 
$ tar -xf Python-2.7.3.tgz 
$ cd Python-2.7.3 
$ cd Tools/i18n/ 
$ ls 
makelocalealias.py msgfmt.py*   pygettext.py* 

mit Python 3.2 Beginning, das Tools Verzeichnis von python.org OS X binäre Installateure installiert ist. Sie finden es im Inneren des Rahmens in Python finden:

/Library/Frameworks/Python.framework/Versions/3.2/share/doc/python3.2/examples/Tools 
+0

Danke, ich die Werkzeuge separat heruntergeladen. – verbit

+0

auf Mac 10.8.5 curl funktionierte nicht für mich, aber 'wget http: // www.python.org/ ftp/python/2.7.3/Python-2.7.3.tgz' hat den Trick gemacht – jrgray

0

Wenn Sie Python in Linux korrekt installiert haben, sollten Sie in der Lage sein, die binären Versionen von der Kommandozeile zugreifen. Also, um die POT-Datei zu machen, können Sie Folgendes eingeben:

$> pygettext [options] source_file_list 

Ich fand ich hatte zwei Versionen von pygettext, eine für 2,7, und eine andere für 3,2, aber sie scheinen so ziemlich das gleiche zu arbeiten. Um die .mo-Dateien aus den .po-Dateien zu erstellen:

$> msgfmt [options] file.po 

aber Sie müssen sicherstellen, dass Sie nicht versehentlich die Gnu-Version. Die Python-Version von msgfmt ist viel einfacher. Beide Befehle haben Hilfe, so können Sie die Optionen prüfen (und Versionen) mit:

$> pygettext --help 

und

$> msgfmt --help 

Im Zweifelsfall die Python-Source-Download, wie oben vorgeschlagen ist die Riemen und Klammern Ansatz.

Ich bin immer noch die Suche nach dem Weg mich Runde i18n, also wenn jemand weiß besser, geben Sie bitte Ihre Kommentare hinzufügen :)

7

Mit Python 3 und MacOS> = 10,9, gettext über Homebrew Installation nicht die Bibliotheken verknüpfen und Dies erzeugt den Fehler Can't find msgfmt.

Dies hilft:

$ brew install gettext # if not already done 
$ brew link gettext --force 

Dank https://stackoverflow.com/a/8785138/621690