#DjangoでGNU gettextを利用できるようにする
Djangoのi18n対応でGNU gettextをインストールする必要があったので、手順をまとめました。
https://leben.mobi/blog/django_i18n/python/ の補完的な記事です。
初めはbrewでgettextをインストールしたものの、
django-admin.py makemessages -l ja
を実行すると
CommandError: Can't find msguniq. Make sure you have GNU gettext tools 0.15 or newer installed.
というエラーが出てきてしまいました。
これは私がvenvを使用していたことに起因するものですが、venvにPATH variableを設定することでこのエラーが解消されました。
.....と思いきや、私の環境ではその後も
.../bin/rst2html5.py:2: Unknown encoding "utf8". Proceeding with ASCII instead.
という新たなエラーが出てきしまいました。どうやらこっちの方はvenv内のrst2html5.pyというファイルにあるバグが原因のようです。こちらのバグについては記事の最後で解説しています。
動作環境
- Mac OSX(10.14.6)
- Django 2.2.5
- homebrew
##homebrewでGettextをインストール
brew install gettext
##venvにPATH variableを設定
venv/binにあるactivateファイルを開いて、末尾に
export PATH=$PATH:/usr/local/Cellar/gettext/YOUR_VERSION/bin
を挿入する
※YOUR_VERSIONは使用中のgettextのバージョンと差し替えてください
##rst2html5.py内のバグを直す
utf8という記述をutf-8に直す
これで上記のリンクの手順通りにi18nを使えるようになるはずです。