打开浏览器时如何使用用户首选语言将页面重定向到用户

时间:2016-07-06 08:21:12

标签: django internationalization translation

当我打开浏览器并更改语言时,Django 1.9.6 i18n非常适用。 但我想保存语言,而其他时候,当用户来时,它将是他/她的首选语言。 现在,当我打开网站时,它总是将我重定向到/ en。我试图更改我的设置并设置

 LANGUAGE_CODE='ru'

或其他东西,但它不起作用是我的设置文件

   ALLOWED_HOSTS = []
   LOGIN_URL=reverse_lazy('login')
   AUTH_USER_MODEL='custom.MyUser'
   INSTALLED_APPS = [
     'django.contrib.admin',
     'django.contrib.auth',
     'django.contrib.contenttypes',
     'django.contrib.sessions',
     'django.contrib.messages',
     'django.contrib.staticfiles',
     'custom',
     'languages',
        ]

  MIDDLEWARE_CLASSES = [
      'django.middleware.security.SecurityMiddleware',
      'django.contrib.sessions.middleware.SessionMiddleware',
      'django.middleware.locale.LocaleMiddleware',
      'django.middleware.common.CommonMiddleware',
      'django.middleware.csrf.CsrfViewMiddleware',
      'django.contrib.auth.middleware.AuthenticationMiddleware',
      'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
      'django.contrib.messages.middleware.MessageMiddleware',
     'django.middleware.clickjacking.XFrameOptionsMiddleware',
  ]

   ROOT_URLCONF = 'builtcustom.urls'
     WSGI_APPLICATION = 'builtcustom.wsgi.application'
     LANGUAGES=(
                ('en',_('ENGLISH')),
                ('fr',_('FRENCH')),
                ('cs', _('czech')),
                ('hy', _('ARMENIAN')),
                ('ru', _('RUSSIAN')),
                )
    LOCALE_PATHS = (
                        os.path.join(BASE_DIR, 'locale'),

                    )

 LANGUAGE_CODE = 'en-us'
 TIME_ZONE = 'UTC'
 USE_I18N = True
 USE_L10N = True
 USE_TZ =False 

如何解决此问题并使用我想要的语言(从数据库中动态选择)重定向到网址?

1 个答案:

答案 0 :(得分:1)

对于特定网址,您可以在Django中选择这样的语言。

from django.utils.translation import activate
activate('fr') # To use french

结帐documentation 您可以轻松地从数据库中获取所需的任何语言,并在其上调用activate。确保您的数据库中的语言具有与Django相同的缩写。