Mac OS X 10.7 の Python アプリで文字列を翻訳したいと考えています。モジュールをインポートgettext
できますが、ツールpygettext.py
とが見つかりませんmsgfmt.py
。Python ドキュメントによると、Python インストールのどこかにあるはずです。
Mac OS X 10.7 にプリインストールされている Python バージョンにはこれらのツールがありませんか? はいの場合、どうすれば入手できますか?
ありがとう。
Mac OS X 10.7 の Python アプリで文字列を翻訳したいと考えています。モジュールをインポートgettext
できますが、ツールpygettext.py
とが見つかりませんmsgfmt.py
。Python ドキュメントによると、Python インストールのどこかにあるはずです。
Mac OS X 10.7 にプリインストールされている Python バージョンにはこれらのツールがありませんか? はいの場合、どうすれば入手できますか?
ありがとう。
Python 3 および MacOS >= 10.9 では、gettext
homebrew 経由でインストールしてもライブラリがリンクされず、エラーが発生しますCan't find msgfmt
。
これは次のことに役立ちます。
$ brew install gettext # if not already done
$ brew link gettext --force
これらのスクリプトは両方とも、Python ソースのその他の Tools ディレクトリにあります。このディレクトリは、多くの場合、Apple が OS X で提供するものなど、Python のバイナリ インストールには含まれていません。ただし、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*
Python 3.2 以降、Tools
ディレクトリは python.org OS X バイナリ インストーラーによってインストールされます。次の Python フレームワーク内にあります。
/Library/Frameworks/Python.framework/Versions/3.2/share/doc/python3.2/examples/Tools
シンボリックリンクを作成する
sudo ln -s /Library/Frameworks/Python.framework/Versions/3.7/share/doc/python3.7/examples/Tools/i18n/pygettext.py /usr/local/bin/pygettext
Python が Linux に正しくインストールされている場合は、コマンド ラインからバイナリ バージョンにアクセスできるはずです。したがって、.pot ファイルを作成するには、次のように入力します。
$> pygettext [options] source_file_list
2.7 用と 3.2 用の 2 つのバージョンの pygettext があることがわかりましたが、ほとんど同じように動作するようです。.po ファイルから .mo ファイルを作成するには:
$> msgfmt [options] file.po
ただし、誤って gnu バージョンを使用しないようにする必要があります。msgfmt の Python バージョンは、はるかに単純です。どちらのコマンドにもヘルプがあるため、次のコマンドでオプション (およびバージョン) を確認できます。
$> pygettext --help
と
$> msgfmt --help
確信が持てない場合は、上記の方法で Python ソースをダウンロードするのが、ベルトとブレースのアプローチです。
私はまだ自分自身で i18n を回避する方法を見つけているので、誰かがよりよく知っている場合は、コメントを追加してください:)