今日は gae 上で zip で固めた django-1.0 を使う方法をご紹介します。
まず Django-1.0 を解凍して中に入ります。
$ tar zxvf Django-1.0.tar.gz
$ cd Django-1.0
不必要なディレクトリを削除します。
$ rm -rf django/bin django/conf/locale
$ rm -rf django/contrib/admin
$ rm -rf django/contrib/admindocs
$ rm -rf django/contrib/databrowse
$ rm -rf django/contrib/gis
(gis 全体では無く、django/contrib/gis/tests だけ消せば良いかも...)
GAE でも django の国際化フレームワークを使うため添付のパッチを当てます。
$ cd django
$ patch -p1 <../django-for-gae.diff
zip で固めてできあがり。
$ cd ..
$ zip -q django.zip `find django -name .svn -prune -o -type f ! -name
'*.pyc' ! -name '*.[pm]o' -print`
$ du -sk django.zip
664 django.zip
そうしたら zipped django に対応した django-helper を持って来ます。
(メールを書いている 2008/10/03 時点では rev64です)
$ mkdir -p ~/work
$ cd ~/work
$ svn export http://google-app-engine-django.googlecode.com/svn/trunk/
google-app-engine-django
$ cp -ar google-app-engine-django yourproject
最後に出来た django.zip をプロジェクトのトップディレクトリに置きます。
$ cp /some/where/django.zip yourproject
Google App Engine SDK へのリンクを作ります。
$ cd yourproject
$ ln -s /some/where/google_appengine ./.google_appengine
これで国際化に対応した django-1.0 + django-helper な環境ができました。
例えば下記のように makemessage や compilemessage も出来るはずです。
$ python manage.py makemessages -l ja
$ python manage.py compilemessages
ご興味がある方は試してみてください。
ただし、完全な国際化にはまだ障害があります。djangoforms を使用した時に
model で指定した verbose_name が ugettext_lazy でマークされていたとして
も早期に translate されてしまう不具合があります。
私の方でこの件を issue 登録してあります。完全な国際化を目指すためにこの
issue に star を付けてくださると嬉しいです。
http://code.google.com/p/googleappengine/issues/detail?id=583
Happy coding :-)
-- Takashi Matsuo