2012-07-12 85 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