典型的なDjango開発スタイルでは、何をすべきかを完全に把握するために、次の組み合わせを使用しています。
- ローカリゼーションに関するDjangoドキュメント(実際には言語ファイルの設定方法のみを説明しています)https://docs.djangoproject.com/en/1.1/topics/i18n/localization/#
- このチュートリアル:http ://devdoodles.wordpress.com/2009/02/14/multi-language-support-in-a-django-project/
- SOの質問:djangoの国際化と翻訳の問題
次のような動作する「ホーム」アプリとテンプレートを使用して、新しいDjango1.4サイトをセットアップしました。
{% load i18n %}
{% trans "hello" %}
私のsettings.pyファイルは2番目のチュートリアルに従います。これが私のミドルウェアクラスです:
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
# Uncomment the next line for simple clickjacking protection:
# 'django.middleware.clickjacking.XFrameOptionsMiddleware',
)
そして私のviews.pyファイルは次のようになります:
from django.template import Context, loader, RequestContext
from django.http import HttpResponse
from django.shortcuts import render_to_response
def index(request):
c = Context({})
return render_to_response('home/index.html', c, context_instance=RequestContext(request))
本当に困惑しているのは、ロケールフォルダ内のdjango.pyファイルを編集する方法です。チュートリアルには「それらを編集する」と書かれていますが、Djangoのドキュメントにはそれらについては触れられておらず、SOの質問にはその行を取り除くように書かれています#, fuzzy
。
そのファイルは次のようになります(上部)
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid "hello"
msgstr "Bonjour le Monde"
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-08 19:16+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"