2011-12-09 64 views
1

我試圖在我的項目上實現國際化,但頁面只能從settings.LANGUAGE_CODE的語言翻譯過來。無法在不更改`settings.LANGUAGE_CODE'的情況下在Django中翻譯我的頁面

django_language在用戶會話的值正確設定,所以是請求頭META[HTTP_ACCEPT_LANGUAGE],但模板仍與在LANGUAGE_CODE值呈現。

我必須在我的意見中使用translation.activate(request.session['django_language'])才能使用正確的語言翻譯頁面。

有沒有辦法翻譯頁面沒有使用translation.activate

的信息:

  • 所需的語言翻譯成是pt-br,這是在默認LANGUAGES集。
  • 如果我將pt-br設置爲LANGUAGE_CODE,則翻譯頁面。
  • 默認語言必須是en-us
  • 我的區域設置目錄位於項目根目錄下。

語言環境變量對我settings.py

LOCALEURL_USE_ACCEPT_LANGUAGE = True 

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

TEMPLATE_CONTEXT_PROCESSORS = (
    "django.core.context_processors.i18n", 
    'django.core.context_processors.request', 
) 

LANGUAGE_CODE = 'en-us' 
USE_I18N = True 
USE_L10N = True 

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.locale.LocaleMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware',  
) 

回答

1

您需要發送RequestContext爲您context_instance從您的觀點:

return render_to_response('hello.html', 
          context_instance=RequestContext(request)) 
相關問題