Go for it!

はてブロドメインで仮運用中。

AppEngine webappでDjangoを使って国際化する

お勉強結果のメモです。

以下のような前提条件で、KayとかDjangoそのものに乗り換えることはせず、webappを使いながらdjango templateおよびtranslationを使うというカオスな状況。

  • AppEngineでwebappを使う
  • google.appengine.ext.webapp.templateを使う
  • django.utils.translationを使う

参考資料はここここ

手順を箇条書すると次の通り。

  1. 参考資料を元にクラスを追加、必要なハンドラを書き換え
  2. settings.pyを書く
  3. テンプレートに{% load i18n %}を突っ込む
  4. 国際化したい箇所を{% trans "msg" %}する(blocktransでも可)
  5. make-messages.py -l jaとかする
  6. conf/locale以下にできたpoファイルをごりごりいじる
  7. compile-messages.pyする
  8. アプリケーションサーバをstop / startする

ちなみに、Mac用AppEngine SDKだと次のような長いコマンドを打つハメになる。

$ pwd
/some/where/AppEngineAppTop
$ PYTHONPATH=/Applications/GoogleAppEngineLauncher.app/Contents/Resources//GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/django/ /Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/django/django/bin/compile-messages.py

ハマったのは、moファイルを作ったあとにアプリケーションサーバをstop / startしないとメッセージが読み込まれない点。

いじょう。

[ad#text_wide]