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

How to change the language based on user preference in Yii2?

我的网站以默认语言(英语)开始,然后根据用户的偏好我应该更改它。这在 Yii2 中可能吗?有没有这个

的任何小部件

我使用 contentNegotiator,没有为用户分配语言,语言是由应用程序自动分配的。

为此 在 config/main.php 的 bootstrap 部分启动组件

'bootstrap' => [
    'log',
    'contentNegotiator',
],

在组件部分

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

],

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

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