0

さまざまなページにフックされたいくつかのアプリでdjango-cmsを使用する多言語サイト(it、en、ru)があります。私の問題は、プレフィックスとして「/en/」または「/ru/」を含むページにアクセスしても、コンテンツが常にイタリア語で提供されることです。私の基本テンプレート (base.html) には、現在のページ言語を取得できる {{ lang }} テンプレート変数があり、今日まで問題なく機能していました。wwww.myhomepage/en (または/ru ) にアクセスすると、「lang」の値は常に「it」になります。

これらは、私の言語設定 (cms ではなく cms) と、言語に関連するその他の設定です。

LANGUAGE_CODE = 'it' 

DEFAULT_LANGUAGE = 0

LANGUAGES = (
    ('it', gettext(u'Italiano')),
    ('en', gettext(u'English')),
    ('ru', gettext(u'Russian')),     )                                                                                                                                                                  

CMS_LANGUAGES = (
    ('it', ugettext('Italian')),
    ('en', ugettext('English')),
    ('ru', ugettext('Russian')),
)

LOCALE_PATHS = (os.path.join(PROJECT_PATH, 'locale'))

CMS_LANGUAGE_CONF = {
    'it': ['en'],
    'ru': ['en'],
    }  

CMS_HIDE_UNTRANSLATED = False

    MIDDLEWARE_CLASSES = (
     'django.middleware.common.CommonMiddleware',
     'django.contrib.sessions.middleware.SessionMiddleware',
     'django.middleware.csrf.CsrfViewMiddleware',
     'django.contrib.auth.middleware.AuthenticationMiddleware',
     'django.contrib.messages.middleware.MessageMiddleware',
     'cms.middleware.multilingual.MultilingualURLMiddleware',
     'cms.middleware.page.CurrentPageMiddleware',
     'cms.middleware.user.CurrentUserMiddleware',
     'cms.middleware.toolbar.ToolbarMiddleware',
     'django.middleware.common.CommonMiddleware',
     'django.contrib.sessions.middleware.SessionMiddleware',
     'django.middleware.csrf.CsrfViewMiddleware',
     'django.contrib.auth.middleware.AuthenticationMiddleware',
     'django.contrib.messages.middleware.MessageMiddleware',
     'cms.middleware.multilingual.MultilingualURLMiddleware',
     'cms.middleware.page.CurrentPageMiddleware',
     'cms.middleware.user.CurrentUserMiddleware',
     'debug_toolbar.middleware.DebugToolbarMiddleware',
     'cms.middleware.multilingual.MultilingualURLMiddleware',
     'cms.middleware.page.CurrentPageMiddleware',
     'cms.middleware.user.CurrentUserMiddleware',
     'cms.middleware.toolbar.ToolbarMiddleware'
)

助けはありますか?ありがとう

4

1 に答える 1

0

設定内で繰り返されるミドルウェアがいくつかあります。それらは次のようになります。

MIDDLEWARE_CLASSES = (
 'django.middleware.common.CommonMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',

 'cms.middleware.multilingual.MultilingualURLMiddleware',
 'cms.middleware.page.CurrentPageMiddleware',
 'cms.middleware.user.CurrentUserMiddleware',
 'cms.middleware.toolbar.ToolbarMiddleware',
)

さらに、設定も教えてもらえますCONTEXT_PROCESSORか?

次に、Django-cms <= 2.3.5 を使用していると仮定しました。これは正しいですか?MultilingualMiddleware を取り除く 2.4 ベータ版があります (まだベータ版ですが)。

于 2013-01-30T09:22:18.990 に答える