CakePHP LocaleSelectorMiddleware не работает - PullRequest
0 голосов
/ 22 апреля 2019

Я просто не могу получить приведенный ниже код для вызова в CakePHP 3.7. Я изменил нужный язык в своем браузере на французский, но он не работает, и я получаю только английскую версию. Да, у меня есть все нужные файлы .po на месте.

public function middleware($middlewareQueue)

{
    $middlewareQueue

        // Add middleware and set the valid locales
        ->add(new LocaleSelectorMiddleware(['fr_FR']));

    return $middlewareQueue;
}

1 Ответ

0 голосов
/ 19 июня 2019

Я в такой же ситуации. Все, что я могу добавить, это то, что поваренная книга упоминает DispatcherFactory. Однако такой подход представляется устаревшим.

Я еще не нашел, нужно ли и чем заменять DispatcherFactory, но может случиться так, что без него или без его замены добавления промежуточного программного обеспечения просто недостаточно.

Документ для DispatcherFactory утверждает, что с 3.3.0 следует использовать промежуточное программное обеспечение. Но я еще не смог заставить его работать.

ОБНОВЛЕНИЕ: я проверил заголовки моих запросов, и Chrome установил Accept-Language на значения, такие как 'en' и 'fr' среди других. Поэтому я включаю то, что хочу, в свой LocaleSelectorMiddleware в правильном формате, и это помогает.

Я заменил, например, «en_US» на «en», а «fr_BE» на «fr».

...