Python Mac OS X上的pygettext.py和msgfmt.py

Python Mac OS X上的pygettext.py和msgfmt.py,python,macos,localization,gettext,Python,Macos,Localization,Gettext,我想在Mac OS X 10.7上翻译Python应用程序中的字符串。 我可以导入gettext模块,但找不到工具pygettext.py和msgfmt.py,根据Python文档,这些工具应该在我的Python安装中的某个地方 Mac OS X 10.7上预装的Python版本是否缺少这些工具?如果是,如何获得这些工具 谢谢。这两个脚本都位于Python源代码的miscellaneous Tools目录中。这个目录通常不包括在Python的二进制安装中,比如苹果在OS X中提供的那些。但是,从

我想在Mac OS X 10.7上翻译Python应用程序中的字符串。 我可以导入
gettext
模块,但找不到工具
pygettext.py
msgfmt.py
,根据Python文档,这些工具应该在我的Python安装中的某个地方

Mac OS X 10.7上预装的Python版本是否缺少这些工具?如果是,如何获得这些工具


谢谢。

这两个脚本都位于Python源代码的miscellaneous Tools目录中。这个目录通常不包括在Python的二进制安装中,比如苹果在OS X中提供的那些。但是,从Python源代码版本中单独下载它们很容易;请参阅最新版本。对于当前的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*
从Python3.2开始,Python.org OS X二进制安装程序安装了
Tools
目录。您可以在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版本要简单得多。这两个命令都有帮助,因此您可以使用以下命令检查选项(和版本):

如果有疑问,可以按照上面的建议下载Python源代码


我自己仍在寻找解决i18n的方法,因此如果有人知道得更好,请添加您的评论:)

对于Python3和MacOS>=10.9,通过自制安装
gettext
不会链接库,这将产生错误
找不到msgfmt

这有助于:

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

创建一个符号链接

sudo ln -s /Library/Frameworks/Python.framework/Versions/3.7/share/doc/python3.7/examples/Tools/i18n/pygettext.py /usr/local/bin/pygettext

通过使用
find-名为pygettext.py/msgfmt.py
,我在macOS上找不到这两个文件,无论是在系统python安装(
/system/Library/Frameworks/python.framework/Versions
)还是在Anaconda python发行版中

但是我们总是可以直接从Python源代码下载这两个文件。目前,他们位于:


此外,
pygettext.py
msgfmt.py
是GNU
gettext
工具集的仿制品:
xgettext
msgfmt
。您还可以检查这些GNU工具集是否已经安装。(
类型-a xgettext/msgfmt

如果没有,则可以使用的
port
命令或
conda
命令进行安装

port install gettext
conda install gettext

谢谢,我单独下载了这些工具。在Mac 10.8.5上,curl不适合我,但是
wgethttp://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz
成功了
sudo ln -s /Library/Frameworks/Python.framework/Versions/3.7/share/doc/python3.7/examples/Tools/i18n/pygettext.py /usr/local/bin/pygettext
port install gettext
conda install gettext