Метод определения языка "Браузер" не работает, если я проверяю "Страницы кэша для анонимных пользователей"


У меня активированы два метода обнаружения в следующем порядке:

1-URL

2- Браузер

Проблема в том, что метод "Браузер" вообще не работает, если установлен флажок "Кэшировать страницы для анонимных пользователей" в разделе "администратор/конфигурация/разработка/производительность". Язык по умолчанию загружается постоянно, независимо от языка браузера.

Все будет нормально, если я сниму флажок "Кэшировать страницы для анонимных пользователей".

См. захваты.

enter image description here

enter image description here

Author: chefnelone, 2015-11-03

2 answers

Вы видели и пробовали:

Https://stackoverflow.com/questions/22792062/drupal-7-always-redirecting-to-default-language

Возможно, на вас повлияла ошибка в ядре Drupal. Некоторое время у меня была та же проблема , и я, наконец, нашел причину и обходной путь для нее.

Это звучит так:

  1. Добавьте этот код в пользовательский модуль (измените "mymodule" на имя ваших модулей):

    /**
     * Implements hook_language_negotiation_info_alter().
     *
     * Remove the 'cache' setting from LOCALE_LANGUAGE_NEGOTIATION_BROWSER since
     * the code that utilizes this setting will in fact prevent browser negotiation.
     */
    function mymodule_language_negotiation_info_alter(&$negotiation_info) {
        unset($negotiation_info[LOCALE_LANGUAGE_NEGOTIATION_BROWSER]['cache']);
    }
    
  2. Очистить все тайники (например, "drush cc все")

  3. Перейдите в раздел admin/config/regional/language/configure и нажмите "Сохранить настройки" один раз (это приведет к перестройке переменной "language_negotiation_language").

Теперь определение языка браузера должно работать правильно.

Я также ищу реальное решение, но это требует изменений в ядре и, возможно, некоторого обсуждения заранее из-за характера ошибки. Я открыл проблему здесь: Определение языка браузера для анонимные запросы нарушены

Теперь есть патч от Бердира

 2
Author: rémy, 2018-12-27 11:49:48

Вам нужно написать пользовательский модуль, чтобы отменить настройку местных языков, тогда это решит вашу проблему

 0
Author: Rana Awais, 2015-11-12 07:48:22