さて、さっそく blog を作り始めたのですが、i18n_pattern で ちょっと困ったことが。
それは、Django を sub URL に置いていると、常に先頭に 言語のプレフィックスがついてしまうのです。 そこで、django/middleware/locale.py を自分のプロジェクトにコピーし、 以下の部分を
if is_valid_path(language_path, urlconf): language_url = "%s://%s/%s%s" % ( request.is_secure() and 'https' or 'http', request.get_host(), language, request.get_full_path()) return HttpResponseRedirect(language_url)
次のように修正しました。
if is_valid_path(language_path, urlconf): protocol = "%s://%s" % ( request.is_secure() and 'https' or 'http', request.get_host()) url_base = "%s%s" % (language, request.get_full_path()) url_base = settings.PROJECT_URL + url_base.replace( settings.PROJECT_URL, '/') return HttpResponseRedirect(protocol + url_base)
ここでPROJECT_URL は、settings.py の中で、
PROJECT_URL = '/~mucius/'
のように設定しています。
果たして、これがベストかどうかは疑問ですが、 とりあえず動いているようなのでよしとします。