1. 目的
DjangoのInternationalization対応のためにMessageファイル(.po)を生成する。Windowsでの手順を記載する。
2. 環境
- Windows 10
- Python 3.6.5
- Visual Studio 2017 + PTVS
- Django 2.1
3. 手順
準備1 翻訳文字列のマーク
Django公式サイトの翻訳についてのドキュメントなどに従い、テンプレート中の翻訳対象の文字列を翻訳文字列に書き換える
<span>ほげほげ.</span>
↓
<span>{% trans "Hoge hoge."%}</span>
準備2 翻訳フォルダの作成
manage.pyと同じフォルダに、「locale」フォルダを作成する
3-1. xgettext.exeのダウンロード
以下からxgettextのライブラリ同梱版のzipをダウンロードする。
3-2. xgettext.exeの保存
解凍し、manage.pyと同じフォルダに「xgettext.exe」を保存する
3-3. コマンドプロンプト起動 & 環境アクティベーション
コマンドプロンプトを開き、Djangoプロジェクトのルートフォルダ(manage.pyと同じフォルダ)に移動する。Djangoで利用している仮想環境をアクティベーションしておく。
3-4. makemessages実行
以下のコマンドでMessageファイルを生成する
django-admin makemessages -l ja -e html
* -e オプションは、任意の拡張子に変えてください。
3-5. 結果
localeフォルダ内に、-lオプションに応じた.poファイルが生成される
4. おわりに
生成された.poファイルは翻訳文字列を記載して.moファイルに変換する必要があります。そのあたりはDjangoの公式ドキュメントを参照してください。
xgettext.exeのフォルダにパスを通せたらかっこいいんですが、パスが通ってもなぜか上手くxgettext.exeが実行できなかったので苦肉の策です。
.poファイルを生成した後はDjango Rosettaなどで管理すると良いでしょう。