Djangoの言語ファイル生成

Python

言語ファイルをコマンドから生成する

最近、Pythonを触り始めました。
そしてフレームワークとしてDjango使用しているのですが、言語ファイル生成の際に、コード側から書いていくと一発で言語ファイルに変数名が入るという機能があったので、使用してみました。
導入までの流れを書き止めておきたいと思います。

開発環境は、Macです。

  1. brew install gettext
  2. brew link gettext –force
  3. プロジェクト配下に「locale」ディレクトリ作成
  4. ソース、またはテンプレートにそれぞれ「ugettext([KEY])」、「{% trans [KEY] %}」を記載 -> ソースの場合は、from django.utils.translation import ugettextが必要、テンプレートの場合は、{% load i18n %}が必要
  5. django-admin.py makemessages -l ja で日本語の言語ファイル生成 -> locale/[言語コード]/LC_MESSAGES/django.po
  6. 5の言語ファイルを編集
  7. django-admin.py compilemessages
  8. settings.pyのMIDDLEWARE_CLASSESに、django.middleware.locale.LocaleMiddlewareを追加
  9. settings.pyに、LANGUAGESを追加 -> LANGUAGES = ((‘ja’, ‘Japanese’), (‘en’, ‘English’))
  10. setting.pyに言語ファイルが置いてあるところのパスを追加 -> LOCALE_PATHS = [‘%s/locale/’ % (SITE_ROOT)]
    ※ソース、テンプレートにキーを追加した場合、django-admin.py makemessages -aで言語ファイルを更新

ポイント

最初のgettextをインストールすることがポイントかと思います。
makemessagesをすることは、どこでも載っていると思いますが、gettextは意外と忘れがちかもしれません。

コメントを残す