Keep It Real BLOG

ソフトウェアエンジニア。1児の父。 酒、ラーメン、サッカー好き。旅行も好きですが、普段は出不精で大抵たまプラーザ界隈に居ます。

Djangoの言語ファイル生成

f:id:naohide_a:20151202202517j:plain

最近、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で言語ファイルを更新