如果不改变Django中的`settings.LANGUAGE_CODE',就无法翻译我的页面

时间:2011-12-09 20:34:37

标签: django internationalization

我正在尝试在我的项目上实现国际化,但这些页面只能使用settings.LANGUAGE_CODE中的语言进行翻译。

正确设置了用户会话中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 个答案:

答案 0 :(得分:1)

您需要从您的观看次数RequestContext发送context_instance

return render_to_response('hello.html',
                          context_instance=RequestContext(request))