0

我只是无法在 CakePHP 3.7 中调用以下代码。我已将浏览器上所需的语言更改为法语,但它不起作用,我只得到英文版本。是的,我确实有所有正确的 .po 文件。

public function middleware($middlewareQueue)

{
    $middlewareQueue

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

    return $middlewareQueue;
}
4

1 回答 1

0

我也有同样的情况。我能补充的是,食谱中提到了 DispatcherFactory。但是,这种方法似乎已被弃用。

我还没有找到是否需要替换 DispatcherFactory 以及需要替换什么,但可能是没有它或它的替换,添加中间件是不够的。

DispatcherFactory 的文档指出,从 3.3.0 开始,应该使用中间件。但我还不能让它工作。

更新:我检查了我的请求标头,Chrome 将 Accept-Language 设置为“en”和“fr”等值。所以我以正确的格式在我的 LocaleSelectorMiddleware 中包含我想要的东西,这样就可以了。

例如,我将“en_US”替换为“en”,将“fr_BE”替换为“fr”。

于 2019-06-19T19:31:49.530 回答