我想在我的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