2012-07-12 22 views
6

Quiero traducir cadenas en mi aplicación Python en mi Mac OS X 10.7. Puedo importar el módulo gettext pero no puedo encontrar las herramientas pygettext.py y msgfmt.py, que según los documentos de Python deberían estar en algún lugar de mi instalación de Python.pygettext.py y msgfmt.py en Mac OS X

¿Falta la versión preinstalada de Python en Mac OS X 10.7 y si es así, cómo puedo obtenerlas?

Gracias.

Respuesta

7

Ambas secuencias de comandos residen en el directorio de herramientas varias de la fuente de Python. Este directorio a menudo no se incluye en una instalación binaria de Python, como las que proporciona Apple en OS X. Sin embargo, es fácil descargarlas por separado de una versión de origen de Python; ver los lanzamientos más recientes here. Para la versión actual de Python 2.7.3, se puede hacer lo siguiente:

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

A partir de Python 3.2, el directorio Tools se instala de Python.org OS X instaladores binarios. Lo encontrará en el interior del marco de Python en:

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

Gracias, he descargado las herramientas por separado. – verbit

+0

en Mac 10.8.5 curl no funcionó para mí, pero 'wget http: // www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz' hizo el truco – jrgray

0

Si ha instalado Python correctamente en Linux debe ser capaz de acceder a las versiones binarias de la línea de comandos. Por lo tanto, para que el archivo .pot, puede escribir:

$> pygettext [options] source_file_list 

descubrí que tenía dos versiones de pygettext, uno para 2.7, 3.2 y otro para, pero parece que trabajar más o menos la misma. Para crear los archivos .mo de los archivos .po:

$> msgfmt [options] file.po 

pero hay que asegurarse de que no se utilicen accidentalmente la versión de GNU. La versión Python de msgfmt es mucho más simple. Ambos comandos tienen ayuda, para que pueda comprobar las opciones (y versiones) con:

$> pygettext --help 

y

$> msgfmt --help 

En caso de duda, la descarga de la fuente de Python como se sugirió anteriormente es el cinturón-y-llaves enfoque.

Todavía estoy encontrando mi camino alrededor i18n mí mismo, así que si alguien sabe mejor, por favor añadir sus comentarios :)

7

con Python 3 y MacOS> = 10,9, la instalación de gettext través homebrew no unirá las bibliotecas y esto producirá el error Can't find msgfmt.

Esto ayuda:

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

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