在Yii2中如何根据用户偏好更改语言?

在Yii2中如何根据用户偏好更改语言?,yii2,yii2-advanced-app,Yii2,Yii2 Advanced App,我的网站以默认语言(英语)开始,然后根据用户的偏好我应该更改它。这在Yii2中可能吗?是否有任何小部件用于此我使用ContentCongregator,不向用户分配语言,语言由应用程序自动分配 为此 在引导部分的config/main.php中启动组件 'bootstrap' => [ 'log', 'contentNegotiator', ], 在组件部分 'components' => [ 'contentNegotiator' =>[

我的网站以默认语言(英语)开始,然后根据用户的偏好我应该更改它。这在Yii2中可能吗?是否有任何小部件用于此

我使用ContentCongregator,不向用户分配语言,语言由应用程序自动分配

为此 在引导部分的config/main.php中启动组件

'bootstrap' => [
    'log',
    'contentNegotiator',
],
在组件部分

'components' => [
    'contentNegotiator' =>[
        'class' => 'yii\filters\ContentNegotiator',
        'languages' => [
                'en-US',
                'it-IT',
                'fr-FR',
        ],
    ],

],
否则,你可以改变你想要的时间和地点。是应用程序操作,例如您可以在您选择的任何控制器中执行。这边

 \Yii::$app->language = 'zh-CN'; 

用户如何在此处选择语言?由用户的系统语言自动分配。因此,如果用户的系统语言为英语,并且他想使用法语,则没有办法。哈?我已更新我的答案。(内容谈判者是一个建议,但你可以随意改变)。