2012-07-12 77 views
6

我想在我的Mac OS X 10.7上的Python應用程序中翻譯字符串。 我可以導入gettext模塊,但我找不到工具pygettext.pymsgfmt.py,根據Python文檔應該在我的Python安裝中的某個地方。Mac OS X上的pygettext.py和msgfmt.py

在Mac OS X 10.7上預裝的Python版本是否缺少這些工具?如果是,我該如何獲取它們?

謝謝。

回答

7

這兩個腳本都駐留在Python源代碼的Miscellaneous Tools目錄中。這個目錄通常不包含在Python的二進制安裝中,例如由OS X中的Apple提供的安裝。但是,可以很容易地從Python源代碼版本單獨下載它們;請參閱最新版本here。對於當前的Python 2.7.3版本中,可以做到以下幾點:

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

與Python 3.2開始,Tools目錄由python.org OS X二進制安裝程序安裝。您可以在Python框架中找到它:

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

謝謝,我單獨下載工具。 Mac上的 – verbit 2012-07-12 21:48:22

+0

10.8.5 curl對我不起作用,但是'wget http:// www.python.org/ftp/python/2.7.3/python-2.7.3.tgz'發揮了訣竅 – jrgray 2014-05-12 21:22:32

0

如果您在Linux中正確安裝了Python,則應該能夠從命令行訪問二進制版本。因此,爲了使.POT文件,您可以鍵入:

$> pygettext [options] source_file_list 

我發現我有pygettext的兩個版本,一個是2.7,另一個爲3.2,但他們似乎工作幾乎相同。從.po文件創建.mo文件:

$> msgfmt [options] file.po 

但您需要確保您不會意外地使用gnu版本。 msgfmt的Python版本要簡單得多。這兩個命令有幫助,所以你可以檢查選項(和版本)與:

$> pygettext --help 

$> msgfmt --help 

如有疑問,請下載Python源如上建議是皮帶和 - 括號做法。

我仍然在尋找我的方式輪國際化自己,所以如果有人知道更好,請發表您的評論:)

7

與Python 3和MacOS> = 10.9,通過安裝自制gettext不會鏈接庫和這將產生錯誤Can't find msgfmt

這有助於:

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

由於https://stackoverflow.com/a/8785138/621690