2012-07-12 3 views
6

Voglio tradurre le stringhe nella mia app Python sul mio Mac OS X 10.7. Posso importare il modulo gettext ma non riesco a trovare gli strumenti pygettext.py e msgfmt.py, che secondo i documenti di Python dovrebbero essere da qualche parte nella mia installazione Python.pygettext.py e msgfmt.py su Mac OS X

La versione Python preinstallata su Mac OS X 10.7 manca di questi strumenti e in caso affermativo, come posso ottenerli?

Grazie.

risposta

7

Entrambi gli script si trovano nella directory Strumenti vari del sorgente Python. Questa directory spesso non è inclusa in un'installazione binaria di Python come quella fornita da Apple in OS X. Tuttavia, è facile scaricarli separatamente da una versione sorgente Python; guarda le versioni più recenti here. Per la versione corrente di Python 2.7.3, è possibile effettuare le seguenti operazioni:

$ 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* 

Cominciando con Python 3.2, la directory Tools viene installato per python.org OS X. installatori binari. Lo troverete all'interno del quadro Python a:

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

Grazie, ho scaricato gli strumenti separatamente. – verbit

+0

su Mac 10.8.5 arricciare non ha funzionato per me, ma 'wget http: // www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz' ha fatto il trucco – jrgray

0

Se avete Python installato correttamente in Linux si dovrebbe essere in grado di accedere alle versioni binarie dalla riga di comando. Quindi, per rendere il file pot, è possibile digitare:

$> pygettext [options] source_file_list 

Ho scoperto di avere due versioni di pygettext, una per 2,7, e un altro per 3.2, ma sembra funzionare più o meno lo stesso. Per creare i file .mo dai file .po:

$> msgfmt [options] file.po 

ma è necessario assicurarsi che non si utilizza accidentalmente la versione GNU. La versione Python di msgfmt è molto più semplice. Entrambi i comandi hanno aiuto, in modo da poter controllare le opzioni (e versioni) con:

$> pygettext --help 

e

$> msgfmt --help 

In caso di dubbio, scaricando il sorgente Python come suggerito sopra è la cintura-e-bretelle approccio.

sto ancora trovare la mia strada intorno i18n me stesso, quindi se qualcuno conosce meglio, si prega di aggiungere i tuoi commenti :)

7

con Python 3 e MacOS> = 10.9, l'installazione di gettext tramite homebrew non collegherà le librerie e questo produrrà l'errore Can't find msgfmt.

Questo aiuta:

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

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