我想在我的Mac OS X 10.7上的Python應用程序中翻譯字符串。 我可以導入gettext
模塊,但我找不到工具pygettext.py
和msgfmt.py
,根據Python文檔應該在我的Python安裝中的某個地方。Mac OS X上的pygettext.py和msgfmt.py
在Mac OS X 10.7上預裝的Python版本是否缺少這些工具?如果是,我該如何獲取它們?
謝謝。
我想在我的Mac OS X 10.7上的Python應用程序中翻譯字符串。 我可以導入gettext
模塊,但我找不到工具pygettext.py
和msgfmt.py
,根據Python文檔應該在我的Python安裝中的某個地方。Mac OS X上的pygettext.py和msgfmt.py
在Mac OS X 10.7上預裝的Python版本是否缺少這些工具?如果是,我該如何獲取它們?
謝謝。
這兩個腳本都駐留在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
如果您在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源如上建議是皮帶和 - 括號做法。
我仍然在尋找我的方式輪國際化自己,所以如果有人知道更好,請發表您的評論:)
與Python 3和MacOS> = 10.9,通過安裝自制gettext
不會鏈接庫和這將產生錯誤Can't find msgfmt
。
這有助於:
$ brew install gettext # if not already done
$ brew link gettext --force
謝謝,我單獨下載工具。 Mac上的 – verbit 2012-07-12 21:48:22
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